예제 #1
0
    def payload(self, **kwargs):
        payload = PseudoNamespace(
            name=kwargs.get('name')
            or 'WorkflowJobTemplate - {}'.format(random_title()),
            description=kwargs.get('description') or random_title(10))

        optional_fields = ("allow_simultaneous", "ask_variables_on_launch",
                           "ask_inventory_on_launch",
                           "ask_scm_branch_on_launch", "ask_limit_on_launch",
                           "limit", "scm_branch", "survey_enabled")
        update_payload(payload, optional_fields, kwargs)

        extra_vars = kwargs.get('extra_vars', not_provided)
        if extra_vars != not_provided:
            if isinstance(extra_vars, dict):
                extra_vars = json.dumps(extra_vars)
            payload.update(extra_vars=extra_vars)

        if kwargs.get('organization'):
            payload.organization = kwargs.get('organization').id

        if kwargs.get('inventory'):
            payload.inventory = kwargs.get('inventory').id

        return payload
예제 #2
0
    def payload(self, **kwargs):
        payload = PseudoNamespace(
            name=kwargs.get('name')
            or 'WorkflowJobTemplate - {}'.format(random_title()),
            description=kwargs.get('description') or random_title(10))

        optional_fields = (
            "allow_simultaneous",
            "ask_variables_on_launch",
            "ask_inventory_on_launch",
            "ask_scm_branch_on_launch",
            "ask_limit_on_launch",
            "limit",
            "scm_branch",
            "survey_enabled",
            "webhook_service",
            "webhook_credential",
        )
        update_payload(payload, optional_fields, kwargs)

        extra_vars = kwargs.get('extra_vars', not_provided)
        if extra_vars != not_provided:
            if isinstance(extra_vars, dict):
                extra_vars = json.dumps(extra_vars)
            payload.update(extra_vars=extra_vars)

        if kwargs.get('organization'):
            payload.organization = kwargs.get('organization').id

        if kwargs.get('inventory'):
            payload.inventory = kwargs.get('inventory').id

        if kwargs.get('webhook_credential'):
            webhook_cred = kwargs.get('webhook_credential')
            if isinstance(webhook_cred, int):
                payload.update(webhook_credential=int(webhook_cred))
            elif hasattr(webhook_cred, 'id'):
                payload.update(webhook_credential=webhook_cred.id)
            else:
                raise AttributeError(
                    "Webhook credential must either be integer of pkid or Credential object"
                )

        return payload