diff options
author | Ladislav Smola <lsmola@redhat.com> | 2013-07-25 16:45:38 +0200 |
---|---|---|
committer | Tomas Sedovic <tomas@sedovic.cz> | 2013-08-01 16:18:57 +0200 |
commit | 7be5c16f3d7a5f3f1eaaccc20a72ded8871238cb (patch) | |
tree | 6423187d04878f353cc142f65cc9e1fceeb22ee2 | |
parent | d3a38bf44c042c04ab1b939710f48a8deb7f323e (diff) | |
download | tuskar-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
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> |