summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/placement-tests/conductor_response.json64
-rw-r--r--test/test_so_response_gen.py39
2 files changed, 103 insertions, 0 deletions
diff --git a/test/placement-tests/conductor_response.json b/test/placement-tests/conductor_response.json
new file mode 100644
index 0000000..e7037c2
--- /dev/null
+++ b/test/placement-tests/conductor_response.json
@@ -0,0 +1,64 @@
+{
+ "plans": [
+ {
+ "status": "done",
+ "id": "plan_id",
+ "name": "Plan Name 1",
+ "links": [
+ [
+ {
+ "href": "http://conductor:8091/v1/plans/plan_id",
+ "rel": "self"
+ }
+ ]
+ ],
+ "recommendations": [
+ {
+ "vG": {
+ "inventory_provider": "aai",
+ "candidate": {
+ "candidate_id": "DLLSTX1A",
+ "cloud_owner": "CloudOwner1",
+ "inventory_type": "cloud",
+ "location_id": "DLLSTX1A",
+ "location_type": "openstack-cloud"
+ },
+ "attributes": {
+ "flavors": {
+ "flavor_label_1": "vim_flavor_X",
+ "flavor_label_2": "vim_flavor_Y"
+ },
+ "cloud_owner": "CloudOwner1",
+ "physical-location-id": "DLLSTX1A",
+ "cloud_version": "3.0",
+ "vim-id": "CloudOwner1_DLLSTX1A"
+ }
+ }
+ },
+ {
+ "vGMuxInfra": {
+ "attributes": {
+ "host_id": "vgmux_host_name",
+ "cloud_owner": "CloudOwner1",
+ "physical-location-id": "DLLSTX1A",
+ "service_instance_id": "21d5f3e8-e714-4383-8f99-cc480144505a",
+ "cloud_version": "3.0",
+ "vim-id": "CloudOwner1_DLLSTX1A"
+ },
+ "inventory_provider": "aai",
+ "service_resource_id": "12345",
+ "candidate": {
+ "is_rehome": "false",
+ "location_id": "DLLSTX1A",
+ "inventory_type": "service",
+ "candidate_id": "21d5f3e8-e714-4383-8f99-cc480144505a",
+ "host_id": "vgmux_host_name",
+ "cloud_owner": "CloudOwner1",
+ "location_type": "openstack-cloud"
+ }
+ }
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/test/test_so_response_gen.py b/test/test_so_response_gen.py
new file mode 100644
index 0000000..ab73ef6
--- /dev/null
+++ b/test/test_so_response_gen.py
@@ -0,0 +1,39 @@
+# -------------------------------------------------------------------------
+# Copyright (c) 2017-2018 AT&T Intellectual Property
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# -------------------------------------------------------------------------
+#
+import unittest
+import json
+import yaml
+from osdf.utils.interfaces import json_from_file
+from osdf.optimizers.placementopt.conductor.conductor import conductor_response_processor
+from osdf.utils.interfaces import RestClient
+
+
+class TestSoResponseGen(unittest.TestCase):
+ def setUp(self):
+ main_dir = ""
+ conductor_response_file = main_dir + "test/placement-tests/conductor_response.json"
+ self.conductor_res = json_from_file(conductor_response_file)
+ self.rc = RestClient()
+
+ def test_so_response_gen(self):
+ res = conductor_response_processor(self.conductor_res, self.rc, "test")
+ self.assertEqual(len(res['solutions']['placementSolutions'][0]), 2)
+
+
+if __name__ == "__main__":
+ unittest.main() \ No newline at end of file