Class: VagrantPlugins::ManagedServers::Action::TrackServerDeploymentStart

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

Instance Method Summary collapse

Constructor Details

#initialize(app, _env) ⇒ TrackServerDeploymentStart

Returns a new instance of TrackServerDeploymentStart.



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

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

Instance Method Details

#call(env) ⇒ Object



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

def call(env)
  machine = env[:machine]
  env[:start_times] ||= {}
  env[:start_times][machine.name] = Time.now
  track_deployment_start(machine, env[:ui])
  @app.call(env)
end

#track_deployment_start(machine, ui) ⇒ Object



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

def track_deployment_start(machine, ui)
  host = machine.config.orchestrate.tracker_host
  return unless host
  @logger.debug("Tracking deployment server start to #{host}.")
  id = VagrantPlugins::Orchestrate::DEPLOYMENT_ID
  server = {
    deployment_id: id,
    hostname: machine.provider_config.server
  }
  DeploymentTrackerClient::DefaultApi.post_server(id, server)
rescue => ex
  ui.warn("There was an error notifying deployment tracker of server start. See error log for details.")
  ui.warn(ex.message)
  @logger.warn("Error tracking deployment server start for deployment #{id}")
  @logger.warn(ex)
end