Revert "Feature 10915: SOL003 STD Support for OSM"
[osm/NBI.git] / osm_nbi / osm_vnfm / vnf_instance_actions.py
diff --git a/osm_nbi/osm_vnfm/vnf_instance_actions.py b/osm_nbi/osm_vnfm/vnf_instance_actions.py
deleted file mode 100644 (file)
index 93c91c5..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-# Copyright 2021 K Sai Kiran (Tata Elxsi)
-#
-# 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.
-
-__author__ = "K Sai Kiran <saikiran.k@tataelxsi.co.in>, Selvi Jayaraman <selvi.j@tataelxsi.co.in>"
-__date__ = "$12-June-2021 8:30:59$"
-
-from osm_nbi.instance_topics import NsrTopic, NsLcmOpTopic, VnfrTopic
-from .base_methods import BaseMethod
-
-
-class VnfLcmOp2NsLcmOp:
-
-    def __init__(self, db, fs, msg, auth):
-        """
-        Constructor of Vnf lcm op to Ns lcm op
-        """
-        self.new_vnf_lcmop = NewVnfLcmOp(db, fs, msg, auth)
-        self.list_vnf_lcmop = ListVnfLcmOp(db, fs, msg, auth)
-        self.show_vnf_lcmop = ShowVnfLcmOp(db, fs, msg, auth)
-
-    def new(self, rollback, session, indata=None, kwargs=None, headers=None):
-        """
-        Creates a new entry into database.
-        :param rollback: list to append created items at database in case a rollback may to be done
-        :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
-        :param indata: data to be inserted
-        :param kwargs: used to override the indata descriptor
-        :param headers: http request headers
-        :return: _id, op_id:
-            _id: identity of the inserted data.
-             op_id: operation id if this is asynchronous, None otherwise
-        """
-        return self.new_vnf_lcmop.action(rollback, session, indata, kwargs, headers)
-
-    def list(self, session, filter_q=None, api_req=False):
-        """
-        Get a list of the Vnf Lcm Operation that matches a filter
-        :param session: contains the used login username and working project
-        :param filter_q: filter of data to be applied
-        :param api_req: True if this call is serving an external API request. False if serving internal request.
-        :return: The list, it can be empty if no one match the filter.
-        """
-        return self.list_vnf_lcmop.action(session, filter_q, api_req)
-
-    def show(self, session, _id, api_req=False):
-        """
-        Get complete information on an Vnf Lcm Operation
-        :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
-        :param _id: server internal id
-        :param api_req: True if this call is serving an external API request. False if serving internal request.
-        :return: dictionary, raise exception if not found.
-        """
-        return self.show_vnf_lcmop.action(session, _id, api_req)
-
-
-class NewVnfLcmOp(BaseMethod):
-
-    def __init__(self, db, fs, msg, auth):
-        """
-        Constructor of new Vnf Lcm Op
-        """
-        super().__init__()
-        self.msg = msg
-        self.nslcmoptopic = NsLcmOpTopic(db, fs, msg, auth)
-        self.nsrtopic = NsrTopic(db, fs, msg, auth)
-        self.vnfrtopic = VnfrTopic(db, fs, msg, auth)
-
-    def __get_nsdid(self, session, vnf_instance_id):
-        """
-        Returns a nsd id from vnf instance id.
-        :param session: contains the used login username and working project
-        :param vnf_instance_id: id of vnf instance
-        :return: id of nsd id
-        """
-        nsr = self.nsrtopic.show(session, vnf_instance_id)
-        return nsr['nsd']['_id']
-
-    def __get_formatted_indata(self, session, indata):
-        """
-        Returns formatted data for new vnf lcm op
-        :param session: contains the used login username and working project
-        :param indata: contains information for new lcm operation.
-        :return: formatted indata for new lcm op.
-        """
-        formatted_indata = {}
-        if indata["lcmOperationType"] == "instantiate":
-            formatted_indata = {
-                "nsName": indata["vnfName"],
-                "nsDescription": indata["vnfDescription"],
-                "nsdId": self.__get_nsdid(session, indata["vnfInstanceId"]),
-                "vimAccountId": indata["vimAccountId"],
-                "nsr_id": indata["vnfInstanceId"],
-                "lcmOperationType": indata["lcmOperationType"],
-                "nsInstanceId": indata["vnfInstanceId"]
-            }
-        elif indata["lcmOperationType"] == "terminate":
-            formatted_indata = {
-                "lcmOperationType": indata["lcmOperationType"],
-                "nsInstanceId": indata["vnfInstanceId"]
-            }
-        elif indata["lcmOperationType"] == "scale":
-            formatted_indata = {
-                "lcmOperationType": indata["lcmOperationType"],
-                "nsInstanceId": indata["vnfInstanceId"],
-                "scaleType": "SCALE_VNF",
-                "scaleVnfData": {
-                    "scaleVnfType": indata["type"],
-                    "scaleByStepData": {
-                        "scaling-group-descriptor": indata["aspectId"],
-                        "member-vnf-index": indata["additionalParams"]["member-vnf-index"]
-                    }
-                }
-            }
-        elif indata["lcmOperationType"] == "action":
-            formatted_indata = {
-                "lcmOperationType": indata["lcmOperationType"],
-                "nsInstanceId": indata["vnfInstanceId"],
-                "member_vnf_index": indata["member_vnf_index"],
-                "primitive": indata["primitive"],
-                "primitive_params": indata["primitive_params"]
-            }
-        return formatted_indata
-
-    def action(self, rollback, session, indata=None, kwargs=None, headers=None):
-        """
-        Creates an new lcm operation.
-        :param rollback: list to append the created items at database in case a rollback must be done
-        :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
-        :param indata: params to be used for the nsr
-        :param kwargs: used to override the indata
-        :param headers: http request headers
-        :return: id of new lcm operation.
-        """
-        vnfInstanceId = indata["vnfInstanceId"]
-        lcm_operation = indata["lcmOperationType"]
-        vnfr = self.vnfrtopic.show(session, vnfInstanceId)
-        indata["vnfInstanceId"] = vnfr.get("nsr-id-ref")
-        indata = self.__get_formatted_indata(session, indata)
-        op_id, _ = self.nslcmoptopic.new(rollback, session, indata, kwargs, headers)
-        return op_id, _
-
-
-class ListVnfLcmOp(BaseMethod):
-
-    def __init__(self, db, fs, msg, auth):
-        """
-        Constructor call for listing vnf lcm operations
-        """
-        super().__init__()
-        self.nslcmoptopic = NsLcmOpTopic(db, fs, msg, auth)
-        self.nsrtopic = NsrTopic(db, fs, msg, auth)
-
-    def action(self, session, filter_q=None, api_req=False):
-        """
-        To get list of vnf lcm operations that matches a filter
-        :param session: contains the used login username and working project
-        :param filter_q: filter of data to be applied
-        :param api_req: True if this call is serving an external API request. False if serving internal request.
-        :return: The list, it can be empty if no one match the filter.
-        """
-        list = []
-        records = self.nslcmoptopic.list(session, filter_q, api_req)
-        for record in records:
-            ns_id = record.get("nsInstanceId")
-            nsr = self.nsrtopic.show(session, ns_id)
-            vnfInstance_id = nsr['constituent-vnfr-ref'][0]
-            outdata = sol003_projection(record, vnfInstance_id)
-            list.append(outdata)
-        return list
-
-
-class ShowVnfLcmOp(BaseMethod):
-
-    def __init__(self, db, fs, msg, auth):
-        """
-        Constructor call for showing vnf lcm operation
-        """
-        super().__init__()
-        self.nslcmoptopic = NsLcmOpTopic(db, fs, msg, auth)
-        self.nsrtopic = NsrTopic(db, fs, msg, auth)
-
-    def action(self, session, _id, api_req=False):
-        """
-        Get complete information on an Vnf Lcm Operation.
-        :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
-        :param _id: Vnf Lcm operation id
-        :param api_req: True if this call is serving an external API request. False if serving internal request.
-        :return: dictionary, raise exception if not found.
-        """
-        record = self.nslcmoptopic.show(session, _id, api_req)
-        ns_id = record.get("nsInstanceId")
-        nsr = self.nsrtopic.show(session, ns_id)
-        vnfinstance_id = nsr['constituent-vnfr-ref'][0]
-        outdata = sol003_projection(record, vnfinstance_id)
-        return outdata
-
-
-def sol003_projection(data, vnfinstance_id):
-    """
-    Returns SOL003 formatted data
-    :param data: contains Lcm Operation information
-    :param vnfinstance_id: id of vnf_instance
-    :return: SOL003 formatted data of vnf lcm op
-    """
-    data.pop("nsInstanceId")
-    data.pop("operationParams")
-    data.pop("links")
-    links = {
-        "self": "/osm/vnflcm/v1/vnf_lcm_op_occs/" + data["_id"],
-        "vnfInstance": "/osm/vnflcm/v1/vnf_instances/" + vnfinstance_id,
-    }
-    data["_links"] = links
-    data["vnfInstanceId"] = vnfinstance_id
-    return data