summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLadislav Smola <lsmola@redhat.com>2013-07-25 16:45:38 +0200
committerTomas Sedovic <tomas@sedovic.cz>2013-08-01 16:18:57 +0200
commit7be5c16f3d7a5f3f1eaaccc20a72ded8871238cb (patch)
tree6423187d04878f353cc142f65cc9e1fceeb22ee2
parentd3a38bf44c042c04ab1b939710f48a8deb7f323e (diff)
downloadtuskar-ui-7be5c16f3d7a5f3f1eaaccc20a72ded8871238cb.tar.gz
Provisioning and uprovisoing of rack
- added buttons for provision and unprovision - ssh tunnel to 04 server is tuskar is remote - eg: ssh -NfL 16385:127.0.0.1:6385 demo@example.com if you use non-standards port like me (16385) you can change this in openstack_dashboard/local/local_settings.py Change-Id: I82a421bc2a6fcc37110735f1621706f8d0898237
-rw-r--r--openstack_dashboard/api/tuskar.py8
-rw-r--r--openstack_dashboard/dashboards/infrastructure/resource_management/racks/forms.py37
-rw-r--r--openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html9
-rw-r--r--openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/detail.html3
4 files changed, 43 insertions, 14 deletions
diff --git a/openstack_dashboard/api/tuskar.py b/openstack_dashboard/api/tuskar.py
index 46841017..c49609ee 100644
--- a/openstack_dashboard/api/tuskar.py
+++ b/openstack_dashboard/api/tuskar.py
@@ -500,6 +500,14 @@ class Rack(StringIdAPIResourceWrapper):
# FIXME just mock implementation, add proper one
return 100 - self.total_instances
+ def is_provisioned(self):
+ return (self.state == 'provisioned')
+
+ @classmethod
+ def provision(cls, request, rack_id):
+ tuskarclient(request).data_centers.provision_all()
+
+
class ResourceClass(StringIdAPIResourceWrapper):
"""Wrapper for the ResourceClass object returned by the
diff --git a/openstack_dashboard/dashboards/infrastructure/resource_management/racks/forms.py b/openstack_dashboard/dashboards/infrastructure/resource_management/racks/forms.py
index eba7dc63..13c3abbc 100644
--- a/openstack_dashboard/dashboards/infrastructure/resource_management/racks/forms.py
+++ b/openstack_dashboard/dashboards/infrastructure/resource_management/racks/forms.py
@@ -125,20 +125,29 @@ class UpdateRackStatus(forms.SelfHandlingForm):
rack = self.initial.get('rack', None)
action = request.GET.get('action')
- if action == "start":
- rack.state = "active"
- elif action == "reboot":
- rack.state = "active"
- elif action == "shutdown":
- rack.state = "off"
-
- rack = api.tuskar.Rack.update(
- request,
- rack.id,
- {'state': rack.state}
- )
-
- msg = _('Updated rack "%s" status.') % rack.name
+ if action == "provision":
+ rack = api.tuskar.Rack.provision(
+ request,
+ rack.id)
+
+ msg = _('Rack "%s" is being provisioned.') % rack.name
+ else:
+ if action == "start":
+ rack.state = "active"
+ elif action == "unprovision":
+ rack.state = "unprovisioned"
+ elif action == "reboot":
+ rack.state = "active"
+ elif action == "shutdown":
+ rack.state = "off"
+
+ rack = api.tuskar.Rack.update(
+ request,
+ rack.id,
+ {'state': rack.state}
+ )
+
+ msg = _('Updated rack "%s" status.') % rack.name
messages.success(request, msg)
return True
except:
diff --git a/openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html b/openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html
index 48e12b00..f6930dfd 100644
--- a/openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html
+++ b/openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/_detail_overview.html
@@ -2,6 +2,15 @@
{% load url from future %}
{% load chart_helpers %}
+{% if not rack.is_provisioned %}
+ <div class="info row-fluid detail">
+ <div class="span12">
+ <div class="well provision-block" style="text-align: center; margin: 2px;">
+ <a class="btn btn-large btn-block btn-primary ajax-modal" href="{% url 'horizon:infrastructure:resource_management:racks:edit_status' rack.id %}?action=provision">{% trans "Provision Rack" %}</a>
+ </div>
+ </div>
+ </div>
+{% endif %}
<div class="info row-fluid detail">
<div class="span4">
<h4>{% trans "About" %}</h4>
diff --git a/openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/detail.html b/openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/detail.html
index 4068b679..6af6b914 100644
--- a/openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/detail.html
+++ b/openstack_dashboard/dashboards/infrastructure/resource_management/templates/resource_management/racks/detail.html
@@ -22,6 +22,9 @@
<a class="btn ajax-modal" href="{% url 'horizon:infrastructure:resource_management:racks:edit_status' rack.id %}?action=start">{% trans "Start" %}</a>
<a class="btn ajax-modal" href="{% url 'horizon:infrastructure:resource_management:racks:edit_status' rack.id %}?action=reboot">{% trans "Reboot" %}</a>
<a class="btn ajax-modal" href="{% url 'horizon:infrastructure:resource_management:racks:edit_status' rack.id %}?action=shutdown">{% trans "Shutdown" %}</a>
+ {% if rack.is_provisioned %}
+ <a class="btn ajax-modal" href="{% url 'horizon:infrastructure:resource_management:racks:edit_status' rack.id %}?action=unprovision">{% trans "Unprovision Rack" %}</a>
+ {% endif %}
</div>
<div class="btn-group">
<a class="btn ajax-modal" href="{% url 'horizon:infrastructure:resource_management:racks:detail_edit' rack.id %}">{% trans "Edit" %}</a>