Class: VagrantPlugins::ManagedServers::Action::TrackDeploymentStart

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-managed-servers/action/track_deployment_start.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, _env) ⇒ TrackDeploymentStart

Returns a new instance of TrackDeploymentStart.



8
9
10
11
# File 'lib/vagrant-managed-servers/action/track_deployment_start.rb', line 8

def initialize(app, _env)
  @app    = app
  @logger = Log4r::Logger.new("vagrant_managed_servers::action::track_deployment_start")
end

Instance Method Details

#call(env) ⇒ Object



13
14
15
16
# File 'lib/vagrant-managed-servers/action/track_deployment_start.rb', line 13

def call(env)
  track_deployment_start(env[:tracker_host], env[:status], env[:ui], env[:args])
  @app.call(env)
end

#track_deployment_start(host, status, ui, args) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/vagrant-managed-servers/action/track_deployment_start.rb', line 18

def track_deployment_start(host, status, ui, args)
  return unless host
  id = VagrantPlugins::Orchestrate::DEPLOYMENT_ID
  ui.info("Deployment tracked in deployment-tracker with ID: #{id}")
  @logger.debug("Tracking deployment start to #{host}.")
  hostname = `hostname`.chomp
  deployment = {
    deployment_id: id,
    engine: "vagrant_orchestrate",
    engine_version: VagrantPlugins::Orchestrate::VERSION,
    user: status.user, host: hostname,
    environment: status.branch,
    package: status.repo,
    package_url: status.remote_origin_url,
    version: status.ref, arguments: args
  }
  DeploymentTrackerClient::DefaultApi.post_deployment(id, deployment)
rescue => ex
  ui.warn("There was an error notifying deployment tracker. See error log for details.")
  @logger.warn("Error tracking deployment start for deployment #{id}")
  @logger.warn(ex)
end