Commit 0964edf5 authored by garciadeblas's avatar garciadeblas
Browse files

Feature 10909: Heal operation for VDU



Change-Id: I9cda701cc265f8acad82574dab96a374cc399fa2
Signed-off-by: default avatargarciadeblas <gerardo.garciadeblas@telefonica.com>
parent bc5a5240
Loading
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ from osm_nbi.validation import (
    ns_action,
    ns_scale,
    ns_update,
    ns_heal,
    nsi_instantiate,
    ns_migrate,
)
@@ -1163,6 +1164,7 @@ class NsLcmOpTopic(BaseTopic):
        "action": ns_action,
        "update": ns_update,
        "scale": ns_scale,
        "heal": ns_heal,
        "terminate": ns_terminate,
        "migrate": ns_migrate,
    }
@@ -1175,7 +1177,7 @@ class NsLcmOpTopic(BaseTopic):
        """
        Check that user has enter right parameters for the operation
        :param session: contains "username", "admin", "force", "public", "project_id", "set_project"
        :param operation: it can be: instantiate, terminate, action, update. TODO: heal
        :param operation: it can be: instantiate, terminate, action, update, heal
        :param indata: descriptor with the parameters of the operation
        :return: None
        """
@@ -1185,6 +1187,8 @@ class NsLcmOpTopic(BaseTopic):
            self._check_scale_ns_operation(indata, nsr)
        elif operation == "update":
            self._check_update_ns_operation(indata, nsr)
        elif operation == "heal":
            self._check_heal_ns_operation(indata, nsr)
        elif operation == "instantiate":
            self._check_instantiate_ns_operation(indata, nsr, session)

@@ -1387,6 +1391,9 @@ class NsLcmOpTopic(BaseTopic):
                )
            )

    def _check_heal_ns_operation(self, indata, nsr):
        return

    def _check_instantiate_ns_operation(self, indata, nsr, session):
        vnf_member_index_to_vnfd = {}  # map between vnf_member_index to vnf descriptor.
        vim_accounts = []
+5 −1
Original line number Diff line number Diff line
@@ -86,8 +86,8 @@ URL: /osm GET POST
                    action                                              O
                    scale                                               O5
                    migrate                                             O
                    heal                                                5
                    update                                              05
                    heal                                                O5
            /ns_lcm_op_occs                                     5       5
                /<nsLcmOpOccId>                                 5                       5       5
                    TO BE COMPLETED                             5               5
@@ -433,6 +433,10 @@ valid_url_methods = {
                "<ID>": {
                    "METHODS": ("GET", "DELETE"),
                    "ROLE_PERMISSION": "ns_instances:id:",
                    "heal": {
                        "METHODS": ("POST",),
                        "ROLE_PERMISSION": "ns_instances:id:heal:",
                    },
                    "scale": {
                        "METHODS": ("POST",),
                        "ROLE_PERMISSION": "ns_instances:id:scale:",
+47 −0
Original line number Diff line number Diff line
@@ -492,6 +492,7 @@ ns_action = { # TODO for the moment it is only contemplated the vnfd primitive
    "required": ["primitive", "primitive_params"],  # TODO add member_vnf_index
    "additionalProperties": False,
}

ns_scale = {  # TODO for the moment it is only VDU-scaling
    "title": "ns scale input schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
@@ -549,6 +550,51 @@ ns_migrate = {
    "additionalProperties": False
}

ns_heal = {
    "title": "ns heal input schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "lcmOperationType": string_schema,
        "nsInstanceId": id_schema,
        "timeout_ns_heal": integer1_schema,
        "healVnfData": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "vnfInstanceId": id_schema,
                    "cause": description_schema,
                    "additionalParams": {
                        "type": "object",
                        "properties": {
                            "run-day1": bool_schema,
                            "vdu": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "run-day1": bool_schema,
                                        "vdu-id": name_schema,
                                        "count-index": integer0_schema,
                                    },
                                    "required": ["vdu-id"],
                                    "additionalProperties": False,
                                },
                            },
                        },
                        "additionalProperties": False,
                    },
                },
                "required": ["vnfInstanceId"],
                "additionalProperties": False,
            },
        },
    },
    "required": ["healVnfData"],
    "additionalProperties": False,
}

schema_version = {"type": "string", "enum": ["1.0"]}
schema_type = {"type": "string"}
vim_type = shortname_schema  # {"enum": ["openstack", "openvim", "vmware", "opennebula", "aws", "azure", "fos"]}
@@ -1117,6 +1163,7 @@ nbi_new_input_schemas = {
    "ns_action": ns_action,
    "ns_scale": ns_scale,
    "ns_update": ns_update,
    "ns_heal": ns_heal,
    "pdus": pdu_new_schema,
}