Class: Marathon::Task
Overview
This class represents a Marathon Task. See mesosphere.github.io/marathon/docs/rest-api.html#get-/v2/tasks for full list of API’s methods.
Constant Summary collapse
- ACCESSORS =
%w[ id appId host ports servicePorts version stagedAt startedAt ]
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
-
.delete(ids, scale = false) ⇒ Object
(also: remove, kill)
Kill the given list of tasks and scale apps if requested.
-
.delete_all(appId, host = nil, scale = false) ⇒ Object
(also: remove_all, kill_all)
Kill tasks that belong to the application appId.
-
.get(appId) ⇒ Object
List all running tasks for application appId.
-
.list(status = nil) ⇒ Object
List tasks of all applications.
Instance Method Summary collapse
-
#delete!(scale = false) ⇒ Object
(also: #kill!)
Kill the task that belongs to an application.
-
#initialize(hash) ⇒ Task
constructor
Create a new task object.
-
#to_pretty_s ⇒ Object
Returns a string for listing the task.
- #to_s ⇒ Object
Methods inherited from Base
Methods included from Error
error_class, error_message, from_response
Constructor Details
#initialize(hash) ⇒ Task
Create a new task object. hash: Hash including all attributes
9 10 11 |
# File 'lib/marathon/task.rb', line 9 def initialize(hash) super(hash, ACCESSORS) end |
Class Method Details
.delete(ids, scale = false) ⇒ Object Also known as: remove, kill
Kill the given list of tasks and scale apps if requested. ids: Id or list of ids with target tasks. scale: Scale the app down (i.e. decrement its instances setting by the number of tasks killed)
after killing the specified tasks.
61 62 63 64 65 66 |
# File 'lib/marathon/task.rb', line 61 def delete(ids, scale = false) query = {} query[:scale] = true if scale ids = [ids] if ids.is_a?(String) Marathon.connection.post("/v2/tasks/delete", query, :body => {:ids => ids}) end |
.delete_all(appId, host = nil, scale = false) ⇒ Object Also known as: remove_all, kill_all
Kill tasks that belong to the application appId. appId: Application’s id host: Kill only those tasks running on host host. scale: Scale the app down (i.e. decrement its instances setting by the number of tasks killed)
after killing the specified tasks.
75 76 77 78 79 80 81 |
# File 'lib/marathon/task.rb', line 75 def delete_all(appId, host = nil, scale = false) query = {} query[:host] = host if host query[:scale] = true if scale json = Marathon.connection.delete("/v2/apps/#{appId}/tasks", query)['tasks'] json.map { |j| new(j) } end |
.get(appId) ⇒ Object
List all running tasks for application appId. appId: Application’s id
52 53 54 55 |
# File 'lib/marathon/task.rb', line 52 def get(appId) json = Marathon.connection.get("/v2/apps/#{appId}/tasks")['tasks'] json.map { |j| new(j) } end |
.list(status = nil) ⇒ Object
List tasks of all applications. status: Return only those tasks whose status matches this parameter.
If not specified, all tasks are returned. Possible values: running, staging.
43 44 45 46 47 48 |
# File 'lib/marathon/task.rb', line 43 def list(status = nil) query = {} Marathon::Util.add_choice(query, :status, status, %w[running staging]) json = Marathon.connection.get('/v2/tasks', query)['tasks'] json.map { |j| new(j) } end |
Instance Method Details
#delete!(scale = false) ⇒ Object Also known as: kill!
Kill the task that belongs to an application. scale: Scale the app down (i.e. decrement its instances setting by the number of tasks killed)
after killing the specified tasks.
16 17 18 |
# File 'lib/marathon/task.rb', line 16 def delete!(scale = false) new_task = self.class.delete(id, scale) end |
#to_pretty_s ⇒ Object
Returns a string for listing the task.
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/marathon/task.rb', line 26 def to_pretty_s %Q[ Task ID: #{id} App ID: #{appId} Host: #{host} Ports: #{(ports || []).join(',')} Staged at: #{stagedAt} Started at: #{startedAt} Version: #{version} ].strip end |
#to_s ⇒ Object
21 22 23 |
# File 'lib/marathon/task.rb', line 21 def to_s "Marathon::Task { :id => #{self.id} :appId => #{appId} :host => #{host} }" end |