knife-vsphere 1.2.17 → 1.2.18

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: 4edadeeb4d877edbc8f0ae9e363bb4c1169ed8a6
4
- data.tar.gz: 802b91902e2b0bdbae8dfc25645aaa5a701638bc
3
+ metadata.gz: 1d94e79affa56d7c9ac20ff54a800e882729a428
4
+ data.tar.gz: 02e05a982fde906a602ed5f5033c20f259b9db9a
5
5
  SHA512:
6
- metadata.gz: b0d2e5061e270a70aaf3e06ad0285b9ee83f5bad77366567ec5a23e52cbbaac68a9aaade50d88370dd98bc9f18cea6c77fdd360e55e358692e172ee8be2d983c
7
- data.tar.gz: e1ea0b4bb5710b40c28b96410f25731eb9f2f0b5561725dea79b7e8b8031d7e19ee81162b7b1a28c837ffb1c2bc2ef150bcbd663b1dc311755895e59c78378bd
6
+ metadata.gz: f674ccb248127469ec5bc4e26f9410a08602180ee205280b68ef500f8da7ef296f665f133f5ca230f051fb74948e28e6d1697a94acb0c79a676111681b074eb2
7
+ data.tar.gz: 827d76a2f790947f0123a26d57703620eb9c477b37ff927be06722a4edb6ede2f93a470d2044af33a2c735357ff7a1d589815e2cbfb30572cf702e1d87e11259
@@ -224,6 +224,12 @@ class Chef::Knife::VsphereVmClone < Chef::Knife::BaseVsphereCommand
224
224
  proc: proc { |d| Chef::Config[:knife][:distro] = d },
225
225
  default: 'chef-full'
226
226
 
227
+ option :tags,
228
+ long: '--tags TAGS',
229
+ description: 'Comma separated list of tags to apply to the node',
230
+ proc: ->(tags) { tags.split(/[\s,]+/) },
231
+ default: []
232
+
227
233
  option :template_file,
228
234
  long: '--template-file TEMPLATE',
229
235
  description: 'Full path to location of template to use'
@@ -629,7 +635,9 @@ class Chef::Knife::VsphereVmClone < Chef::Knife::BaseVsphereCommand
629
635
  hostname = config[:customization_hostname] || config[:vmname]
630
636
 
631
637
  if windows?(src_config)
632
- # TODO: This is just copying itself onto itself, isn't it?
638
+ # We should get here with the customizations set, either by a plugin or a --cspec
639
+ fatal_exit 'Windows clones need a customization identity. Try passing a --cspec or making a --cplugin' if cust_spec.identity.props.empty?
640
+
633
641
  identification = RbVmomi::VIM.CustomizationIdentification(
634
642
  joinWorkgroup: cust_spec.identity.identification.joinWorkgroup
635
643
  )
@@ -774,6 +782,7 @@ class Chef::Knife::VsphereVmClone < Chef::Knife::BaseVsphereCommand
774
782
  # may be needed for vpc mode
775
783
  bootstrap.config[:no_host_key_verify] = get_config(:no_host_key_verify)
776
784
  bootstrap.config[:node_ssl_verify_mode] = get_config(:node_ssl_verify_mode)
785
+ bootstrap.config[:tags] = get_config(:tags)
777
786
  bootstrap
778
787
  end
779
788
 
@@ -0,0 +1,46 @@
1
+ #
2
+ # Author:: Owen Groves (<omgroves@gmail.com>)
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ require 'chef/knife'
6
+ require 'chef/knife/base_vsphere_command'
7
+
8
+ # Changes network on a certain VM
9
+ class Chef::Knife::VsphereVmNetworkSet < Chef::Knife::BaseVsphereCommand
10
+ banner 'knife vsphere vm network set VMNAME NETWORKNAME'
11
+
12
+ common_options
13
+
14
+ option :nic,
15
+ long: '--nic INTEGER',
16
+ description: 'Network interface to use when multiple NICs are present on the VM. (0,1..)',
17
+ default: 0
18
+
19
+ def run
20
+ $stdout.sync = true
21
+ vmname = @name_args[0]
22
+ networkname = @name_args[1]
23
+ if vmname.nil?
24
+ show_usage
25
+ fatal_exit('You must specify a virtual machine name')
26
+ end
27
+ if networkname.nil?
28
+ show_usage
29
+ fatal_exit('You must specify a network name')
30
+ end
31
+
32
+ network = find_network(networkname)
33
+ vm = get_vm(vmname) || abort('VM not found')
34
+ nic = vm.config.hardware.device.each.grep(RbVmomi::VIM::VirtualEthernetCard)[Integer(get_config(:nic))]
35
+ if network.is_a? RbVmomi::VIM::DistributedVirtualPortgroup
36
+ port = RbVmomi::VIM.DistributedVirtualSwitchPortConnection(switchUuid: network.config.distributedVirtualSwitch.uuid, portgroupKey: network.key)
37
+ nic.backing = RbVmomi::VIM.VirtualEthernetCardDistributedVirtualPortBackingInfo(port: port)
38
+ elsif network.is_a? RbVmomi::VIM::Network
39
+ nic.backing = RbVmomi::VIM.VirtualEthernetCardNetworkBackingInfo(deviceName: network.name)
40
+ else
41
+ fatal_exit('Network type not recognized')
42
+ end
43
+ change_spec = RbVmomi::VIM.VirtualMachineConfigSpec(deviceChange: [RbVmomi::VIM.VirtualDeviceConfigSpec(device: nic, operation: 'edit')])
44
+ vm.ReconfigVM_Task(spec: change_spec).wait_for_completion
45
+ end
46
+ end
@@ -1,3 +1,3 @@
1
1
  module KnifeVsphere
2
- VERSION = '1.2.17'
2
+ VERSION = '1.2.18'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-vsphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.17
4
+ version: 1.2.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ezra Pagel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-21 00:00:00.000000000 Z
11
+ date: 2016-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: filesize
@@ -159,6 +159,7 @@ files:
159
159
  - lib/chef/knife/vsphere_vm_migrate.rb
160
160
  - lib/chef/knife/vsphere_vm_move.rb
161
161
  - lib/chef/knife/vsphere_vm_net.rb
162
+ - lib/chef/knife/vsphere_vm_network_set.rb
162
163
  - lib/chef/knife/vsphere_vm_property_get.rb
163
164
  - lib/chef/knife/vsphere_vm_property_set.rb
164
165
  - lib/chef/knife/vsphere_vm_query.rb
@@ -189,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
190
  version: '0'
190
191
  requirements: []
191
192
  rubyforge_project:
192
- rubygems_version: 2.6.6
193
+ rubygems_version: 2.5.1
193
194
  signing_key:
194
195
  specification_version: 4
195
196
  summary: vSphere Support for Knife