From d8d2be9554c9ee55a7b1b35946f1ee516b41c8eb Mon Sep 17 00:00:00 2001 From: Haibin Huang Date: Thu, 23 May 2019 17:06:06 +0800 Subject: Automatically add default policies Change-Id: I38fcd336e7eca90264590d4174c8cf65e89c60a1 Issue-ID: INT-795 Signed-off-by: Haibin Huang --- test/hpa_automation/tosca/hpa_automation.py | 37 +++++++++++++++++----- test/hpa_automation/tosca/vcpe_config.json | 15 ++++----- .../tosca/vcpe_policies/distance_policy.txt | 1 + .../tosca/vcpe_policies/optimization_policy.txt | 1 + .../tosca/vcpe_policies/query_policy.txt | 1 + .../tosca/vcpe_policies/vnf_policy.txt | 1 + 6 files changed, 40 insertions(+), 16 deletions(-) create mode 100644 test/hpa_automation/tosca/vcpe_policies/distance_policy.txt create mode 100644 test/hpa_automation/tosca/vcpe_policies/optimization_policy.txt create mode 100644 test/hpa_automation/tosca/vcpe_policies/query_policy.txt create mode 100644 test/hpa_automation/tosca/vcpe_policies/vnf_policy.txt (limited to 'test') diff --git a/test/hpa_automation/tosca/hpa_automation.py b/test/hpa_automation/tosca/hpa_automation.py index d8e1d37f7..b7b8eb7e3 100755 --- a/test/hpa_automation/tosca/hpa_automation.py +++ b/test/hpa_automation/tosca/hpa_automation.py @@ -235,12 +235,10 @@ def add_policy_models(parameters): ) mycursor = mydb.cursor() - - sql = "INSERT INTO optimizationmodels (modelname, description, dependency, imported_by, \ - attributes, ref_attributes, sub_attributes, version, annotation, enumValues, \ - dataOrderInfo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" - val = [ - ('hpaPolicy', 'HPA Tests Model', '[]', 'demo', 'identity=string:defaultValue-null:required-true:MANY-false:description-null', \ + hpa_sql = "INSERT INTO optimizationmodels (modelname, description, dependency, imported_by, \ + attributes, ref_attributes, sub_attributes, version, annotation, enumValues, \ + dataOrderInfo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" + hpa_val = ('hpaPolicy', 'HPA Tests Model', '[]', 'demo', 'identity=string:defaultValue-null:required-true:MANY-false:description-null', \ 'policyScope=MANY-true,policyType=POLICYTYPE:MANY-false,resources=MANY-true,flavorFeatures=flavorFeatures_properties:MANY-true:description-null', \ '{"directives_properties":{"attributes":"directives_attributes_properties:required-false:MANY-true:description-null",\ "type":"string:defaultValue-null:required-false:MANY-false:description-null"},\ @@ -262,7 +260,14 @@ def add_policy_models(parameters): "hpa-attribute-key":"string:defaultValue-null:required-true:MANY-false:description-null",\ "operator":"OPERATOR:defaultValue-null:required-false:MANY-false:description-null"}}', \ 'test1', 'policyScope=matching-true, policyType=matching-true', \ - 'OPERATOR=[<,,>equal-sign,equal-sign,!equal-sign,any,all,subset,], POLICYTYPE=[hpa,]', '""'), + 'OPERATOR=[<,,>equal-sign,equal-sign,!equal-sign,any,all,subset,], POLICYTYPE=[hpa,]', '""') + + mycursor.execute(hpa_sql, hpa_val) + + sql = "INSERT INTO microservicemodels (modelname, description, dependency, imported_by, \ + attributes, ref_attributes, sub_attributes, version, annotation, enumValues, \ + dataOrderInfo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" + val = [ ('distancePolicy', 'distancePolicy', '[]', 'demo', 'identity=string:defaultValue-null:required-true:MANY-false:description-null', \ 'policyScope=MANY-true,distanceProperties=distanceProperties_properties:MANY-false:description-null,policyType=POLICYTYPE:MANY-false,\ resources=MANY-true,applicableResources=APPLICABLERESOURCES:MANY-false', \ @@ -329,7 +334,22 @@ def add_policy_models(parameters): mycursor.executemany(sql, val) mydb.commit() print(mycursor.rowcount, "was inserted.") - + +def add_policies(parameters): + #Loop through policy, put in resource_model_name and create policies + for policy in os.listdir(parameters["policy_directory"]): + policy_name = "{}.{}".format(parameters["policy_scope"], os.path.splitext(policy)[0]) + policy_file = (os.path.join(parameters["policy_directory"], policy)) + #Create policy + os.system("oclip policy-create-outdated -m {} -u {} -p {} -x {} -S {} -T {} -o {} -b $(cat {})".format(parameters["policy_url"],\ + parameters["policy_username"], parameters["policy_password"], policy_name, parameters["policy_scope"], \ + parameters["policy_config_type"], parameters["policy_onapName"], policy_file)) + + #Push policy + os.system("oclip policy-push-outdated -m {} -u {} -p {} -x {} -b {} -c {}".format(parameters["policy_url"], \ + parameters["policy_username"], parameters["policy_password"], policy_name, parameters["policy_config_type"],\ + parameters["policy_pdp_group"])) + def onboard_vnf(parameters): vnfs = parameters["vnfs"] vnf_onboard_outputs = {} @@ -459,6 +479,7 @@ else: # 6.add_policies function not currently working, using curl commands add_policy_models(parameters) +add_policies(parameters) # 7. VFC part ns_instance_id = create_ns(parameters, ns_package_output) diff --git a/test/hpa_automation/tosca/vcpe_config.json b/test/hpa_automation/tosca/vcpe_config.json index 811124dc0..0300f7c8a 100755 --- a/test/hpa_automation/tosca/vcpe_config.json +++ b/test/hpa_automation/tosca/vcpe_config.json @@ -4,7 +4,7 @@ "aai_url" : "https://10.12.5.224:30233", "aai_username" : "AAI", "aai_password" : "AAI", - "sdc_onboarding_url" : "http://10.12.5.202:8081", + "sdc_onboarding_url" : "http://10.43.89.129:8081", "sdc_catalog_url" : "http://10.12.5.180:30205", "sdc_password" : "demo123456!", "sdc_creator" : "cs0008", @@ -13,11 +13,10 @@ "sdc_operator" : "op0001", "multicloud_url" : "http://10.12.5.224:30280", - "policy_url" : "https://10.12.6.235:30240", + "policy_url" : "https://10.42.9.13:8081", "policy_username" : "testpdp", "policy_password" : "alpha123", - "policy_models_directory" : "/root/tosca/optf-osdf/osdf/models/policy/placement/tosca_upload/", - "policy_directory" : "/root/tosca/vcpe_policies", + "policy_directory" : "/opt/oclip/dublin/vcpe_policies", "policy_scope" : "OSDF_DUBLIN", "policy_onapName" : "SampleDemo", "policy_config_type": "MicroService", @@ -133,7 +132,7 @@ "vfc-url": "http://10.12.6.88:30280", "vnfs":{ "infra":{ - "path": "/root/oclip/dublin/infra.csar", + "path": "/opt/oclip/dublin/infra.csar", "csar-id": "You need change it", "vsp-name" : "infra-hpa-vsp", "vsp-desc" : "infra-hpa-vsp-desc", @@ -146,7 +145,7 @@ "value": "value2" }, "vgmux":{ - "path": "/root/oclip/dublin/vgmux.csar", + "path": "/opt/oclip/dublin/vgmux.csar", "csar-id": "You need change it", "vsp-name" : "vgmux-hpa-vsp", "vsp-desc" : "vgmux-hpa-vsp-desc", @@ -159,7 +158,7 @@ "value": "value2" }, "vbng":{ - "path": "/root/oclip/dublin/vbng.csar", + "path": "/opt/oclip/dublin/vbng.csar", "csar-id": "You need change it", "vsp-name" : "vbng-hpa-vsp", "vsp-desc" : "vbng-hpa-vsp-desc", @@ -172,7 +171,7 @@ "value": "value2" }, "vbrgemu":{ - "path": "/root/oclip/dublin/vbrgemu.csar", + "path": "/opt/oclip/dublin/vbrgemu.csar", "csar-id": "You need change it", "vsp-name" : "vbrgemu-hpa-vsp", "vsp-desc" : "vbgremu-hpa-vsp-desc", diff --git a/test/hpa_automation/tosca/vcpe_policies/distance_policy.txt b/test/hpa_automation/tosca/vcpe_policies/distance_policy.txt new file mode 100644 index 000000000..6fbba2b9a --- /dev/null +++ b/test/hpa_automation/tosca/vcpe_policies/distance_policy.txt @@ -0,0 +1 @@ +{\"service\":\"distancePolicy\",\"guard\":\"False\",\"content\":{\"policyType\":\"distance_to_location\",\"applicableResources\":\"any\",\"identity\":\"distance-vFW\",\"policyScope\":[\"vcpe\",\"vcpe_vgw\",\"us\"],\"distanceProperties\":{\"distance\":{\"value\":\"100\",\"unit\":\"km\",\"operator\":\"<\"},\"locationInfo\":\"customer_loc\"},\"resources\":[\"vCPE_Infrastructure_GW_demo_app\",\"vCPE_Infrastructure_vGMUX_demo_app\",\"vCPE_Infrastructure_BGREMU_demo_app\",\"vCPE_Infrastructure_Metro_vBNG_demo_app\",\"vCPE_Infrastructure_demo_app\"]},\"priority\":\"3\",\"templateVersion\":\"OpenSource.version.1\",\"riskLevel\":\"2\",\"description\":\"DistancePolicyforvCPE\",\"policyName\":\"OSDF_DUBLIN.Distance_vCPEHPA_2\",\"version\":\"test1\",\"riskType\":\"test\"} diff --git a/test/hpa_automation/tosca/vcpe_policies/optimization_policy.txt b/test/hpa_automation/tosca/vcpe_policies/optimization_policy.txt new file mode 100644 index 000000000..35183e6af --- /dev/null +++ b/test/hpa_automation/tosca/vcpe_policies/optimization_policy.txt @@ -0,0 +1 @@ +{\"service\":\"optimizationPolicy\",\"guard\":\"False\",\"content\":{\"policyType\":\"placement_optimization\",\"objective\":\"minimize\",\"objectiveParameter\":{\"operator\":\"sum\",\"parameterAttributes\":[{\"parameter\":\"distance\",\"operator\":\"product\",\"customerLocationInfo\":\"customer_loc\",\"weight\":\"100\",\"resources\":[\"vCPE_Infrastructure_GW_demo_app\",\"vCPE_Infrastructure_vGMUX_demo_app\",\"vCPE_Infrastructure_BGREMU_demo_app\",\"vCPE_Infrastructure_Metro_vBNG_demo_app\",\"vCPE_Infrastructure_demo_app\"]},{\"parameter\":\"hpa_score\",\"operator\":\"product\",\"weight\":\"200\",\"resources\":[\"vCPE_Infrastructure_GW_demo_app\",\"vCPE_Infrastructure_vGMUX_demo_app\",\"vCPE_Infrastructure_BGREMU_demo_app\",\"vCPE_Infrastructure_Metro_vBNG_demo_app\",\"vCPE_Infrastructure_demo_app\"]}]},\"identity\":\"optimization\",\"policyScope\":[\"vcpe\",\"us\",\"vcpe_vgw\"]},\"priority\":\"5\",\"templateVersion\":\"OpenSource.version.1\",\"riskLevel\":\"3\",\"description\":\"PlacementOptimizationPolicyforvGMuxInfra\",\"policyName\":\"OSDF_DUBLIN.Placement_Optimization_3\",\"version\":\"test1\",\"riskType\":\"test\"} diff --git a/test/hpa_automation/tosca/vcpe_policies/query_policy.txt b/test/hpa_automation/tosca/vcpe_policies/query_policy.txt new file mode 100644 index 000000000..ef01cf4c4 --- /dev/null +++ b/test/hpa_automation/tosca/vcpe_policies/query_policy.txt @@ -0,0 +1 @@ +{\"service\":\"queryPolicy\",\"guard\":\"False\",\"content\":{\"policyType\":\"request_param_query\",\"queryProperties\":[{\"attribute\":\"customerLatitude\",\"attribute_location\":\"customerLatitude\"},{\"attribute\":\"customerLongitude\",\"attribute_location\":\"customerLongitude\"}],\"identity\":\"vCPE_Query_Policy\",\"serviceName\":\"vCPE\",\"policyScope\":[\"vcpe\",\"vcpe_vgw\",\"us\"]},\"priority\":\"3\",\"templateVersion\":\"OpenSource.version.1\",\"riskLevel\":\"2\",\"description\":\"QuerypolicyforvCPE\",\"policyName\":\"OSDF_DUBLIN.QueryPolicy_vCPEHPA_3\",\"version\":\"test1\",\"riskType\":\"test\"} diff --git a/test/hpa_automation/tosca/vcpe_policies/vnf_policy.txt b/test/hpa_automation/tosca/vcpe_policies/vnf_policy.txt new file mode 100644 index 000000000..b83939888 --- /dev/null +++ b/test/hpa_automation/tosca/vcpe_policies/vnf_policy.txt @@ -0,0 +1 @@ +{\"service\":\"vnfPolicy\",\"guard\":\"False\",\"content\":{\"policyType\":\"vnfPolicy\",\"policyScope\":[\"vcpe\",\"vcpe_vgw\",\"us\"],\"identity\":\"vnf_vFW\",\"resources\":[\"vCPE_Infrastructure_GW_demo_app\",\"vCPE_Infrastructure_vGMUX_demo_app\",\"vCPE_Infrastructure_BGREMU_demo_app\",\"vCPE_Infrastructure_Metro_vBNG_demo_app\",\"vCPE_Infrastructure_demo_app\"],\"applicableResources\":\"any\",\"vnfProperties\":[{\"equipmentRole\":\"\",\"inventoryProvider\":\"aai\",\"inventoryType\":\"cloud\",\"serviceType\":\"\",\"customerId\":\"\",\"orchestrationStatus\":\"\"}]},\"priority\":\"6\",\"templateVersion\":\"OpenSource.version.1\",\"riskLevel\":\"3\",\"description\":\"vnfPolicy\",\"policyName\":\"OSDF_CASABLANCA.vnfPolicy_vFWHPA_3\",\"version\":\"test1\",\"riskType\":\"test\"} -- cgit 1.2.3-korg