Exemplo n.º 1
0
def main():

    fields = {
        "path": {
            "required": True,
            "type": "str"
        },
        "commitMessage": {
            "required": False,
            "type": "str"
        }
    }
    module = AnsibleModule(argument_spec=fields)
    path = module.get_bin_path('git', True)
    result = dict(changed=False, warnings=list())
    try:
        response = git_status(module, path, module.params['path'])
        if response == "":
            result.update(changed=False)
        else:
            msg = module.params['commitMessage'] or datetime.datetime.now()
            commitResponse = git_commit(module, path, module.params['path'],
                                        msg)
            result.update(changed=True, message=to_native(commitResponse))
    except Exception as e:
        module.fail_json(msg=to_native(e))
    module.exit_json(**result)
Exemplo n.º 2
0
def requires_update(encoder, obj_old, obj_new):
    """Compares encoded copies of the existing and new objects to assertain
    whether an update is required. Only compares fields which exist in the new
    object.
    """
    assert callable(encoder)
    assert isinstance(obj_old, dict)
    assert isinstance(obj_new, dict)

    obj_new = hook_trans_compare(copy.deepcopy(obj_new))
    assert isinstance(obj_new, dict)

    try:
        old_encoded, new_encoded = encoder(obj_old), encoder(obj_new)
    except Exception as e:
        module.fail_json(msg=to_native(e), exception=traceback.format_exc())

    import json
    with open('/tmp/x.json', 'a') as f:
        json.dump([old_encoded, new_encoded], f)

    assert isinstance(old_encoded, dict)
    assert isinstance(new_encoded, dict)

    try:
        return cmp_recursive(old_encoded, new_encoded)
    except Exception as e:
        module.fail_json(msg=to_native(e), exception=traceback.format_exc())
Exemplo n.º 3
0
def git_commit(module, git_path, repo_path, commitMsg):
    cmd = "%s add * " % (git_path)
    rc, stdout, stderr = module.run_command(cmd, cwd=repo_path)
    if stderr != "":
        raise AnsibleError(" git add error: %s " % to_native(stderr))
    cmd = "%s commit -m \"%s\"" % (git_path, commitMsg)
    rc, stdout, stderr = module.run_command(cmd, cwd=repo_path)
    if stderr != "":
        raise AnsibleError(" git commit error: %s " % to_native(stderr))
    return stdout
Exemplo n.º 4
0
def download_s3str(module, s3, bucket, obj, version=None, validate=True):
    if module.check_mode:
        module.exit_json(msg="GET operation skipped - running in check mode", changed=True)
    try:
        if version:
            contents = to_native(s3.get_object(Bucket=bucket, Key=obj, VersionId=version)["Body"].read())
        else:
            contents = to_native(s3.get_object(Bucket=bucket, Key=obj)["Body"].read())
        module.exit_json(msg="GET operation complete", contents=contents, changed=True)
    except botocore.exceptions.ClientError as e:
        module.fail_json(msg="Failed while getting contents of object %s as a string." % obj,
                         exception=traceback.format_exc(), **camel_dict_to_snake_dict(e.response))
 def create_azure_netapp_volume(self):
     """
         Create a volume for the given Azure NetApp Account
         :return: None
     """
     volume_body = Volume(
         location=self.parameters['location'],
         creation_token=self.parameters['file_path'],
         service_level=self.parameters['service_level'],
         subnet_id=
         '/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/virtualNetworks/%s/subnets/%s'
         %
         (self.client.config.subscription_id,
          self.parameters['resource_group'],
          self.parameters['virtual_network'], self.parameters['subnet_id']))
     try:
         result = self.client.volumes.create_or_update(
             body=volume_body,
             resource_group_name=self.parameters['resource_group'],
             account_name=self.parameters['account_name'],
             pool_name=self.parameters['pool_name'],
             volume_name=self.parameters['name'])
         # waiting till the status turns Succeeded
         while result.done() is not True:
             result.result(10)
     except CloudError as error:
         self.module.fail_json(
             msg='Error creating volume %s for Azure NetApp account %s: %s'
             % (self.parameters['name'], self.parameters['account_name'],
                to_native(error)),
             exception=traceback.format_exc())
def main():
    module = ov.new_module(ARG_SPEC)
    # Handle exception importing 'pyopsview'
    if ov.PYOV_IMPORT_EXC is not None:
        module.fail_json(msg=ov.PYOV_IMPORT_EXC[0],
                         exception=ov.PYOV_IMPORT_EXC[1])

    verify = module.params['verify_ssl']

    if not os.path.exists(verify):
        verify = module.boolean(verify)

    try:
        opsview_client = ov.new_opsview_client(
            username=module.params['username'],
            password=module.params['password'],
            endpoint=module.params['endpoint'],
            verify=verify,
        )

        summary = {
            'changed': True,
            'token': opsview_client.token,
            'opsview_version': opsview_client.version
        }

    except Exception as e:
        module.fail_json(msg=to_native(e), exception=traceback.format_exc())

    module.exit_json(**summary)
Exemplo n.º 7
0
def main():

    fields = {
        "asn32Safe": {
            "default": False,
            "type": "bool"
        },
        "IPv": {
            "required": True,
            "type": "str",
            "choices": ['4', '6']
        },
        "aggregate": {
            "default": False,
            "type": "bool"
        },
        "asSet": {
            "required": True,
            "type": "str"
        }
    }
    module = AnsibleModule(argument_spec=fields)
    result = dict(changed=False, warnings=list())
    try:
        path = module.get_bin_path('bgpq4', False) or module.get_bin_path(
            'bgpq3', False)
        if path is None:
            raise AnsibleError("BGPq3 ou BGPq4 not found")
        response = bgpq3Query(module, path)
        result.update(changed=True, message=response)
    except Exception as e:
        module.fail_json(msg=to_native(e))
    module.exit_json(**result)
def init_client(username, endpoint, password, **kwds):
    try:
        return OpsviewClient(username=username,
                             endpoint=endpoint,
                             password=password,
                             **kwds)
    except Exception as e:
        module.fail_json(msg=to_native(e), exception=traceback.format_exc())
def main():
    module = ov.new_module(ARG_SPEC)
    # Handle exception importing 'pyopsview'
    if ov.PYOV_IMPORT_EXC is not None:
        module.fail_json(msg=ov.PYOV_IMPORT_EXC[0],
                         exception=ov.PYOV_IMPORT_EXC[1])

    try:
        summary = ov.config_module_main(module, 'hostgroups')
    except Exception as e:
        module.fail_json(msg=to_native(e), exception=traceback.format_exc())

    module.exit_json(**summary)
def main():
    module = ov.new_module(ARG_SPEC, always_include=ARG_KEYS)
    # Handle exception importing 'pyopsview'
    if ov.PYOV_IMPORT_EXC is not None:
        module.fail_json(msg=ov.PYOV_IMPORT_EXC[0],
                         exception=ov.PYOV_IMPORT_EXC[1])

    try:
        summary = module_main(module)
    except Exception as e:
        module.fail_json(msg=to_native(e), exception=traceback.format_exc())

    module.exit_json(**summary)
Exemplo n.º 11
0
 def delete_azure_netapp_account(self):
     """
         Delete an Azure NetApp Account
         :return: None
     """
     try:
         self.netapp_client.accounts.delete(
             resource_group_name=self.parameters['resource_group'],
             account_name=self.parameters['name'])
     except CloudError as error:
         self.module.fail_json(
             msg='Error deleting Azure NetApp account %s: %s' %
             (self.parameters['name'], to_native(error)),
             exception=traceback.format_exc())
Exemplo n.º 12
0
 def create_azure_netapp_account(self):
     """
         Create an Azure NetApp Account
         :return: None
     """
     account_body = NetAppAccount(location=self.parameters['location'])
     try:
         self.netapp_client.accounts.create_or_update(
             body=account_body,
             resource_group_name=self.parameters['resource_group'],
             account_name=self.parameters['name'])
     except CloudError as error:
         self.module.fail_json(
             msg='Error creating Azure NetApp account %s: %s' %
             (self.parameters['name'], to_native(error)),
             exception=traceback.format_exc())
 def update_azure_netapp_account(self, modify):
     """
         Create an Azure NetApp Account
         :return: None
     """
     account_body = self.create_account_request_body(modify)
     try:
         self.get_method('accounts', 'update')(
             body=account_body,
             resource_group_name=self.parameters['resource_group'],
             account_name=self.parameters['name'])
     except (CloudError, AzureError) as error:
         self.module.fail_json(
             msg='Error creating Azure NetApp account %s: %s' %
             (self.parameters['name'], to_native(error)),
             exception=traceback.format_exc())
def main():
    module = ov.new_module(ARG_SPEC)
    # Handle exception importing 'pyopsview'
    if ov.PYOV_IMPORT_EXC is not None:
        module.fail_json(msg=ov.PYOV_IMPORT_EXC[0],
                         exception=ov.PYOV_IMPORT_EXC[1])

    try:
        summary = ov.config_module_main(
            module, 'monitoringservers',
            pre_compare_hook=hook_trans_compare,
            payload_finalize_hook=hook_trans_payload
        )
    except Exception as e:
        module.fail_json(msg=to_native(e), exception=traceback.format_exc())

    module.exit_json(**summary)
Exemplo n.º 15
0
    def client(self):
        host = self.module.params.get('host')
        port = self.module.params.get('port')

        client = self._client(host, port)

        if self.mongodb_auth_arg_spec['name'] and \
                self.mongodb_auth_arg_spec['password']:

            try:
                client.admin.authenticate(**self.mongodb_auth_arg_spec)
            except OperationFailure as e:
                msg = to_native(e)
                self.fail_json(msg=msg)

        self.check_compatibility(client)

        return client
Exemplo n.º 16
0
def main():
    module = ov.new_module(ARG_SPEC)
    # Handle exception importing 'pyopsview'
    if ov.PYOV_IMPORT_EXC is not None:
        module.fail_json(msg=ov.PYOV_IMPORT_EXC[0],
                         exception=ov.PYOV_IMPORT_EXC[1])

    try:
        summary = ov.config_module_main(
            module,
            'hosts',
            get_params={'include_encrypted': '1'},
            pre_compare_hook=hook_trans_payload,
            payload_finalize_hook=hook_trans_payload)

    except Exception as e:
        module.fail_json(msg=to_native(e), exception=traceback.format_exc())

    module.exit_json(**summary)
Exemplo n.º 17
0
def main():

    fields = {
        "path":       {"required": True,  "type": "str"}
    }
    module = AnsibleModule(argument_spec=fields)
    path = module.get_bin_path('git', True)
    result = dict(changed=False, warnings=list())
    try:
        response = git_status(module, path, module.params['path'])
        modified = re.search(r'\[ahead \d+\]', response)
        if modified is None:
            result.update(changed=False)
        else:
            pushResponse = git_push(module, path, module.params['path'])
            result.update(changed=True, message=pushResponse)
    except Exception as e:
        module.fail_json(msg=to_native(e))
    module.exit_json(**result)
Exemplo n.º 18
0
 def create_azure_netapp_snapshot(self):
     """
         Create a snapshot for the given Azure NetApp Account
         :return: None
     """
     snapshot_body = Snapshot(location=self.parameters['location'])
     try:
         self.netapp_client.snapshots.create(
             body=snapshot_body,
             resource_group_name=self.parameters['resource_group'],
             account_name=self.parameters['account_name'],
             pool_name=self.parameters['pool_name'],
             volume_name=self.parameters['volume_name'],
             snapshot_name=self.parameters['name'])
     except CloudError as error:
         self.module.fail_json(
             msg='Error creating snapshot %s for Azure NetApp account %s: %s'
             % (self.parameters['name'], self.parameters['account_name'],
                to_native(error)),
             exception=traceback.format_exc())
Exemplo n.º 19
0
 def create_azure_netapp_capacity_pool(self):
     """
         Create a capacity pool for the given Azure NetApp Account
         :return: None
     """
     capacity_pool_body = CapacityPool(location=self.parameters['location'],
                                       size=self.parameters['size'] *
                                       SIZE_POOL)
     try:
         self.netapp_client.pools.create_or_update(
             body=capacity_pool_body,
             resource_group_name=self.parameters['resource_group'],
             account_name=self.parameters['account_name'],
             pool_name=self.parameters['name'])
     except CloudError as error:
         self.module.fail_json(
             msg=
             'Error creating capacity pool %s for Azure NetApp account %s: %s'
             % (self.parameters['name'], self.parameters['account_name'],
                to_native(error)),
             exception=traceback.format_exc())
Exemplo n.º 20
0
 def modify_azure_netapp_capacity_pool(self, modify):
     """
         Modify a capacity pool for the given Azure NetApp Account
         :return: None
     """
     capacity_pool_body = CapacityPool(
         location=self.parameters['location'],
         service_level=self.parameters['service_level'],
         size=self.parameters['size'] * SIZE_POOL)
     try:
         self.get_method('pools', 'update')(
             body=capacity_pool_body,
             resource_group_name=self.parameters['resource_group'],
             account_name=self.parameters['account_name'],
             pool_name=self.parameters['name'])
     except (CloudError, AzureError) as error:
         self.module.fail_json(
             msg=
             'Error modifying capacity pool %s for Azure NetApp account %s: %s'
             % (self.parameters['name'], self.parameters['account_name'],
                to_native(error)),
             exception=traceback.format_exc())