39 lines
1.4 KiB
Plaintext
39 lines
1.4 KiB
Plaintext
async def terminate_uhost_instance(ns={}):
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
ucloud_user_li = await sor.R('ucloud_users', {'orgid': 'main_user', 'del_flg': '0'})
|
|
if ucloud_user_li:
|
|
uc_client = U_Client({
|
|
"project_id": ucloud_user_li[0]['projectid'],
|
|
"public_key": ucloud_user_li[0]['accesskey'],
|
|
"private_key": ucloud_user_li[0]['accesskeysecret'],
|
|
})
|
|
else:
|
|
return {
|
|
'status': False,
|
|
'msg': 'can not find u cloud user'
|
|
}
|
|
try:
|
|
resp = uc_client.uhost().terminate_uhost_instance({
|
|
"Region": ns.get('region'),
|
|
"Zone": ns.get('Zone'),
|
|
"UHostId": ns.get('UHostId'),
|
|
"ReleaseEIP": False if ns.get('ReleaseEIP') == 'false' else True,
|
|
"ReleaseUDisk": False if ns.get('ReleaseUDisk') == 'false' else True
|
|
})
|
|
return {
|
|
'status': True,
|
|
'msg': 'delete uhost success',
|
|
'data': resp
|
|
}
|
|
except exc.UCloudException as e:
|
|
msg = e
|
|
if 'Make sure your UHost is SHUTOFF' in str(e):
|
|
msg = '请关机后再删除'
|
|
return {
|
|
'status': False,
|
|
'msg': '%s' % str(msg)
|
|
}
|
|
|
|
ret = await terminate_uhost_instance(params_kw)
|
|
return ret |