Example #1
0
    def handle(self, request, data):
        volume_id = self.initial['volume_id']
        try:
            volume = cinder.volume_update(request, volume_id, data['name'],
                                          data['description'])
        except Exception:
            redirect = reverse("horizon:project:volumes:index")
            exceptions.handle(request,
                              _('Unable to update volume.'),
                              redirect=redirect)

        # only update bootable flag if modified
        make_bootable = data['bootable']
        if make_bootable != self.initial['bootable']:
            try:
                cinder.volume_set_bootable(request, volume_id, make_bootable)
            except Exception:
                redirect = reverse("horizon:project:volumes:index")
                exceptions.handle(request,
                                  _('Unable to set bootable flag on volume.'),
                                  redirect=redirect)

        name_or_id = volume["volume"]["name"] or volume["volume"]["id"]
        message = _('Updating volume "%s"') % name_or_id
        messages.info(request, message)
        return True
Example #2
0
    def handle(self, request, data):
        volume_id = self.initial['volume_id']
        try:
            cinder.volume_update(request, volume_id, data['name'],
                                 data['description'])
        except Exception:
            redirect = reverse("horizon:project:volumes:index")
            exceptions.handle(request,
                              _('Unable to update volume.'),
                              redirect=redirect)

        # only update bootable flag if modified
        make_bootable = data['bootable']
        if make_bootable != self.initial['bootable']:
            try:
                cinder.volume_set_bootable(request, volume_id, make_bootable)
            except Exception:
                redirect = reverse("horizon:project:volumes:index")
                exceptions.handle(request,
                                  _('Unable to set bootable flag on volume.'),
                                  redirect=redirect)

        message = _('Updating volume "%s"') % data['name']
        messages.info(request, message)
        return True
Example #3
0
    def handle(self, request, data):
        volume_id = self.initial['volume_id']
        try:
            cinder.volume_update(request, volume_id, data['name'],
                                 data['description'])
        except Exception:
            redirect = reverse("horizon:project:volumes:index")
            exceptions.handle(request,
                              _('Unable to update volume.'),
                              redirect=redirect)

        # only update bootable flag if modified
        make_bootable = data['bootable']
        if make_bootable != self.initial['bootable']:
            try:
                cinder.volume_set_bootable(request, volume_id, make_bootable)
            except Exception:
                redirect = reverse("horizon:project:volumes:index")
                exceptions.handle(request,
                                  _('Unable to set bootable flag on volume.'),
                                  redirect=redirect)

        meta = {}
        metadata_list = request.POST.getlist("metadata")
        if metadata_list:
            for item in metadata_list:
                if "=" in item:
                    key, val = item.split("=")
                    meta[key] = val
        old_meta = {}
        try:
            volume = cinder.volume_get(self.request, volume_id)
            old_meta = volume.metadata
        except Exception:
            msg = _('Unable to retrieve instance details.')
            exceptions.handle(self.request, msg)

        delete_meta = dict((k,v) for k,v in old_meta.items() if k not in meta)
        update_meta =  dict((k,v) for k,v in meta.items() if k not in old_meta
                or meta[k] != old_meta[k])

        if update_meta:
            try:
                cinder.volume_update_meta(request, volume_id, update_meta)
            except Exception as e:
                exceptions.handle(request, str(e))

        if delete_meta:
            try:
                cinder.volume_delete_meta(request, volume_id, delete_meta)
            except Exception as e:
                exceptions.handle(request, str(e))
                return False

        message = _('Updating volume "%s"') % data['name']
        messages.info(request, message)
        return True
Example #4
0
    def handle(self, request, data):
        volume_id = self.initial['volume_id']
        try:
            cinder.volume_update(request, volume_id, data['name'],
                                 data['description'])
            # operation log
            config = _('Volume Name: %s') % data['name']
            api.logger.Logger(request).create(resource_type='volume',
                                              action_name='Update Volume',
                                              resource_name='Volume',
                                              config=config,
                                              status='Success')
        except Exception:
            redirect = reverse("horizon:storage:volumes:index")
            exceptions.handle(request,
                              _('Unable to update volume.'),
                              redirect=redirect)

            # operation log
            api.logger.Logger(request).create(
                resource_type='volume',
                action_name='Update Volume',
                resource_name='Volume',
                config=_('Unable to update volume.'),
                status='Error')

        # only update bootable flag if modified
        make_bootable = data['bootable']
        if make_bootable != self.initial['bootable']:
            try:
                cinder.volume_set_bootable(request, volume_id, make_bootable)

                # operation log
                api.logger.Logger(request).create(resource_type='volume',
                                                  action_name='Update Volume',
                                                  resource_name='Volume',
                                                  config=_('Bootable: %s') %
                                                  str(data['bootable']),
                                                  status='Success')
            except Exception:
                redirect = reverse("horizon:storage:volumes:index")
                exceptions.handle(request,
                                  _('Unable to set bootable flag on volume.'),
                                  redirect=redirect)

                # operation log
                api.logger.Logger(request).create(
                    resource_type='volume',
                    action_name='Update Volume',
                    resource_name='Volume',
                    config=_('Unable to set bootable flag on volume.'),
                    status='Error')

        message = _('Updating volume "%s"') % data['name']
        messages.info(request, message)
        return True