Add Jython Component model and validation logics.
[ccsdk/cds.git] / components / model-catalog / blueprint-model / starter-blueprint / baseconfiguration / Definitions / activation-blueprint.json
index 4c1ca4a..269fd0c 100644 (file)
@@ -1,12 +1,23 @@
 {
   "metadata": {
     "template_author": "Brinda Santh Muthuramalingam",
-    "author-email": "brindasanth@gmail.com",
+    "author-email": "brindasanth@in.ibm.com",
     "user-groups": "ADMIN, OPERATION",
     "template_name": "baseconfiguration",
     "template_version": "1.0.0",
     "template_tags": "brinda, tosca"
   },
+  "imports": [
+    {
+      "file": "Definitions/data-types.json"
+    },
+    {
+      "file": "Definitions/node-types.json"
+    },
+    {
+      "file": "Definitions/artifact-types.json"
+    }
+  ],
   "topology_template": {
     "inputs": {
       "request-id": {
@@ -28,7 +39,7 @@
     },
     "node_templates": {
       "activate-process": {
-        "type": "bpmn-activate",
+        "type": "dg-activate",
         "properties": {
           "process-name": {
             "get_input": "action-name"
           "content": {
             "get_artifact": [
               "SELF",
-              "activate-process"
+              "dg-activate-process"
             ]
           }
         },
         "artifacts": {
-          "activate-process": {
-            "type": "artifact-bpmn-camunda",
+          "dg-activate-process": {
+            "type": "artifact-directed-graph",
             "file": "Plans/ActivateProcess.bpmn"
           }
         }
@@ -59,7 +70,7 @@
           "request-id": "1234"
         },
         "interfaces": {
-          "DefaultComponentNode": {
+          "ResourceAssignmentComponent": {
             "operations": {
               "process": {
                 "inputs": {
                   }
                 },
                 "outputs": {
-                  "resource-assignment-params": "",
-                  "status": ""
+                  "resource-assignment-params": {
+                    "get_attribute": [
+                      "SELF",
+                      "assignment-params"
+                    ]
+                  },
+                  "status": "success"
                 }
               }
             }
           "request-id": "1234"
         },
         "interfaces": {
-          "DefaultComponentNode": {
+          "ResourceAssignmentComponent": {
             "operations": {
               "process": {
                 "implementation": {
         },
         "artifacts": {
           "component-script": {
-            "type": "artifact-script-python",
-            "file": "Scripts/baseconfig-template.vtl"
+            "type": "artifact-script-jython",
+            "file": "Scripts/SamplePythonComponentNode.py"
+          }
+        }
+      },
+      "activate-jython": {
+        "type": "component-jython-executor",
+        "interfaces": {
+          "JythonExecutorComponent": {
+            "operations": {
+              "process": {
+                "implementation": {
+                  "primary": "component-script"
+                },
+                "outputs": {
+                  "response-data": "",
+                  "status": ""
+                }
+              }
+            }
+          }
+        },
+        "artifacts": {
+          "component-script": {
+            "type": "artifact-script-jython",
+            "file": "Scripts/SamplePythonComponentNode.py"
           }
         }
       }
     },
     "workflows": {
-      "activate-process": {
+      "resource-assignment": {
+        "inputs": {
+          "request-id": {
+            "required": true,
+            "type": "string"
+          },
+          "action-name": {
+            "required": true,
+            "type": "string"
+          },
+          "scope-type": {
+            "required": true,
+            "type": "string"
+          },
+          "hostname": {
+            "required": true,
+            "type": "string"
+          }
+        },
         "steps": {
           "call-resource-assignment": {
-            "description": "Invoke Resource Assignment Component",
+            "description": "Resource Assignment Workflow",
             "target": "resource-assignment",
             "activities": [
               {
-                "call_operation": "ResourceAssignmentNode.process"
+                "call_operation": "ResourceAssignmentComponent.process"
               }
-            ],
-            "on_success": [
-              "download-baseconfig"
             ]
+          }
+        }
+      },
+      "activate": {
+        "inputs": {
+          "request-id": {
+            "required": true,
+            "type": "string"
           },
-          "download-baseconfig": {
-            "description": "Call Download Base Config Component",
-            "target": "activate-netconf",
-            "activities": [
-              {
-                "call_operation": "NetconfTransactionNode.process"
-              }
-            ],
-            "on_success": [
-              "download-licence"
-            ]
+          "action-name": {
+            "required": true,
+            "type": "string"
+          },
+          "scope-type": {
+            "required": true,
+            "type": "string"
           },
-          "download-licence": {
-            "description": "Call Download Licence Component",
-            "target": "activate-netconf",
+          "hostname": {
+            "required": true,
+            "type": "string"
+          }
+        },
+        "steps": {
+          "call-resource-assignment": {
+            "description": "Netconf Activation Workflow",
+            "target": "resource-assignment",
             "activities": [
               {
-                "call_operation": "NetconfTransactionNode.process"
+                "call_operation": "ResourceAssignmentComponent.process"
               }
             ]
           }
         }
       }
     }
-  },
-  "artifact_types": {
-    "artifact-template-velocity": {
-      "description": " Velocity Template used for Configuration",
-      "version": "1.0.0",
-      "file_ext": [
-        "vtl"
-      ],
-      "derived_from": "tosca.artifacts.Implementation"
-    },
-    "artifact-mapping-resource": {
-      "description": " Velocity Template Resource Mapping File used along with Configuration template",
-      "version": "1.0.0",
-      "file_ext": [
-        "json"
-      ],
-      "derived_from": "tosca.artifacts.Implementation"
-    },
-    "artifact-script-kotlin": {
-      "description": " Kotlin Script Template used for Configuration",
-      "version": "1.0.0",
-      "file_ext": [
-        "kt"
-      ],
-      "derived_from": "tosca.artifacts.Implementation"
-    },
-    "artifact-script-python": {
-      "description": " Kotlin Script Template used for Configuration",
-      "version": "1.0.0",
-      "file_ext": [
-        "py"
-      ],
-      "derived_from": "tosca.artifacts.Implementation"
-    },
-    "artifact-bpmn-camunda": {
-      "description": " Camunda BPM File",
-      "version": "1.0.0",
-      "file_ext": [
-        "bpmn"
-      ],
-      "derived_from": "tosca.artifacts.Implementation"
-    },
-    "artifact-component-jar": {
-      "description": "Component Jar",
-      "version": "1.0.0",
-      "file_ext": [
-        "jar"
-      ],
-      "derived_from": "tosca.artifacts.Implementation"
-    }
-  },
-  "node_types": {
-    "bpmn-activate": {
-      "description": "This is BPMN Activate node type",
-      "version": "1.0.0",
-      "properties": {
-        "content": {
-          "required": false,
-          "type": "string"
-        },
-        "process-name": {
-          "required": false,
-          "type": "string"
-        },
-        "version": {
-          "required": false,
-          "type": "string",
-          "default": "LATEST"
-        }
-      },
-      "derived_from": "tosca.nodes.DG"
-    },
-    "tosca.nodes.Component": {
-      "description": "This is Resource Assignment Component API",
-      "version": "1.0.0",
-      "derived_from": "tosca.nodes.Root"
-    },
-    "tosca.nodes.DG": {
-      "description": "This is Directed Graph Node Type",
-      "version": "1.0.0",
-      "derived_from": "tosca.nodes.Root"
-    },
-    "tosca.nodes.component.Python": {
-      "description": "This is Resource Assignment Python Component API",
-      "version": "1.0.0",
-      "derived_from": "tosca.nodes.Root"
-    },
-    "component-resource-assignment": {
-      "description": "This is Resource Assignment Component API",
-      "version": "1.0.0",
-      "properties": {
-        "request-id": {
-          "description": "Request Id used to store the generated configuration, in the database along with the template-name",
-          "required": true,
-          "type": "string"
-        }
-      },
-      "interfaces": {
-        "DefaultComponentNode": {
-          "operations": {
-            "process": {
-              "inputs": {
-                "action-name": {
-                  "description": "Recipe Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",
-                  "required": false,
-                  "type": "string"
-                },
-                "resource-type": {
-                  "required": false,
-                  "type": "string"
-                },
-                "request-id": {
-                  "description": "Request Id used to store the generated configuration, in the database along with the template-name",
-                  "required": true,
-                  "type": "string"
-                },
-                "resource-id": {
-                  "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",
-                  "required": true,
-                  "type": "string"
-                },
-                "template-content": {
-                  "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",
-                  "required": true,
-                  "type": "string"
-                },
-                "mapping-content": {
-                  "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present",
-                  "required": true,
-                  "type": "string"
-                }
-              },
-              "outputs": {
-                "resource-assignment-params": {
-                  "required": true,
-                  "type": "string"
-                },
-                "status": {
-                  "required": true,
-                  "type": "string"
-                }
-              }
-            }
-          }
-        }
-      },
-      "derived_from": "tosca.nodes.Component"
-    },
-    "component-resource-assignment-python": {
-      "description": "This is Resource Assignment Component API",
-      "version": "1.0.0",
-      "properties": {
-        "request-id": {
-          "description": "Request Id used to store the generated configuration, in the database along with the template-name",
-          "required": true,
-          "type": "string"
-        }
-      },
-      "interfaces": {
-        "DefaultComponentNode": {
-          "operations": {
-            "process": {
-              "inputs": {
-                "action-name": {
-                  "description": "Recipe Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority",
-                  "required": false,
-                  "type": "string"
-                }
-              },
-              "outputs": {
-                "resource-assignment-params": {
-                  "required": true,
-                  "type": "string"
-                },
-                "status": {
-                  "required": true,
-                  "type": "string"
-                }
-              }
-            }
-          }
-        }
-      },
-      "derived_from": "tosca.nodes.component.Python"
-    }
-  },
-  "data_types": {
-    "sample-property": {
-      "description": "This is sample data type",
-      "version": "1.0.0",
-      "properties": {
-        "content": {
-          "required": false,
-          "type": "string"
-        },
-        "process-name": {
-          "required": false,
-          "type": "string"
-        },
-        "version": {
-          "required": false,
-          "type": "string",
-          "default": "LATEST"
-        }
-      },
-      "derived_from": "tosca.datatypes.Root"
-    }
   }
 }
\ No newline at end of file