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')
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')
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")
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")
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")
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)