Interaction between clamp-gui and policy-api

This document is related to the Jira task "POLICY-3470".

Clamp GUI - PolicyService.js endpoints

  • GET restservices/clds/v2/policies

  • POST restservices/clds/v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}

  • DELETE restservices/clds/v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}

  • PUT restservices/clds/v2/policies/pdpDeployment

  • POST restservices/clds/v2/policies/policytype

Flow GET restservices/clds/v2/policies

clamp-api-v2.xml:

  • calls "direct:get-all-policies" in policy-flows.xml that calls GET "/policy/api/v1/policies"

  • calls "direct:get-all-pdp-groups" in policy-flows.xml that calls GET "/policy/pap/v1/pdps"

  • merges result

Flow POST restservices/clds/v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}

clamp-api-v2.xml:

  • calls PolicyModelsService.getPolicyModelTosca: policyModelsRepository.findById (Retrieves the Tosca model Yaml string)

  • calls PolicyPayload.createPolicyPayload to create a Json body

  • calls "direct:create-policy" in policy-flows.xml that calls POST "/policy/api/v1/policytypes/{policyModelType}/versions/{policyModelVersion}/policies"

Flow DELETE restservices/clds/v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}

clamp-api-v2.xml:

  • calls "direct:undeploy-one-policy-from-pap" in policy-flows.xml that calls DELETE "/policy/pap/v1/pdps/policies/{policyName}/versions/{policyVersion}"

  • calls "direct:delete-policy" in policy-flows.xml that calls DELETE "/policy/api/v1/policytypes/{policyModelType}/versions/{policyModelVersion}/policies/{policyName}/versions/{policyVersion}"

Flow PUT restservices/clds/v2/policies/pdpDeployment

clamp-api-v2.xml:

  • calls PdpGroupPayload.generatePdpGroupPayloadFromList to create a Json body

  • calls "direct:add-multiple-policies-to-pdp-group" in policy-flows.xml that calls POST "/policy/pap/v1/pdps/deployments/batch"

Flow POST restservices/clds/v2/policies/policytype

clamp-api-v2.xml:

  • calls "direct:create-policy-type" in policy-flows.xml that calls POST "/policy/api/v1/policytypes"

  • calls PolicyEngineController.synchronizeAllPolicies() that download All PolicyModels

Clamp - @Scheduled(fixedRate = 300000)

  • calls PolicyEngineServices.synchronizeAllPolicies() that download All PolicyModels and synchronize the clamp database and the policy engine. So it creates the required PolicyModel.

  • calls PolicyEngineServices.downloadPdpGroups that download All PdpGroups and Update the Pdp Group info in Policy Model DB.





Clamp GUI - UserService.js endpoints

  • GET restservices/clds/v1/user/getUser

  • GET restservices/clds/v2/clampInformation

Clamp GUI - ACMService.js endpoints

  • GET restservices/clds/v2/acm/getToscaInstantiation

  • POST restservices/clds/v2/acm/postToscaInstanceProperties

  • DELETE restservices/clds/v2/acm/deleteToscaInstanceProperties?{params)

  • GET restservices/clds/v2/acm/getInstantiationOrderState?{params)

  • PUT restservices/clds/v2/acm/putToscaInstantiationStateChange

  • GET restservices/clds/v2/acm/getToscaTemplate?{params)

  • POST restservices/clds/v2/acm/commissionToscaTemplate

  • DELETE restservices/clds/v2/acm/decommissionToscaTemplate?{params)

  • GET restservices/clds/v2/acm/getCommonOrInstanceProperties

Clamp GUI - LoopActionService.js endpoints

  • PUT restservices/clds/v2/loop/{svcAction}/{cl_name}

  • GET restservices/clds/v2/loop/getstatus/{cl_name}

Clamp GUI - LoopService.js endpoints

  • GET restservices/clds/v2/loop/getAllNames

  • POST restservices/clds/v2/loop/create/{loopName}?{templateName=templateName}

  • GET restservices/clds/v2/loop/{loopName}

  • POST restservices/clds/v2/loop/updateMicroservicePolicy/{loopName}

  • POST restservices/clds/v2/loop/updateOperationalPolicies/{loopName}

  • POST restservices/clds/v2/loop/updateGlobalProperties/{loopName}

  • PUT restservices/clds/v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}

  • PUT restservices/clds/v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}

  • PUT restservices/clds/v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}

  • PUT restservices/clds/v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}

Clamp GUI - PolicyToscaService.js endpoints

  • GET restservices/clds/v2/policyToscaModels

  • GET restservices/clds/v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}

  • GET restservices/clds/v2/policyToscaModels/{policyModelType}/{policyModelVersion}

Clamp GUI - TemplateService.js endpoints

  • GET restservices/clds/v2/loop/getAllNames

  • GET restservices/clds/v2/templates

  • GET restservices/clds/v2/dictionary/

  • GET restservices/clds/v2/dictionary/{dictionaryName}

  • PUT restservices/clds/v2/dictionary/

  • PUT restservices/clds/v2/dictionary/{dictionaryName}

  • DELETE restservices/clds/v2/dictionary/{dictionaryName}

  • DELETE restservices/clds/v2/dictionary/{dictionaryName}/elements/{dictionaryElement}