def create_user(user_data): """创建用户""" admin_token_id = get_admin_token("admin", "admin") headers = { "Content-type": "application/json", "X-Auth-Token": admin_token_id, "Accept": "application/json" } url = KEYSTONE_ENDPOINT_ADMIN_USERS r = requests.put(url=url, data=user_data, headers=headers) return r.json()
def update_user(user_id, user_data): """更新用户,包括用户名、密码、是否激活""" admin_token_id = get_admin_token("admin", "admin")['access']['token']['id'] headers = { "Content-type": "application/json", "X-Auth-Token": admin_token_id, "Accept": "application/json" } url = KEYSTONE_ENDPOINT_ADMIN_USERS + '/' + user_id r = requests.put(url=url, data=json.dumps(user_data), headers=headers) return r.json()
def _get_network_quota(tenant_id): """根据获取所有网络方面的配额""" admin_token_id = get_admin_token("admin", "admin")['access']['token']['id'] headers = { "Content-type": "application/json", "X-Auth-Token": admin_token_id, "Accept": "application/json" } url = NEUTRON_ENDPOINT + '/quotas/' + tenant_id r = requests.get(url, headers=headers) network_info_list = r.json() return network_info_list['quota']
def delete_user(user_id): """删除用户""" admin_token_id = get_admin_token("admin", "admin") headers = { "Content-type": "application/json", "X-Auth-Token": admin_token_id, "Accept": "application/json" } url = KEYSTONE_ENDPOINT_ADMIN_USERS + '/' + user_id r = requests.delete(url=url, headers=headers) return r.status_code() # def update_user(token, user_id, user_data): # """更新用户,包括用户名、密码、是否激活""" # if auth_is_available(token): # admin_token_id = get_admin_token("admin", "admin")['access']['token']['id'] # headers = {"Content-type": "application/json", "X-Auth-Token": admin_token_id, "Accept": "application/json"} # url = KEYSTONE_ENDPOINT_ADMIN_USERS + '/' + user_id # r = requests.put(url=url, data=json.dumps(user_data), headers=headers) # return r.json() # else: # return json.loads('{"error":"not available"}') # # # def create_user(token, user_data): # """创建用户""" # if auth_is_available(token): # admin_token_id = get_admin_token("admin", "admin") # headers = {"Content-type": "application/json", "X-Auth-Token": admin_token_id, "Accept": "application/json"} # url = KEYSTONE_ENDPOINT_ADMIN_USERS # print url # r = requests.put(url=url, data=user_data, headers=headers) # return r.json() # else: # return json.loads('{"error":"not available"}') # # # def delete_user(token, user_id): # """删除用户""" # if auth_is_available(token): # admin_token_id = get_admin_token("admin", "admin") # headers = {"Content-type": "application/json", "X-Auth-Token": admin_token_id, "Accept": "application/json"} # url = KEYSTONE_ENDPOINT_ADMIN_USERS + '/' + user_id # print url # r = requests.delete(url=url, headers=headers) # return r.status_code() # else: # return json.loads('{"error":"not available"}')
def get_tenant_instance_host_ip(token_id, tenant_id, instance_id): """获取租户虚拟机对应的主机的IP以及端口信息(超级管理员权限)""" instance = get_tenant_instance_inteface(token_id, tenant_id, instance_id) host_id = instance["server"]["hostId"] admin_token = get_admin_token("admin", "admin") admin_token_id = admin_token['access']['token']['id'] admin_tenant_id = admin_token['access']['token']['tenant']['id'] hypervisor_detail = get_hypervisor_detail(admin_token_id, admin_tenant_id) for hypervisor in hypervisor_detail["hypervisors"]: sha_hash = hashlib.sha224( tenant_id + hypervisor["hypervisor_hostname"]).hexdigest() if sha_hash == host_id: instance["server"]["hostIP"] = hypervisor["host_ip"] break return instance
def _get_compute_quota(tenant_id): """根据租户id获取计算方面的配额""" compute_quota = {} admin_token = get_admin_token("admin", "admin") admin_token_id = admin_token['access']['token']['id'] admin_tenant_id = admin_token['access']['token']['tenant']['id'] headers = { "Content-type": "application/json", "X-Auth-Token": admin_token_id, "Accept": "application/json" } url = NOVA_ENDPOINT.format( tenant_id=admin_tenant_id) + '/os-quota-sets/' + tenant_id r = requests.get(url, headers=headers) compute_quota_list = r.json() compute_quota['cores'] = compute_quota_list['quota_set']['cores'] compute_quota['instances'] = compute_quota_list['quota_set']['instances'] compute_quota['ram'] = compute_quota_list['quota_set']['ram'] return compute_quota