Exemple #1
0
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()
Exemple #2
0
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()
Exemple #3
0
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']
Exemple #4
0
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"}')
Exemple #5
0
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
Exemple #6
0
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