def create_snapshot(request): """Create a new Snapshot.""" req = utils.get_json_body(request) log.debug("create_snapshot %s", req) user_id = request.user_uniq snap_dict = utils.get_attribute(req, "snapshot", required=True, attr_type=dict) volume_id = utils.get_attribute(snap_dict, "volume_id", required=True) volume = util.get_volume(user_id, volume_id, for_update=True, non_deleted=True, exception=faults.BadRequest) metadata = utils.get_attribute(snap_dict, "metadata", required=False, attr_type=dict, default={}) name = utils.get_attribute(snap_dict, "display_name", required=False, attr_type=basestring, default="Snapshot of volume '%s'" % volume_id) description = utils.get_attribute(snap_dict, "display_description", required=False, attr_type=basestring, default="") # TODO: What to do with force ? force = utils.get_attribute(req, "force", required=False, attr_type=bool, default=False) snapshot = snapshots.create(user_id=user_id, volume=volume, name=name, description=description, metadata=metadata, force=force) # Render response data = json.dumps(dict(snapshot=snapshot_to_dict(snapshot, detail=False))) return HttpResponse(data, status=202)
def create_snapshot(request): """Create a new Snapshot.""" util.assert_snapshots_enabled(request) req = utils.get_json_body(request) user_id = request.user_uniq log.debug("User: %s, Action: create_snapshot, Request: %s", user_id, req) snap_dict = utils.get_attribute(req, "snapshot", required=True, attr_type=dict) volume_id = utils.get_attribute(snap_dict, "volume_id", required=True) volume = util.get_volume(user_id, request.user_projects, volume_id, for_update=True, non_deleted=True, exception=faults.BadRequest) metadata = utils.get_attribute(snap_dict, "metadata", required=False, attr_type=dict, default={}) name = utils.get_attribute(snap_dict, "display_name", required=False, attr_type=basestring, default="Snapshot of volume '%s'" % volume_id) description = utils.get_attribute(snap_dict, "display_description", required=False, attr_type=basestring, default="") # TODO: What to do with force ? force = utils.get_attribute(req, "force", required=False, attr_type=bool, default=False) snapshot = snapshots.create(user_id=user_id, volume=volume, name=name, description=description, metadata=metadata, force=force) log.info("User %s created snapshot %s", user_id, snapshot["id"]) # Render response data = json.dumps(dict(snapshot=snapshot_to_dict(snapshot, detail=False))) return HttpResponse(data, status=202)
def handle(self, *args, **options): if len(args) != 1: raise CommandError("Please provide a volume ID") volume = common.get_resource("volume", args[0], for_update=True) name = options.get("name") if name is None: raise CommandError("'name' option is required") description = options.get("description") if description is None: description = "Snapshot of Volume '%s'" % volume.id snapshot = snapshots.create(volume.userid, volume, name=name, description=description, metadata={}) msg = ("Created snapshot of volume '%s' with ID %s\n" % (volume.id, snapshot["id"])) self.stdout.write(msg)
def create_snapshot(request): """Create a new Snapshot.""" util.assert_snapshots_enabled(request) req = utils.get_json_body(request) credentials = request.credentials user_id = credentials.userid log.debug("User: %s, Action: create_snapshot, Request: %s", user_id, req) snap_dict = utils.get_attribute(req, "snapshot", required=True, attr_type=dict) volume_id = utils.get_attribute(snap_dict, "volume_id", required=True) metadata = utils.get_attribute(snap_dict, "metadata", required=False, attr_type=dict, default={}) name = utils.get_attribute(snap_dict, "display_name", required=False, attr_type=basestring, default="Snapshot of volume '%s'" % volume_id) description = utils.get_attribute(snap_dict, "display_description", required=False, attr_type=basestring, default="") # TODO: What to do with force ? force = utils.get_attribute(req, "force", required=False, attr_type=bool, default=False) snapshot = snapshots.create(user_id=user_id, volume_id=volume_id, name=name, description=description, metadata=metadata, force=force, credentials=credentials) log.info("User %s created snapshot %s", user_id, snapshot["id"]) # Render response data = json.dumps(dict(snapshot=snapshot_to_dict(snapshot, detail=False))) return HttpResponse(data, status=202)