The following was provided by Michael Hwang
View file | ||||
---|---|---|---|---|
|
DCAE MOD + CLAMP
The goal of this project is for CLAMP to use the DCAE flows that have been designed through the new DCAE MOD.
The implementation plan for the Frankfurt release is for DCAE MOD to populate the DCAE flows into DCAE inventory and for CLAMP to query the DCAE flows from DCAE inventory.
What DCAE MOD will do
For a given DCAE flow that is distributed from DCAE MOD's design tool, DCAE MOD runtime API will generate a Cloudify blueprint per node in the flow and create a corresponding dcae service type
in DCAE inventory per node.
The structure of a dcae service type
can be found in the inventory swagger YAML. Look for the DCAEServiceType
definition.
Here is an example snippet of a single dcae service type:
{
"typeId": "01daccf2-a8db-4935-b34b-cc08c6b38c52",
"typeName": "machine-learning-flow_etl-component",
..
"blueprintTemplate": "# Blueprint goes here. YAML as string..",
"asdcServiceId": "9bb854b-cafd-40b9-98a5-62d287f19622",
"asdcResourceId": "0",
"selfLink": "http://dcae-inventory:8080/dcae-service-types/01daccf2-a8db-4935-b34b-cc08c6b38c52"
}
If a flow has three nodes, there will be three different dcae service types in inventory. How those three dcae service types will be joined is via asdcServiceId
and asdcResourceId
. The attribute asdcServiceId
will be populated with the design time flow ID and the attribute asdcResourceId
will be populated with a sequence number. The dcae service types that belong to the same flow will all have the same asdcServiceId
and the asdcResourceId
is to be used to determine the order of the dcae service types.
A limitation of this implementation is that it will only support sequences and not topologies.
What CLAMP will do
CLAMP will query DCAE inventory to retrieve a list of all dcae service types using the GET /dcae-service-types method and endpoint. See inventory swagger YAML for more details about API.
In handling the list of dcae service types returned, CLAMP will be able to construct the target flow by:1.
- Group the dcae service types by
asdcServiceId
because as mentioned above, the design time flow Id will be stored in the attribute's value
...
- Construct the flow sequence from the members of the flow group by examining the
asdcResourceId
which will contain an integer as a string that should be used in sorting the members
Note that the if CLAMP knows the flow ID in advance, it can have DCAE inventory filter for only dcae service types that match on a specific asdcServiceId
aka flow ID using the following query:
GET /dcae-service-types?asdcServiceId=9bb854b-cafd-40b9-98a5-62d287f19622