# limitations under the License.\r
\r
from __future__ import annotations\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
+ # 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 _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