def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) del tmp # tmp no longer has any effect if self._play_context.check_mode: # in --check mode, always skip this module execution result['skipped'] = True result['msg'] = 'The dcos task does not support check mode' return result args = self._task.args package_name = args.get('name', None) package_version = args.get('version', None) if package_version is None: raise AnsibleActionFail('version cannot be empty for dcos_package') state = args.get('state', 'present') # ensure app_id has no leading or trailing / app_id = args.get('app_id', package_name).strip('/') options = args.get('options') or {} try: options['service']['name'] = app_id except KeyError: options['service'] = {'name': app_id} ensure_dcos() current_version = get_current_version(package_name, app_id) wanted_version = get_wanted_version(package_version, state) if current_version == wanted_version: display.vvv( "Package {} already in desired state".format(package_name)) if state == "present": update_package(package_name, app_id, wanted_version, options) result['changed'] = False else: display.vvv("Package {} not in desired state".format(package_name)) if wanted_version is not None: if current_version is not None: update_package(package_name, app_id, wanted_version, options) else: install_package(package_name, wanted_version, options) else: uninstall_package(package_name, app_id) result['changed'] = True return result
def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) del tmp # tmp no longer has any effect if self._play_context.check_mode: # in --check mode, always skip this module execution result['skipped'] = True result['msg'] = 'The dcos task does not support check mode' return result args = self._task.args path = args.get('path') if path is None: raise AnsibleActionFail('path cannot be empty for dcos_secret') store = args.get('store', 'default') file = args.get('file') with open(file, "rb") as wanted_value: wanted_state = args.get('state', 'present') ensure_dcos() ensure_dcos_security() current_value = get_secret_value(path, store) current_state = 'present' if current_value is not None else 'absent' if current_state == wanted_state: display.vvv( "DC/OS Secret {} already in desired state {}".format(path, wanted_state)) result['changed'] = False if wanted_state == "present" and current_value != wanted_value: secret_update_from_file(path, file, store) result['changed'] = True result['msg'] = "Secret {} was updated".format(path) else: display.vvv("DC/OS Secret {} not in desired state {}".format(path, wanted_state)) if wanted_state != 'absent': secret_create_from_file(path, file, store) result['msg'] = "Secret {} was created".format(path) else: secret_delete(path, store) result['msg'] = "Secret {} was deleted".format(path) result['changed'] = True return result
def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) del tmp # tmp no longer has any effect if self._play_context.check_mode: # in --check mode, always skip this module execution result['skipped'] = True result['msg'] = 'The dcos task does not support check mode' return result args = self._task.args uid = args.get('uid') description = args.get('description', 'Created by Ansible') password = args.get('password') groups = args.get('groups', []) wanted_state = args.get('state', 'present') if uid is None: raise AnsibleActionFail('uid cannot be empty for dcos_iam_user') if password is None: raise AnsibleActionFail( 'password cannot be empty for dcos_iam_user') ensure_dcos() ensure_dcos_security() current_state = get_user_state(uid) if current_state == wanted_state: display.vvv("DC/OS IAM user {} already in desired state {}".format( uid, wanted_state)) if wanted_state == "present": user_update(uid, groups) result['changed'] = False else: display.vvv("DC/OS: IAM user {} not in desired state {}".format( uid, wanted_state)) if wanted_state != 'absent': user_create(uid, password, description) user_update(uid, groups) else: user_delete(uid) result['changed'] = True return result
def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) del tmp # tmp no longer has any effect if self._play_context.check_mode: # in --check mode, always skip this module execution result['skipped'] = True result['msg'] = 'The dcos task does not support check mode' return result args = self._task.args gid = args.get('group_id') cpu = args.get('cpu', None) mem = args.get('mem', None) disk = args.get('disk', None) gpu = args.get('gpu', None) wanted_state = args.get('state', 'present') if gid is None: raise AnsibleActionFail('gid cannot be empty for dcos_iam_quota') ensure_dcos() current_state = get_quota_state(gid) if current_state == wanted_state: display.vvv("DC/OS quota {} already in desired state {}".format( gid, wanted_state)) if wanted_state == "present": quota_update(gid, cpu, mem, disk, gpu) result['changed'] = False else: display.vvv("DC/OS: quota {} not in desired state {}".format( gid, wanted_state)) if wanted_state != 'absent': quota_create(gid, cpu, mem, disk, gpu) else: quota_delete(gid) result['changed'] = True return result
def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) del tmp # tmp no longer has any effect if self._play_context.check_mode: # in --check mode, always skip this module execution result['skipped'] = True result['msg'] = 'The dcos task does not support check mode' return result args = self._task.args name = args.get('name', None) url = args.get('url', None) index = args.get('index', 0) wanted_state = args.get('state', 'present') if name is None: raise AnsibleActionFail( 'name cannot be empty for dcos_package_repo') if url is None: raise AnsibleActionFail( 'url cannot be empty for dcos_package_repo') ensure_dcos() current_state = get_repo_state(name) if current_state == wanted_state: display.vvv("DC/OS: Repo {} already in desired state".format(name)) if wanted_state == "present": repo_update(name, url, index) result['changed'] = False else: display.vvv("DC/OS: Repo {} not in desired state".format(name)) if wanted_state != 'absent': repo_add(name, url, index) else: repo_remove(name) result['changed'] = True return result
def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) del tmp # tmp no longer has any effect if self._play_context.check_mode: # in --check mode, always skip this module execution result['skipped'] = True result['msg'] = 'The dcos task does not support check mode' return result args = self._task.args state = args.get('state', 'present') instance_name = args.get('instance_name', 'edgelb') # ensure pool_id has no leading forward slash pool_id = args.get('pool_id', '').strip('/') options = args.get('options') or {} options['name'] = pool_id ensure_dcos() ensure_dcos_edgelb(instance_name) current_state = get_pool_state(pool_id, instance_name) wanted_state = state if current_state == wanted_state: display.vvv("edgelb pool {} already in desired state {}".format( pool_id, wanted_state)) if wanted_state == "present": pool_update(pool_id, instance_name, options) result['changed'] = False else: display.vvv("edgelb pool {} not in desired state {}".format( pool_id, wanted_state)) if wanted_state != 'absent': pool_create(pool_id, instance_name, options) else: pool_delete(pool_id, instance_name) result['changed'] = True return result
def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) del tmp # tmp no longer has any effect if self._play_context.check_mode: # in --check mode, always skip this module execution result['skipped'] = True result['msg'] = 'The dcos task does not support check mode' return result args = self._task.args state = args.get('state', 'present') # ensure app_id has a single leading forward slash app_id = '/' + args.get('app_id', '').strip('/') options = args.get('options') or {} options['id'] = app_id ensure_dcos() current_state = get_app_state(app_id) wanted_state = state if current_state == wanted_state: display.vvv("Marathon app {} already in desired state {}".format( app_id, wanted_state)) if wanted_state == "present": app_update(app_id, options) result['changed'] = False else: display.vvv("Marathon app {} not in desired state {}".format( app_id, wanted_state)) if wanted_state != 'absent': app_create(app_id, options) else: app_remove(app_id) result['changed'] = True return result
def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) del tmp # tmp no longer has any effect if self._play_context.check_mode: # in --check mode, always skip this module execution result['skipped'] = True result['msg'] = 'The dcos task does not support check mode' return result args = self._task.args ensure_dcos() result['changed'] = connect_cluster(**args) return result
def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) del tmp # tmp no longer has any effect if self._play_context.check_mode: # in --check mode, always skip this module execution result['skipped'] = True result['msg'] = 'The dcos task does not support check mode' return result args = self._task.args sid = args.get('sid') description = args.get('description', 'Created by Ansible') secret_path = args.get('secret_path') store = args.get('store', 'default') groups = args.get('groups', []) wanted_state = args.get('state', 'present') if sid is None: raise AnsibleActionFail( 'sid cannot be empty for dcos_iam_service_account') if secret_path is None: raise AnsibleActionFail( 'secret_path cannot be empty for dcos_iam_service_account') ensure_dcos() ensure_dcos_security() current_state = get_service_account_state(sid) if current_state == wanted_state: display.vvv( "DC/OS IAM service_account {} already in desired state {}". format(sid, wanted_state)) result['changed'] = False if wanted_state == "present": if get_secret_value(secret_path, store) is None: service_account_delete(sid) service_account_create(sid, secret_path, store, description) result['changed'] = True service_account_update(sid, groups) else: display.vvv( "DC/OS: IAM service_account {} not in desired state {}".format( sid, wanted_state)) if wanted_state != 'absent': service_account_create(sid, secret_path, store, description) service_account_update(sid, groups) else: service_account_delete(sid) result['changed'] = True return result