summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conductor/conductor/tests/unit/common/models/test_group_rules.py41
-rw-r--r--conductor/conductor/tests/unit/common/models/test_order_lock.py48
-rw-r--r--conductor/conductor/tests/unit/common/models/test_triage_tool.py41
3 files changed, 130 insertions, 0 deletions
diff --git a/conductor/conductor/tests/unit/common/models/test_group_rules.py b/conductor/conductor/tests/unit/common/models/test_group_rules.py
new file mode 100644
index 0000000..d7eb32e
--- /dev/null
+++ b/conductor/conductor/tests/unit/common/models/test_group_rules.py
@@ -0,0 +1,41 @@
+#
+# -------------------------------------------------------------------------
+# Copyright (C) 2019 IBM.
+#
+# 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.
+#
+# -------------------------------------------------------------------------
+#
+
+"""Test class for model group_rules"""
+
+import unittest
+from conductor.common.models.group_rules import GroupRules
+
+class TestGroupRules(unittest.TestCase):
+
+ def setUp(self):
+ self.groupRules = GroupRules()
+ self.values = {'group': None, 'id': None}
+
+ def test_GroupRules(self):
+ self.assertEqual(True, self.groupRules.atomic())
+ self.assertEqual("id", self.groupRules.pk_name())
+ self.assertEqual(None, self.groupRules.pk_value())
+ self.assertEqual(self.values, self.groupRules.values())
+ self.assertEqual(None, self.groupRules.__json__().get('rule'))
+ self.assertEqual("text", self.groupRules.schema().get('id'))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/conductor/conductor/tests/unit/common/models/test_order_lock.py b/conductor/conductor/tests/unit/common/models/test_order_lock.py
new file mode 100644
index 0000000..f8a6d06
--- /dev/null
+++ b/conductor/conductor/tests/unit/common/models/test_order_lock.py
@@ -0,0 +1,48 @@
+#
+# -------------------------------------------------------------------------
+# Copyright (C) 2019 IBM.
+#
+# 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.
+#
+# -------------------------------------------------------------------------
+#
+
+"""Test class for model order_lock"""
+
+import unittest
+from conductor.common.models.order_lock import OrderLock
+
+class TestOrder_Lock(unittest.TestCase):
+
+ def setUp(self):
+ self.orderLock = OrderLock()
+
+ def testOrderLock(self):
+ self.assertEqual(True, self.orderLock.atomic())
+ self.assertEqual("id", self.orderLock.pk_name())
+ self.assertEqual(None, self.orderLock.pk_value())
+
+ self.values = {'is_spinup_completed': False, 'id': None, 'spinup_completed_timestamp': None, 'plans': None}
+ self.assertEqual(self.values, self.orderLock.values())
+
+ self.reprVal = '<OrderLock None>'
+ self.assertEqual(self.reprVal, self.orderLock.__repr__())
+
+ self.assertEqual(False, self.orderLock.__json__().get('is_spinup_completed'))
+
+ self.schema = {'PRIMARY KEY': '(id)', 'is_spinup_completed': 'boolean', 'id': 'text', 'spinup_completed_timestamp': 'bigint', 'plans': 'map<text, text>'}
+
+ self.assertEqual(self.schema, self.orderLock.schema())
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/conductor/conductor/tests/unit/common/models/test_triage_tool.py b/conductor/conductor/tests/unit/common/models/test_triage_tool.py
new file mode 100644
index 0000000..df81d64
--- /dev/null
+++ b/conductor/conductor/tests/unit/common/models/test_triage_tool.py
@@ -0,0 +1,41 @@
+#
+# -------------------------------------------------------------------------
+# Copyright (C) 2019 IBM.
+#
+# 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.
+#
+# -------------------------------------------------------------------------
+#
+
+"""Test class for model triage_tool"""
+
+import unittest
+from conductor.common.models.triage_tool import TriageTool
+
+class TestTriageTool(unittest.TestCase):
+
+ def setUp(self):
+ self.triageTool = TriageTool()
+ self.values = {'triage_solver': 'null', 'optimization_type': None, 'triage_translator': 'null', 'id': None, 'name': None}
+
+ def test_TriageTool(self):
+ self.assertEqual(True, self.triageTool.atomic())
+ self.assertEqual("id", self.triageTool.pk_name())
+ self.assertEqual(None, self.triageTool.pk_value())
+ self.assertEqual(self.values, self.triageTool.values())
+ self.assertEqual(None, self.triageTool.__json__().get('name'))
+ self.assertEqual("text", self.triageTool.schema().get('optimization_type'))
+
+
+if __name__ == '__main__':
+ unittest.main()
an class="k">2. Execute following command from `docker-compose` folder: ```bash VERSION=x.y.z-SNAPSHOT DB_HOST=dbpostgresql DB_USERNAME=cps DB_PASSWORD=cps docker-compose up -d ``` ## Running or debugging Java built code Before running CPS, a Postgres database instance needs to be started. This can be done with following command: ```bash docker run --name postgres -p 5432:5432 -d \ -e POSTGRES_DB=cpsdb -e POSTGRES_USER=cps -e POSTGRES_PASSWORD=cps \ postgres:12.4-alpine ``` Then CPS can be started either using a Java Archive previously built or directly from Intellij IDE. ### Running from Jar Archive Following command starts the application using JAR file: ```bash DB_HOST=localhost DB_USERNAME=cps DB_PASSWORD=cps \ java -classpath cps-application/target/cps-application-x.y.z-SNAPSHOT.jar:docker-compose \ org.springframework.boot.loader.JarLauncher ``` ### Running from IntelliJ IDE Here are the steps to run or debug the application from Intellij: 1. Enable the desired maven profile form Maven Tool Window 2. Run a configuration from `Run -> Edit configurations` with following settings: * `Working directory`: docker-compose folder, e.g. `$ProjectFileDir$/docker-compose` * `Environment variables`: `DB_HOST=localhost;DB_USERNAME=cps;DB_PASSWORD=cps` ## Accessing services Swagger UI and Open API specifications are available to discover service endpoints and send requests. * `http://localhost:<port-number>/swagger-ui/index.html` * `http://localhost:<port-number>/v3/api-docs?group=cps-docket` with <port-number> being either `8080` if running the plain Java build or retrieved using following command if running from `docker-compose`: ```bash docker inspect \ --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' \ <cps-docker-container> ``` Enjoy CPS !