Merge "Add delete server action"

This commit is contained in:
Jenkins 2017-05-07 11:29:15 +00:00 committed by Gerrit Code Review
commit 1e363adb5f
2 changed files with 47 additions and 2 deletions

View File

@ -46,7 +46,7 @@ def server_list(request):
def server_get(request, server_id):
"""Retrieve a list of servers.
"""Get a server.
:param request: HTTP request.
:param server_id: The uuid of the server.
@ -54,3 +54,13 @@ def server_get(request, server_id):
"""
server_manager = moganclient(request).server
return server_manager.get(server_id)
def server_delete(request, server_id):
"""Delete a server.
:param request: HTTP request.
:param server_id: The uuid of the server.
"""
server_manager = moganclient(request).server
return server_manager.delete(server_id)

View File

@ -16,6 +16,7 @@
from django.template.defaultfilters import title
from django.utils.translation import pgettext_lazy
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy
from mogan_ui.api import mogan
@ -23,6 +24,39 @@ from horizon import tables
from horizon.utils import filters
class DeleteServer(tables.DeleteAction):
help_text = _("Deleted servers are not recoverable.")
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Server",
u"Delete Servers",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Scheduled deletion of Server",
u"Scheduled deletion of Servers",
count
)
def allowed(self, request, server=None):
"""Allow delete action
if server is in error state or not currently being deleted.
"""
error_state = False
if server:
error_state = (server.status == 'error')
return error_state or not (server.status.lower() == "deleting")
def action(self, request, obj_id):
mogan.server_delete(request, obj_id)
class UpdateRow(tables.Row):
ajax = True
@ -107,4 +141,5 @@ class ServersTable(tables.DataTable):
verbose_name = _("Servers")
status_columns = ["status"]
row_class = UpdateRow
table_actions = (ServersFilterAction,)
table_actions = (DeleteServer, ServersFilterAction)
row_actions = (DeleteServer,)