import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcore.http.http_config import HttpConfig
from huaweicloudsdksms.v3.region.sms_region import SmsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdksms.v3 import SmsClient, CreateMigprojectRequest, PostMigProjectBody, ListMigprojectsRequest, \
UpdateDefaultMigprojectRequest, UpdateMigprojectRequest, MigProject, DeleteMigprojectRequest
class Migproject:
def __init__(self):
pass
@staticmethod
def list_migprojects(client):
request = ListMigprojectsRequest()
response = client.list_migprojects(request)
print(response.__class__)
print(response)
return response.migprojects
@staticmethod
def create_migproject(client):
request = CreateMigprojectRequest()
request.body = PostMigProjectBody(
syncing=False,
type="MIGRATE_FILE",
exist_server=True,
use_public_ip=True,
region="ap-southeast-1",
description="",
name="MIGPROJECT_NAME"
)
response = client.create_migproject(request)
print(response.__class__)
print(response)
return response.id
@staticmethod
def update_default_migproject(client, id):
migproject_list = Migproject.list_migprojects(client)
for single_migproject in migproject_list:
if single_migproject.isdefault:
default_migproject_id = single_migproject.id
break
request = UpdateDefaultMigprojectRequest()
request.mig_project_id = id
response = client.update_default_migproject(request)
print(response)
request.mig_project_id = default_migproject_id
response = client.update_default_migproject(request)
print(response.__class__)
print(response)
@staticmethod
def update_migproject(client, id):
request = UpdateMigprojectRequest()
request.mig_project_id = id
request.body = MigProject(
syncing=True,
type="MIGRATE_FILE",
exist_server=True,
use_public_ip=True,
region="ap-southeast-1",
name="<YOUR MIGPROJCET NAME>"
)
response = client.update_migproject(request)
print(response.__class__)
print(response)
@staticmethod
def delete_migproject(client, id):
request = DeleteMigprojectRequest()
request.mig_project_id = id
response = client.delete_migproject(request)
print(response.__class__)
print(response)
@staticmethod
def main(args):
ak = os.environ["HUAWEICLOUD_SDK_AK"]
sk = os.environ["HUAWEICLOUD_SDK_SK"]
credentials = BasicCredentials(ak, sk) \
config = HttpConfig.get_default_config()
config.ignore_ssl_verification = True
client = SmsClient.new_builder() \
.with_credentials(credentials) \
.with_http_config(config) \
.with_region(SmsRegion.value_of("<REGION ID>")) \
.build()
try:
migprojcet_id = Migproject.create_migproject(client)
Migproject.update_default_migproject(client, migprojcet_id)
Migproject.update_migproject(client, migprojcet_id)
Migproject.delete_migproject(client, migprojcet_id)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
if __name__ == "__main__":
Migproject().main(any)