def test_detail_view_with_exception(self): cgroup = self.cinder_consistencygroups.first() cinder.volume_cgroup_get(IsA(http.HttpRequest), cgroup.id).\ AndRaise(self.exceptions.cinder) self.mox.ReplayAll() url = reverse('horizon:virtual:volumes:cgroups:detail', args=[cgroup.id]) res = self.client.get(url) self.assertRedirectsNoFollow(res, VOLUME_INDEX_URL)
def test_detail_view_with_exception(self): cgroup = self.cinder_consistencygroups.first() cinder.volume_cgroup_get(IsA(http.HttpRequest), cgroup.id).\ AndRaise(self.exceptions.cinder) self.mox.ReplayAll() url = reverse('horizon:project:cgroups:detail', args=[cgroup.id]) res = self.client.get(url) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, INDEX_URL)
def test_delete_cgroup(self): cgroup = self.cinder_consistencygroups.first() cinder.volume_cgroup_get(IsA(http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_delete(IsA(http.HttpRequest), cgroup.id, force=False) self.mox.ReplayAll() url = reverse('horizon:project:cgroups:delete', args=[cgroup.id]) res = self.client.post(url) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, INDEX_URL)
def test_delete_cgroup(self): cgroup = self.cinder_consistencygroups.first() cinder.volume_cgroup_get(IsA(http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_delete(IsA(http.HttpRequest), cgroup.id, force=False) self.mox.ReplayAll() url = reverse('horizon:project:cgroups:delete', args=[cgroup.id]) res = self.client.post(url) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, INDEX_URL)
def test_delete_cgroup_force_flag(self): cgroup = self.cinder_consistencygroups.first() formData = {'delete_volumes': True} cinder.volume_cgroup_get(IsA(http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_delete(IsA(http.HttpRequest), cgroup.id, force=True) self.mox.ReplayAll() url = reverse('horizon:project:volumes:cgroups:delete', args=[cgroup.id]) res = self.client.post(url, formData) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, VOLUME_INDEX_URL)
def test_delete_cgroup_force_flag(self): cgroup = self.cinder_consistencygroups.first() formData = {'delete_volumes': True} cinder.volume_cgroup_get(IsA(http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_delete(IsA(http.HttpRequest), cgroup.id, force=True) self.mox.ReplayAll() url = reverse('horizon:admin:volumes:cgroups:delete', args=[cgroup.id]) res = self.client.post(url, formData) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, VOLUME_INDEX_URL)
def prepare_cgroup_source_field(self, request, cgroup_id): try: cgroup = cinder.volume_cgroup_get(request, cgroup_id) self.fields['cgroup_source'].choices = ((cgroup_id, cgroup), ) except Exception: exceptions.handle( request, _('Unable to load the specified ' 'consistency group.'))
def test_delete_cgroup_exception(self): cgroup = self.cinder_consistencygroups.first() formData = {'delete_volumes': False} cinder.volume_cgroup_get(IsA(http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_delete(IsA(http.HttpRequest), cgroup.id, force=False).\ AndRaise(self.exceptions.cinder) self.mox.ReplayAll() url = reverse('horizon:compute_user:volume2:cgroups:delete', args=[cgroup.id]) res = self.client.post(url, formData) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, VOLUME_INDEX_URL)
def prepare_cgroup_source_field(self, request, cgroup_id): try: cgroup = cinder.volume_cgroup_get(request, cgroup_id) self.fields['cgroup_source'].choices = ((cgroup_id, cgroup),) except Exception: exceptions.handle(request, _('Unable to load the specified ' 'consistency group.'))
def _get_object(self, *args, **kwargs): cgroup_id = self.kwargs['cgroup_id'] try: cgroup = cinder.volume_cgroup_get(self.request, cgroup_id) except Exception: exceptions.handle(self.request, _('Unable to retrieve consistency group ' 'details.'), redirect=reverse(INDEX_URL)) return cgroup
def get_object(self): cgroup_id = self.kwargs['cgroup_id'] try: self._object = cinder.volume_cgroup_get(self.request, cgroup_id) except Exception: exceptions.handle(self.request, _('Unable to retrieve consistency group ' 'details.'), redirect=reverse(INDEX_URL)) return self._object
def test_update_cgroup_name_and_description(self): cgroup = self.cinder_consistencygroups.first() formData = {'volume_types': '1', 'name': 'test CG-new', 'description': 'test desc-new'} cinder.volume_cgroup_get(IsA( http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_update( IsA(http.HttpRequest), formData['name'], formData['description'])\ .AndReturn(cgroup) self.mox.ReplayAll() url = reverse('horizon:project:volumes:cgroups:update', args=[cgroup.id]) res = self.client.post(url, formData) self.assertNoFormErrors(res)
def test_update_cgroup_name_and_description(self): cgroup = self.cinder_consistencygroups.first() formData = {'volume_types': '1', 'name': 'test CG-new', 'description': 'test desc-new'} cinder.volume_cgroup_get(IsA( http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_update( IsA(http.HttpRequest), formData['name'], formData['description'])\ .AndReturn(cgroup) self.mox.ReplayAll() url = reverse('horizon:project:volumes:cgroups:update', args=[cgroup.id]) res = self.client.post(url, formData) self.assertNoFormErrors(res)
def test_update_cgroup_with_exception(self): cgroup = self.cinder_consistencygroups.first() formData = {'volume_types': '1', 'name': 'test CG-new', 'description': 'test desc-new'} cinder.volume_cgroup_get(IsA( http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_update( IsA(http.HttpRequest), formData['name'], formData['description'])\ .AndRaise(self.exceptions.cinder) self.mox.ReplayAll() url = reverse('horizon:project:volumes:cgroups:update', args=[cgroup.id]) res = self.client.post(url, formData) self.assertRedirectsNoFollow(res, VOLUME_INDEX_URL)
def test_update_cgroup_with_exception(self): cgroup = self.cinder_consistencygroups.first() formData = {'volume_types': '1', 'name': 'test CG-new', 'description': 'test desc-new'} cinder.volume_cgroup_get(IsA( http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_update( IsA(http.HttpRequest), formData['name'], formData['description'])\ .AndRaise(self.exceptions.cinder) self.mox.ReplayAll() url = reverse('horizon:project:volumes:cgroups:update', args=[cgroup.id]) res = self.client.post(url, formData) self.assertRedirectsNoFollow(res, VOLUME_INDEX_URL)
def test_update_cgroup_remove_vol(self): cgroup = self.cinder_consistencygroups.first() volume = self.cinder_volumes.first() formData = {'volume_types': '1', 'name': 'test CG', 'description': 'test desc'} cinder.volume_cgroup_get(IsA( http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_update( IsA(http.HttpRequest), formData['name'], formData['description'], remove_vols=volume)\ .AndReturn(cgroup) self.mox.ReplayAll() url = reverse('horizon:project:cgroups:update', args=[cgroup.id]) res = self.client.post(url, formData) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, INDEX_URL)
def test_update_cgroup_remove_vol(self): cgroup = self.cinder_consistencygroups.first() volume = self.cinder_volumes.first() formData = {'volume_types': '1', 'name': 'test CG', 'description': 'test desc'} cinder.volume_cgroup_get(IsA( http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_cgroup_update( IsA(http.HttpRequest), formData['name'], formData['description'], remove_vols=volume)\ .AndReturn(cgroup) self.mox.ReplayAll() url = reverse('horizon:project:cgroups:update', args=[cgroup.id]) res = self.client.post(url, formData) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, INDEX_URL)
def test_detail_view(self): cg_snapshot = self.cinder_cg_snapshots.first() cgroup = self.cinder_consistencygroups.first() volume_type = self.cinder_volume_types.first() volumes = self.cinder_volumes.list() cinder.volume_cg_snapshot_get(IsA(http.HttpRequest), cg_snapshot.id).\ AndReturn(cg_snapshot) cinder.volume_cgroup_get(IsA(http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_type_get(IsA(http.HttpRequest), volume_type.id).\ MultipleTimes().AndReturn(volume_type) search_opts = {'consistencygroup_id': cgroup.id} cinder.volume_list(IsA(http.HttpRequest), search_opts=search_opts).\ AndReturn(volumes) self.mox.ReplayAll() url = reverse( 'horizon:project:cg_snapshots:cg_snapshot_detail', args=[cg_snapshot.id]) res = self.client.get(url) self.assertNoFormErrors(res) self.assertEqual(res.status_code, 200)
def test_detail_view(self): cg_snapshot = self.cinder_cg_snapshots.first() cgroup = self.cinder_consistencygroups.first() volume_type = self.cinder_volume_types.first() volumes = self.cinder_volumes.list() cinder.volume_cg_snapshot_get(IsA(http.HttpRequest), cg_snapshot.id).\ AndReturn(cg_snapshot) cinder.volume_cgroup_get(IsA(http.HttpRequest), cgroup.id).\ AndReturn(cgroup) cinder.volume_type_get(IsA(http.HttpRequest), volume_type.id).\ MultipleTimes().AndReturn(volume_type) search_opts = {'consistencygroup_id': cgroup.id} cinder.volume_list(IsA(http.HttpRequest), search_opts=search_opts).\ AndReturn(volumes) self.mox.ReplayAll() url = reverse( 'horizon:project:cg_snapshots:cg_snapshot_detail', args=[cg_snapshot.id]) res = self.client.get(url) self.assertNoFormErrors(res) self.assertEqual(res.status_code, 200)
def get_data(self, request, cgroup_id): cgroup = cinder.volume_cgroup_get(request, cgroup_id) return cgroup