From cb5b0c1ecb9377ecaab25be750aeccecb3899ecf Mon Sep 17 00:00:00 2001 From: catborise <catborise@yahoo.com> Date: Tue, 4 Sep 2018 15:28:51 +0300 Subject: [PATCH 1/2] add title to snapshot operations and fix redirect path --- instances/templates/instance.html | 6 +++--- instances/views.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/instances/templates/instance.html b/instances/templates/instance.html index 98cf692..3c650ff 100644 --- a/instances/templates/instance.html +++ b/instances/templates/instance.html @@ -512,7 +512,7 @@ </li> <li role="presentation"> <a href="#managesnapshot" aria-controls="managesnapshot" role="tab" data-toggle="tab"> - {% trans "Manage Snapshot" %} + {% trans "Manage Snapshots" %} </a> </li> </ul> @@ -560,7 +560,7 @@ <form action="" method="post" style="height:10px" role="form">{% csrf_token %} <input type="hidden" name="name" value="{{ snap.name }}"> {% ifequal status 5 %} - <button type="submit" class="btn btn-sm btn-default" name="revert_snapshot" onclick="return confirm('Are you sure?')"> + <button type="submit" class="btn btn-sm btn-default" name="revert_snapshot" title="Revert to this Snapshot" onclick="return confirm('Are you sure?')"> <span class="glyphicon glyphicon-save"></span> </button> {% else %} @@ -573,7 +573,7 @@ <td style="width:30px;"> <form action="" method="post" role="form">{% csrf_token %} <input type="hidden" name="name" value="{{ snap.name }}"> - <button type="submit" class="btn btn-sm btn-default" name="delete_snapshot" onclick="return confirm('{% trans "Are you sure?" %}')"> + <button type="submit" class="btn btn-sm btn-default" name="delete_snapshot" title="Delete Snapshot" onclick="return confirm('{% trans "Are you sure?" %}')"> <span class="glyphicon glyphicon-trash"></span> </button> </form> diff --git a/instances/views.py b/instances/views.py index ac188ed..5bf95b1 100644 --- a/instances/views.py +++ b/instances/views.py @@ -565,14 +565,14 @@ def instance(request, compute_id, vname): conn.create_snapshot(name) msg = _("New snapshot") addlogmsg(request.user.username, instance.name, msg) - return HttpResponseRedirect(request.get_full_path() + '#restoresnapshot') + return HttpResponseRedirect(request.get_full_path() + '#managesnapshot') if 'delete_snapshot' in request.POST: snap_name = request.POST.get('name', '') conn.snapshot_delete(snap_name) msg = _("Delete snapshot") addlogmsg(request.user.username, instance.name, msg) - return HttpResponseRedirect(request.get_full_path() + '#restoresnapshot') + return HttpResponseRedirect(request.get_full_path() + '#managesnapshot') if 'revert_snapshot' in request.POST: snap_name = request.POST.get('name', '') From 0f7a110535554f0a92e4d780c31a5e448efbd542 Mon Sep 17 00:00:00 2001 From: catborise <catborise@yahoo.com> Date: Wed, 5 Sep 2018 09:30:08 +0300 Subject: [PATCH 2/2] show vdi url on access tab. some typo and convention fix. gethostbyaddr exception mitigated. --- datasource/views.py | 17 +++++++++++++---- instances/templates/instance.html | 8 +++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/datasource/views.py b/datasource/views.py index d23d99a..163ecb5 100644 --- a/datasource/views.py +++ b/datasource/views.py @@ -7,13 +7,15 @@ from libvirt import libvirtError import json import socket -OS_VERSIONS = [ 'latest', '' ] +OS_VERSIONS = ['latest', ''] OS_UUID = "iid-dswebvirtcloud" + def os_index(request): response = '\n'.join(OS_VERSIONS) return HttpResponse(response) + def os_metadata_json(request, version): """ :param request: @@ -27,9 +29,10 @@ def os_metadata_json(request, version): response = { 'uuid': OS_UUID, 'hostname': hostname } return HttpResponse(json.dumps(response)) else: - err = 'Invalid version: %s' % version + err = 'Invalid version: {}'.format(version) raise Http404(err) + def os_userdata(request, version): """ :param request: @@ -51,9 +54,10 @@ def os_userdata(request, version): return render(request, 'user_data', locals()) else: - err = 'Invalid version: %s' % version + err = 'Invalid version: {}'.format(version) raise Http404(err) + def get_client_ip(request): x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') if x_forwarded_for: @@ -62,10 +66,15 @@ def get_client_ip(request): ip = request.META.get('REMOTE_ADDR') return ip + def get_hostname_by_ip(ip): - addrs = socket.gethostbyaddr(ip) + try: + addrs = socket.gethostbyaddr(ip) + except Exception: + addrs = [ip,] return addrs[0] + def get_vdi_url(request, vname): instance = Instance.objects.get(name=vname) compute = instance.compute diff --git a/instances/templates/instance.html b/instances/templates/instance.html index 3c650ff..ba5c891 100644 --- a/instances/templates/instance.html +++ b/instances/templates/instance.html @@ -321,7 +321,12 @@ {% ifequal status 1 %} <div role="tabpanel" class="tab-pane tab-pane-bordered" id="vdiconsole"> <p>{% trans "This action opens a remote viewer with a connection to the console of the instance." %}</p> - <a href="#" class="btn btn-lg btn-success pull-right" id="vdi_url" >{% trans "VDI" %}</a> + <div class="input-group"> + <input type="text" class="input-lg disabled form-control" disabled id="vdi_url_input"/> + <span class="input-group-btn"> + <a href="#" class="btn btn-lg btn-success" id="vdi_url" >{% trans "VDI" %}</a> + </span> + </div> <div class="clearfix"></div> </div> {% endifequal %} @@ -1337,6 +1342,7 @@ $(document).ready(function () { // set vdi url $.get("/datasource/vdi/{{ vname }}/", function(data) { + $("#vdi_url_input").attr("value", data); $("#vdi_url").attr("href", data); }); });