knife-vcenter 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
3
  # Author:: Chef Partner Engineering (<partnereng@chef.io>)
4
- # Copyright:: Copyright (c) 2017 Chef Software, Inc.
4
+ # Copyright:: Copyright (c) 2017-2018 Chef Software, Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,7 +17,7 @@
17
17
  # limitations under the License.
18
18
  #
19
19
 
20
- require 'rbvmomi'
20
+ require "rbvmomi"
21
21
 
22
22
  class Support
23
23
  class CloneVm
@@ -64,10 +64,10 @@ class Support
64
64
  if new_vm.nil?
65
65
  puts format("Unable to find machine: %s", name)
66
66
  else
67
- puts 'Waiting for network interfaces to become available...'
67
+ puts "Waiting for network interfaces to become available..."
68
68
  sleep 2 while new_vm.guest.net.empty? || !new_vm.guest.ipAddress
69
69
  new_vm.guest.net[0].ipConfig.ipAddress.detect do |addr|
70
- addr.origin != 'linklayer'
70
+ addr.origin != "linklayer"
71
71
  end.ipAddress
72
72
  end
73
73
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
3
  # Author:: Chef Partner Engineering (<partnereng@chef.io>)
4
- # Copyright:: Copyright (c) 2017 Chef Software, Inc.
4
+ # Copyright:: Copyright (c) 2017-2018 Chef Software, Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,4 +15,4 @@
15
15
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
- #
18
+ #
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
3
  # Author:: Chef Partner Engineering (<partnereng@chef.io>)
4
- # Copyright:: Copyright (c) 2017 Chef Software, Inc.
4
+ # Copyright:: Copyright (c) 2017-2018 Chef Software, Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,9 +17,9 @@
17
17
  # limitations under the License.
18
18
  #
19
19
 
20
- require 'spec_helper'
21
- require 'chef/knife/vcenter_vm_list'
22
- require 'support/shared_examples_for_command'
20
+ require "spec_helper"
21
+ require "chef/knife/vcenter_vm_list"
22
+ require "support/shared_examples_for_command"
23
23
 
24
24
  class PowerStatus < BasicObject
25
25
  attr_reader :value
@@ -33,35 +33,34 @@ describe Chef::Knife::Cloud::VcenterVmList do
33
33
 
34
34
  subject { described_class.new }
35
35
 
36
- describe '#format_power_status' do
36
+ describe "#format_power_status" do
37
37
  context 'when the power is "POWERED_ON"' do
38
- it 'displays with green' do
39
- expect(subject.ui).to receive(:color).with('POWERED_ON', :green)
40
- subject.format_power_status(PowerStatus.new('POWERED_ON'))
38
+ it "displays with green" do
39
+ expect(subject.ui).to receive(:color).with("POWERED_ON", :green)
40
+ subject.format_power_status(PowerStatus.new("POWERED_ON"))
41
41
  end
42
42
  end
43
43
 
44
44
  context 'when the power is "POWERED_OFF"' do
45
- it 'displays with red' do
46
- expect(subject.ui).to receive(:color).with('POWERED_OFF', :red)
47
- subject.format_power_status(PowerStatus.new('POWERED_OFF'))
45
+ it "displays with red" do
46
+ expect(subject.ui).to receive(:color).with("POWERED_OFF", :red)
47
+ subject.format_power_status(PowerStatus.new("POWERED_OFF"))
48
48
  end
49
49
  end
50
50
 
51
51
  context 'when the power is "SUSPENDED"' do
52
- it 'displays with red' do
53
- expect(subject.ui).to receive(:color).with('SUSPENDED', :yellow)
54
- subject.format_power_status(PowerStatus.new('SUSPENDED'))
55
- end
56
- end
52
+ it "displays with red" do
53
+ expect(subject.ui).to receive(:color).with("SUSPENDED", :yellow)
54
+ subject.format_power_status(PowerStatus.new("SUSPENDED"))
55
+ end
56
+ end
57
57
  end
58
58
 
59
- describe '#format_memory_value' do
60
- context 'when the memory value is 8192' do
61
- it 'displays as 8,192' do
62
- expect(subject.ui).to receive(:text).with('8,192')
63
- subject.format_memory_value(8192)
59
+ describe "#format_memory_value" do
60
+ context "when the memory value is 8192" do
61
+ it "returns 8,192" do
62
+ expect(subject.format_memory_value(8192)).to eq("8,192")
64
63
  end
65
64
  end
66
65
  end
67
- end
66
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-vcenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Partner Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-15 00:00:00.000000000 Z
11
+ date: 2018-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: knife-cloud
@@ -108,20 +108,6 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: github_changelog_generator
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: pry
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -136,34 +122,6 @@ dependencies:
136
122
  - - ">="
137
123
  - !ruby/object:Gem::Version
138
124
  version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: rake
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '10.0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '10.0'
153
- - !ruby/object:Gem::Dependency
154
- name: rubocop
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '0.35'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '0.35'
167
125
  - !ruby/object:Gem::Dependency
168
126
  name: ruby-debug-ide
169
127
  requirement: !ruby/object:Gem::Requirement
@@ -185,17 +143,7 @@ executables: []
185
143
  extensions: []
186
144
  extra_rdoc_files: []
187
145
  files:
188
- - ".github/ISSUE_TEMPLATE.md"
189
- - ".github/PULL_REQUEST_TEMPLATE.md"
190
- - ".gitignore"
191
- - ".rubocop.yml"
192
- - ".travis.yml"
193
- - CHANGELOG.md
194
- - Gemfile
195
- - LICENSE.txt
196
- - README.md
197
- - Rakefile
198
- - knife-vcenter.gemspec
146
+ - LICENSE
199
147
  - lib/base.rb
200
148
  - lib/chef/knife/cloud/vcenter_service.rb
201
149
  - lib/chef/knife/cloud/vcenter_service_helpers.rb
@@ -216,7 +164,7 @@ files:
216
164
  - spec/unit/vcenter_vm_list_spec.rb
217
165
  homepage: https://github.com/chef/knife-vcenter
218
166
  licenses:
219
- - Apache 2.0
167
+ - Apache-2.0
220
168
  metadata: {}
221
169
  post_install_message:
222
170
  rdoc_options: []
@@ -234,10 +182,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
182
  version: '0'
235
183
  requirements: []
236
184
  rubyforge_project:
237
- rubygems_version: 2.6.11
185
+ rubygems_version: 2.7.6
238
186
  signing_key:
239
187
  specification_version: 4
240
188
  summary: Knife plugin to VMware vCenter.
241
189
  test_files:
242
- - spec/spec_helper.rb
243
190
  - spec/unit/vcenter_vm_list_spec.rb
191
+ - spec/spec_helper.rb
@@ -1,22 +0,0 @@
1
- ### Versions:
2
- <!--- Version of the software where you are encountering the issue --->
3
- <!-- You should probably update in this is not newest release.--->
4
- * Version of knife-vcenter:
5
- * Version of chef:
6
-
7
- ### Platform Details
8
- <!--- What version of vCenter are you running? What version of ESXi are you using too?--->
9
- * Version of vCenter:
10
- * Version of ESXi:
11
-
12
- ### Scenario:
13
- <!--- What you are trying to achieve and you can't?--->
14
-
15
- ### Steps to Reproduce:
16
- <!--- If you are filing an issue what are the things we need to do in order to repro your problem? How are you using this gem or any resources it includes?--->
17
-
18
- ### Expected Result:
19
- <!--- What are you expecting to happen as the consequence of above reproduction steps?--->
20
-
21
- ### Actual Result:
22
- <!--- What actually happens after the reproduction steps? Include the error output or a link to a gist if possible.--->
@@ -1,14 +0,0 @@
1
- ### Description
2
-
3
- <!--- Describe what this change achieves--->
4
-
5
- ### Issues Resolved
6
-
7
- <!--- List any existing issues this PR resolves--->
8
-
9
- ### Check List
10
-
11
- - [ ] All tests pass.
12
- - [ ] All style checks pass.
13
- - [ ] Functionality includes testing.
14
- - [ ] Functionality has been documented in the README if applicable
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- *.bundle
11
- *.so
12
- *.o
13
- *.a
14
- mkmf.log
15
- .direnv/
16
- .envrc
17
- .ruby-version
18
- .chef
19
- local/
20
- .vscode/
21
- .chef/
@@ -1,18 +0,0 @@
1
- AllCops:
2
- Exclude:
3
- - 'spec/**/*'
4
- - 'vendor/**/*'
5
- vendor/AbcSize:
6
- Max: 30
7
- Metrics/LineLength:
8
- Max: 150
9
- Metrics/MethodLength:
10
- Max: 30
11
- Style/Documentation:
12
- Enabled: false
13
- Style/SignalException:
14
- Enabled: false
15
- Style/SpaceAroundEqualsInParameterDefault:
16
- EnforcedStyle: no_space
17
- Style/SpaceInsideBrackets:
18
- Enabled: false
@@ -1,16 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- sudo: false
4
-
5
- rvm:
6
- - 2.2
7
- - 2.3.3
8
- - 2.4.1
9
-
10
- branches:
11
- only:
12
- - master
13
-
14
- script:
15
- - bundle exec rake style
16
- - bundle exec rake spec
@@ -1,34 +0,0 @@
1
- # Change Log
2
-
3
- ## [2.0.0](https://github.com/chef/knife-vcenter/tree/2.0.0) (2017-09-15)
4
- [Full Changelog](https://github.com/chef/knife-vcenter/compare/v1.1.1...2.0.0)
5
-
6
- **Merged pull requests:**
7
-
8
- - Unpinning Chef, because it is an dependency. [\#8](https://github.com/chef/knife-vcenter/pull/8) ([jjasghar](https://github.com/jjasghar))
9
-
10
- ## [v1.1.1](https://github.com/chef/knife-vcenter/tree/v1.1.1) (2017-09-14)
11
- [Full Changelog](https://github.com/chef/knife-vcenter/compare/v1.1.0...v1.1.1)
12
-
13
- **Merged pull requests:**
14
-
15
- - 6.6 vSphere sdk release [\#7](https://github.com/chef/knife-vcenter/pull/7) ([jjasghar](https://github.com/jjasghar))
16
-
17
- ## [v1.1.0](https://github.com/chef/knife-vcenter/tree/v1.1.0) (2017-09-13)
18
- [Full Changelog](https://github.com/chef/knife-vcenter/compare/v1.0.0...v1.1.0)
19
-
20
- **Merged pull requests:**
21
-
22
- - Updated to make resource\_pool and targethost optional [\#6](https://github.com/chef/knife-vcenter/pull/6) ([russellseymour](https://github.com/russellseymour))
23
-
24
- ## [v1.0.0](https://github.com/chef/knife-vcenter/tree/v1.0.0) (2017-08-28)
25
- **Merged pull requests:**
26
-
27
- - Added new option to state wether vCenter SDK logs should be displayed [\#4](https://github.com/chef/knife-vcenter/pull/4) ([russellseymour](https://github.com/russellseymour))
28
- - 1.0.0 release [\#3](https://github.com/chef/knife-vcenter/pull/3) ([jjasghar](https://github.com/jjasghar))
29
- - Walking through the knife-vcenter code [\#2](https://github.com/chef/knife-vcenter/pull/2) ([jjasghar](https://github.com/jjasghar))
30
- - Useful information for public release. [\#1](https://github.com/chef/knife-vcenter/pull/1) ([jjasghar](https://github.com/jjasghar))
31
-
32
-
33
-
34
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
- source 'https://rubygems.org'
3
- gemspec
data/README.md DELETED
@@ -1,219 +0,0 @@
1
- # knife-vcenter
2
-
3
- [![Gem Version](https://badge.fury.io/rb/knife-vcenter.svg)](https://rubygems.org/gems/knife-vcenter)
4
- [![Build Status](https://travis-ci.org/chef/knife-vcenter.svg?branch=master)](https://travis-ci.org/chef/knife-vcenter)
5
- [![Dependency Status](https://gemnasium.com/chef/knife-vcenter.svg)](https://gemnasium.com/chef/knife-vcenter)
6
- [![Inline docs](http://inch-ci.org/github/chef/knife-vcenter.svg?branch=master)](http://inch-ci.org/github/chef/knife-vcenter)
7
-
8
- This is the official Chef Knife plugin for VMware REST API. This plugin gives knife the ability to create, bootstrap, and manage VMware vms.
9
- - Documentation: [https://github.com/chef/knife-vcenter/blob/master/README.md](https://github.com/chef/knife-vcenter/blob/master/README.md)
10
- - Source: [https://github.com/chef/knife-vcenter/tree/master](https://github.com/chef/knife-vcenter/tree/master)
11
- - Issues: [https://github.com/chef/knife-vcenter/issues](https://github.com/chef/knife-vcenter/issues)
12
- - Slack: sign up: https://code.vmware.com/slack/ slack channel: #chef
13
- - Mailing list: [https://discourse.chef.io/](https://discourse.chef.io/)
14
-
15
- This is a `knife` plugin that allows interaction with vSphere using the vSphere Automation SDK.
16
-
17
- Please refer to the [CHANGELOG](CHANGELOG.md) for version history and known issues.
18
-
19
- ## Requirements
20
-
21
- - Chef 13.0 higher
22
- - Ruby 2.3.3 or higher
23
-
24
- ## Installation
25
-
26
- This driver has a dependency. It requires the [vSphere Automation SDK](https://github.com/vmware/vsphere-automation-sdk-ruby) be installed. The steps to do that are as follows:
27
-
28
- - `$ git clone` [https://github.com/vmware/vsphere-automation-sdk-ruby.git](https://github.com/vmware/vsphere-automation-sdk-ruby.git)
29
- - `cd vsphere-automation-sdk-ruby`
30
- - `gem build vsphere-automation-sdk-ruby.gemspec`
31
- - `chef gem install vsphere-automation-sdk-<version>.gem`
32
-
33
- Using [ChefDK](https://downloads.chef.io/chef-dk/), simply install the Gem:
34
-
35
- ```bash
36
- chef gem install knife-vcenter
37
- ```
38
-
39
- If you're using bundler, simply add Chef and knife-vcenter to your Gemfile:
40
-
41
- ```ruby
42
- gem 'chef'
43
- gem 'knife-vcenter'
44
- ```
45
-
46
- ## Configuration
47
-
48
- In order to communicate with vSphere, you must specify your user credentials. You can specify them in your `knife.rb` file:
49
-
50
- ```ruby
51
- knife[:vcenter_username] = "myuser"
52
- knife[:vcenter_password] = "mypassword"
53
- knife[:vcenter_host] = "172.16.20.2"
54
- knife[:vcenter_disable_ssl_verify] = true # if you want to disable SSL checking
55
- ```
56
-
57
- or alternatively you can supply them on the command-line:
58
-
59
- ```bash
60
- knife vcenter _command_ --vcenter-username myuser --vcenter-password mypassword
61
- ```
62
-
63
- ## Usage
64
-
65
- ### knife vcenter cluster list
66
-
67
- Lists the clusters on the connected vSphere environment
68
-
69
- ```
70
- $ knife vcenter cluster list
71
- ID Name DRS? HA?
72
- domain-c123 Cluster False False
73
- ```
74
-
75
- ## knife vcenter datacenter list
76
-
77
- List the data centers configures in the vSPeher environment
78
-
79
- ```
80
- $ knife vcenter datacenter list
81
- ID Name
82
- datacenter-21 Datacenter
83
- ```
84
-
85
- ## knife vcenter host list
86
-
87
- List the hosts in the vSphere in the vSphere environment
88
-
89
- ```
90
- $ knife vcenter host list
91
- ID Name Power State Connection State
92
- host-28 172.16.20.3 POWERED_ON CONNECTED
93
- host-64 172.16.20.41 POWERED_ON CONNECTED
94
- host-69 172.16.20.42 POWERED_ON CONNECTED
95
- host-74 172.16.20.43 POWERED_ON CONNECTED
96
- host-79 172.16.20.44 POWERED_ON CONNECTED
97
- ```
98
-
99
- ## knife vcenter vm list
100
-
101
- List out all the virtual machines that exist in the vSphere environment
102
-
103
- ```
104
- $ knife vcenter vm list
105
- ID Name Power State CPU Count RAM Size (MB)
106
- vm-42 alpine-docker POWERED_OFF 1 4,024
107
- vm-35 automate-ubuntu POWERED_OFF 1 4,096
108
- vm-44 chef POWERED_OFF 1 4,096
109
- vm-33 chef-automate POWERED_OFF 1 4,096
110
- vm-34 chef-buildnode POWERED_OFF 1 4,096
111
- vm-43 chef-compliance POWERED_OFF 1 4,096
112
- vm-71 CyberArk POWERED_OFF 1 8,192
113
- vm-45 jenkins POWERED_ON 4 8,096
114
- vm-36 LFS POWERED_OFF 2 4,096
115
- ```
116
-
117
- ## knife vcenter vm show NAME
118
-
119
- Display details about a specific virtual machine.
120
-
121
- ```
122
- $ knife vcenter vm show chef
123
- ID: vm-44
124
- Name: chef
125
- Power State: POWERED_OFF
126
- ```
127
-
128
- _The IP address of the machine is not returned yet as this requires a call to a different SDK_
129
-
130
- ## knife vcenter vm clone NAME
131
-
132
- Create a new machine by cloning an existing machine or a template. This machine will be bootstrapped by Chef, as long as all the relevant details are in the `knife.rb` file.
133
-
134
- The following parameters are required:
135
-
136
- - `--datacenter` - Datacenter in the vSphere environment that controls the target host
137
- - `--template` - Name of the virtual machine or template to use
138
-
139
- There are some optional parameters that can be specified:
140
-
141
- - `--targethost` - The host that the virtual machine should be created on. If not specified the first host in the cluster is used.
142
- - `--folder` - Folder that machine should be stored in. If specified this must already exist.
143
-
144
- ```
145
- $ knife vcenter vm clone example-01 --targethost 172.16.20.3 --folder example --ssh-password P@ssw0rd! --datacenter Datacenter --template ubuntu16-template -N example-01
146
- Creating new machine
147
- Waiting for network interfaces to become available...
148
- ID: vm-183
149
- Name: example-01
150
- Power State: POWERED_ON
151
- Bootstrapping the server by using bootstrap_protocol: ssh and image_os_type: linux
152
-
153
- Waiting for sshd to host (10.0.0.167)
154
- ...
155
- ```
156
-
157
- ## knife vcenter vm delete NAME
158
-
159
- Deletes a virtual machine from vSphere. If you supply `--purge` the machine will be removed from the Chef Server.
160
-
161
- NOTE: If the node name is different to the host name then the `-N` argument must be specified in conjunction with the `--purge` option
162
-
163
- ```
164
- $ knife vcenter vm delete example-01 -N example-01 --purge
165
- Creating new machine
166
- Waiting for network interfaces to become available...
167
- ID: vm-183
168
- Name: example-01
169
- Power State: POWERED_ON
170
- Bootstrapping the server by using bootstrap_protocol: ssh and image_os_type: linux
171
-
172
- Waiting for sshd to host (10.0.0.167)
173
- WARNING: Deleted node example-01
174
- WARNING: Deleted client example-01
175
- ```
176
-
177
- ## Contributing
178
-
179
- For information on contributing to this project see <https://github.com/chef/chef/blob/master/CONTRIBUTING.md>
180
-
181
- ## Development
182
-
183
- * Report issues/questions/feature requests on [GitHub Issues][issues]
184
-
185
- Pull requests are very welcome! Make sure your patches are well tested.
186
- Ideally create a topic branch for every separate change you make. For
187
- example:
188
-
189
- 1. Fork the repo
190
- 2. Create your feature branch (`git checkout -b my-new-feature`)
191
- 3. Run the tests and rubocop, `bundle exec rake spec` and `bundle exec rake rubocop`
192
- 4. Commit your changes (`git commit -am 'Added some feature'`)
193
- 5. Push to the branch (`git push origin my-new-feature`)
194
- 6. Create new Pull Request
195
-
196
-
197
- ## License
198
-
199
- Author:: Russell Seymour ([rseymour@chef.io](mailto:rseymour@chef.io))
200
-
201
- Author:: JJ Asghar ([jj@chef.io](mailto:jj@chef.io))
202
-
203
- Copyright:: Copyright (c) 2017 Chef Software, Inc.
204
-
205
- License:: Apache License, Version 2.0
206
-
207
- ```text
208
- Licensed under the Apache License, Version 2.0 (the "License");
209
- you may not use this file except in compliance with the License.
210
- You may obtain a copy of the License at
211
-
212
- http://www.apache.org/licenses/LICENSE-2.0
213
-
214
- Unless required by applicable law or agreed to in writing, software
215
- distributed under the License is distributed on an "AS IS" BASIS,
216
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
217
- See the License for the specific language governing permissions and
218
- limitations under the License.
219
- ```