def test_05_attach_eip_to_dc2(self): print("================Begin Test Attach Eip To Dc2================") listDc2Resp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个gz的DC2的Uuid self.assertEqual(listDc2Resp.error.errno, 0) self.assertTrue(len(listDc2Resp.data) > 0) self.assertEqual(len(listDc2Resp.data[0].eip.eipUuid), 0) listEipResp = cli.eipStub.ListEip( c.ListEipRequest(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个gz的EIP的Uuid self.assertEqual(listEipResp.error.errno, 0) self.assertTrue(len(listEipResp.data) > 0) self.assertEqual(len(listEipResp.data[0].dc2.dc2Uuid), 0) attachEipToDc2Req = c.AttachEipToDc2Request(header=c.Header( regionId='gz')) eipToAttach = attachEipToDc2Req.eip.add() eipToAttach.bindingUuid = listDc2Resp.data[0].dc2Uuid eipToAttach.eipUuid = listEipResp.data[0].eipUuid attachEipToDc2Resp = cli.eipStub.AttachEipToDc2(attachEipToDc2Req) print(attachEipToDc2Resp) self.assertEqual(attachEipToDc2Resp.error.errno, 0) print("attachEipToDc2, jobUuid:", attachEipToDc2Resp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', attachEipToDc2Resp.data[0].jobUuid) # 轮询等待结果 print("attachEipToDc2, success:", success) self.assertTrue(success)
def test_11_reinstall_dc2_system(self): print( "================Begin Test Reinstall Dc2 System================") # 获取镜像并选择 imgResp = cli.dc2Stub.ListImage( c.ListImageRequest(header=c.Header(regionId='gz'))) self.assertEqual(imgResp.error.errno, 0) for img in imgResp.data: if img.osFamily == 'CentOS' and img.osVersion == '7.4': targetImgUuid = img.imgUuid break self.assertNotEqual(len(targetImgUuid), 0) listResp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) reinstallDc2SystemRequest = c.ReinstallDc2SystemRequest( header=c.Header(regionId='gz')) dc2ToReinstallSystem = reinstallDc2SystemRequest.dc2.add() dc2ToReinstallSystem.dc2Uuid = listResp.data[0].dc2Uuid dc2ToReinstallSystem.imgUuid = targetImgUuid dc2ToReinstallSystem.password = str_to_hex("newDc2Password123") reinstallDc2SystemResp = cli.dc2Stub.ReinstallDc2System( reinstallDc2SystemRequest) print(reinstallDc2SystemResp) self.assertEqual(reinstallDc2SystemResp.error.errno, 0) print("reinstallDc2System, jobUuid:", reinstallDc2SystemResp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', reinstallDc2SystemResp.data[0].jobUuid) # 轮询等待结果 print("reinstallDc2System, success:", success) self.assertTrue(success)
def test_08_detach_dc2_from_sg(self): print("================Begin Test Detach Dc2 From Sg================") listSgResp = cli.sgStub.ListSg( c.ListSgRequest(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个gz的Sg的Uuid self.assertEqual(listSgResp.error.errno, 0) self.assertTrue(len(listSgResp.data) > 0) listDc2Resp = cli.dc2Stub.ListDc2( c.ListDc2Request( header=c.Header(regionId='gz'), start=0, limit=10, condition=c.ListDc2Condition( sgUuid=listSgResp.data[0].sgUuid))) # 获取在此SG下的dc2的Uuid detachDc2FromSgReq = c.DetachDc2FromSgRequest(header=c.Header( regionId='gz')) sgToDetach = detachDc2FromSgReq.sg.add() dc2ToDetach = detachDc2FromSgReq.dc2.add() sgToDetach.sgUuid = listSgResp.data[0].sgUuid dc2ToDetach.dc2Uuid = listDc2Resp.data[0].dc2Uuid detachDc2FromSgResp = cli.sgStub.DetachDc2FromSg(detachDc2FromSgReq) print(detachDc2FromSgResp) self.assertEqual(detachDc2FromSgResp.error.errno, 0) print("detachDc2FromSg, jobUuid:", detachDc2FromSgResp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', detachDc2FromSgResp.data[0].jobUuid) # 轮询等待结果 print("detachDc2FromSg, success:", success) self.assertTrue(success)
def test_02_check_dc2_price(self): print("================Begin Test Check Dc2 Price================") # 创建 checkPriceResp = cli.billStub.CheckDc2Price(c.CheckDc2PriceRequest(header=c.Header(regionId='gz'), dc2Goods=c.CheckDc2PriceInput(count=2, payPeriod=3, dc2Model='dc2.s1.small1.d20', eip=c.CheckEipPriceInput(bandwidth=5), ebs=c.CheckEbsPriceInput(count=2, size=50, diskType='SSD')))) print(checkPriceResp) self.assertEqual(checkPriceResp.error.errno, 0) # 升配 listResp = cli.dc2Stub.ListDc2(c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) checkChangePriceResp = cli.billStub.CheckDc2Price(c.CheckDc2PriceRequest(header=c.Header(regionId='gz'), isChange=True, dc2Goods=c.CheckDc2PriceInput( dc2Uuid=listResp.data[0].dc2Uuid, dc2Model='dc2.s1.large4.d40'))) print(checkChangePriceResp) self.assertEqual(checkChangePriceResp.error.errno, 0)
def test_07_attach_dc2_to_sg(self): print("================Begin Test Attach Dc2 To Sg================") listSgResp = cli.sgStub.ListSg( c.ListSgRequest(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个gz的Sg的Uuid self.assertEqual(listSgResp.error.errno, 0) self.assertTrue(len(listSgResp.data) > 0) listDc2Resp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10, condition=c.ListDc2Condition( sgUuid=listSgResp.data[0].sgUuid, sgExclude=True))) # 获取不在SG下的dc2的Uuid self.assertEqual(listDc2Resp.error.errno, 0) self.assertTrue(len(listDc2Resp.data) > 0) attachDc2ToSgReq = c.AttachDc2ToSgRequest(header=c.Header( regionId='gz')) sgToBeAttached = attachDc2ToSgReq.sg.add() dc2ToAttach = attachDc2ToSgReq.dc2.add() sgToBeAttached.sgUuid = listSgResp.data[0].sgUuid dc2ToAttach.dc2Uuid = listDc2Resp.data[0].dc2Uuid attachDc2ToSgResp = cli.sgStub.AttachDc2ToSg(attachDc2ToSgReq) print(attachDc2ToSgResp) self.assertEqual(attachDc2ToSgResp.error.errno, 0) print("attachDc2ToSg, jobUuid:", attachDc2ToSgResp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', attachDc2ToSgResp.data[0].jobUuid) # 轮询等待结果 print("attachDc2ToSg, success:", success) self.assertTrue(success)
def test_05_attach_ebs_to_dc2(self): print("================Begin Test Attach Ebs To Dc2================") listDc2Resp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz', zoneId='gz01'), start=0, limit=10)) # 获取一个gz01的DC2的Uuid self.assertEqual(listDc2Resp.error.errno, 0) self.assertTrue(len(listDc2Resp.data) > 0) listEbsResp = cli.ebsStub.ListEbs( c.ListEbsRequest(header=c.Header(regionId='gz', zoneId='gz01'), start=0, limit=10)) # 获取一个gz01的EBS的Uuid self.assertEqual(listEbsResp.error.errno, 0) self.assertTrue(len(listEbsResp.data) > 0) self.assertEqual(len(listEbsResp.data[0].dc2.dc2Uuid), 0) attachEbsToDc2Req = c.AttachEbsRequest(header=c.Header(regionId='gz')) ebsToAttach = attachEbsToDc2Req.ebs.add() ebsToAttach.dc2Uuid = listDc2Resp.data[0].dc2Uuid ebsToAttach.ebsUuid = listEbsResp.data[0].ebsUuid attachEbsToDc2Resp = cli.ebsStub.AttachEbs(attachEbsToDc2Req) print(attachEbsToDc2Resp) self.assertEqual(attachEbsToDc2Resp.error.errno, 0) print("attachEbsToDc2, jobUuid:", attachEbsToDc2Resp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', attachEbsToDc2Resp.data[0].jobUuid) # 轮询等待结果 print("attachEbsToDc2, success:", success) self.assertTrue(success)
def test_03_list_dc2(self): print("================Begin Test List Dc2================") listResp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) print(listResp) self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0)
def test_05_get_dc2_by_uuid(self): print("================Begin Test Get Dc2 By Uuid================") listResp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) getDc2ByUuidResp = cli.dc2Stub.GetDc2ByUuid( c.GetDc2ByUuidRequest(header=c.Header(regionId='gz'), dc2Uuid=listResp.data[0].dc2Uuid)) print(getDc2ByUuidResp) self.assertEqual(getDc2ByUuidResp.error.errno, 0) self.assertTrue(len(getDc2ByUuidResp.data) > 0)
def test_07_continue_monthly(self): print("================Begin Test Get Dc2 By Uuid================") listResp = cli.dc2Stub.ListDc2(c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) continueMonthlyReq = c.ContinueMonthlyRequest(header=c.Header(regionId='gz'), payPeriod=3) # 续费3个月 resourceToContinueMonthly = continueMonthlyReq.resource.add() # 添加一个待操作的资源 resourceToContinueMonthly.resourceUuid = listResp.data[0].dc2Uuid resourceToContinueMonthly.resourceType = 'dc2' continueMonthlyResp = cli.billStub.ContinueMonthly(continueMonthlyReq) print(continueMonthlyResp) self.assertEqual(continueMonthlyResp.error.errno, 0)
def test_08_change_expire_strategy(self): print("================Begin Test Start Dc2================") listResp = cli.dc2Stub.ListDc2(c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) changeExpireStrategyReq = c.ChangeExpireStrategyRequest(header=c.Header(regionId='gz'), autoRenewCnt=2, autoSwitch=True) # 到期自动续费2个月,若余额不足以续费则自动转包月 resourceToChangeStrategy = changeExpireStrategyReq.resource.add() # 添加一个待操作的资源 resourceToChangeStrategy.resourceUuid = listResp.data[0].dc2Uuid resourceToChangeStrategy.resourceType = 'dc2' changeExpireStrategyResp = cli.billStub.ChangeExpireStrategy(changeExpireStrategyReq) print(changeExpireStrategyResp) self.assertEqual(changeExpireStrategyResp.error.errno, 0)
def test_08_reboot_dc2(self): print("================Begin Test Reboot Dc2================") listResp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) rebootDc2Request = c.RebootDc2Request(header=c.Header(regionId='gz')) dc2ToReboot = rebootDc2Request.dc2.add() # 添加一个待操作的dc2 dc2ToReboot.dc2Uuid = listResp.data[0].dc2Uuid rebootDc2Resp = cli.dc2Stub.RebootDc2(rebootDc2Request) print(rebootDc2Resp) self.assertEqual(rebootDc2Resp.error.errno, 0) print("rebootDc2, jobUuid:", rebootDc2Resp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', rebootDc2Resp.data[0].jobUuid) # 轮询等待结果 print("rebootDc2, success:", success) self.assertTrue(success)
def test_01_create_snap(self): print("================Begin Test Create Snap================") listDc2Resp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个gz的DC2的Uuid self.assertEqual(listDc2Resp.error.errno, 0) self.assertTrue(len(listDc2Resp.data) > 0) createSnapReq = c.CreateSnapshotRequest( header=c.Header(regionId='gz'), dc2Uuid=listDc2Resp.data[0].dc2Uuid, snapName='testSnap') # 给DC2打快照 createSnapResp = cli.snapStub.CreateSnapshot(createSnapReq) print(createSnapResp) self.assertEqual(createSnapResp.error.errno, 0) print("createSnap, jobUuid:", createSnapResp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', createSnapResp.data[0].jobUuid) # 轮询等待结果 print("createSnap, success:", success) self.assertTrue(success)
def test_12_change_dc2_spec(self): print("================Begin Test Change Dc2 Spec================") listResp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) changeDcSpecRequest = c.ChangeDc2SpecRequest(header=c.Header( regionId='gz')) dc2ToChangeSpec = changeDcSpecRequest.dc2.add() dc2ToChangeSpec.dc2Uuid = listResp.data[0].dc2Uuid dc2ToChangeSpec.dc2Model = "dc2.s1.small2.d40" changeDcSpecResp = cli.dc2Stub.ChangeDc2Spec(changeDcSpecRequest) print(changeDcSpecResp) self.assertEqual(changeDcSpecResp.error.errno, 0) print("changeDc2Spec, jobUuid:", changeDcSpecResp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', changeDcSpecResp.data[0].jobUuid) # 轮询等待结果 print("changeDc2Spec, success:", success) self.assertTrue(success)
def test_09_change_dc2_name(self): print("================Begin Test Change Dc2 Name================") listResp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) changeDc2NameRequest = c.ChangeDc2NameRequest(header=c.Header( regionId='gz')) dc2TochangeName = changeDc2NameRequest.dc2.add() # 添加一个待操作的dc2 dc2TochangeName.dc2Uuid = listResp.data[0].dc2Uuid dc2TochangeName.name = "newDc2Name" changeDc2NameResp = cli.dc2Stub.ChangeDc2Name(changeDc2NameRequest) print(changeDc2NameResp) self.assertEqual(changeDc2NameResp.error.errno, 0) print("changeDc2Name, jobUuid:", changeDc2NameResp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', changeDc2NameResp.data[0].jobUuid) # 轮询等待结果 print("changeDc2Name, success:", success) self.assertTrue(success)
def test_10_change_dc2_password(self): print("================Begin Test Change Dc2 Password================") listResp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) changeDc2PasswordRequest = c.ChangeDc2PasswordRequest(header=c.Header( regionId='gz')) dc2ToChangePassword = changeDc2PasswordRequest.dc2.add() # 添加一个待操作的dc2 dc2ToChangePassword.dc2Uuid = listResp.data[0].dc2Uuid dc2ToChangePassword.password = str_to_hex("newDc2Password123") changeDc2PasswordResp = cli.dc2Stub.ChangeDc2Password( changeDc2PasswordRequest) print(changeDc2PasswordResp) self.assertEqual(changeDc2PasswordResp.error.errno, 0) print("changeDc2Password, jobUuid:", changeDc2PasswordResp.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', changeDc2PasswordResp.data[0].jobUuid) # 轮询等待结果 print("changeDc2Password, success:", success) self.assertTrue(success)
def test_16_destroy_dc2(self): print("================Begin Test Delete Dc2================") listResp = cli.dc2Stub.ListDc2( c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listResp.error.errno, 0) self.assertTrue(len(listResp.data) > 0) destroyDc2Request = c.DestroyDc2Request( header=c.Header(regionId='gz'), deleteEip=True, deleteEbs=True, ignoreSlb=True) # 同时删除Eip,Ebs,忽略DC2上绑定的Slb dc2ToDetroy = destroyDc2Request.dc2.add() dc2ToDetroy.dc2Uuid = listResp.data[0].dc2Uuid destroyDc2Response = cli.dc2Stub.DestroyDc2(destroyDc2Request) print(destroyDc2Response) self.assertEqual(destroyDc2Response.error.errno, 0) print("destroyDc2, jobUuid:", destroyDc2Response.data[0].jobUuid) success = cli.wait_for_job_result( 'gz', destroyDc2Response.data[0].jobUuid) # 轮询等待结果 print("destroyDc2, success:", success) self.assertTrue(success)
def test_01_get_charge_info_and_spec(self): print("================Begin Test Get Charge Info And Spec================") # DC2 listDc2Resp = cli.dc2Stub.ListDc2(c.ListDc2Request(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个DC2的Uuid self.assertEqual(listDc2Resp.error.errno, 0) self.assertTrue(len(listDc2Resp.data) > 0) dc2Req = c.GetChargeInfoAndSpecRequest(header=c.Header(regionId='gz')) resource = dc2Req.resource.add() resource.resourceUuid = listDc2Resp.data[0].dc2Uuid getDc2ChargeInfoAndSpecResp = cli.billStub.GetDc2ChargeInfoAndSpec(dc2Req) self.assertEqual(getDc2ChargeInfoAndSpecResp.error.errno, 0) self.assertTrue(len(getDc2ChargeInfoAndSpecResp.data) > 0) # EIP listEipResp = cli.eipStub.ListEip(c.ListEipRequest(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个Eip的Uuid self.assertEqual(listEipResp.error.errno, 0) self.assertTrue(len(listEipResp.data) > 0) eipReq = c.GetChargeInfoAndSpecRequest(header=c.Header(regionId='gz')) resource = eipReq.resource.add() resource.resourceUuid = listEipResp.data[0].eipUuid getEipChargeInfoAndSpecResp = cli.billStub.GetEipChargeInfoAndSpec(eipReq) self.assertEqual(getEipChargeInfoAndSpecResp.error.errno, 0) self.assertTrue(len(getEipChargeInfoAndSpecResp.data) > 0) # EBS listEbsResp = cli.ebsStub.ListEbs(c.ListEbsRequest(header=c.Header(regionId='gz'), start=0, limit=10)) # 获取一个Ebs的Uuid self.assertEqual(listEbsResp.error.errno, 0) self.assertTrue(len(listEbsResp.data) > 0) ebsReq = c.GetChargeInfoAndSpecRequest(header=c.Header(regionId='gz')) resource = ebsReq.resource.add() resource.resourceUuid = listEbsResp.data[0].ebsUuid getEbsChargeInfoAndSpecResp = cli.billStub.GetEbsChargeInfoAndSpec(ebsReq) self.assertEqual(getEbsChargeInfoAndSpecResp.error.errno, 0) self.assertTrue(len(getEbsChargeInfoAndSpecResp.data) > 0)