Add HPA and VimFit test cases 43/43943/1
authorLeonardo Bellini <leonardo.bellini@att.com>
Fri, 20 Apr 2018 13:22:16 +0000 (08:22 -0500)
committerLeonardo Bellini <leonardo.bellini@att.com>
Fri, 20 Apr 2018 13:23:42 +0000 (08:23 -0500)
Issue-ID: OPTFRA-220

Change-Id: I58cb98817b1dfa3674e93cd97c29b6898ee843fa
Signed-off-by: Leonardo Bellini <leonardo.bellini@att.com>
test/csit/scripts/optf-has/has/has-properties/conductor.conf.onap
test/csit/scripts/optf-has/has/has_script.sh
test/csit/tests/optf-has/has/data/plan_with_hpa.json [new file with mode: 0644]
test/csit/tests/optf-has/has/data/plan_with_hpa_requirements_mandatory.json [new file with mode: 0644]
test/csit/tests/optf-has/has/data/plan_with_hpa_requirements_optionals.json [new file with mode: 0644]
test/csit/tests/optf-has/has/data/plan_with_hpa_simple.json [new file with mode: 0644]
test/csit/tests/optf-has/has/data/plan_with_hpa_unmatched.json [new file with mode: 0644]
test/csit/tests/optf-has/has/data/plan_with_vim_fit.json [new file with mode: 0644]
test/csit/tests/optf-has/has/optf_has_test.robot

index 0f9e749..a8e8484 100644 (file)
@@ -314,7 +314,7 @@ aafns = conductor
 #table_prefix = sdnc
 
 # Base URL for SDN-C. (string value)
-server_url = http://localhost:8082/restconf/
+server_url = http://localhost:8083/restconf/
 
 # Basic Authentication Username (string value)
 username = admin
@@ -346,3 +346,33 @@ extensions = sdnc
 # solver will restart any orphaned solving requests at startup. (boolean value)
 #concurrent = false
 
+
+[multicloud]
+
+#
+# From conductor
+#
+
+# Base URL for Multicloud without a trailing slash. (string value)
+server_url = http://msb.onap.org:8082/api/multicloud
+
+# Timeout for Multicloud Rest Call (string value)
+multicloud_rest_timeout = 30
+
+# Number of retry for Multicloud Rest Call (string value)
+multicloud_retries = 3
+
+# The version of Multicloud API. (string value)
+server_url_version = v0
+
+
+
+[vim_controller]
+
+#
+# From conductor
+#
+
+# Extensions list to use (list value)
+extensions = multicloud
+
index ac907ee..ee5479e 100755 (executable)
@@ -60,7 +60,7 @@ MULTICLOUDSIM_IP=`docker inspect --format '{{ .NetworkSettings.Networks.bridge.I
 echo "MULTICLOUDSIM_IP=${MULTICLOUDSIM_IP}"
 
 # change MULTICLOUD reference to the local instance
-sed  -i -e "s%localhost:8082/%${MULTICLOUDSIM_IP}:8082/%g" /tmp/conductor/properties/conductor.conf
+sed  -i -e "s%msb.onap.org:8082/%${MULTICLOUDSIM_IP}:8082/%g" /tmp/conductor/properties/conductor.conf
 
 #onboard conductor into music
 curl -vvvvv --noproxy "*" --request POST http://${MUSIC_IP}:8080/MUSIC/rest/v2/admin/onboardAppWithMusic -H "Content-Type: application/json" --data @${WORKSPACE}/test/csit/tests/optf-has/has/data/onboard.json
diff --git a/test/csit/tests/optf-has/has/data/plan_with_hpa.json b/test/csit/tests/optf-has/has/data/plan_with_hpa.json
new file mode 100644 (file)
index 0000000..bf314a9
--- /dev/null
@@ -0,0 +1,230 @@
+{  
+   "name":"vCPE-with-HPA",
+   "template":{  
+      "homing_template_version":"2017-10-10",
+      "parameters":{  
+         "service_name":"Residential vCPE",
+         "service_id":"vcpe_service_id",
+         "customer_lat":45.395968,
+         "customer_long":-71.135344,
+         "REQUIRED_MEM":4,
+         "REQUIRED_DISK":100,
+         "pnf_id":"some_pnf_id"
+      },
+      "locations":{  
+         "customer_loc":{  
+            "latitude":{  
+               "get_param":"customer_lat"
+            },
+            "longitude":{  
+               "get_param":"customer_long"
+            }
+         }
+      },
+      "demands":{
+         "vG":[  
+            {  
+               "inventory_provider":"aai",
+               "inventory_type":"cloud"
+            }
+         ]
+      },
+      "constraints":{
+        "constraint_vg_customer":{  
+            "type":"distance_to_location",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "distance":"< 100 km",
+               "location":"customer_loc"
+            }
+         },
+        "hpa_constraint":{  
+            "type":"hpa",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "evaluate":[  
+                  {  
+                     "flavorLabel":"flavor_label_1",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score": "5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"4",
+                                 "operator":">="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"4",
+                                 "operator":">=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        },
+                        {  
+                           "hpa-feature":"numa",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score": "5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numaNodes",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        },
+                        {  
+                           "hpa-feature":"cpuPinning",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score": "5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"logicalCpuThreadPinningPolicy",
+                                 "hpa-attribute-value":"prefer",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"logicalCpuPinningPolicy",
+                                 "hpa-attribute-value":"dedicated",
+                                 "operator":"="
+                              }
+                           ]
+                        }
+                     ]
+                  },
+                  {  
+                     "flavorLabel":"flavor_label_2",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score": "5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"8",
+                                 "operator":">="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"16",
+                                 "operator":">=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        },
+                        {  
+                           "hpa-feature":"numa",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score": "5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numaNodes",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        },
+                        {  
+                           "hpa-feature":"ovsDpdk",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score": "5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"dataProcessingAccelerationLibrary",
+                                 "hpa-attribute-value":"v18.02",
+                                 "operator":"="
+                              }
+                           ]
+                        }
+                     ]
+                  }
+               ]
+            }
+         }
+      },
+      "optimization":{  
+         "minimize":{  
+            "sum":[  
+               {  
+                  "distance_between":[  
+                     "customer_loc",
+                     "vG"
+                  ]
+               },
+               {  
+                  "distance_between":[  
+                     "customer_loc",
+                     "vG"
+                  ]
+               }
+            ]
+         }
+      }
+   },
+   "timeout":5,
+   "limit":3
+}
diff --git a/test/csit/tests/optf-has/has/data/plan_with_hpa_requirements_mandatory.json b/test/csit/tests/optf-has/has/data/plan_with_hpa_requirements_mandatory.json
new file mode 100644 (file)
index 0000000..80685ae
--- /dev/null
@@ -0,0 +1,165 @@
+{  
+   "name":"vCPE-with-HPA-requirement-mandatory",
+   "template":{  
+      "homing_template_version":"2017-10-10",
+      "parameters":{  
+         "service_name":"Residential vCPE",
+         "service_id":"vcpe_service_id",
+         "customer_lat":45.395968,
+         "customer_long":-71.135344,
+         "REQUIRED_MEM":4,
+         "REQUIRED_DISK":100,
+         "pnf_id":"some_pnf_id"
+      },
+      "locations":{  
+         "customer_loc":{  
+            "latitude":{  
+               "get_param":"customer_lat"
+            },
+            "longitude":{  
+               "get_param":"customer_long"
+            }
+         }
+      },
+      "demands":{  
+         "vG":[  
+            {  
+               "inventory_provider":"aai",
+               "inventory_type":"cloud"
+            }
+         ]
+      },
+      "constraints":{  
+         "constraint_vg_customer":{  
+            "type":"distance_to_location",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "distance":"< 100 km",
+               "location":"customer_loc"
+            }
+         },
+         "hpa_constraint":{  
+            "type":"hpa",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "evaluate":[  
+                  {  
+                     "flavorLabel":"flavor_label_1",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "True",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"64",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"64",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        },
+                        {  
+                           "hpa-feature":"numa",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory":"True",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numaNodes",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        }
+                     ]
+                  },
+                  {  
+                     "flavorLabel":"flavor_label_2",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "True",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"32",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"128",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        },
+                        {  
+                           "hpa-feature":"ovsDpdk",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "True",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"dataProcessingAccelerationLibrary",
+                                 "hpa-attribute-value":"v18.02",
+                                 "operator":"="
+                              }
+                           ]
+                        }
+                     ]
+                  }
+               ]
+            }
+         }
+      },
+      "optimization":{  
+         "minimize":{  
+            "sum":[  
+               {  
+                  "distance_between":[  
+                     "customer_loc",
+                     "vG"
+                  ]
+               }
+            ]
+         }
+      }
+   },
+   "timeout":5,
+   "limit":3
+}
diff --git a/test/csit/tests/optf-has/has/data/plan_with_hpa_requirements_optionals.json b/test/csit/tests/optf-has/has/data/plan_with_hpa_requirements_optionals.json
new file mode 100644 (file)
index 0000000..4672349
--- /dev/null
@@ -0,0 +1,217 @@
+{  
+   "name":"vCPE-HPA-Requirement-Optional",
+   "template":{  
+      "homing_template_version":"2017-10-10",
+      "parameters":{  
+         "service_name":"Residential vCPE",
+         "service_id":"vcpe_service_id",
+         "customer_lat":45.395968,
+         "customer_long":-71.135344,
+         "REQUIRED_MEM":4,
+         "REQUIRED_DISK":100,
+         "pnf_id":"some_pnf_id"
+      },
+      "locations":{  
+         "customer_loc":{  
+            "latitude":{  
+               "get_param":"customer_lat"
+            },
+            "longitude":{  
+               "get_param":"customer_long"
+            }
+         }
+      },
+      "demands":{  
+         "vG":[  
+            {  
+               "inventory_provider":"aai",
+               "inventory_type":"cloud"
+            }
+         ]
+      },
+      "constraints":{  
+         "constraint_vg_customer":{  
+            "type":"distance_to_location",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "distance":"< 100 km",
+               "location":"customer_loc"
+            }
+         },
+         "hpa_constraint":{  
+            "type":"hpa",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "evaluate":[  
+                  {  
+                     "flavorLabel":"flavor_label_1",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "True",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"4",
+                                 "operator":">="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"8",
+                                 "operator":">=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        },
+                         {  
+                           "hpa-feature":"instructionSetExtensions",
+                           "hpa-version":"v1",
+                           "architecture":"Intel64",
+                           "mandatory": "True",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"instructionSetExtensions",
+                                 "hpa-attribute-value":["aes", "sse", "avx", "smt"],
+                                 "operator":"ALL",
+                                 "unit":""
+                              }
+                           ]
+                        },
+                        {  
+                           "hpa-feature":"numa",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory":"False",
+                           "score":"3",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numaNodes",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        }
+                     ]
+                  },
+                  {  
+                     "flavorLabel":"flavor_label_2",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "True",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"4",
+                                 "operator":">="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"8",
+                                 "operator":">=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        },
+                         {  
+                           "hpa-feature":"ovsDpdk",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score":"5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"dataProcessingAccelerationLibrary",
+                                 "hpa-attribute-value":"v18.02",
+                                 "operator":"="
+                              }
+                           ]
+                        },
+                        {  
+                           "hpa-feature":"numa",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory":"False",
+                           "score":"3",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numaNodes",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaCpu-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-0",
+                                 "hpa-attribute-value":"2",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              },
+                              {  
+                                 "hpa-attribute-key":"numaMem-1",
+                                 "hpa-attribute-value":"4",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        }
+                     ]
+                  }
+               ]
+            }
+         }
+      },
+      "optimization":{  
+         "minimize":{  
+            "sum":[  
+               {  
+                  "distance_between":[  
+                     "customer_loc",
+                     "vG"
+                  ]
+               }
+            ]
+         }
+      }
+   },
+   "timeout":5,
+   "limit":3
+}
diff --git a/test/csit/tests/optf-has/has/data/plan_with_hpa_simple.json b/test/csit/tests/optf-has/has/data/plan_with_hpa_simple.json
new file mode 100644 (file)
index 0000000..25b2262
--- /dev/null
@@ -0,0 +1,129 @@
+{  
+   "name":"vCPE-with-HPA",
+   "template":{  
+      "homing_template_version":"2017-10-10",
+      "parameters":{  
+         "service_name":"Residential vCPE",
+         "service_id":"vcpe_service_id",
+         "customer_lat":45.395968,
+         "customer_long":-71.135344,
+         "REQUIRED_MEM":4,
+         "REQUIRED_DISK":100,
+         "pnf_id":"some_pnf_id"
+      },
+      "locations":{  
+         "customer_loc":{  
+            "latitude":{  
+               "get_param":"customer_lat"
+            },
+            "longitude":{  
+               "get_param":"customer_long"
+            }
+         }
+      },
+      "demands":{
+         "vG":[  
+            {  
+               "inventory_provider":"aai",
+               "inventory_type":"cloud"
+            }
+         ]
+      },
+      "constraints":{  
+        "hpa_constraint":{  
+            "type":"hpa",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "evaluate":[  
+                  {  
+                     "flavorLabel":"flavor_label_1",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score": "5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"32",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"64",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        },
+                        {  
+                           "hpa-feature":"ovsDpdk",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score": "5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"dataProcessingAccelerationLibrary",
+                                 "hpa-attribute-value":"v18.02",
+                                 "operator":"="
+                              }
+                           ]
+                        }
+                     ]
+                  },
+                  {  
+                     "flavorLabel":"flavor_label_2",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "False",
+                           "score": "5",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"8",
+                                 "operator":">="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"16",
+                                 "operator":">=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        }
+                     ]
+                  }
+               ]
+            }
+         }
+      },
+      "optimization":{  
+         "minimize":{  
+            "sum":[  
+               {  
+                  "distance_between":[  
+                     "customer_loc",
+                     "vG"
+                  ]
+               },
+               {  
+                  "distance_between":[  
+                     "customer_loc",
+                     "vG"
+                  ]
+               }
+            ]
+         }
+      }
+   },
+   "timeout":5,
+   "limit":3
+}
diff --git a/test/csit/tests/optf-has/has/data/plan_with_hpa_unmatched.json b/test/csit/tests/optf-has/has/data/plan_with_hpa_unmatched.json
new file mode 100644 (file)
index 0000000..8a31985
--- /dev/null
@@ -0,0 +1,117 @@
+{  
+   "name":"vCPE-with-HPA-unmatched-requirements",
+   "template":{  
+      "homing_template_version":"2017-10-10",
+      "parameters":{  
+         "service_name":"Residential vCPE",
+         "service_id":"vcpe_service_id",
+         "customer_lat":45.395968,
+         "customer_long":-71.135344,
+         "REQUIRED_MEM":4,
+         "REQUIRED_DISK":100,
+         "pnf_id":"some_pnf_id"
+      },
+      "locations":{  
+         "customer_loc":{  
+            "latitude":{  
+               "get_param":"customer_lat"
+            },
+            "longitude":{  
+               "get_param":"customer_long"
+            }
+         }
+      },
+      "demands":{  
+         "vG":[  
+            {  
+               "inventory_provider":"aai",
+               "inventory_type":"cloud"
+            }
+         ]
+      },
+      "constraints":{  
+         "constraint_vgmux_customer":{  
+            "type":"distance_to_location",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "distance":"< 100 km",
+               "location":"customer_loc"
+            }
+         },
+         "hpa_constraint":{  
+            "type":"hpa",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "evaluate":[  
+                  {  
+                     "flavorLabel":"flavor_label_1",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory": "True",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"60",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"64",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        }
+                     ]
+                  },
+                  {  
+                     "flavorLabel":"flavor_label_2",
+                     "flavorProperties":[  
+                        {  
+                           "hpa-feature":"basicCapabilities",
+                           "hpa-version":"v1",
+                           "architecture":"generic",
+                           "mandatory":"True",
+                           "hpa-feature-attributes":[  
+                              {  
+                                 "hpa-attribute-key":"numVirtualCpu",
+                                 "hpa-attribute-value":"30",
+                                 "operator":"="
+                              },
+                              {  
+                                 "hpa-attribute-key":"virtualMemSize",
+                                 "hpa-attribute-value":"128",
+                                 "operator":"=",
+                                 "unit":"GB"
+                              }
+                           ]
+                        }
+                     ]
+                  }
+               ]
+            }
+         }
+      },
+      "optimization":{  
+         "minimize":{  
+            "sum":[  
+               {  
+                  "distance_between":[  
+                     "customer_loc",
+                     "vG"
+                  ]
+               }
+            ]
+         }
+      }
+   },
+   "timeout":5,
+   "limit":3
+}
diff --git a/test/csit/tests/optf-has/has/data/plan_with_vim_fit.json b/test/csit/tests/optf-has/has/data/plan_with_vim_fit.json
new file mode 100644 (file)
index 0000000..00a5991
--- /dev/null
@@ -0,0 +1,89 @@
+{  
+   "name":"vCPE-Sanity1",
+   "template":{  
+      "homing_template_version":"2017-10-10",
+      "parameters":{  
+         "service_name":"Residential vCPE",
+         "service_id":"vcpe_service_id",
+         "customer_lat":45.395968,
+         "customer_long":-71.135344,
+         "REQUIRED_MEM":4,
+         "REQUIRED_DISK":100,
+         "pnf_id":"some_pnf_id"
+      },
+      "locations":{  
+         "customer_loc":{  
+            "latitude":{  
+               "get_param":"customer_lat"
+            },
+            "longitude":{  
+               "get_param":"customer_long"
+            }
+         }
+      },
+      "demands":{  
+         "vG":[  
+            {  
+               "inventory_provider":"aai",
+               "inventory_type":"cloud"
+            }
+         ]
+      },
+      "constraints":{  
+         "constraint_vg_customer":{  
+            "type":"distance_to_location",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "distance":"< 100 km",
+               "location":"customer_loc"
+            }
+         },
+         "check_cloud_capacity":{  
+            "type":"vim_fit",
+            "demands":[  
+               "vG"
+            ],
+            "properties":{  
+               "controller":"multicloud",
+               "request":{  
+                  "vCPU":10,
+                  "Memory":{  
+                     "quantity":{  
+                        "get_param":"REQUIRED_MEM"
+                     },
+                     "unit":"GB"
+                  },
+                  "Storage":{  
+                     "quantity":{  
+                        "get_param":"REQUIRED_DISK"
+                     },
+                     "unit":"GB"
+                  }
+               }
+            }
+         }
+      },
+      "optimization":{  
+         "minimize":{  
+            "sum":[  
+               {  
+                  "distance_between":[  
+                     "customer_loc",
+                     "vG"
+                  ]
+               },
+               {  
+                  "distance_between":[  
+                     "customer_loc",
+                     "vG"
+                  ]
+               }
+            ]
+         }
+      }
+   },
+   "timeout":5,
+   "limit":3
+}
index 62db107..815ffa8 100644 (file)
@@ -295,6 +295,191 @@ GetPlanWithShortDistanceConstraint
     Should Be Equal As Integers    ${resp.status_code}    200
     Should Be Equal    not found    ${resultStatus}
 
+SendPlanWithVimFit
+    [Documentation]    It sends a POST request to conductor
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    ${data}=         Get Binary File     ${CURDIR}${/}data${/}plan_with_vim_fit.json
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Post Request        optf-cond   /v1/plans     data=${data}     headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    Log To Console              body = ${resp.text}
+    ${response_json}    json.loads    ${resp.content}
+    ${generatedPlanId}=    Convert To String      ${response_json['id']}
+    Set Global Variable     ${generatedPlanId}
+    Log To Console              generatedPlanId = ${generatedPlanId}
+    Should Be Equal As Integers    ${resp.status_code}    201
+    Sleep    60s    Wait Plan Resolution
+
+GetPlanWithVimFit
+    [Documentation]    It sends a REST GET request to capture recommendations
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Get Request        optf-cond   /v1/plans/${generatedPlanId}    headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    ${response_json}    json.loads    ${resp.content}
+    ${resultStatus}=    Convert To String      ${response_json['plans'][0]['status']}
+    Set Global Variable     ${resultStatus}
+    Log To Console              resultStatus = ${resultStatus}
+    Log To Console              body = ${resp.text}
+    Should Be Equal As Integers    ${resp.status_code}    200
+    Should Be Equal    done    ${resultStatus}
+
+SendPlanWithHpa
+    [Documentation]    It sends a POST request to conductor
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    ${data}=         Get Binary File     ${CURDIR}${/}data${/}plan_with_hpa.json
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Post Request        optf-cond   /v1/plans     data=${data}     headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    Log To Console              body = ${resp.text}
+    ${response_json}    json.loads    ${resp.content}
+    ${generatedPlanId}=    Convert To String      ${response_json['id']}
+    Set Global Variable     ${generatedPlanId}
+    Log To Console              generatedPlanId = ${generatedPlanId}
+    Should Be Equal As Integers    ${resp.status_code}    201
+    Sleep    60s    Wait Plan Resolution
+
+GetPlanWithHpa
+    [Documentation]    It sends a REST GET request to capture recommendations
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Get Request        optf-cond   /v1/plans/${generatedPlanId}    headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    ${response_json}    json.loads    ${resp.content}
+    ${resultStatus}=    Convert To String      ${response_json['plans'][0]['status']}
+    Set Global Variable     ${resultStatus}
+    Log To Console              resultStatus = ${resultStatus}
+    Log To Console              body = ${resp.text}
+    Should Be Equal As Integers    ${resp.status_code}    200
+    Should Be Equal    done    ${resultStatus}
+
+SendPlanWithHpaSimple
+    [Documentation]    It sends a POST request to conductor
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    ${data}=         Get Binary File     ${CURDIR}${/}data${/}plan_with_hpa_simple.json
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Post Request        optf-cond   /v1/plans     data=${data}     headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    Log To Console              body = ${resp.text}
+    ${response_json}    json.loads    ${resp.content}
+    ${generatedPlanId}=    Convert To String      ${response_json['id']}
+    Set Global Variable     ${generatedPlanId}
+    Log To Console              generatedPlanId = ${generatedPlanId}
+    Should Be Equal As Integers    ${resp.status_code}    201
+    Sleep    60s    Wait Plan Resolution
+
+GetPlanWithHpaSimple
+    [Documentation]    It sends a REST GET request to capture recommendations
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Get Request        optf-cond   /v1/plans/${generatedPlanId}    headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    ${response_json}    json.loads    ${resp.content}
+    ${resultStatus}=    Convert To String      ${response_json['plans'][0]['status']}
+    Set Global Variable     ${resultStatus}
+    Log To Console              resultStatus = ${resultStatus}
+    Log To Console              body = ${resp.text}
+    Should Be Equal As Integers    ${resp.status_code}    200
+    Should Be Equal    done    ${resultStatus}
+
+SendPlanWithHpaMandatory
+    [Documentation]    It sends a POST request to conductor
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    ${data}=         Get Binary File     ${CURDIR}${/}data${/}plan_with_hpa_requirements_mandatory.json
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Post Request        optf-cond   /v1/plans     data=${data}     headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    Log To Console              body = ${resp.text}
+    ${response_json}    json.loads    ${resp.content}
+    ${generatedPlanId}=    Convert To String      ${response_json['id']}
+    Set Global Variable     ${generatedPlanId}
+    Log To Console              generatedPlanId = ${generatedPlanId}
+    Should Be Equal As Integers    ${resp.status_code}    201
+    Sleep    60s    Wait Plan Resolution
+
+GetPlanWithHpaMandatory
+    [Documentation]    It sends a REST GET request to capture recommendations
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Get Request        optf-cond   /v1/plans/${generatedPlanId}    headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    ${response_json}    json.loads    ${resp.content}
+    ${resultStatus}=    Convert To String      ${response_json['plans'][0]['status']}
+    Set Global Variable     ${resultStatus}
+    Log To Console              resultStatus = ${resultStatus}
+    Log To Console              body = ${resp.text}
+    Should Be Equal As Integers    ${resp.status_code}    200
+    Should Be Equal    done    ${resultStatus}
+
+SendPlanWithHpaOptionals
+    [Documentation]    It sends a POST request to conductor
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    ${data}=         Get Binary File     ${CURDIR}${/}data${/}plan_with_hpa_requirements_optionals.json
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Post Request        optf-cond   /v1/plans     data=${data}     headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    Log To Console              body = ${resp.text}
+    ${response_json}    json.loads    ${resp.content}
+    ${generatedPlanId}=    Convert To String      ${response_json['id']}
+    Set Global Variable     ${generatedPlanId}
+    Log To Console              generatedPlanId = ${generatedPlanId}
+    Should Be Equal As Integers    ${resp.status_code}    201
+    Sleep    60s    Wait Plan Resolution
+
+GetPlanWithHpaOptionals
+    [Documentation]    It sends a REST GET request to capture recommendations
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Get Request        optf-cond   /v1/plans/${generatedPlanId}    headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    ${response_json}    json.loads    ${resp.content}
+    ${resultStatus}=    Convert To String      ${response_json['plans'][0]['status']}
+    Set Global Variable     ${resultStatus}
+    Log To Console              resultStatus = ${resultStatus}
+    Log To Console              body = ${resp.text}
+    Should Be Equal As Integers    ${resp.status_code}    200
+    Should Be Equal    done    ${resultStatus}
+
+SendPlanWithHpaUnmatched
+    [Documentation]    It sends a POST request to conductor
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    ${data}=         Get Binary File     ${CURDIR}${/}data${/}plan_with_hpa_unmatched.json
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Post Request        optf-cond   /v1/plans     data=${data}     headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    Log To Console              body = ${resp.text}
+    ${response_json}    json.loads    ${resp.content}
+    ${generatedPlanId}=    Convert To String      ${response_json['id']}
+    Set Global Variable     ${generatedPlanId}
+    Log To Console              generatedPlanId = ${generatedPlanId}
+    Should Be Equal As Integers    ${resp.status_code}    201
+    Sleep    60s    Wait Plan Resolution
+
+GetPlanWithHpaUnmatched
+    [Documentation]    It sends a REST GET request to capture recommendations
+    Create Session   optf-cond            ${COND_HOSTNAME}:${COND_PORT}
+    &{headers}=      Create Dictionary    Content-Type=application/json  Accept=application/json
+    ${resp}=         Get Request        optf-cond   /v1/plans/${generatedPlanId}    headers=${headers}
+    Log To Console              *********************
+    Log To Console              response = ${resp}
+    ${response_json}    json.loads    ${resp.content}
+    ${resultStatus}=    Convert To String      ${response_json['plans'][0]['status']}
+    Set Global Variable     ${resultStatus}
+    Log To Console              resultStatus = ${resultStatus}
+    Log To Console              body = ${resp.text}
+    Should Be Equal As Integers    ${resp.status_code}    200
+    Should Be Equal    not found    ${resultStatus}
 
 
 *** Keywords ***