Implement delete segment
Added delete segment functionality. Also added test cases that actually not covering the line of code but tested the delete segment functionally. Partial-Implements: blueprint masakari-dashboard Change-Id: Iabf59e92be9de09d2d2fde48fea403b7cd2bcd26
This commit is contained in:
parent
c429554def
commit
30d318803f
|
@ -110,3 +110,9 @@ def segment_create(request, data):
|
|||
def get_segment(request, segment_id):
|
||||
"""Returns segment by id"""
|
||||
return openstack_connection(request).get_segment(segment_id)
|
||||
|
||||
|
||||
@handle_errors(_("Unable to delete segment"), [])
|
||||
def segment_delete(request, segment_id, ignore_missing=True):
|
||||
return openstack_connection(request).delete_segment(
|
||||
segment_id, ignore_missing)
|
||||
|
|
|
@ -14,6 +14,9 @@
|
|||
# under the License.
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import ungettext_lazy
|
||||
|
||||
from masakaridashboard.api import api
|
||||
|
||||
from horizon import tables
|
||||
|
||||
|
@ -37,6 +40,27 @@ class SegmentFilterAction(tables.FilterAction):
|
|||
filter_choices = SEGMENT_FILTER_CHOICES
|
||||
|
||||
|
||||
class DeleteSegment(tables.DeleteAction):
|
||||
@staticmethod
|
||||
def action_present(count):
|
||||
return ungettext_lazy(
|
||||
u"Delete Segment",
|
||||
u"Delete Segments",
|
||||
count
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def action_past(count):
|
||||
return ungettext_lazy(
|
||||
u"Deleted Segment",
|
||||
u"Deleted Segments",
|
||||
count
|
||||
)
|
||||
|
||||
def delete(self, request, segment_uuid):
|
||||
api.segment_delete(request, segment_uuid, ignore_missing=True)
|
||||
|
||||
|
||||
class FailoverSegmentTable(tables.DataTable):
|
||||
|
||||
name = tables.WrappingColumn('name', verbose_name=_("Name"), truncate=40)
|
||||
|
@ -55,4 +79,4 @@ class FailoverSegmentTable(tables.DataTable):
|
|||
class Meta(object):
|
||||
name = "failover_segment"
|
||||
verbose_name = _("FailoverSegment")
|
||||
table_actions = (CreateSegment, SegmentFilterAction)
|
||||
table_actions = (DeleteSegment, CreateSegment, SegmentFilterAction)
|
||||
|
|
|
@ -149,3 +149,25 @@ class SegmentTest(test.TestCase):
|
|||
url=url, has_more=True, has_prev=False)
|
||||
segments = res.context['failover_segment_table'].data
|
||||
self.assertItemsEqual(segments, expected_segments)
|
||||
|
||||
def test_delete_ok(self):
|
||||
|
||||
segment = self.masakari_segment.list()[0]
|
||||
data = {'object_ids': [segment.uuid],
|
||||
'action': 'failover_segment__delete'}
|
||||
with mock.patch(
|
||||
'masakaridashboard.api.api.get_segment_list',
|
||||
return_value=(self.masakari_segment.list(), True, True)
|
||||
), mock.patch(
|
||||
'masakaridashboard.api.api.segment_delete',
|
||||
return_value=None
|
||||
) as mocked_delete:
|
||||
res = self.client.post(INDEX_URL, data)
|
||||
|
||||
self.assertNoFormErrors(res)
|
||||
self.assertRedirectsNoFollow(res, INDEX_URL)
|
||||
mocked_delete.assert_called_once_with(
|
||||
mock.ANY,
|
||||
segment.uuid,
|
||||
ignore_missing=True
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue