def attach_volume(self, context, volume_id, instance_uuid, mountpoint): """Updates db to show volume is attached""" # TODO(vish): refactor this into a more general "reserve" # TODO(sleepsonthefloor): Is this 'elevated' appropriate? if not utils.is_uuid_like(instance_uuid): raise exception.InvalidUUID(instance_uuid) self.db.volume_attached(context.elevated(), volume_id, instance_uuid, mountpoint)
def volume_attached(context, volume_id, instance_uuid, mountpoint): if not utils.is_uuid_like(instance_uuid): raise exception.InvalidUUID(instance_uuid) session = get_session() with session.begin(): volume_ref = volume_get(context, volume_id, session=session) volume_ref['status'] = 'in-use' volume_ref['mountpoint'] = mountpoint volume_ref['attach_status'] = 'attached' volume_ref['instance_uuid'] = instance_uuid volume_ref.save(session=session)
def _image_uuid_from_href(self, image_href): # If the image href was generated by nova api, strip image_href # down to an id. try: image_uuid = image_href.split('/').pop() except (TypeError, AttributeError): msg = _("Invalid imageRef provided.") raise exc.HTTPBadRequest(explanation=msg) if not utils.is_uuid_like(image_uuid): msg = _("Invalid imageRef provided.") raise exc.HTTPBadRequest(explanation=msg) return image_uuid
def attach_volume(self, context, volume_id, instance_uuid, mountpoint): """Updates db to show volume is attached""" # TODO(vish): refactor this into a more general "reserve" # TODO(sleepsonthefloor): Is this 'elevated' appropriate? if not utils.is_uuid_like(instance_uuid): raise exception.InvalidUUID(instance_uuid) try: self.driver.attach_volume(context, volume_id, instance_uuid, mountpoint) except Exception: with excutils.save_and_reraise_exception(): self.db.volume_update(context, volume_id, {"status": "error_attaching"}) self.db.volume_attached(context.elevated(), volume_id, instance_uuid, mountpoint)
def attach_volume(self, context, volume_id, instance_uuid, mountpoint): """Updates db to show volume is attached""" # TODO(vish): refactor this into a more general "reserve" # TODO(sleepsonthefloor): Is this 'elevated' appropriate? if not utils.is_uuid_like(instance_uuid): raise exception.InvalidUUID(instance_uuid) try: self.driver.attach_volume(context, volume_id, instance_uuid, mountpoint) except Exception: with excutils.save_and_reraise_exception(): self.db.volume_update(context, volume_id, {'status': 'error_attaching'}) self.db.volume_attached(context.elevated(), volume_id, instance_uuid, mountpoint)
def assertUUIDLike(self, val, expected): result = utils.is_uuid_like(val) self.assertEqual(result, expected)