Add Server Reboot/Soft Reboot actions
Change-Id: Id71ef311cd8c515af0f1052f3793bf4a95a14c2c
This commit is contained in:
parent
b05a0bc9fb
commit
60c1be6150
|
@ -102,6 +102,20 @@ def server_stop(request, server_id):
|
||||||
return server_manager.set_power_state(server_id, 'off')
|
return server_manager.set_power_state(server_id, 'off')
|
||||||
|
|
||||||
|
|
||||||
|
def server_reboot(request, server_id, soft_reboot=False):
|
||||||
|
"""Reboot a server.
|
||||||
|
|
||||||
|
:param request: HTTP request.
|
||||||
|
:param server_id: The uuid of the server.
|
||||||
|
"""
|
||||||
|
server_manager = moganclient(request).server
|
||||||
|
if soft_reboot:
|
||||||
|
target = 'soft_reboot'
|
||||||
|
else:
|
||||||
|
target = 'reboot'
|
||||||
|
return server_manager.set_power_state(server_id, target)
|
||||||
|
|
||||||
|
|
||||||
def keypair_list(request):
|
def keypair_list(request):
|
||||||
"""Retrieve a list of keypairs.
|
"""Retrieve a list of keypairs.
|
||||||
|
|
||||||
|
|
|
@ -143,6 +143,70 @@ class StopServer(tables.BatchAction):
|
||||||
mogan.server_stop(request, obj_id)
|
mogan.server_stop(request, obj_id)
|
||||||
|
|
||||||
|
|
||||||
|
class RebootServer(tables.BatchAction):
|
||||||
|
name = "reboot"
|
||||||
|
classes = ('btn-reboot',)
|
||||||
|
help_text = _("Restarted servers will lose any data"
|
||||||
|
" not saved in persistent storage.")
|
||||||
|
action_type = "danger"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def action_present(count):
|
||||||
|
return ungettext_lazy(
|
||||||
|
u"Hard Reboot Server",
|
||||||
|
u"Hard Reboot Servers",
|
||||||
|
count
|
||||||
|
)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def action_past(count):
|
||||||
|
return ungettext_lazy(
|
||||||
|
u"Hard Rebooted Server",
|
||||||
|
u"Hard Rebooted Servers",
|
||||||
|
count
|
||||||
|
)
|
||||||
|
|
||||||
|
def allowed(self, request, server=None):
|
||||||
|
if server is not None:
|
||||||
|
return ((server.status.lower() == 'active'
|
||||||
|
or server.status.lower() == 'stopped')
|
||||||
|
and not (server.status.lower() == 'deleting'))
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
def action(self, request, obj_id):
|
||||||
|
mogan.server_reboot(request, obj_id, soft_reboot=False)
|
||||||
|
|
||||||
|
|
||||||
|
class SoftRebootServer(RebootServer):
|
||||||
|
name = "soft_reboot"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def action_present(count):
|
||||||
|
return ungettext_lazy(
|
||||||
|
u"Soft Reboot Server",
|
||||||
|
u"Soft Reboot Servers",
|
||||||
|
count
|
||||||
|
)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def action_past(count):
|
||||||
|
return ungettext_lazy(
|
||||||
|
u"Soft Rebooted Server",
|
||||||
|
u"Soft Rebooted Servers",
|
||||||
|
count
|
||||||
|
)
|
||||||
|
|
||||||
|
def action(self, request, obj_id):
|
||||||
|
mogan.server_reboot(request, obj_id, soft_reboot=True)
|
||||||
|
|
||||||
|
def allowed(self, request, server=None):
|
||||||
|
if server is not None:
|
||||||
|
return server.status.lower() == 'active'
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class UpdateRow(tables.Row):
|
class UpdateRow(tables.Row):
|
||||||
ajax = True
|
ajax = True
|
||||||
|
|
||||||
|
@ -254,6 +318,7 @@ class ServersTable(tables.DataTable):
|
||||||
verbose_name = _("Servers")
|
verbose_name = _("Servers")
|
||||||
status_columns = ["status"]
|
status_columns = ["status"]
|
||||||
row_class = UpdateRow
|
row_class = UpdateRow
|
||||||
table_actions_menu = (StartServer, StopServer)
|
table_actions_menu = (StartServer, StopServer, SoftRebootServer)
|
||||||
table_actions = (LaunchLink, DeleteServer, ServersFilterAction)
|
table_actions = (LaunchLink, DeleteServer, ServersFilterAction)
|
||||||
row_actions = (StartServer, StopServer, DeleteServer,)
|
row_actions = (StartServer, StopServer, SoftRebootServer,
|
||||||
|
RebootServer, DeleteServer)
|
||||||
|
|
Loading…
Reference in New Issue