requirements.txt: remove the double requirement
[pti/o2.git] / o2dms / domain / dms.py
index ceef458..2a8c144 100644 (file)
 #  limitations under the License.\r
 \r
 from __future__ import annotations\r
+# from os import stat\r
+import json\r
+from o2dms.domain import events\r
+from o2dms.domain.states import NfDeploymentState\r
 \r
-from o2common.domain.base import AgRoot\r
+from o2common.domain.base import AgRoot, Serializer\r
 \r
 \r
-class NfDeploymentDesc(AgRoot):\r
+class NfDeploymentDesc(AgRoot, Serializer):\r
     def __init__(self, id: str, name: str, dmsId: str, description: str = '',\r
-                 inputParams: str = '', outputParams: str = '',) -> None:\r
+                 inputParams: str = '', outputParams: str = '',\r
+                 artifactRepoUrl: str = '', artifactName: str = '') -> None:\r
         super().__init__()\r
         self.id = id\r
         self.version_number = 0\r
-        self.dmsId = dmsId\r
+        self.deploymentManagerId = dmsId\r
         self.name = name\r
         self.description = description\r
-        self.inputParams = inputParams\r
-        self.outputParams = outputParams\r
-        self.extensions = []\r
+        self.artifactRepoUrl = artifactRepoUrl\r
+        self.artifactName = artifactName\r
+        self.status = 0\r
+\r
+        if type(inputParams) is str:\r
+            inputParams = json.loads(inputParams)\r
+        self.inputParams = json.dumps(inputParams)\r
+\r
+        if type(outputParams) is str:\r
+            outputParams = json.loads(outputParams)\r
+        self.outputParams = json.dumps(outputParams)\r
+\r
+        # self.extensions = []\r
+\r
+\r
+class NfDeployment(AgRoot, Serializer):\r
+    def __init__(self, id: str, name: str, dmsId: str, description: str = '',\r
+                 descriptorId: str = '', parentId: str = '',) -> None:\r
+        super().__init__()\r
+        self.id = id\r
+        self.version_number = 0\r
+        self.deploymentManagerId = dmsId\r
+        self.name = name\r
+        self.description = description\r
+        self.descriptorId = descriptorId\r
+        self.parentDeploymentId = parentId\r
+        self.status = NfDeploymentState.Initial\r
+\r
+    def transit_state(self, state: NfDeploymentState):\r
+        if (self.status != state):\r
+            self._append_event(self.status, state)\r
+            # self.status = state\r
+\r
+    def set_state(self, state: NfDeploymentState):\r
+        if (self.status != state):\r
+            self.status = state\r
+\r
+    def _append_event(self, fromState, toState):\r
+        if not hasattr(self, "events"):\r
+            self.events = []\r
+        self.events.append(\r
+            events.NfDeploymentStateChanged(\r
+                NfDeploymentId=self.id, FromState=fromState, ToState=toState))\r
+\r
+\r
+class NfOCloudVResource(AgRoot, Serializer):\r
+    def __init__(self, id: str, name: str, dmsId: str, description: str = '',\r
+                 descriptorId: str = '', nfDeploymentId: str = '',\r
+                 vresourceType: int = 0,) -> None:\r
+        super().__init__()\r
+        self.id = id\r
+        self.version_number = 0\r
+        self.deploymentManagerId = dmsId\r
+        self.name = name\r
+        self.description = description\r
+        self.descriptorId = descriptorId\r
+        self.nfDeploymentId = nfDeploymentId\r
+        self.vresourceType = vresourceType\r
+        self.status = 0\r
+        self.metadata = []\r