Class: VagrantPlugins::ManagedServers::Action::TrackDeploymentEnd

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

Instance Method Summary collapse

Constructor Details

#initialize(app, _env) ⇒ TrackDeploymentEnd



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

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

Instance Method Details

#call(env) ⇒ Object



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

def call(env)
  track_deployment_end(env[:tracker_host], env[:start_time], env[:success], env[:ui])
  @app.call(env)
end

#track_deployment_end(host, start, success, ui) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/vagrant-managed-servers/action/track_deployment_end.rb', line 17

def track_deployment_end(host, start, success, ui)
  return unless host
  @logger.debug("Tracking deployment end to #{host}.")
  id = VagrantPlugins::Orchestrate::DEPLOYMENT_ID
  ui.info("Deployment tracked in deployment-tracker with ID: #{id}")
  result = success ? "success" : "failure"
  elapsed_seconds = (Time.now - start).to_i
  deployment = { deployment_id: id,
                 result: result,
                 assert_empty_server_result: true,
                 elapsed_seconds: elapsed_seconds }
  DeploymentTrackerClient::DefaultApi.put_deployment(id, deployment)
rescue => ex
  ui.warn("There was an error notifying deployment tracker. See error log for details.")
  @logger.warn("Error tracking deployment end for deployment #{id}")
  @logger.warn(ex)
end