开发笔记3
创建主机
# coding: utf-8
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkecs.v2.region.ecs_region import EcsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkecs.v2 import *
def get_token():
# The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
# In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
ak = ""
sk = ""
credentials = BasicCredentials(ak, sk)
client = EcsClient.new_builder() \
.with_credentials(credentials) \
.with_region(EcsRegion.value_of("cn-north-4")) \
.build()
return client
class server_manager:
def __init__(self,client):
self.client = client
def create_ecs(self,name,imagename):
request = CreateServersRequest()
listDataVolumesServer = [
PrePaidServerDataVolume(
volumetype="SSD",
size=100
)
]
rootVolumeServer = PrePaidServerRootVolume(
volumetype="SSD",
size=100
)
listNicsServer = [
PrePaidServerNic(
subnet_id="58141083-ec71-470a-8bf7-5247d2ac6b7c"
)
]
serverbody = PrePaidServer(
image_ref=imagename,
flavor_ref="ac7.12xlarge.2",
name=name,
vpcid="01d24a38-2d86-4669-bbd2-13f4eae997e9",
nics=listNicsServer,
root_volume=rootVolumeServer,
data_volumes=listDataVolumesServer
)
request.body = CreateServersRequestBody(
server=serverbody
)
response = self.client.create_servers(request)
return response
def get_server_id(self,name):
request = ListServersDetailsRequest()
response = self.client.list_servers_details(request)
for i in response.servers:
if i.name == name:
return i.id
def get_server_detail(self,name):
request = ListServersDetailsRequest()
response = self.client.list_servers_details(request)
strins = str(response)
return strins
def getall_servers(self):
request = ListServersDetailsRequest()
response = self.client.list_servers_details(request)
return response
def delete_server(self,name):
request = DeleteServersRequest()
listServersbody = [
ServerId(
id=self.get_server_id(name)
)
]
request.body = DeleteServersRequestBody(
servers=listServersbody
)
response = self.client.delete_servers(request)
return response
if __name__ == '__main__':
server_manager = server_manager(get_token())
管理主机
import argparse
import json
import ecs_create
ecs_m = ecs_create.server_manager(ecs_create.get_token())
def define_args(parser):
parser.add_argument('command',help='command',type=str)
parser.add_argument('-i','--input',help='input',type= str)
parser.add_argument('-n','-name',help='get',type=str)
parser.add_argument('-o','--output',help='output',type=str)
def parse_args(parser):
args = parser.parse_args()
if args.command:
if args.command == "create":
print("create some thing")
create_ecs(args)
elif args.command == "get":
print("get some thing")
get_ecs(args)
elif args.command == "getall":
print("get all some thing")
getall_ecs(args)
elif args.command == "delete":
print("delete some things")
delete_ecs(args)
def create_ecs(args):
ecs_dict = json.loads(args.input)
print(ecs_dict)
res = ecs_m.create_ecs(ecs_dict["name"],ecs_dict["imagename"])
print(res)
def get_ecs(args):
result = ecs_m.get_server_detail(args.name)
print(result)
outputfile = args.output
req = json.loads(result)
with open(outputfile,'w') as jsonfile:
json.dumps(req,jsonfile,indent=4)
print(req)
def getall_ecs(args):
result = ecs_m.getall_servers_detail()
outputfile = args.output
req = json.loads(result)
with open(outputfile,'w') as yamlfile:
json.dumps(req,yamlfile,indent=4)
print(req)
def delete_ecs(args):
result = ecs_m.delete_server(args.name)
print(result)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
define_args(parser)
parse_args(parser)
- 点赞
- 收藏
- 关注作者
评论(0)