prof 0.34.4 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e5bab5f87d0566da6220767190bdb7a884c99afb
4
- data.tar.gz: 4f024aca73c988642646b9f419b0a716ae670332
3
+ metadata.gz: c4ddd8d05c9400b4e036c41efc1cc02d953def92
4
+ data.tar.gz: dfb0062b8677454840308cb7ff9164fed7f7c7b1
5
5
  SHA512:
6
- metadata.gz: de84ee0c2bf6cf5e6ad705fcfb4e71877271628a8fca3ef8c1cdfdb6071739b0396b59cfbad5be12e1034069fea8fe386ec23f3343cdc8f4d7f8309e5698ffd4
7
- data.tar.gz: fce47667145828d976948e42848dfafe0871f8e10eb45c4e10a6ab542da8cb035906356eee1b046b256e92b48106e1db60d16a3df7581c247104a312cfd7bb75
6
+ metadata.gz: 2eeb2d83c91ee66cd12cd1d5c02de75fb26e50174b80efbd23ffbb7bd58b5d82f46f53357004210e2d0222d84647c029a6689535140bbae579e6cab96d2b9a28
7
+ data.tar.gz: 6ed2f347b987fdd1c2daa75f217377da25c8ab62731b3cbc9b50ffe4b30749cd817460bd3acf65f161e5277c151fb8d1b488f43070007ff9c864ac83bff55104
@@ -36,10 +36,13 @@ module Prof
36
36
  bosh_target: 'https://192.168.50.4:25555',
37
37
  bosh_username: 'admin',
38
38
  bosh_password: 'admin',
39
+ bosh_ca_cert_path: nil,
40
+ bosh_env_login: false,
39
41
 
40
42
  ssh_gateway_host: '192.168.50.4',
41
43
  ssh_gateway_username: 'vagrant',
42
44
  ssh_gateway_password: 'vagrant',
45
+ ssh_gateway_private_key: nil,
43
46
 
44
47
  bosh_service_broker_job_name:,
45
48
  bosh_manifest_path:,
@@ -54,9 +57,12 @@ module Prof
54
57
  @bosh_target = bosh_target
55
58
  @bosh_username = bosh_username
56
59
  @bosh_password = bosh_password
60
+ @bosh_ca_cert_path = bosh_ca_cert_path
61
+ @bosh_env_login = bosh_env_login
57
62
  @ssh_gateway_host = ssh_gateway_host
58
63
  @ssh_gateway_username = ssh_gateway_username
59
64
  @ssh_gateway_password = ssh_gateway_password
65
+ @ssh_gateway_private_key = ssh_gateway_private_key
60
66
  @bosh_service_broker_job_name = bosh_service_broker_job_name
61
67
  @bosh_manifest_path = bosh_manifest_path
62
68
  @cloud_foundry_api_url = cloud_foundry_api_url
@@ -95,19 +101,28 @@ module Prof
95
101
 
96
102
  def bosh_director
97
103
  @bosh_director ||= Hula::BoshDirector.new(
98
- target_url: bosh_target,
99
- username: bosh_username,
100
- password: bosh_password,
101
- manifest_path: bosh_manifest_path
104
+ target_url: bosh_target,
105
+ username: bosh_username,
106
+ password: bosh_password,
107
+ manifest_path: bosh_manifest_path,
108
+ certificate_path: bosh_ca_cert_path,
109
+ env_login: bosh_env_login
102
110
  )
103
111
  end
104
112
 
105
113
  def ssh_gateway
106
- @ssh_gateway ||= SshGateway.new(
114
+ opts = {
107
115
  gateway_host: ssh_gateway_host,
108
116
  gateway_username: ssh_gateway_username,
109
- gateway_password: ssh_gateway_password
110
- )
117
+ }
118
+
119
+ if @ssh_gateway_private_key
120
+ opts[:gateway_private_key] = ssh_gateway_private_key
121
+ else
122
+ opts[:gateway_password] = ssh_gateway_password
123
+ end
124
+
125
+ @ssh_gateway ||= Prof::SshGateway.new(opts)
111
126
  end
112
127
 
113
128
  def cloud_foundry_uaa
@@ -135,7 +150,7 @@ module Prof
135
150
  attr_reader :cloud_controller_identity, :cloud_controller_password,
136
151
  :cloud_foundry_username, :cloud_foundry_password, :bosh_target, :bosh_username, :bosh_password,
137
152
  :ssh_gateway_host, :ssh_gateway_username, :ssh_gateway_password, :bosh_manifest_path,
138
- :cloud_foundry_api_url, :use_proxy
153
+ :cloud_foundry_api_url, :use_proxy, :ssh_gateway_private_key, :bosh_ca_cert_path, :bosh_env_login
139
154
 
140
155
  def broker_registrar_properties
141
156
  bosh_manifest.job('broker-registrar').properties.fetch('broker')
@@ -31,7 +31,7 @@ module Prof
31
31
  end
32
32
 
33
33
  def cloud_foundry
34
- @cloud_foundry ||= CloudFoundry.new(
34
+ @cloud_foundry ||= Prof::CloudFoundry.new(
35
35
  domain: cloud_foundry_domain,
36
36
  username: ops_manager.cf_admin_credentials.username,
37
37
  password: ops_manager.cf_admin_credentials.password
@@ -15,18 +15,19 @@ require 'uri'
15
15
 
16
16
  module Prof
17
17
  class SshGateway
18
- def initialize(gateway_host:, gateway_username:, gateway_password: nil, ssh_key: nil)
19
- @gateway_host = gateway_host
18
+ def initialize(gateway_host:, gateway_username:, gateway_password: nil, gateway_private_key: nil, ssh_key: nil)
19
+ @gateway_host = gateway_host
20
20
  @gateway_username = gateway_username
21
21
  @gateway_password = gateway_password
22
- @ssh_key = ssh_key
23
- @forwards = {}
22
+ @gateway_private_key = gateway_private_key
23
+ @ssh_key = ssh_key
24
+ @forwards = {}
24
25
  end
25
26
 
26
27
  def execute_on(host, cmd, options = {})
27
- user = options.fetch(:user, 'vcap')
28
- password = options.fetch(:password, 'c1oudc0w')
29
- run_as_root = options.fetch(:root, false)
28
+ user = options.fetch(:user, 'vcap')
29
+ password = options.fetch(:password, 'c1oudc0w')
30
+ run_as_root = options.fetch(:root, false)
30
31
  discard_stderr = options.fetch(:discard_stderr, false)
31
32
 
32
33
  cmd = "echo -e \"#{password}\\n\" | sudo -S #{cmd}" if run_as_root
@@ -82,8 +83,6 @@ module Prof
82
83
 
83
84
  private
84
85
 
85
- attr_reader :gateway_username, :gateway_password, :forwards
86
-
87
86
  def ssh_agent
88
87
  @ssh_agent ||= Net::SSH::Authentication::Agent.connect
89
88
  end
@@ -93,15 +92,21 @@ module Prof
93
92
  end
94
93
 
95
94
  def ssh_gateway
95
+ opts = { paranoid: false }
96
+ if @gateway_private_key
97
+ opts[:keys] = [@gateway_private_key]
98
+ else
99
+ opts[:password] = @gateway_password
100
+ end
101
+
96
102
  @ssh_gateway ||= Net::SSH::Gateway.new(
97
103
  gateway_host,
98
- gateway_username,
99
- password: gateway_password,
100
- paranoid: false
104
+ @gateway_username,
105
+ opts
101
106
  )
102
107
  rescue Net::SSH::AuthenticationFailed
103
108
  message = [
104
- "Failed to connect to #{gateway_host}, with #{gateway_username}:#{gateway_password}.",
109
+ "Failed to connect to #{gateway_host}, with #{@gateway_username}:#{@gateway_password}.",
105
110
  "The ssh-agent has #{ssh_agent.identities.size} identities. Please either add a key, or correct password"
106
111
  ].join(' ')
107
112
  raise Net::SSH::AuthenticationFailed, message
data/lib/prof/version.rb CHANGED
@@ -9,5 +9,5 @@
9
9
  #
10
10
 
11
11
  module Prof
12
- VERSION = '0.34.4'
12
+ VERSION = '0.35.0'
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prof
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.34.4
4
+ version: 0.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CF London
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-24 00:00:00.000000000 Z
11
+ date: 2017-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem-release