Add ORAN Python SDK first draft
[it/dep.git] / smo-install / test / pythonsdk / src / oransdk / enrichmentservice / enrichmentservice.py
diff --git a/smo-install/test/pythonsdk/src/oransdk/enrichmentservice/enrichmentservice.py b/smo-install/test/pythonsdk/src/oransdk/enrichmentservice/enrichmentservice.py
new file mode 100644 (file)
index 0000000..eeab909
--- /dev/null
@@ -0,0 +1,209 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# SPDX-License-Identifier: Apache-2.0
+"""Oran Enrichment Service module."""
+
+from oransdk.configuration import settings
+from onapsdk.onap_service import OnapService
+
+class EnrichmentService(OnapService):
+    """Enrichment Service library."""
+
+    base_url = settings.EMS_URL
+    header = {"Content-Type": "application/json"}
+
+    @classmethod
+    def check_status(cls) -> str:
+        """
+        Get the status of the EnrichmentService component.
+
+        Returns:
+            the status of the EnrichmentService component
+
+        """
+        url = f"{cls.base_url}/status"
+        status = cls.send_message('GET',
+                                  'Get EMS status',
+                                  url)
+        return status
+
+    @classmethod
+    def get_eitypes(cls) -> str:
+        """
+        Get all the EiTypes.
+
+        Returns:
+            the list of EiTypes
+
+        """
+        url = f"{cls.base_url}/data-producer/v1/info-types"
+        eitypes = cls.send_message('GET',
+                                   'Get all the EiTypes',
+                                   url,
+                                   headers=cls.header)
+        return eitypes
+
+    @classmethod
+    def get_eitype_individual(cls, eitype_name) -> str:
+        """
+        Get individual EiType.
+
+        Args:
+           eitype_name: the EiType name
+
+        Returns:
+            the details of the EiType
+
+        """
+        url = f"{cls.base_url}/data-producer/v1/info-types/{eitype_name}"
+        eitype = cls.send_message('GET',
+                                  'Get individual EiType',
+                                  url,
+                                  headers=cls.header)
+        return eitype
+
+    @classmethod
+    def get_eiproducers(cls) -> str:
+        """
+        Get all the EiProducers.
+
+        Returns:
+            the list of EiProducers
+
+        """
+        url = f"{cls.base_url}/data-producer/v1/info-producers"
+        eitypes = cls.send_message('GET',
+                                   'Get all the EiProducers',
+                                   url,
+                                   headers=cls.header)
+        return eitypes
+
+    @classmethod
+    def get_eiproducer_individual(cls, producer) -> str:
+        """
+        Get individual EiProducer.
+
+        Args:
+           type: the EiProducer name
+
+        Returns:
+            the details of the EiProducer
+
+        """
+        url = f"{cls.base_url}/data-producer/v1/info-producers/{producer}"
+        eiproducer = cls.send_message('GET',
+                                      'Get individual EiProducer',
+                                      url,
+                                      headers=cls.header)
+        return eiproducer
+
+    @classmethod
+    def get_eiproducer_status(cls, producer) -> str:
+        """
+        Get the status of EiProducer.
+
+        Args:
+           type: the EiProducer name
+
+        Returns:
+            the status of the EiProducer
+
+        """
+        url = f"{cls.base_url}/data-producer/v1/info-producers/{producer}/status"
+        status = cls.send_message('GET',
+                                  'Get the status of EiProducer',
+                                  url,
+                                  headers=cls.header)
+        return status
+
+    @classmethod
+    def get_eijobs(cls) -> str:
+        """
+        Get all the EiJobs.
+
+        Returns:
+            the list of EiJobs
+
+        """
+        url = f"{cls.base_url}/A1-EI/v1/eijobs"
+        eijobs = cls.send_message('GET',
+                                  'Get all the EiJobs',
+                                  url,
+                                  headers=cls.header)
+        return eijobs
+
+    @classmethod
+    def get_eijob_individual(cls, job) -> str:
+        """
+        Get individual EiJob.
+
+        Args:
+           type: the EiJob name
+
+        Returns:
+            the details of the EiJob
+
+        """
+        url = f"{cls.base_url}/A1-EI/v1/eijobs/{job}"
+        eijob = cls.send_message('GET',
+                                 'Get individual EiJob',
+                                 url,
+                                 headers=cls.header)
+        return eijob
+
+    @classmethod
+    def create_eitype(cls,
+                      type_name,
+                      type_data) -> None:
+        """
+        Create EiType.
+
+        Args:
+           type: the EiType name
+           type_data: the EiType data to create, in binary format
+
+        """
+        url = f"{cls.base_url}/data-producer/v1/info-types/{type_name}"
+        cls.send_message('PUT',
+                         'Create EiType',
+                         url,
+                         data=type_data,
+                         headers=cls.header)
+
+    @classmethod
+    def create_eiproducer(cls,
+                          producer,
+                          producer_data) -> None:
+        """
+        Create EiProducer.
+
+        Args:
+           producer: the EiProducer name
+           producer_data: the EiProducer data to create, in binary format
+
+        """
+        url = f"{cls.base_url}/data-producer/v1/info-producers/{producer}"
+        cls.send_message('PUT',
+                         'Create EiProducer',
+                         url,
+                         data=producer_data,
+                         headers=cls.header)
+
+    @classmethod
+    def create_eijob(cls,
+                     job,
+                     job_data) -> None:
+        """
+        Create EiJob.
+
+        Args:
+           job: the EiJob name
+           job_data: the EiJob data to create, in binary format
+
+        """
+        url = f"{cls.base_url}/A1-EI/v1/eijobs/{job}"
+        cls.send_message('PUT',
+                         'Create EiJob',
+                         url,
+                         data=job_data,
+                         headers=cls.header)