Ejemplo n.º 1
0
    def test_CopyTemplateDisk_async(self):
        '''
        @summary: 拷贝模板磁盘,异步
        @note: 操作成功,验证返回状态码,检查磁盘的存储域变化
        '''
        LogPrint().info("Test: Copy disk of template %s async." %
                        self.dm.temp_name)
        self.flag = True
        tempdisk_api = TemplateDisksAPIs()
        r = tempdisk_api.copyTemplateDisk(self.dm.temp_name, self.dm.disk_name,
                                          self.dm.copy_data)
        print r

        def is_tempdisk_ok():
            return tempdisk_api.getTemplateDiskStatus(
                self.dm.temp_name, self.dm.disk_name) == 'ok'

        def check_tempdisk_sd(temp_name, disk_name, sd_id):
            '''
            @summary: 检查模板磁盘所在的存储域是否包含源和目的存储域
            @param temp_name: 模板名称
            @param disk_name: 磁盘名称
            @param sd_id:存储域id 
            @return: True or False
            '''
            sd_list = tempdisk_api.getTemplateDiskSdList(temp_name, disk_name)
            flag = False
            for index in range(len(sd_list)):
                if sd_list[index]['@id'] == sd_id:
                    flag = True
            return flag

        if r['status_code'] == self.dm.expected_status_code:
            if wait_until(is_tempdisk_ok, 300, 10):
                if check_tempdisk_sd(self.dm.temp_name, self.dm.disk_name,
                                     self.dm.des_sd_id):
                    LogPrint().info("PASS: Copy Template Disk sync SUCCESS")
                else:
                    LogPrint().error("FAIL: The des sd is not %s." %
                                     self.dm.des_sd_name)
                    self.flag = False
            else:
                LogPrint().error("FAIL: CopyTemplateDisk overtime")
                self.flag = False
        else:
            LogPrint().error("FAIL: The status_code is WRONG")
            self.flag = False
        self.assertTrue(self.flag)
Ejemplo n.º 2
0
 def test_CopyTemplateDisk_nosd(self):
     '''
     @summary: 拷贝模板磁盘,未指定存储域
     @note: 操作失败,验证返回状态码和返回信息
     '''
     self.flag = True
     tempdisk_api = TemplateDisksAPIs()
     LogPrint().info("Test: Copy disk of template %s without SD."%self.dm.temp_name)
     r = tempdisk_api.copyTemplateDisk(self.dm.temp_name, self.dm.disk_name, self.dm.copy_data)
     if r['status_code'] == self.dm.expected_status_code:
         dictCompare = DictCompare()
         if dictCompare.isSubsetDict(xmltodict.parse(self.dm.expected_info), r['result']):
             LogPrint().info("PASS: Returned status code ans messages are CORRECT.")
         else:
             LogPrint().error("FAIL: The error_log is WRONG.")
             self.flag = False
     else:
         LogPrint().error("FAIL: The status_code is WRONG.")
         self.flag = False
     self.assertTrue(self.flag)
Ejemplo n.º 3
0
 def test_CopyTemplateDisk_async(self):
     '''
     @summary: 拷贝模板磁盘,异步
     @note: 操作成功,验证返回状态码,检查磁盘的存储域变化
     '''
     LogPrint().info("Test: Copy disk of template %s async."%self.dm.temp_name)
     self.flag = True
     tempdisk_api = TemplateDisksAPIs()
     r = tempdisk_api.copyTemplateDisk(self.dm.temp_name, self.dm.disk_name, self.dm.copy_data)  
     print r
     def is_tempdisk_ok():
         return tempdisk_api.getTemplateDiskStatus(self.dm.temp_name, self.dm.disk_name)=='ok'
     def check_tempdisk_sd(temp_name,disk_name,sd_id):
         '''
         @summary: 检查模板磁盘所在的存储域是否包含源和目的存储域
         @param temp_name: 模板名称
         @param disk_name: 磁盘名称
         @param sd_id:存储域id 
         @return: True or False
         '''
         sd_list = tempdisk_api.getTemplateDiskSdList(temp_name, disk_name)
         flag = False
         for index in range(len(sd_list)):
             if sd_list[index]['@id'] == sd_id:
                 flag = True
         return flag 
     if r['status_code'] == self.dm.expected_status_code:
         if wait_until(is_tempdisk_ok, 300, 10):
             if check_tempdisk_sd(self.dm.temp_name, self.dm.disk_name, self.dm.des_sd_id):
                 LogPrint().info("PASS: Copy Template Disk sync SUCCESS")
             else:
                 LogPrint().error("FAIL: The des sd is not %s."%self.dm.des_sd_name)
                 self.flag= False
         else:
             LogPrint().error("FAIL: CopyTemplateDisk overtime")
             self.flag= False
     else:
         LogPrint().error("FAIL: The status_code is WRONG")
         self.flag= False
     self.assertTrue(self.flag) 
Ejemplo n.º 4
0
 def test_CopyTemplateDisk_nosd(self):
     '''
     @summary: 拷贝模板磁盘,未指定存储域
     @note: 操作失败,验证返回状态码和返回信息
     '''
     self.flag = True
     tempdisk_api = TemplateDisksAPIs()
     LogPrint().info("Test: Copy disk of template %s without SD." %
                     self.dm.temp_name)
     r = tempdisk_api.copyTemplateDisk(self.dm.temp_name, self.dm.disk_name,
                                       self.dm.copy_data)
     if r['status_code'] == self.dm.expected_status_code:
         dictCompare = DictCompare()
         if dictCompare.isSubsetDict(xmltodict.parse(self.dm.expected_info),
                                     r['result']):
             LogPrint().info(
                 "PASS: Returned status code ans messages are CORRECT.")
         else:
             LogPrint().error("FAIL: The error_log is WRONG.")
             self.flag = False
     else:
         LogPrint().error("FAIL: The status_code is WRONG.")
         self.flag = False
     self.assertTrue(self.flag)