X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_common%2Fdataclasses%2Ftemporal_dataclasses.py;h=38dfcfabc4d80bddfefa26790cbf1dd3309a8d66;hb=refs%2Fchanges%2F42%2F13242%2F5;hp=9bd637808f9ba36b839b4c00d0e17fb3318581eb;hpb=36a62b88b9ad60b2355fab6ab2868c5f10b192c7;p=osm%2Fcommon.git diff --git a/osm_common/dataclasses/temporal_dataclasses.py b/osm_common/dataclasses/temporal_dataclasses.py index 9bd6378..38dfcfa 100644 --- a/osm_common/dataclasses/temporal_dataclasses.py +++ b/osm_common/dataclasses/temporal_dataclasses.py @@ -17,6 +17,49 @@ from dataclasses import dataclass from enum import auto, IntEnum +from typing import List + + +####################################################################################### +# Defining States +class VimState(IntEnum): + PROCESSING = auto() + ENABLED = auto() + ERROR = auto() + + +class VimOperationState(IntEnum): + COMPLETED = auto() + FAILED = auto() + + +class NsState(IntEnum): + PROCESSING = auto() + INSTANTIATED = auto() + ERROR = auto() + + +class VnfLcmOperationState(IntEnum): + PROCESSING = auto() + COMPLETED = auto() + FAILED = auto() + + +class VnfInstantiationState(IntEnum): + NOT_INSTANTIATED = auto() + INSTANTIATED = auto() + + +class VnfState(IntEnum): + STOPPED = auto() + STARTED = auto() + + +class LcmOperationState(IntEnum): + PROCESSING = auto() + COMPLETED = auto() + FAILED = auto() + ####################################################################################### # Workflow Dataclasses @@ -60,27 +103,6 @@ class NsLcmOperationInput: nslcmop: dict -@dataclass -class NsInstantiateInput: - """ - Input dataclass for workflow that instantiate NS. - - Attributes: - ----------- - ns_uuid : str - The UUID of the NS as stored in the OSM nsr - collection in Mongo - - op_id: str - The operation (task) id for this workflow. This is used - by the workflow at the end to update the status of the - operation in Mongo vim collection. - """ - - ns_uuid: str - op_id: str - - @dataclass class CharmInfo: """ @@ -118,14 +140,27 @@ class VduInstantiateInput: charm_info: CharmInfo -####################################################################################### -# Activity Dataclasses +@dataclass +class VnfInstantiateInput: + """ + Input dataclass for workflow that instantiates a VNF. + + Attributes: + ----------- + vnfr_uuid : str + The UUID of the VNF which is stored in the OSM vnfrs + collection in Mongo. + model_name: str -class LcmOperationState(IntEnum): - PROCESSING = auto() - COMPLETED = auto() - FAILED = auto() + """ + + vnfr_uuid: str + model_name: str + + +####################################################################################### +# Activity Dataclasses @dataclass @@ -181,12 +216,6 @@ class TestVimConnectivityInput: vim_uuid: str -class VimState(IntEnum): - PROCESSING = auto() - ENABLED = auto() - ERROR = auto() - - @dataclass class UpdateVimStateInput: """ @@ -213,11 +242,6 @@ class UpdateVimStateInput: message: str -class VimOperationState(IntEnum): - COMPLETED = auto() - FAILED = auto() - - @dataclass class UpdateVimOperationStateInput: """ @@ -281,12 +305,6 @@ class DeployNsInput: ns_uuid: str -class NsState(IntEnum): - PROCESSING = auto() - INSTANTIATED = auto() - ERROR = auto() - - @dataclass class UpdateNsStateInput: """ @@ -314,9 +332,29 @@ class UpdateNsStateInput: @dataclass -class CreateModelInput: +class ModelInfo: + """ + Contains the information related to a model. + + Attributes: + ----------- + vim_uuid : str + The UUID of the VIM as stored in the OSM vim_accounts + collection in Mongo. + + model_name : str + Name of the Juju model used to deploy charms. + """ + + vim_uuid: str + model_name: str + + +@dataclass +class CheckCharmStatusInput: """ - Input dataclass for creating a Juju Model. + Input dataclass for checking on a specific charm's deployment + status Attributes: ----------- @@ -326,7 +364,142 @@ class CreateModelInput: model_name : str Name of the model to create in Juju. + + application_name : str + Name of the application that the state is going to be + awaited. + + poll_interval : int (optional) + Time, in seconds, to wait between status checks. """ vim_uuid: str model_name: str + application_name: str + poll_interval: int = 1 + + +@dataclass +class ChangeVnfStateInput: + """ + Input dataclass for changing VNF State. + + Attributes: + ----------- + vnfr_uuid : str + The UUID of the VNF which is stored in the OSM vnfrs + collection in Mongo. + + state : VnfState + A representation of the VNF state (STOPPED or STARTED). + """ + + vnfr_uuid: str + state: VnfState + + +@dataclass +class ChangeVnfInstantiationStateInput: + """ + Input dataclass for changing VNF Instantiation State. + + Attributes: + ----------- + vnfr_uuid : str + The UUID of the VNF which is stored in the OSM vnfrs + collection in Mongo. + + state : VnfInstantiationState + A representation of the VNF instantiation state (NOT_INSTANTIATED or INSTANTIATED). + + """ + + vnfr_uuid: str + state: VnfInstantiationState + + +@dataclass +class GetTaskQueueInput: + """ + Input dataclass for get task queue activity. + + Attributes: + ----------- + vnfr_uuid : str + The UUID of the VNF which is stored in the OSM vnfrs + collection in Mongo. + + """ + + vnfr_uuid: str + + +@dataclass +class GetTaskQueueOutput: + """ + Output dataclass for get task queue activity. + + Attributes: + ----------- + task_queue : str + Name of the queue which is used to Deploy VNF. + """ + + task_queue: str + + +@dataclass +class GetVnfDetailsInput: + """ + Input dataclass for get vnf details activity. + + Attributes: + ----------- + vnfr_uuid : str + The UUID of the VNF which is stored in the OSM vnfrs + collection in Mongo. + """ + + vnfr_uuid: str + + +@dataclass +class GetVnfDetailsOutput: + """ + Output dataclass for get vnf details activity. + + Attributes: + ----------- + vnfr : dict + VNF record retrieved from Database. + + vnfd : dict + VNF descriptor retrieved from Database. + """ + + vnfr: dict + vnfd: dict + + +@dataclass +class GetVnfRecordIdsInput: + """ + Attributes: + ----------- + ns_uuid : str + The UUID of the NS from which to retrieve the VNF records. + """ + + ns_uuid: str + + +@dataclass +class GetVnfRecordIdsOutput: + """ + Attributes: + ----------- + vnfr_ids : list[str] + List of the VNF record IDs associated with the NS. + """ + + vnfr_ids: List[str]