aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorSerge Simard <serge@agilitae.com>2019-05-17 06:39:58 -0400
committerSerge Simard <serge@agilitae.com>2019-05-27 16:24:48 -0400
commita3d9ac859fa47f2aa2849160e08c7a3c1048589e (patch)
tree2274828bb493be8e9c59aa1ee1e502644d9909b0 /components
parentacbcd280dc9d04ed303ed994872a0f3ba6adbab3 (diff)
Remote AWX ansible playbook executor
Issue-ID: CCSDK-1357 Change-Id: I794ce5450b341606829a1a37d9efed48abab32cc Signed-off-by: Serge Simard <serge@agilitae.com>
Diffstat (limited to 'components')
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/artifact_types.json34
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/data_types.json3
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/node_types.json86
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/policy_types.json3
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/relationship_types.json3
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/remote_ansible.json124
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/resources_definition_types.json3
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/remote_ansible/TOSCA-Metadata/TOSCA.meta5
-rw-r--r--components/model-catalog/definition-type/starter-type/node_type/component-remote-ansible-executor.json65
9 files changed, 326 insertions, 0 deletions
diff --git a/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/artifact_types.json b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/artifact_types.json
new file mode 100644
index 000000000..6e5cfc3a1
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/artifact_types.json
@@ -0,0 +1,34 @@
+{
+ "artifact_types" : {
+ "artifact-directed-graph" : {
+ "description" : "Directed Graph File",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.artifacts.Implementation",
+ "file_ext" : [ "json", "xml" ]
+ },
+ "artifact-mapping-resource" : {
+ "description" : "Resource Mapping File used along with Configuration template",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.artifacts.Implementation",
+ "file_ext" : [ "json" ]
+ },
+ "artifact-script-ansible" : {
+ "description" : "Ansible Script file",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.artifacts.Implementation",
+ "file_ext" : [ "yaml" ]
+ },
+ "artifact-script-python" : {
+ "description" : "Python Script file",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.artifacts.Implementation",
+ "file_ext" : [ "py" ]
+ },
+ "artifact-template-velocity" : {
+ "description" : " Velocity Template used for Configuration",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.artifacts.Implementation",
+ "file_ext" : [ "vtl" ]
+ }
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/data_types.json b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/data_types.json
new file mode 100644
index 000000000..8c304c40b
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/data_types.json
@@ -0,0 +1,3 @@
+{
+ "data_types" : { }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/node_types.json b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/node_types.json
new file mode 100644
index 000000000..5f0deeb98
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/node_types.json
@@ -0,0 +1,86 @@
+{
+ "node_types" : {
+ "component-remote-ansible-executor" : {
+ "description" : "Remote Ansible (AWX) Execution Component.",
+ "version" : "1.0.0",
+ "attributes" : {
+ "ansible-command-status" : {
+ "required" : false,
+ "type" : "string"
+ },
+ "ansible-command-logs" : {
+ "required" : false,
+ "type" : "string"
+ }
+ },
+ "capabilities" : {
+ "component-node" : {
+ "type" : "tosca.capabilities.Node"
+ }
+ },
+ "interfaces" : {
+ "ComponentRemoteAnsibleExecutor" : {
+ "operations" : {
+ "process" : {
+ "inputs" : {
+ "job-template-name" : {
+ "description" : "Job template to execute in AWX",
+ "required" : true,
+ "type" : "string"
+ },
+ "limit" : {
+ "description" : "Limit to this comma-separated list of hosts.",
+ "required" : false,
+ "type" : "string"
+ },
+ "inventory" : {
+ "description" : "Use this hosts inventory ID for this run.",
+ "required" : false,
+ "type" : "string"
+ },
+ "tags" : {
+ "description" : "Limit this run to comma-separated list of tags.",
+ "required" : false,
+ "type" : "string"
+ },
+ "skip-tags" : {
+ "description" : "Skip this comma-separated list of tags for this run.",
+ "required" : false,
+ "type" : "string"
+ },
+ "extra-vars" : {
+ "description" : "Specify extra args for this run.",
+ "required" : false,
+ "type" : "json"
+ },
+ "endpoint-selector" : {
+ "description" : "Remote AWX Server selector name.",
+ "required" : false,
+ "type" : "string",
+ "default" : "awx-remote-server"
+ }
+ }
+ }
+ }
+ }
+ },
+ "derived_from" : "tosca.nodes.Component"
+ },
+
+ "tosca.nodes.Component" : {
+ "description" : "This is default Component Node",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.nodes.Root"
+ },
+ "tosca.nodes.ResourceSource" : {
+ "description" : "TOSCA base type for Resource Sources",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.nodes.Root"
+ },
+ "tosca.nodes.Workflow" : {
+ "description" : "This is Directed Graph Node Type",
+ "version" : "1.0.0",
+ "derived_from" : "tosca.nodes.Root"
+ }
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/policy_types.json b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/policy_types.json
new file mode 100644
index 000000000..1e44cc70a
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/policy_types.json
@@ -0,0 +1,3 @@
+{
+ "policy_types" : { }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/relationship_types.json b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/relationship_types.json
new file mode 100644
index 000000000..4ddd7a57c
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/relationship_types.json
@@ -0,0 +1,3 @@
+{
+ "relationship_types" : { }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/remote_ansible.json b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/remote_ansible.json
new file mode 100644
index 000000000..53ca04a5d
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/remote_ansible.json
@@ -0,0 +1,124 @@
+{
+ "tosca_definitions_version": "controller_blueprint_1_0_0",
+ "metadata": {
+ "template_author": "Serge Simard",
+ "author-email": "serge@agilitae.com",
+ "user-groups": "ADMIN, OPERATION",
+ "template_name": "remote_ansible",
+ "template_version": "1.0.0",
+ "template_tags": "tosca"
+ },
+ "imports": [
+ {
+ "file": "Definitions/data_types.json"
+ },
+ {
+ "file": "Definitions/relationship_types.json"
+ },
+ {
+ "file": "Definitions/artifact_types.json"
+ },
+ {
+ "file": "Definitions/node_types.json"
+ },
+ {
+ "file": "Definitions/policy_types.json"
+ }
+ ],
+ "dsl_definitions": {
+ "ansible-remote-endpoint": {
+ "type": "token-auth",
+ "url": "http://142.44.184.236",
+ "token": "Bearer J9gEtMDqf7P4YsJ74fioY9VAhLDIs1"
+ }
+ },
+ "topology_template": {
+ "workflows": {
+ "execute-remote-ansible": {
+ "steps": {
+ "process": {
+ "description": "Execute Remote Ansible Script",
+ "target": "execute-remote-ansible",
+ "activities": [
+ {
+ "call_operation": ""
+ }
+ ]
+ }
+ },
+ "inputs": {
+ "endpoint-selector": {
+ "required": true,
+ "type": "string"
+ },
+ "job-template-name": {
+ "required": true,
+ "type": "string"
+ },
+ "limit": {
+ "required": false,
+ "type": "string"
+ },
+ "inventory": {
+ "required": false,
+ "type": "string"
+ },
+ "tags": {
+ "required": false,
+ "type": "string"
+ },
+ "skip-tags": {
+ "required": false,
+ "type": "string"
+ },
+ "extra-vars" : {
+ "required" : false,
+ "type" : "json"
+ }
+ },
+ "outputs": {
+ "ansible-command-status": {
+ "type": "string",
+ "value": {
+ "get_attribute": [
+ "execute-remote-ansible",
+ "ansible-command-status"
+ ]
+ }
+ },
+ "ansible-command-logs": {
+ "type": "string",
+ "value": {
+ "get_attribute": [
+ "execute-remote-ansible",
+ "ansible-command-logs"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "node_templates": {
+ "execute-remote-ansible": {
+ "type": "component-remote-ansible-executor",
+ "interfaces": {
+ "ComponentRemoteAnsibleExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "endpoint-selector": { "get_input": "endpoint-selector" },
+ "job-template-name": { "get_input": "job-template-name" },
+ "limit": { "get_input": "limit" },
+ "inventory": { "get_input": "inventory" },
+ "extra-vars": { "get_input": "extra-vars" },
+ "tags": { "get_input": "tags" },
+ "skip-tags": { "get_input": "skip-tags" }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/resources_definition_types.json b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/resources_definition_types.json
new file mode 100644
index 000000000..0e0dcd235
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/Definitions/resources_definition_types.json
@@ -0,0 +1,3 @@
+{
+
+} \ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/TOSCA-Metadata/TOSCA.meta b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/TOSCA-Metadata/TOSCA.meta
new file mode 100644
index 000000000..17448a835
--- /dev/null
+++ b/components/model-catalog/blueprint-model/test-blueprint/remote_ansible/TOSCA-Metadata/TOSCA.meta
@@ -0,0 +1,5 @@
+TOSCA-Meta-File-Version: 1.0.0
+CSAR-Version: 1.0
+Created-By: Serge Simard <serge@agilitae.com>
+Entry-Definitions: Definitions/remote_ansible.json
+Template-Tags: Serge Simard, remote_ansible \ No newline at end of file
diff --git a/components/model-catalog/definition-type/starter-type/node_type/component-remote-ansible-executor.json b/components/model-catalog/definition-type/starter-type/node_type/component-remote-ansible-executor.json
new file mode 100644
index 000000000..498db8246
--- /dev/null
+++ b/components/model-catalog/definition-type/starter-type/node_type/component-remote-ansible-executor.json
@@ -0,0 +1,65 @@
+{
+ "description": "This is Remote Ansible Playbook (AWX) Execution Component.",
+ "version": "1.0.0",
+ "attributes": {
+ "ansible-command-status": {
+ "required": true,
+ "type": "string"
+ },
+ "ansible-command-logs": {
+ "required": true,
+ "type": "string"
+ }
+ },
+ "capabilities": {
+ "component-node": {
+ "type": "tosca.capabilities.Node"
+ }
+ },
+ "interfaces": {
+ "ComponentRemoteAnsibleExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "job-template-name": {
+ "description": "Primary key or name of the job template to launch new job.",
+ "required": true,
+ "type": "string"
+ },
+ "limit": {
+ "description": "Specify host limit for job template to run.",
+ "required": false,
+ "type": "string"
+ },
+ "inventory": {
+ "description": "Specify inventory for job template to run.",
+ "required": false,
+ "type": "string"
+ },
+ "extra-vars" : {
+ "required" : false,
+ "type" : "json",
+ "description": "json formatted text that contains extra variables to pass on."
+ },
+ "tags": {
+ "description": "Specify tagged actions in the playbook to run.",
+ "required": false,
+ "type": "string"
+ },
+ "skip-tags": {
+ "description": "Specify tagged actions in the playbook to omit.",
+ "required": false,
+ "type": "string"
+ },
+ "endpoint-selector": {
+ "description": "Remote AWX Server selector name.",
+ "required": true,
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.Component"
+} \ No newline at end of file