class Morpheus::ContainersInterface

Containers API interface. All of the PUT methods support passing an array of IDs.

Public Instance Methods

action(container_id, action_code, payload={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 111
def action(container_id, action_code, payload={})
  url, params = "", {}
  if container_id.is_a?(Array)
    url = "#{base_path}/action"
    params = {ids: container_id, code: action_code}
  else
    url = "#{base_path}/#{container_id}/action"
    params = {code: action_code}
  end
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
  opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
  execute(opts)
end
attach_floating_ip(container_id, payload={}, headers={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 135
def attach_floating_ip(container_id, payload={}, headers={})
  validate_id!(container_id)
  execute(method: :put, url: "#{base_path}/#{container_id}/attach-floating-ip", payload: payload, headers: headers)
end
available_actions(container_id) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 97
def available_actions(container_id)
  url, params = "", {}
  if container_id.is_a?(Array)
    url = "#{base_path}/actions"
    params = {ids: container_id}
  else
    url = "#{base_path}/#{container_id}/actions"
    params = {}
  end
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
  opts = {method: :get, url: url, headers: headers}
  execute(opts)
end
base_path() click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 7
def base_path
  "/api/containers"
end
clone_image(container_id, payload={}, headers={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 130
def clone_image(container_id, payload={}, headers={})
  validate_id!(container_id)
  execute(method: :put, url: "#{base_path}/#{container_id}/clone-image", payload: payload, headers: headers)
end
detach_floating_ip(container_id, payload={}, headers={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 140
def detach_floating_ip(container_id, payload={}, headers={})
  validate_id!(container_id)
  execute(method: :put, url: "#{base_path}/#{container_id}/detach-floating-ip", payload: payload, headers: headers)
end
eject(container_id, payload={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 83
def eject(container_id, payload={})
  url, params = "", {}
  if container_id.is_a?(Array)
    url = "#{base_path}/eject"
    params = {ids: container_id}
  else
    url = "#{base_path}/#{container_id}/eject"
    params = {}
  end
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
  opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
  execute(opts)
end
get(container_id) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 20
def get(container_id)
  url = "#{base_path}/#{container_id}"
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
  opts = {method: :get, url: url, headers: headers}
  execute(opts)
end
import(container_id, payload={}, headers={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 125
def import(container_id, payload={}, headers={})
  validate_id!(container_id)
  execute(method: :put, url: "#{base_path}/#{container_id}/import", payload: payload, headers: headers)
end
list(params={}) click to toggle source

not used atm.. index api needs some work, we should implement it so it just paginates all containers. right now you can to pass params as {:ids => [1,2,3]}

# File lib/morpheus/api/containers_interface.rb, line 13
def list(params={})
  url = "#{base_path}"
  headers = { params: params, authorization: "Bearer #{@access_token}" }
  opts = {method: :get, url: url, headers: headers}
  execute(opts)
end
restart(container_id, payload={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 55
def restart(container_id, payload={})
  url, params = "", {}
  if container_id.is_a?(Array)
    url = "#{base_path}/restart"
    params = {ids: container_id}
  else
    url = "#{base_path}/#{container_id}/restart"
    params = {}
  end
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
  opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
  execute(opts)
end
start(container_id, payload={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 41
def start(container_id, payload={})
  url, params = "", {}
  if container_id.is_a?(Array)
    url = "#{base_path}/start"
    params = {ids: container_id}
  else
    url = "#{base_path}/#{container_id}/start"
    params = {}
  end
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
  opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
  execute(opts)
end
stop(container_id, payload={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 27
def stop(container_id, payload={})
  url, params = "", {}
  if container_id.is_a?(Array)
    url = "#{base_path}/stop"
    params = {ids: container_id}
  else
    url = "#{base_path}/#{container_id}/stop"
    params = {}
  end
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
  opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
  execute(opts)
end
suspend(container_id, payload={}) click to toggle source
# File lib/morpheus/api/containers_interface.rb, line 69
def suspend(container_id, payload={})
  url, params = "", {}
  if container_id.is_a?(Array)
    url = "#{base_path}/suspend"
    params = {ids: container_id}
  else
    url = "#{base_path}/#{container_id}/suspend"
    params = {}
  end
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
  opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
  execute(opts)
end