import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.cvm.v20170312 import cvm_client, models
cred = credential.EnvironmentVariableCredential().get_credential()
httpProfile = HttpProfile()
httpProfile.endpoint = "cvm.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
aria = 'ap-nanjing'
client = cvm_client.CvmClient(cred,aria, clientProfile)
def img_share(img_id,img_name,accountids):
try:
req1 = models.ModifyImageSharePermissionRequest()
params1 = {
"ImageId": img_id,
"AccountIds": accountids,
"Permission": "SHARE"
}
req1.from_json_string(json.dumps(params1))
resp1 = client.ModifyImageSharePermission(req1)
response1 = json.loads(resp1.to_json_string())
print(img_name,'Shared successfully!',response1)
except TencentCloudSDKException as err:
print(img_name,'Sharing failed!',err)
try:
req = models.DescribeImagesRequest()
params = {
"Filters": [
{
"Name": "image-type",
"Values": ["PRIVATE_IMAGE"]
}
],
"Limit": 100
}
req.from_json_string(json.dumps(params))
resp = client.DescribeImages(req)
response = json.loads(resp.to_json_string())
img_num = response["TotalCount"]
print('Obtaining the image list...')
share_config = input('1. Share all images\\n\\n2. Manually determine the images to share\\n\\n Enter 1 or 2 and press the Enter key. Default value: 2:') or '2'
accountids = input('Enter the UINs of users with whom the images are to share, and separate the UINs with commas:').split(",")
for i in range(img_num):
basic = response['ImageSet'][i]
img_id = basic['ImageId']
img_name = basic['ImageName']
if share_config == '1':
img_share(img_id,img_name,accountids)
elif share_config == '2':
print('Image ID: ',img_id,'Image name: ',img_name)
share_choice = input('Whether to share this image y/n:') or 'y'
if share_choice == 'y':
img_share(img_id,img_name,accountids)
elif share_choice == 'n':
continue
else:
print('Please specify a correct option!')
else:
print('Please specify a correct option!')
except TencentCloudSDKException as err:
print(err)
Was this page helpful?