示例#1
0
def flavor_create(request):
    openstack_user = request.session.get('openstack_user')
    if request.method == 'POST':
        result = nvclient.Client().create_flavor(
            user=openstack_user, params=request.POST.get("data_body"))
        return HttpResponse(result)
    return render(request, 'vdc_module/flavor_create.html')
示例#2
0
def instance_create(request):
    if request.method == "POST":
        openstack_user = request.session.get('openstack_user')
        # openstack_user = vdc_user
        result = nvclient.Client().create_servers(
            user=openstack_user, params=request.POST.get("data_body"))
        return HttpResponse(result)
    return render(request, 'vdc_module/instance_create.html')
示例#3
0
def updateServer(request):
    openstack_user = request.session.get('openstack_user')
    # user_role_id = request.session.get('login_role')

    result = nvclient.Client().update_servers(
        user=openstack_user,
        params={"name": request.POST.get("name")},
        identification=request.POST.get("id"))
    return HttpResponse(result, content_type="application/json")
示例#4
0
def getStatusAction(request):
    openstack_user = request.session.get('openstack_user')
    user_role_id = request.session.get('login_role')
    if user_role_id == settings.SYSROLES["SYSVDC"]:
        flag = 1
    elif user_role_id == settings.SYSROLES["SYSUSER"]:
        flag = 0
    else:
        return HttpResponse(json.dumps({"error": "no this role!"}),
                            content_type="application/json")
    return HttpResponse(json.dumps(nvclient.Client().check_action(
        user=openstack_user,
        status=request.POST.get("status"),
        task_status=request.POST.get("task_status"),
        flag=flag)),
                        content_type="application/json")
示例#5
0
def flavor_show(request):
    openstack_user = request.session.get('openstack_user')
    result = nvclient.Client().show_flavor(user=openstack_user)
    return HttpResponse(result, content_type="application/json")
示例#6
0
def sync_database_all():
    print("sync at starting")
    vdc_obj = auth_models.VDC.objects.all()
    for i in range(len(vdc_obj)):
        if not vdc_obj[i].backend_info:
            continue
        print(vdc_obj[i].backend_info)
        opensatck_user = ksclient.Client().register_user(
            key=str(vdc_obj[i].backend_info))
        instance_json = nvclient.Client().show_servers(user=opensatck_user)
        instance_dict = json.loads(instance_json)
        if instance_dict["detect"]["code"] == 1:
            vdc_models.Server.objects.filter(created_in=vdc_obj[i].id).delete()
            for j in range(len(instance_dict["servers"])):
                temp_dict = instance_dict["servers"][j]
                vdc_models.ServerAddresses.objects.filter(
                    server_id=temp_dict["id"]).delete()
                vdc_models.ServerVolume.objects.filter(
                    server_id=temp_dict["id"]).delete()
                vdc_models.ServerSecurityGroup.objects.filter(
                    server_id=temp_dict["id"]).delete()
                if temp_dict.get("os-extended-volumes:volumes_attached"):
                    volume_dict = temp_dict[
                        "os-extended-volumes:volumes_attached"]
                    volume_num = len(volume_dict)
                    for k in range(volume_num):
                        instance_volume_obj = vdc_models.ServerVolume(
                            server_id=temp_dict["id"],
                            volume_id=volume_dict[k]["id"])
                        instance_volume_obj.save()
                if temp_dict.get("addresses"):
                    for key in temp_dict["addresses"].keys():
                        addr_dict = temp_dict["addresses"][key]
                        addr_num = len(addr_dict)
                        for k in range(addr_num):
                            instance_addr_obj = vdc_models.ServerAddresses(
                                server_id=temp_dict["id"],
                                net_name=key,
                                net_addr=addr_dict[k]["addr"],
                                net_type=addr_dict[k]["OS-EXT-IPS:type"],
                                net_mac_addr=addr_dict[k]
                                ["OS-EXT-IPS-MAC:mac_addr"])
                            instance_addr_obj.save()
                if temp_dict.get("security_groups"):
                    security_groups_num = len(temp_dict["security_groups"])
                    # delete same items
                    no_same_security_groups = []
                    for sg in temp_dict["security_groups"]:
                        if sg not in no_same_security_groups:
                            no_same_security_groups.append(sg)
                    for k in range(security_groups_num):
                        instance_sg_obj = vdc_models.ServerSecurityGroup(
                            server_id=temp_dict["id"],
                            security_group_name=temp_dict["security_groups"][k]
                            ["name"])
                        instance_sg_obj.save()
                if not temp_dict["image"]:
                    image_params = ""
                else:
                    image_params = temp_dict["image"]["id"]
                if not temp_dict["metadata"].get("owner"):
                    owner_params = ""
                else:
                    owner_params = temp_dict["metadata"]["owner"]
                instance_obj = vdc_models.Server(
                    name=temp_dict["name"],
                    identification=temp_dict["id"],
                    created_by=owner_params,  # user_id
                    created_in=vdc_obj[i].id,  # project_id
                    flavor_id=temp_dict["flavor"]["id"],
                    image_id=image_params,
                    host_id=temp_dict["hostId"],
                    status=temp_dict["status"],
                    task_state=temp_dict["OS-EXT-STS:task_state"],
                    vm_state=temp_dict["OS-EXT-STS:vm_state"],
                    created_time=temp_dict["created"],
                    updated_time=temp_dict["updated"],
                    key_name=temp_dict["key_name"],
                )
                instance_obj.save()
        else:
            print("sync error!")
        ksclient.Client().revoke_user(opensatck_user)