def remove_if_exists(self): meta_obj = rados.Object(self._client.ioctx, self.name) try: meta_obj.remove() except rados.ObjectNotFound: LOG.debug("Metadata backup object '%s' not found - ignoring", self.name)
def get(self): """Get metadata backup object. Returns None if the object does not exist. """ meta_obj = rados.Object(self._client.ioctx, self.name) if not self._exists(meta_obj): LOG.debug("Metadata backup object %s does not exist", self.name) return None return meta_obj.read()
def set(self, json_meta): """Write JSON metadata to a new object. This should only be called once per backup. Raises VolumeMetadataBackupExists if the object already exists. """ meta_obj = rados.Object(self._client.ioctx, self.name) if self._exists(meta_obj): msg = _("Metadata backup object '%s' already exists") % (self.name) raise exception.VolumeMetadataBackupExists(msg) meta_obj.write(json_meta)
def exists(self): meta_obj = rados.Object(self._client.ioctx, self.name) return self._exists(meta_obj)