예제 #1
0
class ITC070102_GetTemplateInfo(BaseTestCase):
    '''
    @summary: 07模板管理-01基本操作-02获取模板详情
    '''
    def setUp(self):
        self.dm = super(self.__class__, self).setUp()
        self.temp_api = TemplatesAPIs()
        LogPrint().info("Pre-Test: Create a template %s for TC." %
                        self.dm.temp_name)
        self.assertTrue(
            smart_create_template(self.dm.temp_name, self.dm.temp_info))

    def test_GetTemplateInfo(self):
        '''
        @summary: 获取模板详情
        @note: 操作成功,验证返回状态码和返回信息
        '''
        self.flag = True
        LogPrint().info("Test: Get info of template %s." % self.dm.temp_name)
        r = self.temp_api.getTemplateInfo(self.dm.temp_name)
        if r['status_code'] == self.dm.expected_status_code:
            LogPrint().info("PASS: Get TemplateInfo SUCCESS.")
        else:
            LogPrint().error(
                "FAIL: Get TemplateInfo fail.The Template info is WRONOG.")
            self.flag = False
        self.assertTrue(self.flag)

    def tearDown(self):
        LogPrint().info("Post-Test: Delete template %s." % self.dm.temp_name)
        self.assertTrue(smart_delete_template(self.dm.temp_name))
예제 #2
0
class ITC0701030102_CreateTemplate_SD(BaseTestCase):
    '''
    @summary: 07模板管理-01基本操作-03创建模板-01成功创建-02指定存储域
    '''
    def setUp(self):
        self.dm = super(self.__class__, self).setUp()
    
    def test_CreateTemplate_SD(self):
        '''
        @summary: 创建模板,指定存储域
        @note: 操作成功,验证返回状态码和返回信息
        '''
        self.tempapi = TemplatesAPIs()
        LogPrint().info("Test: Create template %s."%self.dm.temp_name)
        r = self.tempapi.createTemplate(self.dm.temp_info)
        print r
        def is_temp_ok():
            return self.tempapi.getTemplateInfo(temp_name=self.dm.temp_name)['result']['template']['status']['state']=='ok'
        if r['status_code'] == self.dm.expected_status_code:
            if wait_until(is_temp_ok, 600, 10):
                LogPrint().info("PASS: Create Template ok.")
            else:
                LogPrint().error("FAIL: Create Template overtime")
                self.assertTrue(False)
        else:
            LogPrint().error("FAIL: Create Template failed.Status-code is WRONG.")
            self.assertTrue(False)
            
    def tearDown(self):
        LogPrint().info("Post-Test: Delete template %s."%self.dm.temp_name)
        self.assertTrue(smart_delete_template(self.dm.temp_name)) 
예제 #3
0
class ITC070102_GetTemplateInfo(BaseTestCase):
    '''
    @summary: 07模板管理-01基本操作-02获取模板详情
    '''
    def setUp(self):
        self.dm = super(self.__class__, self).setUp()
        self.temp_api = TemplatesAPIs()
        LogPrint().info("Pre-Test: Create a template %s for TC."%self.dm.temp_name)
        self.assertTrue(smart_create_template(self.dm.temp_name, self.dm.temp_info))
 
    def test_GetTemplateInfo(self):
        '''
        @summary: 获取模板详情
        @note: 操作成功,验证返回状态码和返回信息
        '''
        self.flag=True
        LogPrint().info("Test: Get info of template %s."%self.dm.temp_name)
        r = self.temp_api.getTemplateInfo(self.dm.temp_name)
        if r['status_code'] == self.dm.expected_status_code:
            LogPrint().info("PASS: Get TemplateInfo SUCCESS.")
        else:
            LogPrint().error("FAIL: Get TemplateInfo fail.The Template info is WRONOG.")
            self.flag=False
        self.assertTrue(self.flag)
    def tearDown(self):
        LogPrint().info("Post-Test: Delete template %s."%self.dm.temp_name)
        self.assertTrue(smart_delete_template(self.dm.temp_name))
예제 #4
0
class ITC0701030101_CreateTemplate(BaseTestCase):
    '''
    @summary: 07模板管理-01基本操作-03创建模板-01成功创建-01最小测试集
    '''
    def setUp(self):
        self.dm = super(self.__class__, self).setUp()

    def test_CreateTemplate(self):
        '''
        @summary: 创建模板
        @note: 操作成功,验证返回状态码和返回信息
        '''
        self.tempapi = TemplatesAPIs()
        self.expected_result_index = 0

        @BaseTestCase.drive_data(self, self.dm.temp_info)
        def do_test(xml_info):
            self.flag = True
            LogPrint().info("Test: Create template %s." %
                            self.dm.temp_name[self.expected_result_index])
            r = self.tempapi.createTemplate(xml_info)

            def is_temp_ok():
                return self.tempapi.getTemplateInfo(
                    temp_name=self.dm.temp_name[self.expected_result_index]
                )['result']['template']['status']['state'] == 'ok'

            if r['status_code'] == self.dm.expected_status_code:
                if wait_until(is_temp_ok, 600, 10):
                    LogPrint().info(
                        "PASS: Create Template '%s'ok." %
                        self.dm.temp_name[self.expected_result_index])
                else:
                    LogPrint().error(
                        "FAIL: Create Template '%s'overtime" %
                        self.dm.temp_name[self.expected_result_index])
                    self.flag = False
            else:
                LogPrint().error(
                    "FAIL: Create Template '%s'failed.Status-code is WRONG." %
                    self.dm.temp_name[self.expected_result_index])
                self.flag = False
            self.assertTrue(self.flag)
            self.expected_result_index += 1

        do_test()

    def tearDown(self):
        for index in range(0, 5):
            LogPrint().info("Post-Test: Delete template %s." %
                            self.dm.temp_name[index])
            self.assertTrue(smart_delete_template(self.dm.temp_name[index]))
예제 #5
0
class ITC0701030101_CreateTemplate(BaseTestCase):
    '''
    @summary: 07模板管理-01基本操作-03创建模板-01成功创建-01最小测试集
    '''
    def setUp(self):
        self.dm = super(self.__class__, self).setUp()
        
    def test_CreateTemplate(self):
        '''
        @summary: 创建模板
        @note: 操作成功,验证返回状态码和返回信息
        '''
        self.tempapi = TemplatesAPIs()
        self.expected_result_index = 0
        @BaseTestCase.drive_data(self, self.dm.temp_info)
        def do_test(xml_info):
            self.flag=True
            LogPrint().info("Test: Create template %s."%self.dm.temp_name[self.expected_result_index])
            r = self.tempapi.createTemplate(xml_info)
            def is_temp_ok():
                return self.tempapi.getTemplateInfo(temp_name=self.dm.temp_name[self.expected_result_index])['result']['template']['status']['state']=='ok'
            if r['status_code'] == self.dm.expected_status_code:
                if wait_until(is_temp_ok, 600, 10):
                    LogPrint().info("PASS: Create Template '%s'ok."%self.dm.temp_name[self.expected_result_index])
                else:
                    LogPrint().error("FAIL: Create Template '%s'overtime"%self.dm.temp_name[self.expected_result_index])
                    self.flag=False
            else:
                LogPrint().error("FAIL: Create Template '%s'failed.Status-code is WRONG."%self.dm.temp_name[self.expected_result_index])
                self.flag=False
            self.assertTrue(self.flag)
            self.expected_result_index += 1
        do_test()
        
    def tearDown(self):
        for index in range(0,5):
            LogPrint().info("Post-Test: Delete template %s."%self.dm.temp_name[index])
            self.assertTrue(smart_delete_template(self.dm.temp_name[index]))
예제 #6
0
class ITC0701030102_CreateTemplate_SD(BaseTestCase):
    '''
    @summary: 07模板管理-01基本操作-03创建模板-01成功创建-02指定存储域
    '''
    def setUp(self):
        self.dm = super(self.__class__, self).setUp()

    def test_CreateTemplate_SD(self):
        '''
        @summary: 创建模板,指定存储域
        @note: 操作成功,验证返回状态码和返回信息
        '''
        self.tempapi = TemplatesAPIs()
        LogPrint().info("Test: Create template %s." % self.dm.temp_name)
        r = self.tempapi.createTemplate(self.dm.temp_info)
        print r

        def is_temp_ok():
            return self.tempapi.getTemplateInfo(
                temp_name=self.dm.temp_name
            )['result']['template']['status']['state'] == 'ok'

        if r['status_code'] == self.dm.expected_status_code:
            if wait_until(is_temp_ok, 600, 10):
                LogPrint().info("PASS: Create Template ok.")
            else:
                LogPrint().error("FAIL: Create Template overtime")
                self.assertTrue(False)
        else:
            LogPrint().error(
                "FAIL: Create Template failed.Status-code is WRONG.")
            self.assertTrue(False)

    def tearDown(self):
        LogPrint().info("Post-Test: Delete template %s." % self.dm.temp_name)
        self.assertTrue(smart_delete_template(self.dm.temp_name))
예제 #7
0
class ITC080402_DeleteDisk_AttachtoTemp(BaseTestCase):
    '''
    @summary: ITC-08磁盘管理-04删除磁盘-02磁盘附加到模板上
    '''
    def setUp(self):
        self.dm = super(self.__class__, self).setUp()
        #创建一个虚拟机
        LogPrint().info("Pre-Test-1: Create vm %s for TC."% self.dm.vm_name)
        self.assertTrue(smart_create_vm(self.dm.vm_name, self.dm.vm_info))    
        #创建一块磁盘
        '''
        @note: 创建磁盘时,磁盘的sharable属性必须为false,因为共享磁盘不作为模板的一部份
        '''
        LogPrint().info("Pre-Test-2: Create a disk for TC.")
        r= smart_create_disk(self.dm.disk_info, self.dm.disk_name)
        self.assertTrue(r[0])
        self.disk_id = r[1]    
        #将该磁盘附加到虚拟机上
        LogPrint().info("Pre-Test-3: Attach disk %s to vm %s for TC."% (self.dm.disk_name
                                                                 ,self.dm.vm_name))
        self.vmdiskapi = VmDiskAPIs()
        r=self.vmdiskapi.attachDiskToVm(self.dm.vm_name, self.disk_id)
        if r['status_code'] == 200:
            LogPrint().info("Attach Disk to vm success.")
        else:
            LogPrint().error("Attach Disk to vm fail.Status-code is wrong.")
            self.assertTrue(False)    
        #该虚拟机创建模板   
        LogPrint().info("Pre-Test-4: Create template for vm %s for TC."% self.dm.vm_name)
        self.tempapi = TemplatesAPIs()
        self.vm_id = VirtualMachineAPIs().getVmIdByName(self.dm.vm_name)
        r = self.tempapi.createTemplate(self.dm.temp_info, self.vm_id)
        def is_temp_ok():
            return self.tempapi.getTemplateInfo(temp_name=self.dm.temp_name)['result']['template']['status']['state']=='ok'
        if r['status_code'] == 202:
            if wait_until(is_temp_ok, 600, 10):
                LogPrint().info("Create Template ok.")
            else:
                LogPrint().error("Create Template overtime")
                self.assertTrue(False)
        else:
            LogPrint().error("Create Template failed.Status-code is wrong.")
            self.assertTrue(False)
        #获得模板关联的磁盘id
        r = TemplateDisksAPIs().getTemplateDiskInfo(self.dm.temp_name, self.dm.disk_name) 
        if r['status_code'] == 200:
            self.disk_id_temp = r['result']['disk']['@id']
        else:
            self.assertTrue(False)
         
    def test_DeleteDisk_AttachtoTemp(self): 
        '''
        @summary: 删除附加到模板的磁盘
        @note: 操作失败,验证返回验证码及报错信息
        '''
        self.flag = True
        LogPrint().info("Test: Delete disk attached to template.")
        r = DiskAPIs().deleteDisk(self.disk_id_temp)
        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: The returned status code and messages are CORRECT.")
            else:
                LogPrint().error("FAIL: The returned messages are INCORRECT.")
                self.flag = False
        else:
            LogPrint().error("FAIL: The returned status code is '%s' while it should be '%s'." % (r['status_code'], self.dm.expected_status_code))
            self.flag = False
        self.assertTrue(self.flag)
         
    def tearDown(self):
        LogPrint().info("Post-Test-1: Delete template %s."% self.dm.temp_name)
        self.assertTrue(smart_delete_template(self.dm.temp_name))
        LogPrint().info("Post-Test-2: Delete vm %s."% self.dm.vm_name)
        self.assertTrue(smart_del_vm(self.dm.vm_name))