ops_manager_cli 0.4.0 → 0.4.1

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: 275c833c1e7b72ba2ab90fa53b3ef0025556907f
4
- data.tar.gz: 435c7bde99641128d0f9fb57f108918f4a92cd16
3
+ metadata.gz: 726b5d7b7e15a4f5cf99ba65471cf32a91e79f61
4
+ data.tar.gz: 534134302a6a63bf71492fa3ba1ef3c782ffd046
5
5
  SHA512:
6
- metadata.gz: 41210680cd70a74580a55afd53368ac4e985b1e7c9b6cf6e08bd1a900711fd3c19252fa26d82042d860fbbb1836ea79708746e2473edb37de63a4dfca225a836
7
- data.tar.gz: 507f8d1f8929e727e9fd6cf75955d3226150bd11251ea4baeb1099b22dd630d7e4df944780ebfe72866615130779d591f355fcc740fd1842a194aca3193aa450
6
+ metadata.gz: bccfac866feed2dcb40443e2eb86144792a5dc47e4b1f3b8f8cc60273f067e4579119528a370b0ef75b9f5d1fdab7d6d0975e2d50ba1042340992b5bfd0bc52a
7
+ data.tar.gz: b108eb9ccd98112839f5b5d3a8add837efa852965f0d57f335c5e039bfd24a4217c3a341e9e498f1d156b34443677359ac3144cbfd93365eb4680b8807cbd550
data/.travis.yml CHANGED
@@ -1,4 +1,2 @@
1
1
  language: ruby
2
- rvm:
3
- - 2.2.0
4
2
  before_install: gem install bundler -v 1.10.6
data/CHANGELOG.md ADDED
@@ -0,0 +1,40 @@
1
+ # Change Log
2
+
3
+ ## [v0.4.0](https://github.com/compozed/ops_manager_cli/tree/v0.4.0) (2016-10-20)
4
+ [Full Changelog](https://github.com/compozed/ops_manager_cli/compare/v0.3.0...v0.4.0)
5
+
6
+ **Implemented enhancements:**
7
+
8
+ - Improve output for appliance deploy/upgrade [\#11](https://github.com/compozed/ops_manager_cli/issues/11)
9
+ - Improve output for product deploy/upgrade [\#10](https://github.com/compozed/ops_manager_cli/issues/10)
10
+ - Run errands when applying changes [\#9](https://github.com/compozed/ops_manager_cli/issues/9)
11
+ - 1.8 support [\#5](https://github.com/compozed/ops_manager_cli/pull/5) ([bonzofenix](https://github.com/bonzofenix))
12
+
13
+ **Fixed bugs:**
14
+
15
+ - delete-unused-products command not working [\#8](https://github.com/compozed/ops_manager_cli/issues/8)
16
+ - Hardcoded user name admin when logging agains ops\_manager [\#2](https://github.com/compozed/ops_manager_cli/issues/2)
17
+
18
+ **Closed issues:**
19
+
20
+ - Link to CLA is broken [\#4](https://github.com/compozed/ops_manager_cli/issues/4)
21
+
22
+ **Merged pull requests:**
23
+
24
+ - Ensures special shell characters are escaped in ovftool command [\#7](https://github.com/compozed/ops_manager_cli/pull/7) ([kpschuck](https://github.com/kpschuck))
25
+ - Fix issue when collecting errands for applying changes [\#6](https://github.com/compozed/ops_manager_cli/pull/6) ([kpschuck](https://github.com/kpschuck))
26
+ - Replaces hardcoded 'admin' username with user from login command [\#3](https://github.com/compozed/ops_manager_cli/pull/3) ([kpschuck](https://github.com/kpschuck))
27
+
28
+ ## [v0.3.0](https://github.com/compozed/ops_manager_cli/tree/v0.3.0) (2016-09-03)
29
+ [Full Changelog](https://github.com/compozed/ops_manager_cli/compare/v0.2.8...v0.3.0)
30
+
31
+ ## [v0.2.8](https://github.com/compozed/ops_manager_cli/tree/v0.2.8) (2016-08-09)
32
+ [Full Changelog](https://github.com/compozed/ops_manager_cli/compare/v0.2.7...v0.2.8)
33
+
34
+ ## [v0.2.7](https://github.com/compozed/ops_manager_cli/tree/v0.2.7) (2016-07-28)
35
+ [Full Changelog](https://github.com/compozed/ops_manager_cli/compare/v0.1.1...v0.2.7)
36
+
37
+ ## [v0.1.1](https://github.com/compozed/ops_manager_cli/tree/v0.1.1) (2016-05-06)
38
+
39
+
40
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
File without changes
data/Dockerfile CHANGED
@@ -1,7 +1,7 @@
1
1
  FROM ruby:2.3.0
2
2
 
3
3
  ENV GEM_NAME ops_manager_cli
4
- ENV GEM_VERSION 0.4.0
4
+ ENV GEM_VERSION 0.4.1
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
data/README.md CHANGED
@@ -11,32 +11,27 @@ Questions? Pop in our [slack channel](https://cloudfoundry.slack.com/messages/op
11
11
 
12
12
  ### Core features
13
13
 
14
- - Support for deploying on vSphere infrastructure
14
+ - Support vSphere infrastructure (easy to extend to any cloud provider)
15
15
  - Deploy/Upgrade Ops Manager appliance
16
16
  - Deploy/Upgrade product tiles
17
17
  - Generate config settings templates for product tiles deployments
18
+ - Run errands on deploy/upgrade for ops_manager **< 1.7.x**
18
19
 
19
20
  ### Other features:
20
21
 
21
22
  - Show installation settings
22
23
  - Show installation logs
23
- - Get UAA token
24
24
  - Uploads stemcell to Ops Manager
25
25
  - Delete unused products
26
+ - Curl ops_manager API
26
27
 
27
- ### Limitations:
28
28
 
29
- - No support for enabling and running errands for ops_manager **< 1.7.x**
29
+ ## Upgrading OpsManager appliance
30
30
 
31
+ To upgrade from **1.7.x** -> **1.8.x** use ops_manager_cli **0.3.1**
31
32
 
32
- ### Test with Ops Manager Version
33
+ Use ops_manager_cli **>=0.4.0** once you are on **1.8.x**.
33
34
 
34
- - up to 1.8.3.0
35
-
36
- ## Upgrading OpsManager appliance from **1.7.x** to **1.8.x**
37
-
38
- On ops_manager_cli **>=0.4.0** support for upgrading to **1.8.x** was removed.
39
- Use ops_manager_cli **0.3.1** to upgrade from **1.7.x** -> **1.8.x**.
40
35
 
41
36
  ## Dependencies
42
37
 
@@ -86,13 +81,16 @@ The ops_manager_cli tool can be installed in a docker container typically in con
86
81
 
87
82
  ### Building Docker image
88
83
 
89
- bundle exec rake build
90
- docker build -t compozed/ops_manager_cli # Optional: --build-arg DOWNLOAD_URL=http://your_blobstore.com/ovftool.bundle
84
+ git co vX.X.X
85
+ bundle exec rake build
86
+ docker build \
87
+ --build-arg DOWNLOAD_URL=http://your_blobstore.com/VMware-ovftool-4.1.0-2459827-lin.x86_64.bundle \
88
+ -t compozed/ops_manager_cli:vX.X.X
91
89
 
92
90
 
93
91
  ### Provisioning docker image to private registry
94
92
 
95
- docker tag -f compozed/ops_manager_cli PRI_REGISTRY:PORT/compozed/ops_manager_cli
93
+ docker tag -f compozed/ops_manager_cli:vX.X.X PRI_REGISTRY:PORT/compozed/ops_manager_cli:vX.X.X
96
94
  docker push PRI_REGISTRY:PORT/compozed/ops_manager_cli
97
95
 
98
96
 
data/Rakefile CHANGED
@@ -1,6 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
+ require 'github_changelog_generator/task'
3
4
 
4
5
  RSpec::Core::RakeTask.new(:spec)
5
6
 
7
+ GitHubChangelogGenerator::RakeTask.new(:changelog)
8
+
6
9
  task :default => :spec
10
+ task :release => :changelog
@@ -2,11 +2,16 @@ class OpsManager
2
2
  class DirectorTemplateGenerator
3
3
  def generate
4
4
  merge_director_template_products
5
- delete_schema_version
6
- delete_director_ssl
7
- delete_uaa_ssl
8
- delete_guid
9
- delete_ip_assignments
5
+
6
+ %w{ installation_schema_version ip_assignments guid }.each do |property_name|
7
+ installation_settings.delete(property_name)
8
+ end
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)
13
+ end
14
+
10
15
  add_merging_strategy_for_networks
11
16
 
12
17
  installation_settings.to_h
@@ -35,26 +40,6 @@ class OpsManager
35
40
  end
36
41
  end
37
42
 
38
- def delete_schema_version
39
- installation_settings.delete('installation_schema_version')
40
- end
41
-
42
- def delete_ip_assignments
43
- installation_settings.delete('ip_assignments')
44
- end
45
-
46
- def delete_guid
47
- installation_settings.delete('guid')
48
- end
49
-
50
- def delete_director_ssl
51
- product_template["products"][1].delete("director_ssl")
52
- end
53
-
54
- def delete_uaa_ssl
55
- product_template["products"][1].delete("uaa_ssl")
56
- end
57
-
58
43
  def product_template
59
44
  @product_template ||= OpsManager::ProductTemplateGenerator.new('p-bosh').generate
60
45
  end
@@ -2,7 +2,7 @@ class OpsManager
2
2
  class ProductTemplateGenerator
3
3
  OPS_MANAGER_PASSWORD_LENGTH = 32
4
4
  OPS_MANAGER_SECRET_LENGTH = 32
5
- OPS_MANAGER_SALT_LENGTH = 16
5
+ OPS_MANAGER_SALT_LENGTH = 14
6
6
 
7
7
  attr_reader :product_name
8
8
 
@@ -10,101 +10,35 @@ class OpsManager
10
10
  @product_name = product_name
11
11
  end
12
12
 
13
-
14
13
  def generate
15
- delete_partitions
16
- delete_vm_credentials
17
- delete_guid
18
- delete_installation_name
19
- delete_product_version
20
- delete_jobs_guid
21
- delete_prepared
22
- delete_ops_manager_generated_passwords
23
- delete_ops_manager_generated_salts
24
- delete_ops_manager_generated_secrets
25
- delete_private_key_pem
26
- delete_product_version_from_properties
27
- add_merging_strategy_for_jobs
28
- add_merging_strategy_for_job_properties
29
-
30
- { 'products' => [ "(( merge on identifier ))" , selected_product ] }
31
- end
32
-
33
- def generate_yml
34
- generate.to_yaml
35
- .gsub('"(( merge on identifier ))"', '(( merge on identifier ))')
36
- end
37
-
38
- private
39
- def delete_product_version_from_properties
40
- delete_value_from_product_properties_if do |property|
41
- property['identifier'] == 'product_version'
42
- end
43
- end
44
-
45
- def delete_ops_manager_generated_passwords
46
- delete_value_from_job_properties_if do |value|
47
- value.fetch('password', '').length == OPS_MANAGER_PASSWORD_LENGTH
48
- end
49
- end
50
-
51
- def delete_private_key_pem
52
- delete_value_from_product_properties_if do |property|
53
- property['value'].is_a?(Hash) && property['value'].has_key?('private_key_pem')
14
+ %w{ prepared guid installation_name product_version stemcell }.each do |property_name|
15
+ delete_from_product(property_name)
54
16
  end
55
17
 
56
- delete_value_from_job_properties_if do |value|
57
- value.fetch('secret', '').length == OPS_MANAGER_SECRET_LENGTH
58
- value.has_key?('private_key_pem')
18
+ %w{ partitions vm_credentials guid }.each do |property_name|
19
+ delete_from_jobs(property_name)
59
20
  end
60
- end
61
21
 
62
- def delete_ops_manager_generated_salts
63
- delete_value_from_job_properties_if do |value|
64
- value.fetch('salt', '').length == OPS_MANAGER_SALT_LENGTH
22
+ %w{ password secret salt private_key_pem }.each do |property_name|
23
+ delete_value_from_job_properties(property_name)
65
24
  end
66
- end
67
25
 
68
- def delete_ops_manager_generated_secrets
69
- delete_value_from_product_properties_if do |property|
70
- property['value'].is_a?(Hash) && property['value'].fetch('secret', '').length == OPS_MANAGER_SECRET_LENGTH
26
+ %w{ secret private_key_pem }.each do |property_name|
27
+ delete_value_from_product_properties(property_name)
71
28
  end
72
29
 
73
- delete_value_from_job_properties_if do |value|
74
- value.fetch('secret', '').length == OPS_MANAGER_SECRET_LENGTH
75
- end
76
- end
77
-
78
- def delete_value_from_product_properties_if
79
- selected_product.fetch('properties', []).each do |p|
80
- p.delete('value') if p.is_a?(Hash) && yield(p)
81
- end
82
- end
83
-
84
- def delete_value_from_job_properties_if
85
- selected_product['jobs'].each do |j|
86
- j.fetch('properties', []).each do |p|
87
- value = p.fetch('value',{})
88
- p.delete('value') if value.is_a?(Hash) && yield(value)
89
- end
90
- end
91
- end
92
-
93
- def delete_prepared
94
- selected_product.delete("prepared")
95
- end
30
+ add_merging_strategy_for_jobs
31
+ add_merging_strategy_for_job_properties
96
32
 
97
- def delete_guid
98
- selected_product.delete("guid")
33
+ { 'products' => [ "(( merge on identifier ))" , selected_product ] }
99
34
  end
100
35
 
101
- def delete_installation_name
102
- selected_product.delete("installation_name")
36
+ def generate_yml
37
+ generate.to_yaml
38
+ .gsub('"(( merge on identifier ))"', '(( merge on identifier ))')
103
39
  end
104
40
 
105
- def delete_product_version
106
- selected_product.delete("product_version")
107
- end
41
+ private
108
42
 
109
43
  def add_merging_strategy_for_jobs
110
44
  selected_product['jobs'].unshift("(( merge on identifier ))")
@@ -116,16 +50,8 @@ class OpsManager
116
50
  end
117
51
  end
118
52
 
119
- def delete_partitions
120
- delete_from_jobs('partitions')
121
- end
122
-
123
- def delete_vm_credentials
124
- delete_from_jobs('vm_credentials')
125
- end
126
-
127
- def delete_jobs_guid
128
- delete_from_jobs('guid')
53
+ def delete_from_product(name)
54
+ selected_product.delete(name)
129
55
  end
130
56
 
131
57
  def selected_product
@@ -147,5 +73,21 @@ class OpsManager
147
73
  res = OpsManager::Api::Opsman.new(silent: true).get_installation_settings
148
74
  @installation_settings = JSON.parse(res.body)
149
75
  end
76
+
77
+ def delete_value_from_product_properties(name)
78
+ selected_product.fetch('properties', []).each do |p|
79
+ value = p.fetch('value',{})
80
+ p.delete('value') if value.is_a?(Hash) && !!value[name]
81
+ end
82
+ end
83
+
84
+ def delete_value_from_job_properties(name)
85
+ selected_product['jobs'].each do |j|
86
+ j.fetch('properties', []).each do |p|
87
+ value = p.fetch('value',{})
88
+ p.delete('value') if value.is_a?(Hash) && !!value[name]
89
+ end
90
+ end
91
+ end
150
92
  end
151
93
  end
@@ -1,3 +1,3 @@
1
1
  class OpsManager
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
data/ops_manager.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rspec"
23
23
  spec.add_development_dependency "webmock"
24
24
  spec.add_development_dependency "byebug"
25
+ spec.add_development_dependency "github_changelog_generator"
25
26
  spec.add_dependency "rbvmomi"
26
27
  spec.add_dependency "multipart-post"
27
28
  spec.add_dependency "clamp"
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.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - CompoZed
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-19 00:00:00.000000000 Z
11
+ date: 2016-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: github_changelog_generator
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rbvmomi
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -189,8 +203,9 @@ files:
189
203
  - ".rspec"
190
204
  - ".ruby-version"
191
205
  - ".travis.yml"
206
+ - CHANGELOG.md
192
207
  - CODE_OF_CONDUCT.md
193
- - CONTRIBUTION.md
208
+ - CONTRIBUTING.md
194
209
  - Dockerfile
195
210
  - Gemfile
196
211
  - LICENSE.txt