Class: Rexec::ContainerService
- Inherits:
-
Object
- Object
- Rexec::ContainerService
- Defined in:
- lib/rexec/container.rb
Overview
Service for managing containers.
Instance Method Summary collapse
-
#create(image:, name: nil, environment: {}, labels: {}) ⇒ Container
Create a new container.
-
#delete(id) ⇒ Object
Delete a container.
-
#get(id) ⇒ Container
Get a container by ID.
-
#initialize(client) ⇒ ContainerService
constructor
A new instance of ContainerService.
-
#list ⇒ Array<Container>
List all containers.
-
#start(id) ⇒ Object
Start a container.
-
#stop(id) ⇒ Object
Stop a container.
Constructor Details
#initialize(client) ⇒ ContainerService
Returns a new instance of ContainerService.
30 31 32 |
# File 'lib/rexec/container.rb', line 30 def initialize(client) @client = client end |
Instance Method Details
#create(image:, name: nil, environment: {}, labels: {}) ⇒ Container
Create a new container.
67 68 69 70 71 72 73 74 75 |
# File 'lib/rexec/container.rb', line 67 def create(image:, name: nil, environment: {}, labels: {}) body = { image: image } body[:name] = name if name body[:environment] = environment unless environment.empty? body[:labels] = labels unless labels.empty? data = @client.request(:post, "/api/containers", body: body) Container.new(data) end |
#delete(id) ⇒ Object
Delete a container.
80 81 82 83 |
# File 'lib/rexec/container.rb', line 80 def delete(id) @client.request(:delete, "/api/containers/#{id}") nil end |
#get(id) ⇒ Container
Get a container by ID.
48 49 50 51 |
# File 'lib/rexec/container.rb', line 48 def get(id) data = @client.request(:get, "/api/containers/#{id}") Container.new(data) end |
#list ⇒ Array<Container>
List all containers.
37 38 39 40 41 42 |
# File 'lib/rexec/container.rb', line 37 def list data = @client.request(:get, "/api/containers") # API returns { "containers" => [...], "count" => N, "limit" => M } items = data.is_a?(Array) ? data : (data && data["containers"]) || [] items.map { |c| Container.new(c) } end |
#start(id) ⇒ Object
Start a container.
88 89 90 91 |
# File 'lib/rexec/container.rb', line 88 def start(id) @client.request(:post, "/api/containers/#{id}/start") nil end |
#stop(id) ⇒ Object
Stop a container.
96 97 98 99 |
# File 'lib/rexec/container.rb', line 96 def stop(id) @client.request(:post, "/api/containers/#{id}/stop") nil end |