def handle(self, request, data): try: volume = cinder.volume_get(request, data['volume_id']) force = False message = _('Creating volume snapshot "%s".') % data['name'] if volume.status == 'in-use': force = True message = _('Forcing to create snapshot "%s" ' 'from attached volume.') % data['name'] snapshot = cinder.volume_snapshot_create(request, data['volume_id'], data['name'], data['description'], force=force) messages.info(request, message) return snapshot except Exception as e: redirect = reverse("horizon:project:volumes:index") msg = _('Unable to create volume snapshot.') if e.code == 413: msg = _('Requested snapshot would exceed the allowed quota.') exceptions.handle(request, msg, redirect=redirect)
def handle(self, request, data): try: snapshot = cinder.volume_snapshot_create(request, data["volume_id"], data["name"], data["description"]) message = _('Creating volume snapshot "%s"') % data["name"] messages.info(request, message) return snapshot except Exception: redirect = reverse("horizon:project:images_and_snapshots:index") exceptions.handle(request, _("Unable to create volume snapshot."), redirect=redirect)
def test_create_snapshot_post(self): volume = self.volumes.first() snapshot = self.volume_snapshots.first() cinder.volume_snapshot_create(IsA(http.HttpRequest), volume.id, snapshot.display_name, snapshot.display_description) \ .AndReturn(snapshot) self.mox.ReplayAll() formData = {'method': 'CreateSnapshotForm', 'tenant_id': self.tenant.id, 'volume_id': volume.id, 'name': snapshot.display_name, 'description': snapshot.display_description} url = reverse('horizon:project:volumes:create_snapshot', args=[volume.id]) res = self.client.post(url, formData) self.assertRedirectsNoFollow(res, INDEX_URL)
def test_force_create_snapshot(self): volume = self.cinder_volumes.get(name='my_volume') snapshot = self.cinder_volume_snapshots.first() cinder.volume_get(IsA(http.HttpRequest), volume.id) \ .AndReturn(volume) cinder.volume_snapshot_create(IsA(http.HttpRequest), volume.id, snapshot.name, snapshot.description, force=True) \ .AndReturn(snapshot) self.mox.ReplayAll() formData = {'method': 'CreateSnapshotForm', 'tenant_id': self.tenant.id, 'volume_id': volume.id, 'name': snapshot.name, 'description': snapshot.description} url = reverse('horizon:storage:volumes:volumes:create_snapshot', args=[volume.id]) res = self.client.post(url, formData) self.assertRedirectsNoFollow(res, VOLUME_SNAPSHOTS_TAB_URL)
def handle(self, request, data): try: volume = cinder.volume_get(request, data["volume_id"]) force = False message = _('Creating volume snapshot "%s".') % data["name"] if volume.status == "in-use": force = True message = _('Forcing to create snapshot "%s" ' "from attached volume.") % data["name"] snapshot = cinder.volume_snapshot_create( request, data["volume_id"], data["name"], data["description"], force=force ) messages.info(request, message) return snapshot except Exception: redirect = reverse("horizon:project:volumes:index") exceptions.handle(request, _("Unable to create volume snapshot."), redirect=redirect)
def handle(self, request, data): try: volume = cinder.volume_get(request, data['volume_id']) force = False message = _('Creating volume snapshot "%s".') % data['name'] if volume.status == 'in-use': force = True message = _('Forcing to create snapshot "%s" ' 'from attached volume.') % data['name'] snapshot = cinder.volume_snapshot_create(request, data['volume_id'], data['name'], data['description'], force=force) messages.info(request, message) return snapshot except Exception as e: redirect = reverse("horizon:admin:volumes:index") msg = _('Unable to create volume snapshot.') if e.code == 413: msg = _('Requested snapshot would exceed the allowed quota.') exceptions.handle(request, msg, redirect=redirect)
def handle(self, request, data): try: volume = cinder.volume_get(request, data['volume_id']) force = False message = _('Creating volume snapshot "%s".') % data['name'] if volume.status == 'in-use': force = True message = _('Forcing to create snapshot "%s" ' 'from attached volume.') % data['name'] snapshot = cinder.volume_snapshot_create(request, data['volume_id'], data['name'], data['description'], force=force) messages.info(request, message) return snapshot except Exception: redirect = reverse("horizon:project:volumes:index") exceptions.handle(request, _('Unable to create volume snapshot.'), redirect=redirect)
def handle(self, request, data): try: volume = cinder.volume_get(request, data['volume_id']) force = False message = _('Creating volume snapshot "%s".') % data['name'] if volume.status == 'in-use': force = True message = _('Forcing to create snapshot "%s" ' 'from attached volume.') % data['name'] snapshot = cinder.volume_snapshot_create(request, data['volume_id'], data['name'], data['description'], force=force) messages.info(request, message) return snapshot except Exception: redirect = reverse("horizon:project:images_and_snapshots:index") exceptions.handle(request, _('Unable to create volume snapshot.'), redirect=redirect)
def handle(self, request, data): try: volume = cinder.volume_get(request, data['volume_id']) force = False message = _('Creating volume snapshot "%s".') % data['name'] if volume.status == 'in-use': force = True message = _('Forcing to create snapshot "%s" ' 'from attached volume.') % data['name'] user_snap_total = cinder.volume_snapshot_list(request) try: if len(user_snap_total) >= USER_QUOTA: message = _( 'As per Expostack policy, only %s snapshots are allowed per user in a perticular project.' 'Please contact [email protected] for any queries.' ) % USER_QUOTA raise messages.error(request, message) except: return snapshot = cinder.volume_snapshot_create(request, data['volume_id'], data['name'], data['description'], force=force) messages.info(request, message) return snapshot except Exception as e: redirect = reverse("horizon:project:volumes:index") msg = _('Unable to create volume snapshot.') if e.code == 413: msg = _('Requested snapshot would exceed the allowed quota.') exceptions.handle(request, msg, redirect=redirect)