1 #######################################################################################
2 # Copyright ETSI Contributors and Others.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #######################################################################################
18 from abc
import abstractmethod
19 from dataclasses
import dataclass
21 from osm_common
.temporal
.workflows
.base
import BaseWorkflow
24 class VimCreateWorkflow(BaseWorkflow
):
25 """Creates VIM account by validating the VIM connectivity."""
30 Input dataclass for workflows that perform operations
31 (create, update, delete) on VIMs.
36 The UUID of the VIM account as stored in the OSM vim
40 The operation (task) id for this workflow. This is used
41 by the workflow at the end to update the status of the
42 operation in Mongo vim collection.
49 async def run(self
, workflow_input
: Input
) -> None:
53 class VimUpdateWorkflow(VimCreateWorkflow
):
54 """Updates VIM account state by validating the VIM connectivity."""
59 Input dataclass for workflows that perform operations
60 (create, update, delete) on VIMs.
65 The UUID of the VIM account as stored in the OSM vim
69 The operation (task) id for this workflow. This is used
70 by the workflow at the end to update the status of the
71 operation in Mongo vim collection.
78 async def run(self
, workflow_input
: Input
) -> None:
82 class VimDeleteWorkflow(BaseWorkflow
):
83 """Deletes VIM accounts."""
88 Input dataclass for workflows that perform operations
89 (create, update, delete) on VIMs.
94 The UUID of the VIM account as stored in the OSM vim
98 The operation (task) id for this workflow. This is used
99 by the workflow at the end to update the status of the
100 operation in Mongo vim collection.
107 async def run(self
, workflow_input
: Input
) -> None: