def handle(self, request, data): try: message = _('Creating consistency group snapshot "%s".') \ % data['name'] snapshot = cinder.volume_cg_snapshot_create(request, data['cgroup_id'], data['name'], data['description']) messages.info(request, message) return snapshot except Exception as e: redirect = reverse("horizon:project:volumes:index") msg = _('Unable to create consistency group snapshot.') if e.code == 413: msg = _('Requested snapshot would exceed the allowed quota.') else: search_opts = {'consistentcygroup_id': data['cgroup_id']} volumes = cinder.volume_list(request, search_opts=search_opts) if len(volumes) == 0: msg = _('Unable to create snapshot. Consistency group ' 'must contain volumes.') exceptions.handle(request, msg, redirect=redirect)
def handle(self, request, data): try: message = _('Creating consistency group snapshot "%s".') \ % data['name'] snapshot = cinder.volume_cg_snapshot_create(request, data['cgroup_id'], data['name'], data['description']) messages.info(request, message) return snapshot except Exception as e: redirect = reverse("horizon:project:cgroups:index") msg = _('Unable to create consistency group snapshot.') if e.code == 413: msg = _('Requested snapshot would exceed the allowed quota.') else: search_opts = {'consistentcygroup_id': data['cgroup_id']} volumes = cinder.volume_list(request, search_opts=search_opts) if len(volumes) == 0: msg = _('Unable to create snapshot. Consistency group ' 'must contain volumes.') exceptions.handle(request, msg, redirect=redirect)
def test_create_snapshot(self): cgroup = self.cinder_consistencygroups.first() cg_snapshot = self.cinder_cg_snapshots.first() formData = {'cgroup_id': cgroup.id, 'name': 'test CG Snapshot', 'description': 'test desc'} cinder.volume_cg_snapshot_create( IsA(http.HttpRequest), formData['cgroup_id'], formData['name'], formData['description'])\ .AndReturn(cg_snapshot) self.mox.ReplayAll() url = reverse('horizon:project:cgroups:create_snapshot', args=[cgroup.id]) res = self.client.post(url, formData) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, VOLUME_CGROUPS_SNAP_INDEX_URL)
def test_create_snapshot(self): cgroup = self.cinder_consistencygroups.first() cg_snapshot = self.cinder_cg_snapshots.first() formData = {'cgroup_id': cgroup.id, 'name': 'test CG Snapshot', 'description': 'test desc'} cinder.volume_cg_snapshot_create( IsA(http.HttpRequest), formData['cgroup_id'], formData['name'], formData['description'])\ .AndReturn(cg_snapshot) self.mox.ReplayAll() url = reverse('horizon:project:cgroups:create_snapshot', args=[cgroup.id]) res = self.client.post(url, formData) self.assertNoFormErrors(res) self.assertRedirectsNoFollow(res, VOLUME_CGROUPS_SNAP_INDEX_URL)