public OpenstackImage UploadImage(FileInfo image, Func<decimal, bool> progressCallback) { RequestManager requestManager = new RequestManager(_identity); var uri = string.Format("/v1/images"); JObject result = requestManager.Upload(image, uri, "glance", progressCallback); var jImage = result["image"]; OpenstackImage returnedImage = new OpenstackImage() { CheckSum = jImage["checksum"].ToString(), ContainerFormat = jImage["container_format"].ToString(), DiskFormat = jImage["disk_format"].ToString(), Id = jImage["id"].ToString(), IsPublic = jImage["is_public"].ToString() == "true" ? true : false, Name = jImage["name"].ToString(), Size = long.Parse(jImage["size"].ToString()), Status = jImage["status"].ToString(), }; return returnedImage; }