Class: Opsmgr::Cmd::BoshCommand

Inherits:
Object
  • Object
show all
Includes:
Capybara::DSL
Defined in:
lib/opsmgr/cmd/bosh_command.rb

Instance Method Summary collapse

Constructor Details

#initialize(env_name:, om_version:) ⇒ BoshCommand

Returns a new instance of BoshCommand.



17
18
19
20
21
22
23
24
25
26
# File 'lib/opsmgr/cmd/bosh_command.rb', line 17

def initialize(env_name:, om_version:)
  @env_settings = Opsmgr::Environments.for(env_name).settings
  configure_capybara

  @env_name = env_name
  @om_version = om_version
  @current_ops_manager = 

  configure_client_credentials
end

Instance Method Details

#commandObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/opsmgr/cmd/bosh_command.rb', line 28

def command
  ip = ENV['DIRECTOR_IP_OVERRIDE'] || director_ip

  if Gem::Version.new(om_version) >= Gem::Version.new('1.7')
    return "BOSH_CLIENT=#{@bosh_client} BOSH_CLIENT_SECRET=#{@bosh_client_secret} bosh -t #{ip} --ca-cert #{root_cert_file}"
  end

  %W(
    bosh
    -t #{ip}
    -u director
    -p #{director_password}
  ).join(' ')
end

#director_ipObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/opsmgr/cmd/bosh_command.rb', line 43

def director_ip
  status_page = current_ops_manager.product_status_for(director_tile_name)

  partitioned_job_name = 'director-partition-null-az'
  availability_zones = env_settings['ops_manager']['availability_zones']
  if availability_zones
    az_name = availability_zones.first['iaas_identifier'] || 'first-az'
    partitioned_job_name = "director-partition-#{current_ops_manager.availability_zone_guid_for_name(az_name)}"
  end

  if Gem::Version.new(om_version) >= Gem::Version.new('1.8')
    partitioned_job_name = 'director'
  end

  director_status = status_page.job_status(partitioned_job_name)

  director_status.ips.first
end