Add allotted resource subcategory BRG in SDC 64/86664/2
authorYang Xu <yang.xu3@huawei.com>
Tue, 30 Apr 2019 18:28:07 +0000 (14:28 -0400)
committerYang Xu <yang.xu3@huawei.com>
Tue, 30 Apr 2019 18:33:43 +0000 (14:33 -0400)
Change-Id: I1c361215ba086afe7444a5c457ba08aedf9fddcd
Issue-ID: INT-847
Signed-off-by: Yang Xu <yang.xu3@huawei.com>
test/vcpe/sdcutils.py
test/vcpe/vcpe.py
test/vcpe/vcpecommon.py

index a938721..1a202b4 100755 (executable)
@@ -16,14 +16,14 @@ class SdcUtils:
         self.logger.setLevel(logging.DEBUG)
         self.vcpecommon = vcpecommon
 
-    def get_service_list(self):
+    def download_vcpe_service_template(self):
         """
         :return: 
         """
 
         url = self.vcpecommon.sdc_service_list_url
         self.logger.info(url)
-        r = requests.get(url, headers=self.vcpecommon.sdc_get_request_headers, auth=self.vcpecommon.sdc_get_request_userpass)
+        r = requests.get(url, headers=self.vcpecommon.sdc_be_request_headers, auth=self.vcpecommon.sdc_be_request_userpass)
         self.logger.debug(r)
         data = r.json()
 
@@ -34,9 +34,9 @@ class SdcUtils:
         self.logger.debug('---------------------------------------------------------------')
 
         for service in data:
-            if service['name'].startswith('demoVCPE'):
+            if service['name'].startswith('demoVCPE') or service['name'].startswith('vCPEResCust'):
                 self.logger.debug('service name = %s, url = %s' % (service['name'], service['toscaModelURL']))
-                self.download_file(self.vcpecommon.sdc_url_prefix + service['toscaModelURL'])
+                self.download_file(self.vcpecommon.sdc_be_url_prefix + service['toscaModelURL'])
 
     def get_filename_from_cd(self, cd):
         """
@@ -48,7 +48,42 @@ class SdcUtils:
 
     def download_file(self, url):
         self.logger.info(url)
-        response = requests.get(url, headers=self.vcpecommon.sdc_get_request_headers, auth=self.vcpecommon.sdc_get_request_userpass)
+        response = requests.get(url, headers=self.vcpecommon.sdc_be_request_headers, auth=self.vcpecommon.sdc_be_request_userpass)
         filename = 'csar/' + self.get_filename_from_cd(response.headers.get('Content-Disposition'))
         open(filename, 'wb').write(response.content)
 
+    def create_allotted_resource_subcategory(self, newSubcategory):
+        """
+        :param newSubcategory: a new subcategory under Allotted Resource, like BRG
+        :return:
+        """
+        url = self.vcpecommon.sdc_get_category_list_url
+        self.logger.info(url)
+        resp = requests.get(url, headers=self.vcpecommon.sdc_fe_request_headers, auth=self.vcpecommon.sdc_fe_request_userpass)
+        data = resp.json()
+
+        self.logger.debug('---------------------------------------------------------------')
+        self.logger.debug('------- Creation request submitted to SDC, got response --------')
+        self.logger.debug('response code = %s' % resp.status_code )
+        self.logger.debug(json.dumps(data, indent=4, sort_keys=True))
+        self.logger.debug('---------------------------------------------------------------')
+
+        if data['resourceCategories']:
+            for category in data['resourceCategories']:
+                if category['name'] == 'Allotted Resource':
+                    for subcategory in category['subcategories']:
+                        if subcategory['name'] == newSubcategory:
+                            self.logger.debug('Subcategory %s already exists' % newSubcategory)
+                            return
+                    self.logger.debug('Creating a new subcategory %s' % newSubcategory)
+                    url = self.vcpecommon.sdc_create_allotted_resource_subcategory_url
+                    self.logger.info(url)
+                    details = {"name" : newSubcategory}
+                    resp = requests.post(url, headers=self.vcpecommon.sdc_fe_request_headers, auth=self.vcpecommon.sdc_fe_request_userpass, json=details)
+                    self.logger.debug('---------------------------------------------------------------')
+                    self.logger.debug('------- Creation subcategory request submitted to SDC, got response --------')
+                    self.logger.debug('response code = %s' % resp.status_code )
+                    self.logger.debug('---------------------------------------------------------------')
+
+
+
index f9c1778..375a04e 100755 (executable)
@@ -183,10 +183,22 @@ def init_so_sdnc():
     vgw_vfmod_name_index=  0
     vcpecommon.save_object(vgw_vfmod_name_index, vcpecommon.vgw_vfmod_name_index_file)
 
-def download_vcpe_service_templates():
+
+def init():
     vcpecommon = VcpeCommon()
+    init_sdc(vcpecommon)
+    download_vcpe_service_templates(vcpecommon)
+
+
+def init_sdc(vcpecommon):
     sdc = sdcutils.SdcUtils(vcpecommon)
-    sdc.get_service_list()
+    sdc.create_allotted_resource_subcategory('BRG')
+
+
+def download_vcpe_service_templates(vcpecommon):
+    sdc = sdcutils.SdcUtils(vcpecommon)
+    sdc.download_vcpe_service_template()
+
 
 def tmp_sniro():
     logger = logging.getLogger(__name__)
@@ -197,10 +209,12 @@ def tmp_sniro():
     # Setting up SNIRO
     config_sniro(vcpecommon, svc_instance_uuid['gmux'], svc_instance_uuid['brg'])
 
+
 def test(): 
     vcpecommon = VcpeCommon()
     print("oom-k8s-04 public ip: %s" % (vcpecommon.get_vm_public_ip_by_nova('oom-k8s-04')))
 
+
 if __name__ == '__main__':
     logging.basicConfig(level=logging.DEBUG, format='%(message)s')
 
@@ -220,9 +234,7 @@ if __name__ == '__main__':
     if sys.argv[1] == 'sdc':
         print('Under development')
     elif sys.argv[1] == 'init':
-        if 'y' == raw_input('Ready to add customer service data to SDNC and SO DBs? This is needed only once.'
-                            'y/n: ').lower():
-            download_vcpe_service_templates()
+            init()
             init_so_sdnc()
     elif sys.argv[1] == 'infra':
         if 'y' == raw_input('Ready to deploy infrastructure? y/n: ').lower():
index 77e3622..47ba238 100755 (executable)
@@ -132,11 +132,18 @@ class VcpeCommon:
 
         #############################################################################################
         # SDC urls
-        self.sdc_get_request_userpass = 'vid','Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U'
-        self.sdc_get_request_headers = {'X-ECOMP-InstanceID': 'VID'}
-        self.sdc_port = '30205'
-        self.sdc_url_prefix = 'http://' + self.hosts['sdc'] + ':' + self.sdc_port
-        self.sdc_service_list_url = self.sdc_url_prefix + '/sdc/v1/catalog/services'
+        self.sdc_be_port = '30205'
+        self.sdc_be_request_userpass = 'vid', 'Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U'
+        self.sdc_be_request_headers = {'X-ECOMP-InstanceID': 'VID'}
+        self.sdc_be_url_prefix = 'http://' + self.hosts['sdc'] + ':' + self.sdc_be_port
+        self.sdc_service_list_url = self.sdc_be_url_prefix + '/sdc/v1/catalog/services'
+
+        self.sdc_fe_port = '30206'
+        self.sdc_fe_request_userpass = 'beep', 'boop'
+        self.sdc_fe_request_headers = {'USER_ID': 'demo', 'Content-Type': 'application/json'}
+        self.sdc_fe_url_prefix = 'http://' + self.hosts['sdc'] + ':' + self.sdc_fe_port
+        self.sdc_get_category_list_url = self.sdc_fe_url_prefix + '/sdc1/feProxy/rest/v1/categories'
+        self.sdc_create_allotted_resource_subcategory_url = self.sdc_fe_url_prefix + '/sdc1/feProxy/rest/v1/category/resources/resourceNewCategory.allotted%20resource/subCategory'
 
         #############################################################################################
         # SDNC urls