ops_manager_cli 0.7.2 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
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.