:param request: :return:
(request, compute_id)
| 12 | |
| 13 | |
| 14 | def create_instance(request, compute_id): |
| 15 | """ |
| 16 | :param request: |
| 17 | :return: |
| 18 | """ |
| 19 | |
| 20 | if not request.user.is_authenticated(): |
| 21 | return HttpResponseRedirect(reverse('index')) |
| 22 | |
| 23 | if not request.user.is_superuser: |
| 24 | return HttpResponseRedirect(reverse('index')) |
| 25 | |
| 26 | conn = None |
| 27 | error_messages = [] |
| 28 | storages = [] |
| 29 | networks = [] |
| 30 | meta_prealloc = False |
| 31 | computes = Compute.objects.all() |
| 32 | compute = get_object_or_404(Compute, pk=compute_id) |
| 33 | flavors = Flavor.objects.filter().order_by('id') |
| 34 | |
| 35 | try: |
| 36 | conn = wvmCreate(compute.hostname, |
| 37 | compute.login, |
| 38 | compute.password, |
| 39 | compute.type) |
| 40 | |
| 41 | storages = sorted(conn.get_storages()) |
| 42 | networks = sorted(conn.get_networks()) |
| 43 | instances = conn.get_instances() |
| 44 | get_images = sorted(conn.get_storages_images()) |
| 45 | mac_auto = util.randomMAC() |
| 46 | except libvirtError as lib_err: |
| 47 | error_messages.append(lib_err) |
| 48 | |
| 49 | if conn: |
| 50 | if not storages: |
| 51 | msg = _("You haven't defined any storage pools") |
| 52 | error_messages.append(msg) |
| 53 | if not networks: |
| 54 | msg = _("You haven't defined any network pools") |
| 55 | error_messages.append(msg) |
| 56 | |
| 57 | if request.method == 'POST': |
| 58 | if 'create_flavor' in request.POST: |
| 59 | form = FlavorAddForm(request.POST) |
| 60 | if form.is_valid(): |
| 61 | data = form.cleaned_data |
| 62 | create_flavor = Flavor(label=data['label'], |
| 63 | vcpu=data['vcpu'], |
| 64 | memory=data['memory'], |
| 65 | disk=data['disk']) |
| 66 | create_flavor.save() |
| 67 | return HttpResponseRedirect(request.get_full_path()) |
| 68 | if 'delete_flavor' in request.POST: |
| 69 | flavor_id = request.POST.get('flavor', '') |
| 70 | delete_flavor = Flavor.objects.get(id=flavor_id) |
| 71 | delete_flavor.delete() |
nothing calls this directly
no test coverage detected