def setUp(self): self.client.login(username='******', password='******') Compute( name='local', hostname='localhost', login='', password='', details='local', type=4, ).save()
def setUpClass(cls): super().setUpClass() # Add users for testing purposes User = get_user_model() cls.admin_user = User.objects.get(pk=1) cls.test_user = User.objects.create(username='******') UserAttributes.objects.create( user=cls.test_user, max_instances=1, max_cpus=1, max_memory=128, max_disk_size=1, ) permission = Permission.objects.get(codename='clone_instances') cls.test_user.user_permissions.add(permission) # Add localhost compute cls.compute = Compute( name='test-compute', hostname='localhost', login='', password='', details='local', type=4, ) cls.compute.save() cls.connection = wvmCreate( cls.compute.hostname, cls.compute.login, cls.compute.password, cls.compute.type, ) # Add disks for testing cls.connection.create_volume( 'default', 'test-volume', 1, 'qcow2', False, 0, 0, ) # XML for testing vm with open('conf/test-vm.xml', 'r') as f: cls.xml = f.read() # Create testing vm from XML cls.connection._defineXML(cls.xml) refr(cls.compute) cls.instance: Instance = Instance.objects.get(pk=1)
def setUpClass(cls): super().setUpClass() # Add users for testing purposes User = get_user_model() cls.admin_user = User.objects.get(pk=1) cls.test_user = User.objects.create_user(username='******', password='******') # Add localhost compute cls.compute = Compute( name='test-compute', hostname='localhost', login='', password='', details='local', type=4, ) cls.compute.save() cls.connection = wvmCreate( cls.compute.hostname, cls.compute.login, cls.compute.password, cls.compute.type, ) # Add disks for testing cls.connection.create_volume( 'default', 'test-volume', 1, 'qcow2', False, 0, 0, ) # XML for testing vm with open('conf/test-vm.xml', 'r') as f: cls.xml = f.read() # Create testing vm from XML cls.connection._defineXML(cls.xml) refr(cls.compute) cls.instance = Instance.objects.get(pk=1)
def computes(request): """ :param request: :return: """ if not request.user.is_superuser: return HttpResponseRedirect(reverse('index')) def get_hosts_status(computes): """ Function return all hosts all vds on host """ compute_data = [] for compute in computes: compute_data.append({ 'id': compute.id, 'name': compute.name, 'hostname': compute.hostname, 'status': connection_manager.host_is_up(compute.type, compute.hostname), 'type': compute.type, 'login': compute.login, 'password': compute.password, 'details': compute.details }) return compute_data error_messages = [] computes = Compute.objects.filter().order_by('name') computes_info = get_hosts_status(computes) if request.method == 'POST': if 'host_del' in request.POST: compute_id = request.POST.get('host_id', '') try: del_user_inst_on_host = UserInstance.objects.filter( instance__compute_id=compute_id) del_user_inst_on_host.delete() finally: try: del_inst_on_host = Instance.objects.filter( compute_id=compute_id) del_inst_on_host.delete() finally: del_host = Compute.objects.get(id=compute_id) del_host.delete() return HttpResponseRedirect(request.get_full_path()) if 'host_tcp_add' in request.POST: form = ComputeAddTcpForm(request.POST) if form.is_valid(): data = form.cleaned_data new_tcp_host = Compute(name=data['name'], hostname=data['hostname'], type=CONN_TCP, login=data['login'], password=data['password'], details=data['details']) new_tcp_host.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) if 'host_ssh_add' in request.POST: form = ComputeAddSshForm(request.POST) if form.is_valid(): data = form.cleaned_data new_ssh_host = Compute(name=data['name'], hostname=data['hostname'], type=CONN_SSH, login=data['login'], details=data['details']) new_ssh_host.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) if 'host_tls_add' in request.POST: form = ComputeAddTlsForm(request.POST) if form.is_valid(): data = form.cleaned_data new_tls_host = Compute(name=data['name'], hostname=data['hostname'], type=CONN_TLS, login=data['login'], password=data['password'], details=data['details']) new_tls_host.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) if 'host_socket_add' in request.POST: form = ComputeAddSocketForm(request.POST) if form.is_valid(): data = form.cleaned_data new_socket_host = Compute(name=data['name'], details=data['details'], hostname='localhost', type=CONN_SOCKET, login='', password='') new_socket_host.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) if 'host_edit' in request.POST: form = ComputeEditHostForm(request.POST) if form.is_valid(): data = form.cleaned_data compute_edit = Compute.objects.get(id=data['host_id']) compute_edit.name = data['name'] compute_edit.hostname = data['hostname'] compute_edit.login = data['login'] compute_edit.password = data['password'] compute_edit.details = data['details'] compute_edit.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) return render(request, 'computes.html', locals())
def computes(request): """ :param request: :return: """ if not request.user.is_superuser: return HttpResponseRedirect(reverse('index')) def get_hosts_status(computes): """ Function return all hosts all vds on host """ compute_data = [] for compute in computes: compute_data.append({'id': compute.id, 'name': compute.name, 'hostname': compute.hostname, 'status': connection_manager.host_is_up(compute.type, compute.hostname), 'type': compute.type, 'login': compute.login, 'password': compute.password, 'details': compute.details }) return compute_data error_messages = [] computes = Compute.objects.filter().order_by('name') computes_info = get_hosts_status(computes) if request.method == 'POST': if 'host_del' in request.POST: compute_id = request.POST.get('host_id', '') try: del_user_inst_on_host = UserInstance.objects.filter(instance__compute_id=compute_id) del_user_inst_on_host.delete() finally: try: del_inst_on_host = Instance.objects.filter(compute_id=compute_id) del_inst_on_host.delete() finally: del_host = Compute.objects.get(id=compute_id) del_host.delete() return HttpResponseRedirect(request.get_full_path()) if 'host_tcp_add' in request.POST: form = ComputeAddTcpForm(request.POST) if form.is_valid(): data = form.cleaned_data new_tcp_host = Compute(name=data['name'], hostname=data['hostname'], type=CONN_TCP, login=data['login'], password=data['password'], details=data['details']) new_tcp_host.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) if 'host_ssh_add' in request.POST: form = ComputeAddSshForm(request.POST) if form.is_valid(): data = form.cleaned_data new_ssh_host = Compute(name=data['name'], hostname=data['hostname'], type=CONN_SSH, login=data['login'], details=data['details']) new_ssh_host.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) if 'host_tls_add' in request.POST: form = ComputeAddTlsForm(request.POST) if form.is_valid(): data = form.cleaned_data new_tls_host = Compute(name=data['name'], hostname=data['hostname'], type=CONN_TLS, login=data['login'], password=data['password'], details=data['details']) new_tls_host.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) if 'host_socket_add' in request.POST: form = ComputeAddSocketForm(request.POST) if form.is_valid(): data = form.cleaned_data new_socket_host = Compute(name=data['name'], details=data['details'], hostname='localhost', type=CONN_SOCKET, login='', password='') new_socket_host.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) if 'host_edit' in request.POST: form = ComputeEditHostForm(request.POST) if form.is_valid(): data = form.cleaned_data compute_edit = Compute.objects.get(id=data['host_id']) compute_edit.name = data['name'] compute_edit.hostname = data['hostname'] compute_edit.login = data['login'] compute_edit.password = data['password'] compute_edit.details = data['details'] compute_edit.save() return HttpResponseRedirect(request.get_full_path()) else: for msg_err in form.errors.values(): error_messages.append(msg_err.as_text()) return render(request, 'computes.html', locals())