def servers_list(request): """ Servers page. """ def get_hosts_status(hosts): """ Function return all hosts all vds on host """ all_hosts = [] for host in hosts: if (connection_manager.host_is_up(host.hostname, host.login, host.password, host.type)): status = 1 else: status = 'Unknown Error' all_hosts.append({ 'id': host.id, 'name': host.name, 'hostname': host.hostname, 'status': status, 'type': host.type, 'login': host.login, 'password': host.password }) return all_hosts computes = Compute.objects.filter() hosts_info = get_hosts_status(computes) form = None if request.method == 'POST': if 'host_del' in request.POST: compute_id = request.POST.get('host_id', '') 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']) new_tcp_host.save() return HttpResponseRedirect(request.get_full_path()) 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']) new_ssh_host.save() object = {'response': {'id': new_ssh_host.id}} return redirect_or_json(object, request.get_full_path(), request) else: object = {'errors': [error for error in form.errors]} return render(object, 'servers.html', locals(), request) 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']) new_tls_host.save() return HttpResponseRedirect(request.get_full_path()) 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.save() return HttpResponseRedirect(request.get_full_path()) object = {'errors': {}, 'response': {'hosts_info': hosts_info}} return render(object, 'servers.html', locals(), request)
def servers_list(request): """ Servers page. """ if not request.user.is_authenticated(): return HttpResponseRedirect('/login') def get_hosts_status(hosts): """ Function return all hosts all vds on host """ all_hosts = [] for host in hosts: all_hosts.append({ 'id': host.id, 'name': host.name, 'hostname': host.hostname, 'status': connection_manager.host_is_up(host.type, host.hostname), 'type': host.type, 'login': host.login, 'password': host.password }) return all_hosts computes = Compute.objects.filter() hosts_info = get_hosts_status(computes) form = None if request.method == 'POST': if 'host_del' in request.POST: compute_id = request.POST.get('host_id', '') 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']) new_tcp_host.save() return HttpResponseRedirect(request.get_full_path()) 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']) new_ssh_host.save() return HttpResponseRedirect(request.get_full_path()) 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']) new_tls_host.save() return HttpResponseRedirect(request.get_full_path()) 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.save() return HttpResponseRedirect(request.get_full_path()) 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'], hostname='localhost', type=CONN_SOCKET, login='', password='') new_socket_host.save() return HttpResponseRedirect(request.get_full_path()) return render_to_response('servers.html', locals(), context_instance=RequestContext(request))
def servers_list(request): """ Servers page. """ if not request.user.is_authenticated(): return HttpResponseRedirect('/login') def get_hosts_status(hosts): """ Function return all hosts all vds on host """ all_hosts = [] for host in hosts: try: socket_host = socket.socket(socket.AF_INET, socket.SOCK_STREAM) socket_host.settimeout(1) if host.type == CONN_SSH: if ':' in host.hostname: LIBVIRT_HOST, PORT = (host.hostname).split(":") PORT = int(PORT) else: PORT = SSH_PORT LIBVIRT_HOST = host.hostname socket_host.connect((LIBVIRT_HOST, PORT)) if host.type == CONN_TCP: socket_host.connect((host.hostname, TCP_PORT)) if host.type == CONN_TLS: socket_host.connect((host.hostname, TLS_PORT)) socket_host.close() status = 1 except Exception as err: status = err all_hosts.append({ 'id': host.id, 'name': host.name, 'hostname': host.hostname, 'status': status, 'type': host.type, 'login': host.login, 'password': host.password }) return all_hosts computes = Compute.objects.filter() hosts_info = get_hosts_status(computes) form = None if request.method == 'POST': if 'host_del' in request.POST: compute_id = request.POST.get('host_id', '') 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']) new_tcp_host.save() return HttpResponseRedirect(request.get_full_path()) 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']) new_ssh_host.save() return HttpResponseRedirect(request.get_full_path()) 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']) new_tls_host.save() return HttpResponseRedirect(request.get_full_path()) 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.save() return HttpResponseRedirect(request.get_full_path()) return render_to_response('servers.html', locals(), context_instance=RequestContext(request))