Module: Hyperb::Containers

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

Overview

wrapper for containers api

Instance Method Summary collapse

Methods included from Utils

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

Instance Method Details

#container_logs(params = {}) ⇒ HTTP::Response::Body

container logs

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :id (String)

    container’s name or id

  • :follow (String)

    stream output

  • :stderr (String)

    stream stderr

  • :stdout (String)

    stream stdout

  • :since (String)

    stream outputs since id

  • :timestamps (String)

    include timestamps on stdouts, default false

  • :tail (String)

    tail number

Returns:

  • (HTTP::Response::Body)

    a streamable http response body object

Raises:

See Also:



190
191
192
193
194
195
196
197
# File 'lib/hyperb/containers/containers.rb', line 190

def container_logs(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'id')
  path = '/containers/' + params[:id] + '/logs'
  query = {}
  params.delete(:id)
  query.merge!(params)
  Hyperb::Request.new(self, path, query, 'get').perform
end

#container_stats(params = {}) ⇒ HTTP::Response::Body

container stats

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :id (String)

    container’s name or id

  • :stream (String)

    stream output

Returns:

  • (HTTP::Response::Body)

    a streamable http response body object

Raises:

See Also:



213
214
215
216
217
218
219
# File 'lib/hyperb/containers/containers.rb', line 213

def container_stats(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'id')
  path = '/containers/' + params[:id] + '/stats'
  query = {}
  query[:stream] = params[:stream] if params.key?(:stream)
  Hyperb::Request.new(self, path, query, 'get').perform
end

#containers(params = {}) ⇒ Hyperb::Container

list existing containers

TODO: @option params [Hash] :filters JSON encoded value of the filters.

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :all (Boolean)

    show all containers, false by default

  • :size (Boolean)

    show containers size

  • :limit (String)

    show ‘limit` last created containers.

  • :since (String)

    show only containers created since Id.

  • :before (String)

    only containers created before Id.

Returns:

Raises:

See Also:



31
32
33
34
35
36
37
# File 'lib/hyperb/containers/containers.rb', line 31

def containers(params = {})
  path = '/containers/json'
  query = {}
  query.merge!(params)
  response = JSON.parse(Hyperb::Request.new(self, path, query, 'get').perform)
  response.map { |container| Hyperb::Container.new(container) }
end

#create_container(params = {}) ⇒ Hash

create a container

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :name (String)

    container name

  • :image (String)

    image to be used

  • :hostname (String)

    container hostname

  • :entrypoint (String)

    container entrypoint

  • :cmd (String)

    container command

  • :user (String)

    add user to container

  • :workingdir (String)

    working directory for commands to run in.

  • :mounts (Array)

    array of strings with mount directories.

  • :networkmode (String)

    network mode, ie ‘bridge’.

  • :exposedports (Hash)

    ports to expose.

  • :exposedports (Hash)

    ports to expose.

  • :labels (Hash)

    hash containing key: value

  • labels (String)

    :sh_hyper_instancetype container size: s1, s2, s3 …

Returns:

  • (Hash)

    hash containing downcased symbolized json response.

Raises:

See Also:



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/hyperb/containers/containers.rb', line 111

def create_container(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'image')
  path = '/containers/create'
  query = {}
  # set default size, otherwise container can't be started
  body = { labels: { sh_hyper_instancetype: 's1' } }

  # parse host_config options
  if params.key?(:host_config)
    body[camelize(:host_config)] = setup_host_config(params)
    params.delete(:host_config)
  end

  query[:name] = params[:name] if params.key?(:name)
  params.delete(:name)
  body.merge!(params)

  downcase_symbolize(JSON.parse(Hyperb::Request.new(self, path, query, 'post', body).perform))
end

#inspect_container(params = {}) ⇒ Hash

inspect a container

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :id (String)

    container’s name or id

  • :size (String)

    include container’s size on response

Returns:

  • (Hash)

    Array of downcased symbolized json response.

Raises:

See Also:



145
146
147
148
149
150
151
152
# File 'lib/hyperb/containers/containers.rb', line 145

def inspect_container(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'id')
  path = '/containers/' + params[:id] + '/json'
  query = {}
  query[:size] = params[:size] if params.key?(:size)
  response = JSON.parse(Hyperb::Request.new(self, path, query, 'get').perform)
  downcase_symbolize(response)
end

#kill_container(params = {}) ⇒ Object

kill a container

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :id (String)

    container’s name or id

  • :signal (String)

    stream output

Raises:

See Also:



232
233
234
235
236
237
238
# File 'lib/hyperb/containers/containers.rb', line 232

def kill_container(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'id')
  path = '/containers/' + params[:id] + '/kill'
  query = {}
  query[:signal] = params[:signal] if params.key?(:signal)
  Hyperb::Request.new(self, path, query, 'post').perform
end

#remove_container(params = {}) ⇒ Hash

remove the container id

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :v (Boolean)

    remove volumes attached. default false

  • :force (Boolean)

    force remove. default false

Returns:

  • (Hash)

    downcased symbolized json response.

Raises:

See Also:



74
75
76
77
78
79
80
81
82
# File 'lib/hyperb/containers/containers.rb', line 74

def remove_container(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'id')
  path = '/containers/' + params[:id]
  query = {}
  query[:v] = params[:v] if params.key?(:v)
  query[:force] = params[:force] if params.key?(:force)
  response = JSON.parse(Hyperb::Request.new(self, path, query, 'delete').perform)
  downcase_symbolize(response)
end

#rename_container(params = {}) ⇒ Object

rename a container

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :id (String)

    new name

  • :name (String)

    new name

Raises:

See Also:



251
252
253
254
255
256
257
# File 'lib/hyperb/containers/containers.rb', line 251

def rename_container(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'name', 'id')
  path = '/containers/' + params[:id] + '/rename'
  query = {}
  query[:name] = params[:name] if params.key?(:name)
  Hyperb::Request.new(self, path, query, 'post').perform
end

#start_container(params = {}) ⇒ Object

start a container

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :id (String)

    container’s name or id

Raises:

See Also:



165
166
167
168
169
# File 'lib/hyperb/containers/containers.rb', line 165

def start_container(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'id')
  path = '/containers/' + params[:id] + '/start'
  Hyperb::Request.new(self, path, {}, 'post').perform
end

#stop_container(params = {}) ⇒ Object

stop the container id

Parameters:

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

    A customizable set of params.

Options Hash (params):

  • :t (Boolean)

    number of seconds to wait before killing the container.

Raises:

See Also:



51
52
53
54
55
56
57
# File 'lib/hyperb/containers/containers.rb', line 51

def stop_container(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'id')
  path = '/containers/' + params[:id] + '/stop'
  query = {}
  query[:t] = params[:t] if params.key?(:t)
  Hyperb::Request.new(self, path, query, 'post').perform
end