aboutsummaryrefslogtreecommitdiffstats
path: root/src/onapsdk/msb/esr.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/onapsdk/msb/esr.py')
-rw-r--r--src/onapsdk/msb/esr.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/onapsdk/msb/esr.py b/src/onapsdk/msb/esr.py
new file mode 100644
index 0000000..b29cfa4
--- /dev/null
+++ b/src/onapsdk/msb/esr.py
@@ -0,0 +1,85 @@
+"""ESR 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 onapsdk.utils.jinja import jinja_env
+from .msb_service import MSB
+
+
+class ESR(MSB):
+ """External system EST module."""
+
+ base_url = f"{MSB.base_url}/api/aai-esr-server/v1/vims"
+
+ @classmethod
+ def register_vim(cls, # pylint: disable=too-many-arguments
+ cloud_owner: str,
+ cloud_region_id: str,
+ cloud_type: str,
+ cloud_region_version: str,
+ auth_info_cloud_domain: str,
+ auth_info_username: str,
+ auth_info_password: str,
+ auth_info_url: str,
+ owner_defined_type: str = None,
+ cloud_zone: str = None,
+ physical_location_id: str = None,
+ cloud_extra_info: str = None,
+ auth_info_ssl_cacert: str = None,
+ auth_info_ssl_insecure: bool = None) -> None:
+ """Register VIM.
+
+ Args:
+ cloud_owner (str): cloud owner name, can be customized, e.g. att-aic
+ cloud_region_id (str): cloud region info based on deployment, e.g. RegionOne
+ cloud_type (str): type of the cloud, decides which multicloud plugin to use,
+ openstack or vio
+ cloud_region_version (str): cloud version, ocata, mitaka or other
+ auth_info_cloud_domain (str): domain info for keystone v3
+ auth_info_username (str): user name
+ auth_info_password (str): password
+ auth_info_url (str): authentication url of the cloud, e.g. keystone url
+ owner_defined_type (str, optional): cloud-owner defined type indicator (e.g., dcp, lcp).
+ Defaults to None.
+ cloud_zone (str, optional): zone where the cloud is homed.. Defaults to None.
+ physical_location_id (str, optional): complex physical location id for
+ cloud-region instance. Defaults to None.
+ cloud_extra_info (str, optional): extra info for Cloud. Defaults to None.
+ auth_info_ssl_cacert (str, optional): ca file content if enabled ssl on auth-url.
+ Defaults to None.
+ auth_info_ssl_insecure (bool, optional): whether to verify VIM's certificate.
+ Defaults to None.
+ """
+ cls.send_message(
+ "POST",
+ "Register VIM instance to ONAP",
+ cls.base_url,
+ data=jinja_env()
+ .get_template("msb_esr_vim_registration.json.j2")
+ .render(
+ cloud_owner=cloud_owner,
+ cloud_region_id=cloud_region_id,
+ cloud_type=cloud_type,
+ cloud_region_version=cloud_region_version,
+ auth_info_cloud_domain=auth_info_cloud_domain,
+ auth_info_username=auth_info_username,
+ auth_info_password=auth_info_password,
+ auth_info_url=auth_info_url,
+ owner_defined_type=owner_defined_type,
+ cloud_zone=cloud_zone,
+ physical_location_id=physical_location_id,
+ cloud_extra_info=cloud_extra_info,
+ auth_info_ssl_cacert=auth_info_ssl_cacert,
+ auth_info_ssl_insecure=auth_info_ssl_insecure,
+ ),
+ )