module Ropenstack::Image::Version2

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