class Marathon::Apps
This class represents a set of Apps
Public Class Methods
# File lib/marathon/app.rb, line 241 def initialize(marathon_instance) @marathon_instance = marathon_instance @connection = marathon_instance.connection end
Public Instance Methods
Change parameters of a running application. The new application parameters apply only to subsequently created tasks. Currently running tasks are restarted, while maintaining the minimumHealthCapacity. id
: Application's id. hash
: A subset of app's attributes. force
: If the app is affected by a running deployment, then the update operation will fail.
The current deployment can be overridden by setting the `force` query parameter.
# File lib/marathon/app.rb, line 285 def change(id, hash, force = false) query = {} query[:force] = true if force json = @connection.put("/v2/apps/#{id}", query, :body => hash.merge(:id => id)) Marathon::DeploymentInfo.new(json, @marathon_instance) end
Delete the application with id. id
: Application's id.
# File lib/marathon/app.rb, line 255 def delete(id) json = @connection.delete("/v2/apps/#{id}") Marathon::DeploymentInfo.new(json, @marathon_instance) end
List the application with id. id
: Application's id.
# File lib/marathon/app.rb, line 248 def get(id) json = @connection.get("/v2/apps/#{id}")['app'] Marathon::App.new(json, @marathon_instance) end
List all applications. :cmd
: Filter apps to only those whose commands contain cmd. :embed
: Embeds nested resources that match the supplied path.
Possible values: "apps.tasks". Apps' tasks are not embedded in the response by default. "apps.counts". Apps' task counts (tasksStaged, tasksRunning, tasksHealthy, tasksUnhealthy). "apps.deployments". Apps' embed all deployment identifier. "apps.lastTaskFailure". Apps' embeds the lastTaskFailure "apps.failures". Apps' last failures are not embedded in the response by default. "apps.taskStats". Apps' exposes task statatistics.
:id
: Filter apps to only return those whose id is or contains id. :label
: A label selector query contains one or more label selectors
# File lib/marathon/app.rb, line 319 def list(cmd = nil, embed = nil, id=nil, label=nil) query = {} query[:cmd] = cmd if cmd query[:id] = id if id query[:label] = label if label Marathon::Util.add_choice(query, :embed, embed, %w[apps.tasks apps.counts apps.deployments apps.lastTaskFailure apps.failures apps.taskStats ]) json = @connection.get('/v2/apps', query)['apps'] json.map { |j| Marathon::App.new(j, @marathon_instance) } end
Restart the application with id. id
: Application's id. force
: If the app is affected by a running deployment, then the update operation will fail.
The current deployment can be overridden by setting the `force` query parameter.
# File lib/marathon/app.rb, line 272 def restart(id, force = false) query = {} query[:force] = true if force json = @connection.post("/v2/apps/#{id}/restart", query) Marathon::DeploymentInfo.new(json, @marathon_instance) end
Create and start an application. hash
: Hash including all attributes
see https://mesosphere.github.io/marathon/docs/rest-api.html#post-/v2/apps for full details
# File lib/marathon/app.rb, line 263 def start(hash) json = @connection.post('/v2/apps', nil, :body => hash) Marathon::App.new(json, @marathon_instance) end
List the configuration of the application with id at version. id
: Application id version
: Version name
# File lib/marathon/app.rb, line 302 def version(id, version) json = @connection.get("/v2/apps/#{id}/versions/#{version}") Marathon::App.new(json, @marathon_instance, true) end
List the versions of the application with id. id
: Application id
# File lib/marathon/app.rb, line 294 def versions(id) json = @connection.get("/v2/apps/#{id}/versions") json['versions'] end