Class: VagrantPlugins::ManagedServers::Action::TrackServerDeploymentEnd

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

Instance Method Summary collapse

Constructor Details

#initialize(app, _env) ⇒ TrackServerDeploymentEnd

Returns a new instance of TrackServerDeploymentEnd.



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

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

Instance Method Details

#call(env) ⇒ Object



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

def call(env)
  machine = env[:machine]
  track_deployment_end(machine, env[:ui], env[:start_times][machine.name])
  @app.call(env)
end

#track_deployment_end(machine, ui, start_time) ⇒ Object



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

def track_deployment_end(machine, ui, start_time)
  host = machine.config.orchestrate.tracker_host
  return unless host
  @logger.debug("Tracking deployment server end to #{host}.")
  id = VagrantPlugins::Orchestrate::DEPLOYMENT_ID
  server = {
    deployment_id: id,
    hostname: machine.provider_config.server,
    result: "success",
    elapsed_seconds: (Time.now - start_time).to_i
  }
  DeploymentTrackerClient::DefaultApi.put_server(id, server)
rescue => ex
  ui.warn("There was an error notifying deployment tracker of server end. See error log for details.")
  ui.warn(ex.message)
  pp ex
  @logger.warn("Error tracking deployment server end for deployment #{id}")
  @logger.warn(ex)
end