Module: Hyperb::Compose

Includes:
Utils
Included in:
API
Defined in:
lib/hyperb/compose/compose.rb

Overview

compose api wrapper

Instance Method Summary collapse

Methods included from Utils

#camelize, #check_arguments, #downcase_symbolize, #prepare_json, #underscore

Instance Method Details

#compose_create(params = {}) ⇒ Object

create a compose project

Compose/compose_create.html

Parameters:

  • params (Hash) (defaults to: {})

    A customizable set of params.

Options Hash (params):

  • :project (String)

    project name

  • :serviceconfigs (Hash)

    a hash representing a docker compose file services block

  • :networkconfigs (Hash)
  • :volumeconfigs (Hash)

Raises:

See Also:



102
103
104
105
106
107
108
109
110
111
112
113
114
# 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 = {}) ⇒ Object

stop and remove a compose project

Parameters:

  • params (Hash) (defaults to: {})

    A customizable set of params.

Options Hash (params):

  • :project (String)

    project name

  • :rmorphans (Boolean)

    rm containers for services not defined in the compose file

  • :rmi (String)

    remove images, all/local

  • :vol (Boolean)

    remove data volumes

Raises:

See Also:



27
28
29
30
31
32
33
34
35
36
# 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 = {}) ⇒ Object

remove a compose project

Parameters:

  • params (Hash) (defaults to: {})

    A customizable set of params.

Options Hash (params):

  • :project (String)

    project name

  • :rmvol (String)

    project name

Raises:

See Also:



50
51
52
53
54
55
56
57
# 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 = {}) ⇒ Object

create and run a compose project

Parameters:

  • params (Hash) (defaults to: {})

    A customizable set of params.

Options Hash (params):

  • :project (String)

    project name

  • :serviceconfigs (Hash)

    a hash representing a docker compose file services block

  • :networkconfigs (Hash)
  • :volumeconfigs (Hash)

Raises:

See Also:



73
74
75
76
77
78
79
80
81
82
83
84
85
# 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