Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In the current implementation, ACM supports multi-participant with same supported element Type but different participantId, so they need different properties file.

...

  • Distributed Coordinator ED (Etcd): Distributed systems use etcd as a consistent key-value store for configuration management, service discovery, and coordinating distributed work. Many organizations use etcd to implement production systems such as container schedulers, service discovery services, and distributed data storage.

  • Document Database PG (PostgreSql)
  • Key Value Database AG (Apache Geode): Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing.(https://geode.apache.org/docs/guide/114/getting_started/intro_to_clients.html) or (https://docs.spring.io/spring-boot-data-geode-build/1.7.5/reference/html5/).
  • Key Value Database RD (Redis): RDB is NOT good if you need to minimize the chance of data loss in case Redis stops working.
  • Wide Column Database CD (Apache Cassandra)
  • Search Engine (Open Search): It supports Rest Api, https://opensearch.org/docs/latest/clients/java/

...

Create a composition index

PUT https://{{address}}:9200/composition


Code Block
languagexml
{
  "settings": {
    "index": {
      "number_of_shards": 2,
      "number_of_replicas": 1
    }
  },
  "mappings": {
    "properties": {
      "id": {
        "type": "text"
      }
    }
  },
  "aliases": {
    "sample-alias1": {}
  }
}

Create a composition document

POST https://{{address}}:9200/composition/_doc/0da7f17d-68d4-47f3-9dbf-b380413c5fad

Code Block
languagexml
collapsetrue
{
 
  "id": "0da7f17d-68d4-47f3-9dbf-b380413c5fad",
 
  "dataautomationCompositionElementDefinitionList": [
    {
  "tosca_definitions_version": "tosca_simple_yaml_1_3",   "data_typesacElementDefinitionId": {
     "onap.datatypes.ToscaConceptIdentifier": {   "name": "onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement",
        "derived_fromversion": "tosca1.datatypes2.Root3",
      "properties": {
  },
      "nameautomationCompositionElementToscaNodeTemplate": {

         "type": "stringorg.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement",
 
        "requiredtype_version": true"1.0.0",
         },"properties": {
          "versionprovider": {"ONAP",
          "typestartPhase": "string"0,
          "requireduninitializedToPassiveTimeout": true180,
        }  "podStatusCheckInterval": 30
   }     },
       "org.onap.datatypes "name": "onap.policy.clamp.acmac.httpAutomationCompositionElementelement.RestRequest": {K8S_StarterAutomationCompositionElement",
        "version": "1.02.03",
        "derived_frommetadata": "tosca.datatypes.Root",{},
        "propertiesdescription": "Automation {composition element for the K8S microservice for AC Element Starter"restRequestId":
  {    },
      "typeoutProperties": "onap.datatypes.ToscaConceptIdentifier", {}
    },
    {
      "requiredacElementDefinitionId": true,
 {
        "descriptionname": "The name and version of a REST request to be sent to a REST endpoint"
 onap.policy.clamp.ac.element.K8S_BridgeAutomationCompositionElement",
        "version": "1.2.3"
      },
 
      "httpMethodautomationCompositionElementToscaNodeTemplate": {

         "type": "stringorg.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement",
 
        "requiredtype_version": true,
 "1.0.0",
        "constraintsproperties": {
[          "provider": "ONAP",
 {         "startPhase": 0,
    "valid_values": [     "uninitializedToPassiveTimeout": 180,
          "POSTpodStatusCheckInterval",: 30
        },
      "PUT",  "name": "onap.policy.clamp.ac.element.K8S_BridgeAutomationCompositionElement",
        "version": "1.2.3",
        "GETmetadata": {},
        "description": "Automation composition element for the K8S microservice "DELETE"for AC Element Bridge"
      },
    ]  "outProperties": {}
    },
    }{
      "acElementDefinitionId": {
  ],      "name": "onap.policy.clamp.ac.element.K8S_SinkAutomationCompositionElement",
   "description": "The REST method to use"version"
 : "1.2.3"
      },
 
      "pathautomationCompositionElementToscaNodeTemplate": {
 
        "type": "string",
          "required": true,
          "description": "The path of the REST request relative to the base URL"
        },
        "body": {
          "type": "string",
          "required": false,
          "description": "The body of the REST request for PUT and POST requests"
        },
        "expectedResponse": {
          "type": "integer",
          "required": true,
          "constraints": [],
          "description": "THe expected HTTP status code for the REST request"
        }
      }
    },
    "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity": {
      "version": "1.0.0",
      "derived_from": "tosca.datatypes.Root",
      "properties": {
        "configurationEntityId": {
          "type": "onap.datatypes.ToscaConceptIdentifier",
          "required": true,
          "description": "The name and version of a Configuration Entity to be handled by the HTTP Automation Composition Element"
        },
        "restSequence": {
          "type": "list",
          "entry_schema": {
            "type": "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest",
            "type_version": "1.0.0"
          },
          "description": "A sequence of REST commands to send to the REST endpoint"
        }
      }
    }
  },
  "node_types": {
    "org.onap.policy.clamp.acm.Participant": {
      "version": "1.0.1",
      "derived_from": "tosca.nodetypes.Root",
      "properties": {
        "provider": {
          "type": "string",
          "required": false
        }
      }
    },
    "org.onap.policy.clamp.acm.AutomationCompositionElement": {
      "version": "1.0.1",
      "derived_from": "tosca.nodetypes.Root",
      "properties": {
        "provider": {
          "type": "string",
          "required": false,
          "metadata": {
            "common": true
          },
          "description": "Specifies the organization that provides the automation composition element"
        },
        "startPhase": {
          "type": "integer",
          "required": false,
          "constraints": [
            {
              "greater_or_equal": 0
            }
          ],
          "metadata": {
            "common": true
          },
          "description": "A value indicating the start phase in which this automation composition element will be started, the first start phase is zero. Automation Composition Elements are started in their start_phase order and stopped in reverse start phase order. Automation Composition Elements with the same start phase are started and stopped simultaneously"
        },
        "uninitializedToPassiveTimeout": {
          "type": "integer",
          "required": false,
          "constraints": [
            {
              "greater_or_equal": 0
            }
          ],
          "default": 60,
          "metadata": {
            "common": true
          },
          "description": "The maximum time in seconds to wait for a state chage from uninitialized to passive"
        }
      }
    },
    "org.onap.policy.clamp.acm.AutomationComposition": {
      "version": "1.0.1",
      "derived_from": "tosca.nodetypes.Root",
      "properties": {
        "provider": {
          "type": "string",
          "required": false,
          "metadata": {
            "common": true
          },
          "description": "Specifies the organization that provides the automation composition element"
        },
        "elements": {
          "type": "list",
          "required": true,
          "metadata": {
            "common": true
          },
          "entry_schema": {
            "type": "onap.datatypes.ToscaConceptIdentifier"
          },
          "description": "Specifies a list of automation composition element definitions that make up this automation composition definition"
        }
      }
    },
    "org.onap.policy.clamp.acm.HttpAutomationCompositionElement": {
      "version": "1.0.0",
      "derived_from": "org.onap.policy.clamp.acm.AutomationCompositionElement",
      "properties": {
        "baseUrl": {
          "type": "string",
          "required": true,
          "description": "The base URL to be prepended to each path, identifies the host for the REST endpoints."
        },
        "httpHeaders": {
          "type": "map",
          "required": false,
          "entry_schema": {
            "type": "string"
          },
          "description": "HTTP headers to send on REST requests"
        },
        "configurationEntities": {
          "type": "map",
          "required": true,
          "entry_schema": {
            "type": "org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity",
            "type_version": "1.0.0"
          },
          "description": "The connfiguration entities the Automation Composition Element is managing and their associated REST requests"
        }
      }
    }
  },
  "topology_template": {
    "node_templates": {
      "org.onap.policy.clamp.acm.HttpParticipant": {
        "version": "2.3.4",
        "type": "org.onap.policy.clamp.acm.Participant",
        "type_version": "1.0.1",
        "description": "Participant for Http requests",
        "properties": {
          "provider": "ONAP"
        }
      },
      "onap.policy.clamp.ac.element.Http_StarterAutomationCompositionElement": {
        "version": "1.2.3",
        "type": "org.onap.policy.clamp.acm.HttpAutomationCompositionElement",
        "type_version": "1.0.0",
        "description": "Automation composition element for the http requests of AC Element Starter microservice",
        "properties": {
          "provider": "ONAP",
          "uninitializedToPassiveTimeout": 180,
          "startPhase": 0
        }
      },
      "onap.policy.clamp.ac.element.Http_BridgeAutomationCompositionElement": {
        "version": "1.2.3",
        "type": "org.onap.policy.clamp.acm.HttpAutomationCompositionElement",
        "type_version": "1.0.0",
        "description": "Automation composition element for the http requests of AC Element Bridge microservice",
        "properties": {
          "provider": "ONAP",
          "uninitializedToPassiveTimeout": 180,
          "startPhase": 0
        }
      },
      "onap.policy.clamp.ac.element.Http_SinkAutomationCompositionElement": {
        "version": "1.2.3",
        "type": "org.onap.policy.clamp.acm.HttpAutomationCompositionElement",
        "type_version": "1.0.0",
        "description": "Automation composition element for the http requests of AC Element Sink microservice",
        "properties": {
          "provider": "ONAP",
          "uninitializedToPassiveTimeout": 180,
          "startPhase": 0
        }
      },
      "onap.policy.clamp.ac.element.AutomationCompositionDefinition": {
        "version": "1.2.3",
        "type": "org.onap.policy.clamp.acm.AutomationComposition",
        "type_version": "1.0.1",
        "description": "Automation composition for Demp",
        "properties": {
          "provider": "ONAP",
          "elements": [
            {
              "name": "org.onap.policy.clamp.ac.element.Http_StarterAutomationCompositionElement",
   acm.K8SMicroserviceAutomationCompositionElement",
          "type_version": "1.20.3"
            }0",
           "properties": {
   
          "nameprovider": "onap.policy.clamp.ac.element.Http_BridgeAutomationCompositionElementONAP",
              "versionstartPhase": "1.2.3" 0,
          "uninitializedToPassiveTimeout": 180,
 },         "podStatusCheckInterval": 30
  {      },
        "name": "onap.policy.clamp.ac.element.HttpK8S_SinkAutomationCompositionElement",
     
        "version": "1.2.3",
        "metadata": {},
      }  "description": "Automation composition element for the K8S microservice for ]AC Element Sink"
      },
      "outProperties": {}
    }
  }
}]
}

Fetch a composition

GET https://{{address}}:9200/composition/_doc/0da7f17d-68d4-47f3-9dbf-b380413c5fad