aboutsummaryrefslogtreecommitdiffstats
path: root/docs/examples/e2e_closed_loop_instantiation.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/e2e_closed_loop_instantiation.rst')
-rw-r--r--docs/examples/e2e_closed_loop_instantiation.rst108
1 files changed, 108 insertions, 0 deletions
diff --git a/docs/examples/e2e_closed_loop_instantiation.rst b/docs/examples/e2e_closed_loop_instantiation.rst
new file mode 100644
index 0000000..a263a66
--- /dev/null
+++ b/docs/examples/e2e_closed_loop_instantiation.rst
@@ -0,0 +1,108 @@
+E2E Instantiation of a Closed Loop
+##########################################
+
+
+.. code:: Python
+
+ #Service already created in this case
+
+ logger = logging.getLogger("")
+ logger.setLevel(logging.INFO)
+ fh = logging.StreamHandler()
+ fh_formatter = logging.Formatter('%(asctime)s %(levelname)s %(lineno)d:%(filename)s(%(process)d) - %(message)s')
+ fh.setFormatter(fh_formatter)
+ logger.addHandler(fh)
+
+
+ #Constants
+ SERVICE_NAME = "Test_SDK"
+ POLICY_NAME = ["MinMax", "FrequencyLimiter"]
+ LOOP_INSTANCE_NAME = "instance01"
+ CERT = (PEM, KEY) # you must add clamp cert for AUTHENTIFICATION
+
+ Clamp.set_proxy({ 'http': 'socks5h://127.0.0.1:8080', 'https': 'socks5h://127.0.0.1:8080'})
+ Service.set_proxy({ 'http': 'socks5h://127.0.0.1:8080', 'https': 'socks5h://127.0.0.1:8080'})
+
+ logger.info("*******************************")
+ logger.info("******** SERVICE FETCH *******")
+ logger.info("*******************************")
+
+ svc = Service(name=SERVICE_NAME)
+
+ logger.info("***************************************")
+ logger.info("******** CLAMP AUTHENTIFICATION *******")
+ logger.info("***************************************")
+
+ Clamp(cert=CERT)
+
+ logger.info("*************************************")
+ logger.info("******** LOOP TEMPLATES CHECK *******")
+ logger.info("*************************************")
+
+ loop_template = Clamp.check_loop_template(service=svc)
+ if not loop_template:
+ logger.error("Loop template for the service %s not found", svc.name)
+ exit(1)
+
+ logger.info("*******************************")
+ logger.info("******** POLICIES CHECK *******")
+ logger.info("*******************************")
+
+ minmax_exists = Clamp.check_policies(policy_name=POLICY_NAME[0],
+ req_policies=30)
+ frequency_exists = Clamp.check_policies(policy_name=POLICY_NAME[1],
+ req_policies=30)
+ policy_exists = (minmax_exists and frequency_exists)
+ if not policy_exists:
+ logger.error("Couldn't load the policy %s", POLICY_NAME)
+ exit(1)
+
+ logger.info("***********************************")
+ logger.info("******** LOOP INSTANTIATION *******")
+ logger.info("***********************************")
+
+ loop = LoopInstance(template=loop_template, name=LOOP_INSTANCE_NAME, details={}, cert=CERT)
+ loop.create()
+ if loop.details:
+ logger.info("Loop instance %s successfully created !!", LOOP_INSTANCE_NAME)
+ else:
+ logger.error("An error occured while creating the loop instance")
+
+ logger.info("******** UPDATE MICROSERVICE POLICY *******")
+ loop._update_loop_details()
+ loop.update_microservice_policy()
+
+ logger.info("******** ADD OPERATIONAL POLICY MINMAX *******")
+ added = loop.add_operational_policy(policy_type="onap.policies.controlloop.guard.common.MinMax",
+ policy_version="1.0.0")
+
+ logger.info("******** CONFIGURE OPERATIONAL POLICY MINMAX *******")
+ loop.add_op_policy_config(loop.add_minmax_config)
+
+ logger.info("******** ADD FREQUENCY POLICY *******")
+ added = loop.add_operational_policy(policy_type="onap.policies.controlloop.guard.common.FrequencyLimiter",
+ policy_version="1.0.0")
+
+ logger.info("******** CONFIGURE FREQUENCY POLICY *******")
+ loop.add_op_policy_config(loop.add_frequency_limiter)
+
+ logger.info("******** SUBMIT POLICIES TO PE *******")
+ submit = loop.act_on_loop_policy(loop.submit)
+
+ logger.info("******** CHECK POLICIES SUBMITION *******")
+ if submit :
+ logger.info("Policies successfully submited to PE")
+ else:
+ logger.error("An error occured while submitting the loop instance")
+ exit(1)
+
+ logger.info("******** DEPLOY LOOP INSTANCE *******")
+ deploy = loop.deploy_microservice_to_dcae()
+ if deploy:
+ logger.info("Loop instance %s successfully deployed on DCAE !!", LOOP_INSTANCE_NAME)
+ else:
+ logger.error("An error occured while deploying the loop instance")
+ exit(2)
+
+ logger.info("******** DELETE LOOP INSTANCE *******")
+ loop.delete()