module Ropenstack::Image::Version2
-
Name: ImageVersion2
-
Description: Implementation of the Glance V2.0 API Client in Ruby
-
Author: Sam ‘Tehsmash’ Betts, John Davidge
-
Date: 30/06/2014
Public Instance Methods
image_add_tag(id, tag)
click to toggle source
# File lib/ropenstack/image/v2.rb, line 46 def image_add_tag(id, tag) put_request(address("images/"+id+"/tags/"+tag), @token) end
image_create(name, id, visibilty, tags)
click to toggle source
# File lib/ropenstack/image/v2.rb, line 21 def image_create(name, id, visibilty, tags) data = { :name => name } unless id.nil? data[:id] = id end unless visibility.nil? data[:visibility] = visibility end unless tags.nil? data[:tags] = tags end post_request(address("images"), data, @token) end
image_delete(id)
click to toggle source
# File lib/ropenstack/image/v2.rb, line 38 def image_delete(id) delete_request(address("images/" + id), @token) end
image_delete_tag(id)
click to toggle source
# File lib/ropenstack/image/v2.rb, line 50 def image_delete_tag(id) delete_request(address("images/"+id+"/tags/"+tag), @token) end
image_download(id)
click to toggle source
TODO Ruby HTTP Binary Download to FILE
# File lib/ropenstack/image/v2.rb, line 43 def image_download(id) end
images(id)
click to toggle source
Returns a list of images with all associated meta-data in hash format.
# File lib/ropenstack/image/v2.rb, line 13 def images(id) if id.nil? return get_request(address("images"), @token)["images"] else return get_request(address("images/" + id), @token) end end
member_add()
click to toggle source
# File lib/ropenstack/image/v2.rb, line 58 def member_add() end
member_delete()
click to toggle source
# File lib/ropenstack/image/v2.rb, line 61 def member_delete() end
member_update()
click to toggle source
# File lib/ropenstack/image/v2.rb, line 64 def member_update() end
members(id)
click to toggle source
Members
# File lib/ropenstack/image/v2.rb, line 55 def members(id) end
put_octect(uri, data, manage_errors)
click to toggle source
Special rest call for sending a file stream using an octet-stream main change is just custom headers. Still implemented using do_request function.
# File lib/ropenstack/image/v2.rb, line 113 def put_octect(uri, data, manage_errors) headers = build_headers(@token) headers["Content-Type"] = 'application/octet-stream' req = Net::HTTP::Put.new(uri.request_uri, initheader = headers) req.body = data return do_request(uri, req, manage_errors, 0) end
schemas(type)
click to toggle source
Schemas
# File lib/ropenstack/image/v2.rb, line 68 def schemas(type) return get_request(address("schemas/" + type), @token) end
upload_image_from_file(name, disk_format, container_format, minDisk, minRam, is_public, file)
click to toggle source
Upload an image to the Image
Service from a file, takes in a ruby file object. More convoluted than it should be because for a bug in Quantum which just returns an error no matter the outcome.
# File lib/ropenstack/image/v2.rb, line 80 def upload_image_from_file(name, disk_format, container_format, minDisk, minRam, is_public, file) data = { "name" => name, "disk_format" => disk_format, "container_format" => container_format, "minDisk" => minDisk, "minRam" => minRam, "public" => is_public } imagesBefore = images() post_request(address("images"), data, @token, false) imagesAfter = images() foundNewImage = true image = nil imagesAfter.each do |imageA| imagesBefore.each do |imageB| if(imageA == imageB) foundNewImage = false end end if(foundNewImage) image = imageA break end end return put_octect(address(image["file"]), file.read, false) end
Private Instance Methods
address(endpoint)
click to toggle source
Function to get the v2 address location of an endpoint.
# File lib/ropenstack/image/v2.rb, line 126 def address(endpoint) address("/v2/#{endpoint}") end
version()
click to toggle source
# File lib/ropenstack/image/v2.rb, line 130 def version "V2" end