def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['vg_snapshot_id'] = self.kwargs['vg_snapshot_id'] args = (self.kwargs['vg_snapshot_id'], ) context['submit_url'] = reverse(self.submit_url, args=args) try: # get number of volumes we will be creating vg_snapshot = cinder.group_snapshot_get(self.request, context['vg_snapshot_id']) group_id = vg_snapshot.group_id search_opts = {'group_id': group_id} volumes = api.cinder.volume_list(self.request, search_opts=search_opts) num_volumes = len(volumes) usages = quotas.tenant_quota_usages(self.request, targets=('volumes', 'gigabytes')) if (usages['volumes']['used'] + num_volumes > usages['volumes']['quota']): raise ValueError( _('Unable to create group due to ' 'exceeding volume quota limit.')) context['numRequestedItems'] = num_volumes context['usages'] = usages except ValueError as e: exceptions.handle(self.request, e.message) return None except Exception: exceptions.handle(self.request, _('Unable to retrieve group information.')) return context
def get_context_data(self, **kwargs): context = super(CreateGroupView, self).get_context_data(**kwargs) context['vg_snapshot_id'] = self.kwargs['vg_snapshot_id'] args = (self.kwargs['vg_snapshot_id'],) context['submit_url'] = reverse(self.submit_url, args=args) try: # get number of volumes we will be creating vg_snapshot = cinder.group_snapshot_get( self.request, context['vg_snapshot_id']) group_id = vg_snapshot.group_id search_opts = {'group_id': group_id} volumes = api.cinder.volume_list(self.request, search_opts=search_opts) num_volumes = len(volumes) usages = quotas.tenant_quota_usages( self.request, targets=('volumes', 'gigabytes')) if (usages['volumes']['used'] + num_volumes > usages['volumes']['quota']): raise ValueError(_('Unable to create group due to ' 'exceeding volume quota limit.')) else: context['numRequestedItems'] = num_volumes context['usages'] = usages except ValueError as e: exceptions.handle(self.request, e.message) return None except Exception: exceptions.handle(self.request, _('Unable to retrieve group information.')) return context
def prepare_snapshot_source_field(self, request, vg_snapshot_id): try: vg_snapshot = cinder.group_snapshot_get(request, vg_snapshot_id) self.fields['snapshot_source'].choices = ((vg_snapshot_id, vg_snapshot),) except Exception: exceptions.handle(request, _('Unable to load the specified snapshot.'))
def get_data(self, request, snapshot_id): snapshot = cinder.volume_snapshot_get(request, snapshot_id) snapshot._volume = cinder.volume_get(request, snapshot.volume_id) if getattr(snapshot, 'group_snapshot_id', None): snapshot.group_snapshot = cinder.group_snapshot_get( request, snapshot.group_snapshot_id) else: snapshot.group_snapshot = None return snapshot
def get_data(self, request, vg_snapshot_id): vg_snapshot = cinder.group_snapshot_get(request, vg_snapshot_id) if getattr(vg_snapshot, 'group_id', None): try: vg_snapshot.group = cinder.group_get(request, vg_snapshot.group_id) except Exception: exceptions.handle(request, _("Unable to retrieve group")) vg_snapshot.group = None return vg_snapshot
def get_data(self): try: snapshot_id = self.kwargs['snapshot_id'] snapshot = cinder.volume_snapshot_get(self.request, snapshot_id) snapshot._volume = cinder.volume_get(self.request, snapshot.volume_id) if getattr(snapshot, 'group_snapshot_id', None): snapshot.group_snapshot = cinder.group_snapshot_get( self.request, snapshot.group_snapshot_id) else: snapshot.group_snapshot = None except Exception: redirect = self.get_redirect_url() exceptions.handle(self.request, _('Unable to retrieve snapshot details.'), redirect=redirect) return snapshot