knife-vsphere 1.2.23 → 1.2.24

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: 4f8cb1ebf7619c1b5f50c38e109f45783b4fc361
4
- data.tar.gz: 2270f974a260ad9beb73df5a9f6669ba86ab5678
3
+ metadata.gz: f337711fde662bcc17ea7c1823901e43b83d621a
4
+ data.tar.gz: c3ee25e483b12d539d2bfd4c73325745290fc7a9
5
5
  SHA512:
6
- metadata.gz: e0cab5972517ffbc472360ec3a020a2509a4b6b7f8283fef983392183fe1f4b37f46cb4c08268e28a929d9ba1bbf21ae6aaff484e179026538638f437c8cf17c
7
- data.tar.gz: e747062b1748bb489b68b1bd5405bba33ac9a0649f6a9de9ffcc7368ec47ac2ab877f65f3822762a7b36fead4a74707503cee64f56dfb41bbf117a24130e133b
6
+ metadata.gz: 6bcb197a0f9624ddf6d044b6a4cff1adda83a09159765c7658b5c4f2ae024d54c208308b4bc378d37d37c0c539403a04389bb49510ecd9fc8e5c05aa55f835d3
7
+ data.tar.gz: 80ef8bba00005ead0e01fd1956e1b501bc7018218cb3297cb6e5836da2baa8e0483b7ea21f34a6865983d30e290e0f13bbf1da61c7f98daad17c2719cfa0cafa
@@ -223,10 +223,21 @@ class Chef
223
223
  base_entity
224
224
  end
225
225
 
226
- def find_network(networkName)
226
+ def find_network(networkName, dvswitch = nil)
227
227
  dc = datacenter
228
228
  base_entity = dc.network
229
- base_entity.find { |f| f.name == networkName } || abort("no such network #{networkName}")
229
+
230
+ networks = base_entity.select { |f| f.name == networkName }
231
+ abort("no such network #{networkName}") if networks.empty?
232
+
233
+ if dvswitch && dvswitch != 'auto'
234
+ return networks.find do |f|
235
+ sw = f.config.distributedVirtualSwitch
236
+ sw.uuid == dvswitch || sw.name == dvswitch
237
+ end
238
+ end
239
+
240
+ networks.first
230
241
  end
231
242
 
232
243
  def find_pool(poolName)
@@ -43,8 +43,7 @@ class Chef::Knife::VsphereDatastoreList < Chef::Knife::BaseVsphereCommand
43
43
 
44
44
  pools = find_pools_and_clusters(folder, target_pool)
45
45
  if target_pool && pools.empty?
46
- puts "Pool #{target_pool} not found"
47
- return
46
+ fatal_exit("Pool #{target_pool} not found")
48
47
  end
49
48
 
50
49
  pool_info = pools.map do |pool|
@@ -32,27 +32,40 @@ class Chef::Knife::VsphereDatastoreMaxfree < Chef::Knife::BaseVsphereCommand
32
32
  long: '--vlan VLAN',
33
33
  description: 'Require listed vlan available to datastore\'s parent'
34
34
 
35
+ option :pool,
36
+ long: '--pool pool',
37
+ description: 'Pool or Cluster to search for datastores in'
38
+
35
39
  common_options
36
40
 
37
41
  def run
38
42
  $stdout.sync = true
43
+ if get_config(:vlan) && get_config(:pool)
44
+ fatal_exit('Please select either vlan or pool')
45
+ end
39
46
 
40
47
  vim_connection
41
- dcname = get_config(:vsphere_dc)
42
48
  regex = /#{get_config(:regex)}/
43
- dc = config[:vim].serviceInstance.find_datacenter(dcname) || abort('datacenter not found')
44
49
  max = nil
45
- datastores = if get_config(:vlan)
46
- find_network(get_config(:vlan)).host.map(&:datastore).flatten
47
- else
48
- dc.datastore
49
- end
50
+ datastores = find_datastores
50
51
  datastores.each do |store|
51
52
  if regex.match(store.name) &&
52
53
  (max.nil? || max.summary[:freeSpace] < store.summary[:freeSpace])
53
54
  max = store
54
55
  end
55
56
  end
56
- puts max ? max.name : ''
57
+ ui.output(max ? { 'Datastore' => max.name } : {})
58
+ end
59
+ end
60
+
61
+ private
62
+
63
+ def find_datastores
64
+ if get_config(:vlan)
65
+ find_network(get_config(:vlan)).host.map(&:datastore).flatten
66
+ elsif get_config(:pool)
67
+ find_pools_and_clusters(datacenter.hostFolder, get_config(:pool)).map(&:datastore).flatten
68
+ else
69
+ datacenter.datastore
57
70
  end
58
71
  end
@@ -22,8 +22,7 @@ class Chef::Knife::VsphereHostsList < Chef::Knife::BaseVsphereCommand
22
22
 
23
23
  pools = find_pools_and_clusters(folder, target_pool)
24
24
  if target_pool && pools.empty?
25
- puts "Pool #{target_pool} not found"
26
- return
25
+ fatal_exit("Pool #{target_pool} not found")
27
26
  end
28
27
 
29
28
  pool_list = pools.map do |pool|
@@ -597,7 +597,8 @@ class Chef::Knife::VsphereVmClone < Chef::Knife::BaseVsphereCommand
597
597
 
598
598
  if get_config(:customization_vlan)
599
599
  vlan_list = get_config(:customization_vlan).split(',')
600
- networks = vlan_list.map { |vlan| find_network(vlan) }
600
+ sw_uuid = get_config(:customization_sw_uuid)
601
+ networks = vlan_list.map { |vlan| find_network(vlan, sw_uuid) }
601
602
 
602
603
  cards = src_config.hardware.device.grep(RbVmomi::VIM::VirtualEthernetCard)
603
604
 
@@ -1,3 +1,3 @@
1
1
  module KnifeVsphere
2
- VERSION = '1.2.23'
2
+ VERSION = '1.2.24'
3
3
  end
metadata CHANGED
@@ -1,125 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-vsphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.23
4
+ version: 1.2.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ezra Pagel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-04 00:00:00.000000000 Z
11
+ date: 2017-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: filesize
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.1.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.1.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: netaddr
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.5'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.5'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rbvmomi
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.8'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.8'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: knife-windows
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: chef
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.10.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.10.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: byebug
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  description: VMware vSphere Support for Chef's Knife Command
@@ -184,17 +184,17 @@ require_paths:
184
184
  - lib
185
185
  required_ruby_version: !ruby/object:Gem::Requirement
186
186
  requirements:
187
- - - ">="
187
+ - - '>='
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  required_rubygems_version: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ">="
192
+ - - '>='
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  requirements: []
196
196
  rubyforge_project:
197
- rubygems_version: 2.5.1
197
+ rubygems_version: 2.0.14.1
198
198
  signing_key:
199
199
  specification_version: 4
200
200
  summary: vSphere Support for Knife