add filters for openstack
This commit is contained in:
parent
026ce00919
commit
1b54f37dbd
2 changed files with 28 additions and 0 deletions
2
README
2
README
|
@ -20,6 +20,8 @@ tasks - snippets of tasks that should be included in plays
|
||||||
roles - specific roles to be use in playbooks.
|
roles - specific roles to be use in playbooks.
|
||||||
Each role has it's own files/templates/vars
|
Each role has it's own files/templates/vars
|
||||||
|
|
||||||
|
filter_plugins - Jinja filters
|
||||||
|
|
||||||
== Paths ==
|
== Paths ==
|
||||||
|
|
||||||
public path for everything is:
|
public path for everything is:
|
||||||
|
|
26
filter_plugins/openstack.py
Normal file
26
filter_plugins/openstack.py
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
from ansible import errors, runner
|
||||||
|
import json
|
||||||
|
from novaclient.v3.client import Client
|
||||||
|
import novaclient.exceptions;
|
||||||
|
|
||||||
|
def flavor_id_to_name(host_vars, user, password, tenant, auth_url):
|
||||||
|
nt = Client(user, password, tenant, auth_url, service_type="compute")
|
||||||
|
try:
|
||||||
|
flavor = nt.flavors.get(host_vars)
|
||||||
|
except novaclient.exceptions.NotFound:
|
||||||
|
raise errors.AnsibleFilterError('There is no flavor of name {0}'.format(host_vars))
|
||||||
|
return flavor.name
|
||||||
|
|
||||||
|
|
||||||
|
def flavor_name_to_id(host_vars, user, password, tenant, auth_url):
|
||||||
|
nt = Client(user, password, tenant, auth_url, service_type="compute")
|
||||||
|
for i in nt.flavors.list():
|
||||||
|
if i.name == host_vars:
|
||||||
|
return i.id
|
||||||
|
raise errors.AnsibleFilterError('There is no flavor of id {0}'.format(host_vars))
|
||||||
|
|
||||||
|
class FilterModule (object):
|
||||||
|
def filters(self):
|
||||||
|
return {"flavor_id_to_name": flavor_id_to_name,
|
||||||
|
"flavor_name_to_id": flavor_name_to_id,
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue