Merge "pep8 the ansible modules"
This commit is contained in:
commit
8eca1155f6
@ -18,9 +18,9 @@ from ConfigParser import ConfigParser
|
|||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from ansible.runner.return_data import ReturnData
|
||||||
from ansible import utils
|
from ansible import utils
|
||||||
from ansible.utils import template
|
from ansible.utils import template
|
||||||
from ansible.runner.return_data import ReturnData
|
|
||||||
|
|
||||||
|
|
||||||
class ActionModule(object):
|
class ActionModule(object):
|
||||||
@ -30,7 +30,20 @@ class ActionModule(object):
|
|||||||
def __init__(self, runner):
|
def __init__(self, runner):
|
||||||
self.runner = runner
|
self.runner = runner
|
||||||
|
|
||||||
def run(self, conn, tmp, module_name, module_args, inject, complex_args=None, **kwargs):
|
def read_config(self, source, inject, config):
|
||||||
|
# Only use config if present
|
||||||
|
if os.access(source, os.R_OK):
|
||||||
|
# template the source data locally & get ready to transfer
|
||||||
|
resultant = template.template_from_file(self.runner.basedir,
|
||||||
|
source, inject)
|
||||||
|
|
||||||
|
# Read in new results and merge this with the existing config
|
||||||
|
fakefile = StringIO(resultant)
|
||||||
|
config.readfp(fakefile)
|
||||||
|
fakefile.close()
|
||||||
|
|
||||||
|
def run(self, conn, tmp, module_name, module_args, inject,
|
||||||
|
complex_args=None, **kwargs):
|
||||||
args = {}
|
args = {}
|
||||||
if complex_args:
|
if complex_args:
|
||||||
args.update(complex_args)
|
args.update(complex_args)
|
||||||
@ -47,7 +60,6 @@ class ActionModule(object):
|
|||||||
else:
|
else:
|
||||||
inject.update(utils.parse_kv(extra_vars))
|
inject.update(utils.parse_kv(extra_vars))
|
||||||
|
|
||||||
|
|
||||||
# Catch the case where sources is a str()
|
# Catch the case where sources is a str()
|
||||||
if not isinstance(sources, list):
|
if not isinstance(sources, list):
|
||||||
sources = [sources]
|
sources = [sources]
|
||||||
@ -58,33 +70,29 @@ class ActionModule(object):
|
|||||||
# template the source string
|
# template the source string
|
||||||
source = template.template(self.runner.basedir, source, inject)
|
source = template.template(self.runner.basedir, source, inject)
|
||||||
|
|
||||||
# Only use config if present
|
try:
|
||||||
if os.access(source, os.R_OK):
|
self.read_config(source, inject, config)
|
||||||
# template the source data locally & get ready to transfer
|
except Exception as e:
|
||||||
try:
|
return ReturnData(conn=conn, comm_ok=False,
|
||||||
resultant = template.template_from_file(self.runner.basedir, source, inject)
|
result={'failed': True, 'msg': str(e)})
|
||||||
except Exception as e:
|
|
||||||
return ReturnData(conn=conn, comm_ok=False, result={'failed': True, 'msg': str(e)})
|
|
||||||
|
|
||||||
# Read in new results and merge this with the existing config
|
|
||||||
fakefile = StringIO(resultant)
|
|
||||||
config.readfp(fakefile)
|
|
||||||
fakefile.close()
|
|
||||||
|
|
||||||
# Dump configparser to string via an emulated file
|
# Dump configparser to string via an emulated file
|
||||||
fakefile = StringIO()
|
fakefile = StringIO()
|
||||||
config.write(fakefile)
|
config.write(fakefile)
|
||||||
# Template the file to fill out any variables
|
# Template the file to fill out any variables
|
||||||
content = template.template(self.runner.basedir, fakefile.getvalue(), inject)
|
content = template.template(self.runner.basedir, fakefile.getvalue(),
|
||||||
|
inject)
|
||||||
fakefile.close()
|
fakefile.close()
|
||||||
|
|
||||||
# Ship this content over to a new file for use with the copy module
|
# Ship this content over to a new file for use with the copy module
|
||||||
xfered = self.runner._transfer_str(conn, tmp, 'source', content)
|
xfered = self.runner._transfer_str(conn, tmp, 'source', content)
|
||||||
|
|
||||||
copy_module_args = dict(
|
copy_module_args = dict(
|
||||||
src=xfered,
|
src=xfered,
|
||||||
dest=dest,
|
dest=dest,
|
||||||
original_basename=os.path.basename(source),
|
original_basename=os.path.basename(source),
|
||||||
follow=True,
|
follow=True,
|
||||||
)
|
)
|
||||||
return self.runner._execute_module(conn, tmp, 'copy', '', inject=inject, complex_args=copy_module_args)
|
return self.runner._execute_module(conn, tmp, 'copy', '',
|
||||||
|
inject=inject,
|
||||||
|
complex_args=copy_module_args)
|
||||||
|
@ -109,9 +109,9 @@ Distribute a to file many host without compression; Change permissions on dest:
|
|||||||
import base64
|
import base64
|
||||||
import hashlib
|
import hashlib
|
||||||
import os
|
import os
|
||||||
import sys
|
|
||||||
import zlib
|
import zlib
|
||||||
|
|
||||||
|
|
||||||
def copy_from_host(module):
|
def copy_from_host(module):
|
||||||
compress = module.params.get('compress')
|
compress = module.params.get('compress')
|
||||||
src = module.params.get('src')
|
src = module.params.get('src')
|
||||||
@ -121,7 +121,7 @@ def copy_from_host(module):
|
|||||||
if not os.access(src, os.R_OK):
|
if not os.access(src, os.R_OK):
|
||||||
module.fail_json(msg="file is not readable: {}".format(src))
|
module.fail_json(msg="file is not readable: {}".format(src))
|
||||||
|
|
||||||
mode = oct(os.stat(src).st_mode & 0777)
|
mode = oct(os.stat(src).st_mode & 0o777)
|
||||||
|
|
||||||
with open(src, 'rb') as f:
|
with open(src, 'rb') as f:
|
||||||
raw_data = f.read()
|
raw_data = f.read()
|
||||||
@ -162,16 +162,16 @@ def copy_to_host(module):
|
|||||||
|
|
||||||
module.exit_json(changed=True)
|
module.exit_json(changed=True)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
module = AnsibleModule(
|
argument_spec = dict(
|
||||||
argument_spec = dict(
|
compress=dict(default=True, type='bool'),
|
||||||
compress = dict(default=True, type='bool'),
|
dest=dict(type='str'),
|
||||||
dest = dict(type='str'),
|
mode=dict(default='0644', type='str'),
|
||||||
mode = dict(default='0644', type='str'),
|
sha1=dict(default=None, type='str'),
|
||||||
sha1 = dict(default=None, type='str'),
|
src=dict(required=True, type='str')
|
||||||
src = dict(required=True, type='str')
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
module = AnsibleModule(argument_spec)
|
||||||
|
|
||||||
dest = module.params.get('dest')
|
dest = module.params.get('dest')
|
||||||
|
|
||||||
@ -183,7 +183,8 @@ def main():
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
module.exit_json(failed=True, changed=True, msg=repr(e))
|
module.exit_json(failed=True, changed=True, msg=repr(e))
|
||||||
|
|
||||||
|
|
||||||
# import module snippets
|
# import module snippets
|
||||||
from ansible.module_utils.basic import *
|
from ansible.module_utils.basic import * # noqa
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
@ -45,12 +45,12 @@ EXAMPLES = '''
|
|||||||
import json
|
import json
|
||||||
import pyudev
|
import pyudev
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
module = AnsibleModule(
|
argument_spec = dict(
|
||||||
argument_spec = dict(
|
partition_name=dict(required=True, type='str')
|
||||||
partition_name = dict(required=True, type='str')
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
module = AnsibleModule(argument_spec)
|
||||||
partition_name = module.params.get('partition_name')
|
partition_name = module.params.get('partition_name')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -68,6 +68,6 @@ def main():
|
|||||||
module.exit_json(failed=True, msg=repr(e))
|
module.exit_json(failed=True, msg=repr(e))
|
||||||
|
|
||||||
# import module snippets
|
# import module snippets
|
||||||
from ansible.module_utils.basic import *
|
from ansible.module_utils.basic import * # noqa
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
@ -14,8 +14,8 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# This file is a barebones file needed to file a gap until Ansible 2.0. No error
|
# This file is a barebones file needed to file a gap until Ansible 2.0. No
|
||||||
# checking, no deletions, no updates. Idempotent creation only.
|
# error checking, no deletions, no updates. Idempotent creation only.
|
||||||
|
|
||||||
# If you look closely, you will see we arent _really_ using the shade module
|
# If you look closely, you will see we arent _really_ using the shade module
|
||||||
# we just use it to slightly abstract the authentication model. As patches land
|
# we just use it to slightly abstract the authentication model. As patches land
|
||||||
@ -24,18 +24,18 @@
|
|||||||
|
|
||||||
import shade
|
import shade
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
module = AnsibleModule(
|
argument_spec = openstack_full_argument_spec(
|
||||||
argument_spec = openstack_full_argument_spec(
|
description=dict(required=True, type='str'),
|
||||||
description = dict(required=True, type='str'),
|
service_name=dict(required=True, type='str'),
|
||||||
service_name = dict(required=True, type='str'),
|
service_type=dict(required=True, type='str'),
|
||||||
service_type = dict(required=True, type='str'),
|
admin_url=dict(required=True, type='str'),
|
||||||
admin_url = dict(required=True, type='str'),
|
internal_url=dict(required=True, type='str'),
|
||||||
internal_url = dict(required=True, type='str'),
|
public_url=dict(required=True, type='str'),
|
||||||
public_url = dict(required=True, type='str'),
|
endpoint_region=dict(required=True, type='str')
|
||||||
endpoint_region = dict(required=True, type='str')
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
module = AnsibleModule(argument_spec)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
description = module.params.pop('description')
|
description = module.params.pop('description')
|
||||||
@ -61,24 +61,26 @@ def main():
|
|||||||
if _endpoint.service_id == service.id:
|
if _endpoint.service_id == service.id:
|
||||||
endpoint = _endpoint
|
endpoint = _endpoint
|
||||||
else:
|
else:
|
||||||
service = cloud.keystone_client.services.create(name=service_name,
|
service = cloud.keystone_client.services.create(
|
||||||
service_type=service_type,
|
name=service_name,
|
||||||
description=description)
|
service_type=service_type,
|
||||||
|
description=description)
|
||||||
|
|
||||||
if endpoint is None:
|
if endpoint is None:
|
||||||
changed = True
|
changed = True
|
||||||
cloud.keystone_client.endpoints.create(service_id=service.id,
|
cloud.keystone_client.endpoints.create(
|
||||||
adminurl=admin_url,
|
service_id=service.id,
|
||||||
internalurl=internal_url,
|
adminurl=admin_url,
|
||||||
publicurl=public_url,
|
internalurl=internal_url,
|
||||||
region=endpoint_region)
|
publicurl=public_url,
|
||||||
|
region=endpoint_region)
|
||||||
|
|
||||||
module.exit_json(changed=changed)
|
module.exit_json(changed=changed)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
module.exit_json(failed=True, changed=True, msg=e)
|
module.exit_json(failed=True, changed=True, msg=e)
|
||||||
|
|
||||||
# import module snippets
|
# import module snippets
|
||||||
from ansible.module_utils.basic import *
|
from ansible.module_utils.basic import * # noqa
|
||||||
from ansible.module_utils.openstack import *
|
from ansible.module_utils.openstack import * # noqa
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
@ -14,8 +14,8 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# This file is a barebones file needed to file a gap until Ansible 2.0. No error
|
# This file is a barebones file needed to file a gap until Ansible 2.0. No
|
||||||
# checking, no deletions, no updates. Idempotent creation only.
|
# error checking, no deletions, no updates. Idempotent creation only.
|
||||||
|
|
||||||
# If you look closely, you will see we arent _really_ using the shade module
|
# If you look closely, you will see we arent _really_ using the shade module
|
||||||
# we just use it to slightly abstract the authentication model. As patches land
|
# we just use it to slightly abstract the authentication model. As patches land
|
||||||
@ -24,15 +24,15 @@
|
|||||||
|
|
||||||
import shade
|
import shade
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
module = AnsibleModule(
|
argument_spec = openstack_full_argument_spec(
|
||||||
argument_spec = openstack_full_argument_spec(
|
password=dict(required=True, type='str'),
|
||||||
password = dict(required=True, type='str'),
|
project=dict(required=True, type='str'),
|
||||||
project = dict(required=True, type='str'),
|
role=dict(required=True, type='str'),
|
||||||
role = dict(required=True, type='str'),
|
user=dict(required=True, type='str')
|
||||||
user = dict(required=True, type='str')
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
module = AnsibleModule(argument_spec)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
password = module.params.pop('password')
|
password = module.params.pop('password')
|
||||||
@ -61,7 +61,8 @@ def main():
|
|||||||
|
|
||||||
if not project:
|
if not project:
|
||||||
changed = True
|
changed = True
|
||||||
project = cloud.keystone_client.tenants.create(tenant_name=project_name)
|
project = cloud.keystone_client.tenants.create(
|
||||||
|
tenant_name=project_name)
|
||||||
|
|
||||||
if not role:
|
if not role:
|
||||||
changed = True
|
changed = True
|
||||||
@ -69,15 +70,19 @@ def main():
|
|||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
changed = True
|
changed = True
|
||||||
user = cloud.keystone_client.users.create(name=user_name, password=password, tenant_id=project.id)
|
user = cloud.keystone_client.users.create(name=user_name,
|
||||||
cloud.keystone_client.roles.add_user_role(role=role.id, user=user.id, tenant=project.id)
|
password=password,
|
||||||
|
tenant_id=project.id)
|
||||||
|
cloud.keystone_client.roles.add_user_role(role=role.id,
|
||||||
|
user=user.id,
|
||||||
|
tenant=project.id)
|
||||||
|
|
||||||
module.exit_json(changed=changed)
|
module.exit_json(changed=changed)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
module.exit_json(failed=True, changed=True, msg=e)
|
module.exit_json(failed=True, changed=True, msg=e)
|
||||||
|
|
||||||
# import module snippets
|
# import module snippets
|
||||||
from ansible.module_utils.basic import *
|
from ansible.module_utils.basic import * # noqa
|
||||||
from ansible.module_utils.openstack import *
|
from ansible.module_utils.openstack import * # noqa
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
@ -57,7 +57,7 @@ def main():
|
|||||||
module.exit_json(failed=True, changed=True, msg=e)
|
module.exit_json(failed=True, changed=True, msg=e)
|
||||||
|
|
||||||
# import module snippets
|
# import module snippets
|
||||||
from ansible.module_utils.basic import *
|
from ansible.module_utils.basic import * # noqa
|
||||||
from ansible.module_utils.openstack import *
|
from ansible.module_utils.openstack import * # noqa
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
@ -61,7 +61,6 @@ def main():
|
|||||||
|
|
||||||
|
|
||||||
# import module snippets
|
# import module snippets
|
||||||
from ansible.module_utils.basic import *
|
from ansible.module_utils.basic import * # noqa
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user