Ejemplo n.º 1
0
    def create(self, req, body):
        """Creates a new snapshot."""
        context = req.environ["cinder.context"]

        if not self.is_valid_body(body, "snapshot"):
            raise exc.HTTPUnprocessableEntity()

        snapshot = body["snapshot"]
        volume_id = snapshot["volume_id"]
        volume = self.volume_api.get(context, volume_id)
        force = snapshot.get("force", False)
        msg = _("Create snapshot from volume %s")
        LOG.audit(msg, volume_id, context=context)

        if not utils.is_valid_boolstr(force):
            msg = _("Invalid value '%s' for force. ") % force
            raise exception.InvalidParameterValue(err=msg)

        if utils.bool_from_str(force):
            new_snapshot = self.volume_api.create_snapshot_force(
                context, volume, snapshot.get("display_name"), snapshot.get("display_description")
            )
        else:
            new_snapshot = self.volume_api.create_snapshot(
                context, volume, snapshot.get("display_name"), snapshot.get("display_description")
            )

        retval = _translate_snapshot_detail_view(context, new_snapshot)

        return {"snapshot": retval}
Ejemplo n.º 2
0
    def create(self, req, body):
        """Creates a new snapshot."""
        context = req.environ['cinder.context']

        if not self.is_valid_body(body, 'snapshot'):
            raise exc.HTTPUnprocessableEntity()

        snapshot = body['snapshot']
        volume_id = snapshot['volume_id']
        volume = self.volume_api.get(context, volume_id)
        force = snapshot.get('force', False)
        msg = _("Create snapshot from volume %s")
        LOG.audit(msg, volume_id, context=context)

        if not utils.is_valid_boolstr(force):
            msg = _("Invalid value '%s' for force. ") % force
            raise exception.InvalidParameterValue(err=msg)

        if utils.bool_from_str(force):
            new_snapshot = self.volume_api.create_snapshot_force(context,
                                        volume,
                                        snapshot.get('display_name'),
                                        snapshot.get('display_description'))
        else:
            new_snapshot = self.volume_api.create_snapshot(context,
                                        volume,
                                        snapshot.get('display_name'),
                                        snapshot.get('display_description'))

        retval = _translate_snapshot_detail_view(context, new_snapshot)

        return {'snapshot': retval}
Ejemplo n.º 3
0
    def create(self, req, body):
        """Creates a new snapshot."""
        kwargs = {}
        context = req.environ['cinder.context']

        if not self.is_valid_body(body, 'snapshot'):
            raise exc.HTTPBadRequest()

        snapshot = body['snapshot']
        kwargs['metadata'] = snapshot.get('metadata', None)

        volume_id = snapshot['volume_id']
        volume = self.volume_api.get(context, volume_id)
        force = snapshot.get('force', False)
        msg = _("Create snapshot from volume %s")
        LOG.audit(msg, volume_id, context=context)

        # NOTE(thingee): v2 API allows name instead of display_name
        if 'name' in snapshot:
            snapshot['display_name'] = snapshot.get('name')
            del snapshot['name']

        if not utils.is_valid_boolstr(force):
            msg = _("Invalid value '%s' for force. ") % force
            raise exception.InvalidParameterValue(err=msg)

        if utils.bool_from_str(force):
            new_snapshot = self.volume_api.create_snapshot_force(
                context,
                volume,
                snapshot.get('display_name'),
                snapshot.get('description'),
                **kwargs)
        else:
            new_snapshot = self.volume_api.create_snapshot(
                context,
                volume,
                snapshot.get('display_name'),
                snapshot.get('description'),
                **kwargs)

        retval = _translate_snapshot_detail_view(context, new_snapshot)

        return {'snapshot': retval}
Ejemplo n.º 4
0
 def test_bool_from_str(self):
     self.assertTrue(utils.bool_from_str('1'))
     self.assertTrue(utils.bool_from_str('2'))
     self.assertTrue(utils.bool_from_str('-1'))
     self.assertTrue(utils.bool_from_str('true'))
     self.assertTrue(utils.bool_from_str('True'))
     self.assertTrue(utils.bool_from_str('tRuE'))
     self.assertFalse(utils.bool_from_str('False'))
     self.assertFalse(utils.bool_from_str('false'))
     self.assertFalse(utils.bool_from_str('0'))
     self.assertFalse(utils.bool_from_str(None))
     self.assertFalse(utils.bool_from_str('junk'))
Ejemplo n.º 5
0
 def test_bool_from_str(self):
     self.assertTrue(utils.bool_from_str('1'))
     self.assertTrue(utils.bool_from_str('2'))
     self.assertTrue(utils.bool_from_str('-1'))
     self.assertTrue(utils.bool_from_str('true'))
     self.assertTrue(utils.bool_from_str('True'))
     self.assertTrue(utils.bool_from_str('tRuE'))
     self.assertFalse(utils.bool_from_str('False'))
     self.assertFalse(utils.bool_from_str('false'))
     self.assertFalse(utils.bool_from_str('0'))
     self.assertFalse(utils.bool_from_str(None))
     self.assertFalse(utils.bool_from_str('junk'))