Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)