Beispiel #1
0
    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
Beispiel #2
0
    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
Beispiel #3
0
 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.'))
Beispiel #4
0
 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.'))
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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
Beispiel #8
0
 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
Beispiel #9
0
 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
Beispiel #10
0
 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