module Hyperb::Compose

compose api wrapper

Public Instance Methods

compose_create(params = {}) click to toggle source

create a compose project

@see docs.hyper.sh/Reference/API/2016-04-04%20[Ver.%201.23]/ Compose/compose_create.html

@raise [Hyperb::Error::Unauthorized] raised when credentials are not valid. @raise [Hyperb::Error::NotFound] raised ips are not found.

@returns [HTTP::Response::Body] a streamable response object

@param params [Hash] A customizable set of params. @option params [String] :project project name @option params [Hash] :serviceconfigs a hash representing a docker compose file services block @option params [Hash] :networkconfigs @option params [Hash] :volumeconfigs

# File lib/hyperb/compose/compose.rb, line 102
def compose_create(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'project')
  path = '/compose/create'
  query = {}
  body = {}
  query[:project] = params[:project] if params.key?(:project)

  body[:serviceconfigs] = { 'M': {} } # inherited from libcompose
  body[:serviceconfigs][:M] = params[:serviceconfigs]
  params.delete(:serviceconfigs)
  body.merge!(params)
  Hyperb::Request.new(self, path, query, 'post', body).perform
end
compose_down(params = {}) click to toggle source

stop and remove a compose project

@see docs.hyper.sh/Reference/API/2016-04-04%20[Ver.%201.23]/Compose/compose_down.html

@raise [Hyperb::Error::Unauthorized] raised when credentials are not valid. @raise [Hyperb::Error::NotFound] raised ips are not found.

@returns [HTTP::Response::Body] a streamable response object

@param params [Hash] A customizable set of params. @option params [String] :project project name @option params [Boolean] :rmorphans rm containers for services not defined in the compose file @option params [String] :rmi remove images, all/local @option params [Boolean] :vol remove data volumes

# File lib/hyperb/compose/compose.rb, line 27
def compose_down(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'project')
  path = '/compose/down'
  query = {}
  query[:project] = params[:project] if params.key?(:project)
  query[:vol] = params[:vol] if params.key?(:vol)
  query[:rmi] = params[:rmi] if params.key?(:rmi)
  query[:rmorphans] = params[:rmorphans] if params.key?(:rmorphans)
  Hyperb::Request.new(self, path, query, 'post').perform
end
compose_rm(params = {}) click to toggle source

remove a compose project

@see docs.hyper.sh/Reference/API/2016-04-04%20[Ver.%201.23]/Compose/compose_rm.html

@raise [Hyperb::Error::Unauthorized] raised when credentials are not valid. @raise [Hyperb::Error::NotFound] raised ips are not found.

@returns [HTTP::Response::Body] a streamable response object

@param params [Hash] A customizable set of params. @option params [String] :project project name @option params [String] :rmvol project name

# File lib/hyperb/compose/compose.rb, line 50
def compose_rm(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'project')
  path = '/compose/rm'
  query = {}
  query[:project] = params[:project] if params.key?(:project)
  query[:rmvol] = params[:rmvol] if params.key?(:rmvol)
  Hyperb::Request.new(self, path, query, 'post').perform
end
compose_up(params = {}) click to toggle source

create and run a compose project

@see docs.hyper.sh/Reference/API/2016-04-04%20[Ver.%201.23]/Compose/compose_up.html

@raise [Hyperb::Error::Unauthorized] raised when credentials are not valid. @raise [Hyperb::Error::NotFound] raised ips are not found.

@returns [HTTP::Response::Body] a streamable response object

@param params [Hash] A customizable set of params. @option params [String] :project project name @option params [Hash] :serviceconfigs a hash representing a docker compose file services block @option params [Hash] :networkconfigs @option params [Hash] :volumeconfigs

# File lib/hyperb/compose/compose.rb, line 73
def compose_up(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'project')
  path = '/compose/up'
  query = {}
  body = {}
  query[:project] = params[:project] if params.key?(:project)

  body[:serviceconfigs] = { 'M': {} } # inherited from libcompose
  body[:serviceconfigs][:M] = params[:serviceconfigs] if params.key?(:serviceconfigs)
  params.delete(:serviceconfigs)
  body.merge!(params)
  Hyperb::Request.new(self, path, query, 'post', body).perform
end