aboutsummaryrefslogtreecommitdiffstats
path: root/src/onapsdk/vid/vid.py
blob: 31cb92ebf1428da08fb0dd11aa7c0259b6aa9ae2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
"""VID module."""
#   Copyright 2022 Orange, Deutsche Telekom AG
#
#   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.
from abc import ABC
from warnings import warn

from onapsdk.configuration import settings
from onapsdk.onap_service import OnapService
from onapsdk.utils.jinja import jinja_env


class Vid(OnapService, ABC):
    """VID base class."""

    base_url = settings.VID_URL
    api_version = settings.VID_API_VERSION

    def __init__(self, name: str) -> None:
        """VID resource object initialization.

        Args:
            name (str): Resource name
        """
        warn("VID is deprecated and shouldn't be used! "
             "It's not a part of the ONAP release since Istanbul.")
        super().__init__()
        self.name: str = name

    @classmethod
    def get_create_url(cls) -> str:
        """Resource url.

        Used to create resources

        Returns:
            str: Url used for resource creation

        """
        raise NotImplementedError

    @classmethod
    def create(cls, name: str) -> "Vid":
        """Create VID resource.

        Returns:
            Vid: Created VID resource

        """
        warn("VID is deprecated and shouldn't be used! "
             "It's not a part of the ONAP release since Istanbul.")
        cls.send_message(
            "POST",
            f"Declare VID resource with {name} name",
            cls.get_create_url(),
            data=jinja_env().get_template("vid_declare_resource.json.j2").render(
                name=name
            )
        )
        return cls(name)


class OwningEntity(Vid):
    """VID owning entity class."""

    @classmethod
    def get_create_url(cls) -> str:
        """Owning entity creation url.

        Returns:
            str: Url used for ownint entity creation

        """
        warn("VID is deprecated and shouldn't be used! "
             "It's not a part of the ONAP release since Istanbul.")
        return f"{cls.base_url}{cls.api_version}/maintenance/category_parameter/owningEntity"


class Project(Vid):
    """VID project class."""

    @classmethod
    def get_create_url(cls) -> str:
        """Project creation url.

        Returns:
            str: Url used for project creation

        """
        warn("VID is deprecated and shouldn't be used! "
             "It's not a part of the ONAP release since Istanbul.")
        return f"{cls.base_url}{cls.api_version}/maintenance/category_parameter/project"


class LineOfBusiness(Vid):
    """VID line of business class."""

    @classmethod
    def get_create_url(cls) -> str:
        """Line of business creation url.

        Returns:
            str: Url used for line of business creation

        """
        warn("VID is deprecated and shouldn't be used! "
             "It's not a part of the ONAP release since Istanbul.")
        return f"{cls.base_url}{cls.api_version}/maintenance/category_parameter/lineOfBusiness"


class Platform(Vid):
    """VID platform class."""

    @classmethod
    def get_create_url(cls) -> str:
        """Platform creation url.

        Returns:
            str: Url used for platform creation

        """
        warn("VID is deprecated and shouldn't be used! "
             "It's not a part of the ONAP release since Istanbul.")
        return f"{cls.base_url}{cls.api_version}/maintenance/category_parameter/platform"