ops_manager_cli 0.7.2 → 0.7.4

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: 54353d2183e22dbc6336cfa9effb657045473c3e
4
- data.tar.gz: 757e9c28fcee50edcc0a9cf966bb1bd509b4320a
3
+ metadata.gz: 5a17efe939f01b0d30af761995ec9e53a2cce164
4
+ data.tar.gz: 10b1449933a1ff712335e1c0c0de34b9d717d84b
5
5
  SHA512:
6
- metadata.gz: c7b416fa774836542dae54ccd31023254b95449a021dd9f804664421d0c49d805249b7b60433245daba46658d560fbab5b83c09f6e3d3f37ecda7cc6971efc15
7
- data.tar.gz: 6859701012082484571dba53af2780d7d4b8769d554b673a89ee1b61a2111fa7b89af37ada4c377f8de82408cc6e0e51dd036e1d3b77b05d1ca31b325a4a7889
6
+ metadata.gz: 3a228e183de7d339979a7f060eea6702cea3111facdc396e219708597a2369ed980e8dc147e5d003fef35e884098e6ce8f69e02bcfe4be74edd8064a400b0c15
7
+ data.tar.gz: 6001b205c0f317a830341edaebd47b25d198aca7fb130324ebe5823b5ca9baca84690c9301599cc5b0aad5ae323c0a8ddcaa1e0e4c05d379f8e826937efacb54
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.3
1
+ 2.4.1
data/CHANGELOG.md CHANGED
@@ -1,10 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.7.2](https://github.com/compozed/ops_manager_cli/tree/v0.7.2) (2017-11-03)
4
+ [Full Changelog](https://github.com/compozed/ops_manager_cli/compare/v0.7.1...v0.7.2)
5
+
3
6
  ## [v0.7.1](https://github.com/compozed/ops_manager_cli/tree/v0.7.1) (2017-10-25)
4
7
  [Full Changelog](https://github.com/compozed/ops_manager_cli/compare/v0.7.0...v0.7.1)
5
8
 
6
- Fix issue when opsman appliance is starting on AWS
7
-
8
9
  ## [v0.7.0](https://github.com/compozed/ops_manager_cli/tree/v0.7.0) (2017-10-20)
9
10
  [Full Changelog](https://github.com/compozed/ops_manager_cli/compare/v0.5.4...v0.7.0)
10
11
 
@@ -98,4 +99,4 @@ Fix issue when opsman appliance is starting on AWS
98
99
  ## [v0.1.1](https://github.com/compozed/ops_manager_cli/tree/v0.1.1) (2016-05-06)
99
100
 
100
101
 
101
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
102
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Dockerfile CHANGED
@@ -1,11 +1,16 @@
1
- FROM ruby:2.3.0
1
+ FROM ruby:2.4.1
2
2
 
3
3
  ENV GEM_NAME ops_manager_cli
4
- ENV GEM_VERSION 0.7.1
4
+ ENV GEM_VERSION 0.7.4
5
5
  ENV OVFTOOL_VERSION 4.1.0-2459827
6
6
  ENV OVFTOOL_INSTALLER VMware-ovftool-${OVFTOOL_VERSION}-lin.x86_64.bundle
7
7
  ARG DOWNLOAD_URL
8
8
 
9
+ # ================== Installs sshpass ===============
10
+ RUN echo "deb http://httpredir.debian.org/debian jessie utils" >> sources.list
11
+ RUN apt-get update
12
+ RUN apt-get install -y sshpass unzip
13
+
9
14
  # ================== Installs OVF tools ==============
10
15
  RUN echo $DOWNLOAD_URL
11
16
  RUN wget -v ${DOWNLOAD_URL} \
@@ -13,10 +18,9 @@ RUN wget -v ${DOWNLOAD_URL} \
13
18
  && rm -f ${OVFTOOL_INSTALLER}*
14
19
 
15
20
  # ================== Installs Spruce ==============
16
- RUN wget -v --no-check-certificate https://github.com/geofffranks/spruce/releases/download/v1.0.1/spruce_1.0.1_linux_amd64.tar.gz \
17
- && tar -xvf spruce_1.0.1_linux_amd64.tar.gz \
18
- && chmod +x /spruce_1.0.1_linux_amd64/spruce \
19
- && ln -s /spruce_1.0.1_linux_amd64/spruce /usr/bin/.
21
+ RUN wget -v --no-check-certificate https://github.com/geofffranks/spruce/releases/download/v1.13.1/spruce-linux-amd64 \
22
+ && chmod +x spruce-linux-amd64 \
23
+ && ln -s /spruce-linux-amd64 /usr/bin/spruce
20
24
 
21
25
  # ================== Installs JQ ==============
22
26
  RUN wget -v -O /usr/local/bin/jq --no-check-certificate https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64
@@ -24,6 +28,5 @@ RUN chmod +x /usr/local/bin/jq
24
28
 
25
29
  # ================== Installs ops_manager_cli gem ==============
26
30
  COPY pkg/${GEM_NAME}-${GEM_VERSION}.gem /tmp/
27
-
28
31
  RUN gem install /tmp/${GEM_NAME}-${GEM_VERSION}.gem
29
32
 
@@ -153,7 +153,7 @@ class OpsManager
153
153
  Net::HTTP.new(uri.host, uri.port).tap do |http|
154
154
  http.use_ssl = true
155
155
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
156
- http.read_timeout = 1200
156
+ http.read_timeout = 1800
157
157
 
158
158
  ctx = OpenSSL::SSL::SSLContext.new
159
159
  ctx.ssl_version = :TLSv1_2
@@ -107,12 +107,16 @@ class OpsManager
107
107
  end
108
108
 
109
109
  def upload_product(filepath)
110
- file = "#{filepath}"
111
- cmd = "curl -s -k \"https://#{target}/api/v0/available_products\" -F 'product[file]=@#{file}' -X POST -H 'Authorization: Bearer #{access_token}'"
112
- logger.info "running cmd: #{cmd}"
113
- body = `#{cmd}`
114
- logger.info "Upload product response: #{body}"
115
- raise OpsManager::ProductUploadError if body.include? "error"
110
+ return unless filepath
111
+ tar = UploadIO.new(filepath, 'multipart/form-data')
112
+ print_green "====> Uploading product: #{filepath} ..."
113
+ #print "====> Uploading product ...".green
114
+ opts = { "product[file]" => tar }
115
+ res = authenticated_multipart_post("/api/v0/available_products" , opts)
116
+
117
+ raise OpsManager::ProductUploadError.new(res.body) unless res.code == '200'
118
+ say_green 'done'
119
+ res
116
120
  end
117
121
 
118
122
  def get_available_products
@@ -40,7 +40,7 @@ class OpsManager
40
40
  # Create ami of stopped server
41
41
  response = connection.create_image(server.id, "#{name}-backup", "Backup of #{name}")
42
42
  image = connection.images.get( response.data[:body]['imageId'])
43
- image.wait_for { image.state == "available" }
43
+ image.wait_for 36000 { image.state == "available" }
44
44
  if image.state != "available"
45
45
  fail "Error creating backup AMI, bailing out before destroying the VM"
46
46
  end
@@ -16,6 +16,7 @@ class OpsManager
16
16
  def expand_path_for!(*attrs)
17
17
  attrs.each do |attr|
18
18
  path = self[attr]
19
+ next if path.nil?
19
20
  self[attr] = if path =~ %r{^file://}
20
21
  path = Dir.glob(path.gsub!('file://','')).first
21
22
  "file://#{path}"
@@ -6,7 +6,7 @@ class OpsManager
6
6
  def initialize(config)
7
7
  super(config)
8
8
  validate_presence_of! :name, :desired_version
9
- expand_path_for! :stemcell
9
+ expand_path_for! :stemcell, :filepath
10
10
  end
11
11
  end
12
12
  end
@@ -7,9 +7,8 @@ class OpsManager
7
7
  installation_settings.delete(property_name)
8
8
  end
9
9
 
10
- %w{ director_ssl uaa_ssl uaa_credentials uaa_admin_user_credentials
11
- uaa_admin_client_credentials }.each do |property_name|
12
- product_template["products"][1].delete(property_name)
10
+ %w{ uaa_credentials uaa_admin_user_credentials uaa_admin_client_credentials }.each do |property_name|
11
+ product_template["products"].select {|p| p["identifier"] == "p-bosh"}.first.delete(property_name)
13
12
  end
14
13
 
15
14
  add_merging_strategy_for_networks
@@ -7,13 +7,11 @@ class OpsManager
7
7
  end
8
8
 
9
9
  def self.logger
10
- @logger ||= Logger.new(STDOUT).tap do |l|
11
- l.level = log_level
12
- end
10
+ @logger ||= Logger.new(STDERR, level: log_level)
13
11
  end
14
12
 
15
- def self.logger=(logger)
16
- @logger = logger
13
+ def self.logger=(l)
14
+ @logger = l
17
15
  end
18
16
 
19
17
  private
@@ -43,12 +43,10 @@ class OpsManager
43
43
  end
44
44
 
45
45
  def upload
46
- print "====> Uploading product ...".green
47
46
  if ProductDeployment.exists?(config[:name], config[:desired_version])
48
- puts "product already exists".green
47
+ puts "====> Product already exists... skipping upload".green
49
48
  elsif config[:filepath]
50
49
  upload_product(config[:filepath])
51
- puts "done".green
52
50
  else
53
51
  puts "no filepath provided, skipping product upload.".green
54
52
  end
@@ -87,7 +85,7 @@ class OpsManager
87
85
 
88
86
  def merge_product_installation_settings
89
87
  get_installation_settings({write_to: '/tmp/is.yml'})
90
- puts `DEBUG=false spruce merge /tmp/is.yml #{config[:installation_settings_file]} > /tmp/new_is.yml`
88
+ puts `DEBUG=false DEFAULT_ARRAY_MERGE_KEY=identifier spruce merge /tmp/is.yml #{config[:installation_settings_file]} > /tmp/new_is.yml`
91
89
  upload_installation_settings('/tmp/new_is.yml')
92
90
  end
93
91
 
@@ -27,29 +27,30 @@ class OpsManager
27
27
  delete_value_from_product_properties(property_name)
28
28
  end
29
29
 
30
- add_merging_strategy_for_jobs
31
- add_merging_strategy_for_job_properties
30
+ %w{ deployed }.each do |property_name|
31
+ delete_key_from_product_properties(property_name)
32
+ end
32
33
 
33
- { 'products' => [ "(( merge on identifier ))" , selected_product ] }
34
- end
34
+ %w{ deployed }.each do |property_name|
35
+ delete_key_from_job_properties(property_name)
36
+ end
35
37
 
36
- def generate_yml
37
- generate.to_yaml
38
- .gsub('"(( merge on identifier ))"', '(( merge on identifier ))')
39
- end
38
+ %w{ deployed }.each do |property_name|
39
+ delete_key_from_product_properties_options_properties(property_name)
40
+ end
40
41
 
41
- private
42
+ %w{ deployed }.each do |property_name|
43
+ delete_key_from_job_properties_records_properties(property_name)
44
+ end
42
45
 
43
- def add_merging_strategy_for_jobs
44
- selected_product['jobs'].unshift("(( merge on identifier ))")
46
+ { 'products' => [ selected_product ] }
45
47
  end
46
48
 
47
- def add_merging_strategy_for_job_properties
48
- selected_product['jobs'].each do |j|
49
- j['properties'].unshift("(( merge on identifier ))") if j['properties']
50
- end
49
+ def generate_yml
50
+ generate.to_yaml
51
51
  end
52
52
 
53
+ private
53
54
  def delete_from_product(name)
54
55
  selected_product.delete(name)
55
56
  end
@@ -81,6 +82,42 @@ class OpsManager
81
82
  end
82
83
  end
83
84
 
85
+ def delete_key_from_job_properties(name)
86
+ selected_product['jobs'].each do |j|
87
+ j.fetch('properties', []).each do |p|
88
+ p.delete(name)
89
+ end
90
+ end
91
+ end
92
+
93
+ def delete_key_from_product_properties(name)
94
+ selected_product.fetch('properties', []).each do |p|
95
+ p.delete(name)
96
+ end
97
+ end
98
+
99
+ def delete_key_from_product_properties_options_properties(name)
100
+ selected_product.fetch('properties',[]).each do |p|
101
+ p.fetch('options',[]).each do |o|
102
+ o.fetch('properties', []).each do |op|
103
+ op.delete(name)
104
+ end
105
+ end
106
+ end
107
+ end
108
+
109
+ def delete_key_from_job_properties_records_properties(name)
110
+ selected_product['jobs'].each do |j|
111
+ j.fetch('properties',[]).each do |p|
112
+ p.fetch('records',[]).each do |o|
113
+ o.fetch('properties', []).each do |op|
114
+ op.delete(name)
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
120
+
84
121
  def delete_value_from_job_properties(name)
85
122
  selected_product['jobs'].each do |j|
86
123
  j.fetch('properties', []).each do |p|
@@ -1,3 +1,3 @@
1
1
  class OpsManager
2
- VERSION = "0.7.2"
2
+ VERSION = "0.7.4"
3
3
  end
data/specs.4.8 ADDED
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_manager_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - CompoZed
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-03 00:00:00.000000000 Z
11
+ date: 2017-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -252,6 +252,7 @@ files:
252
252
  - lib/ops_manager/semver.rb
253
253
  - lib/ops_manager/version.rb
254
254
  - ops_manager.gemspec
255
+ - specs.4.8
255
256
  homepage:
256
257
  licenses:
257
258
  - MIT
@@ -272,7 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
272
273
  version: '0'
273
274
  requirements: []
274
275
  rubyforge_project:
275
- rubygems_version: 2.6.6
276
+ rubygems_version: 2.6.11
276
277
  signing_key:
277
278
  specification_version: 4
278
279
  summary: Performs Ops Manager deployments.