def run_module(): module_args = dict( auth_token = dict(default=os.environ.get('CHERRY_AUTH_TOKEN'), type = 'str', no_log = True), state = dict(choices = MODULE_STATES, default = 'present'), key_id=dict(type='list', default=None), label=dict(type='list', default=None), fingerprint=dict(type='list', default=None), key=dict(type='list', default=None), key_file=dict(type='list', default=None) ) mutually_exclusive=[ ('key_id', 'label'), ('key_id', 'fingerprint'), ('label', 'fingerprint'), ('key', 'fingerprint'), ('key', 'key_id'), ('key', 'key_file') ] result = dict( changed=False ) module = AnsibleModule( argument_spec=module_args, mutually_exclusive = mutually_exclusive, supports_check_mode=True ) if not HAS_CHERRYSERVERS_SDK: module.fail_json(msg='cherry required for this module') if not module.params.get('auth_token'): module.fail_json(msg='The "auth_token" parameter or ' + 'CHERRY_AUTH_TOKEN environment variable is required') cherryservers_conn = cherry.Master(auth_token=module.params['auth_token']) state = module.params['state'] if state in 'present': (changed, sshkey) = add_ssh_keys(module, cherryservers_conn) elif state == 'absent': (changed, sshkey) = remove_ssh_keys(module, cherryservers_conn) else: raise Exception("Unknown state: %s" % state) if module.check_mode: return result result['sshkey'] = sshkey result['changed'] = changed module.exit_json(**result)
def run_module(): module_args = dict( auth_token=dict(default=os.environ.get('CHERRY_AUTH_TOKEN'), type='str', no_log=True), state=dict(choices=MODULE_STATES, default='present'), project_id=dict(type='int', default=None), storage_volume_id=dict(type='int', default=None), size=dict(type='int', default=None), description=dict(type='str', default='', required=False), attach_to_server_id=dict(type='int', default=None), attach_to_server_hostname=dict(type='str', default=None), region=dict(type='str', default=None), ) mutually_exclusive = [ ('size', 'attach_to_id'), ('size', 'attach_to_hostname'), ] result = dict(changed=False) module = AnsibleModule(argument_spec=module_args, mutually_exclusive=mutually_exclusive, supports_check_mode=True) if not HAS_CHERRYSERVERS_SDK: module.fail_json(msg='cherry required for this module') if not module.params.get('auth_token'): module.fail_json(msg='The "auth_token" parameter or ' + 'CHERRY_AUTH_TOKEN environment variable is required') cherryservers_conn = cherry.Master(auth_token=module.params['auth_token']) state = module.params['state'] if state in 'present': (changed, volume) = request_storage_volume(module, cherryservers_conn) elif state == 'absent': (changed, volume) = remove_storage_volume(module, cherryservers_conn) elif state == 'update': (changed, volume) = update_storage_volume(module, cherryservers_conn) else: raise Exception("Unknown state: %s" % state) if module.check_mode: return result result['volume'] = volume result['changed'] = changed module.exit_json(**result)
def run_module(): module_args = dict(auth_token=dict( default=os.environ.get('CHERRY_AUTH_TOKEN'), type='str', no_log=True), hostname=dict(type='list'), new=dict(type='bool', required=False, default=False), count=dict(type='int', default=1), count_offset=dict(type='int', default=1), image=dict(), plan_id=dict(type='int'), project_id=dict(type='int', required=True), server_id=dict(type='int'), server_ids=dict(type='list'), ip_address=dict(type='list'), ip_address_id=dict(type='list'), region=dict(), ssh_key_id=dict(type='list'), ssh_label=dict(type='list'), state=dict(choices=MODULE_STATES, default='present'), wait_timeout=dict(type='int', default=1800)) mutually_exclusive = [('hostname', 'server_ids'), ('ssh_key_id', 'ssh_label')] required_one_of = [('hostname', 'server_ids', 'server_id')] result = dict(changed=False, original_message='', message='') module = AnsibleModule(argument_spec=module_args, required_one_of=required_one_of, mutually_exclusive=mutually_exclusive, supports_check_mode=True) if not HAS_CHERRYSERVERS_SDK: module.fail_json(msg='cherry required for this module') if not module.params.get('auth_token'): module.fail_json(msg='The "auth_token" parameter or ' + 'CHERRY_AUTH_TOKEN environment variable is required') cherryservers_conn = cherry.Master(auth_token=module.params['auth_token']) state = module.params['state'] if state in ('present', 'active'): (changed, server) = create_multiple_servers(module, cherryservers_conn) if state == 'active': deploying_servers_ids = [] if server: for srv in server: srv_id = srv['id'] deploying_servers_ids.append(srv_id) server = wait_for_resource(module, cherryservers_conn, deploying_servers_ids) elif state == 'absent': (changed, server) = terminate_multiple_servers(module, cherryservers_conn) elif state in ('running', 'stopped', 'rebooted'): (changed, server) = servers_power(module, cherryservers_conn) else: raise Exception("Unknown state: %s" % state) if module.check_mode: return result result['server'] = server result['changed'] = changed module.exit_json(**result)
def run_module(): module_args = dict(auth_token=dict( default=os.environ.get('CHERRY_AUTH_TOKEN'), type='str', no_log=True), state=dict(choices=MODULE_STATES, default='present'), project_id=dict(type='int', default=None), type=dict(type='str', default=None), ptr_record=dict(type='str', default=None), a_record=dict(type='str', default=None), assigned_to=dict(type='str', default=None), routed_to=dict(type='str', default=None), routed_to_ip=dict(type='str', default=None), routed_to_hostname=dict(type='str', default=None), routed_to_server_id=dict(type='str', default=None), region=dict(type='str', default=None), ip_address_id=dict(type='list', default=None), ip_address=dict(type='list', default=None), count=dict(type='int', default=1)) mutually_exclusive = [('routed_to_ip', 'routed_to_hostname'), ('routed_to_ip', 'routed_to_server_id'), ('routed_to_hostname', 'routed_to_server_id'), ('key', 'key_id'), ('key', 'key_file'), ('ip_address_id', 'ip_address')] result = dict(changed=False) module = AnsibleModule(argument_spec=module_args, mutually_exclusive=mutually_exclusive, supports_check_mode=True) if not HAS_CHERRYSERVERS_SDK: module.fail_json(msg='cherry required for this module') if not module.params.get('auth_token'): module.fail_json(msg='The "auth_token" parameter or ' + 'CHERRY_AUTH_TOKEN environment variable is required') cherryservers_conn = cherry.Master(auth_token=module.params['auth_token']) state = module.params['state'] if state in 'present': (changed, ip) = add_multiple_ip_addresses(module, cherryservers_conn) elif state == 'absent': if not (module.params['ip_address'] or module.params['ip_address_id']): module.fail_json( msg= "one of the following is required: ip_address_id, ip_address") (changed, ip) = remove_multiple_ip_addresses(module, cherryservers_conn) elif state == 'update': if not (module.params['ip_address'] or module.params['ip_address_id']): module.fail_json( msg= "one of the following is required: ip_address_id, ip_address") (changed, ip) = update_multiple_ip_addresses(module, cherryservers_conn) else: raise Exception("Unknown state: %s" % state) if module.check_mode: return result result['ip_address'] = ip result['changed'] = changed module.exit_json(**result)