knife-vcloud 1.2.0 → 1.3.0

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: 15f25cf5b3ff33de3c9781a8bf54ba462830e2fd
4
- data.tar.gz: bfe80065421e3114b11639dbc8e693f526646628
3
+ metadata.gz: 10c1b893ad8aa6677bb69cecb3e94466e044b492
4
+ data.tar.gz: c1ddbbadd0b3ae1978010314d6f0a99cfa6a93c3
5
5
  SHA512:
6
- metadata.gz: bd8e9aaa2c3771d518dcc6e2e4b9988d4adf9e58885b4d4576bd9b40a150ee21a6f220f525f795de7aa9bb2c10b73a1ae5ebd0ffd2d7a255e0a97e0aa0f03b29
7
- data.tar.gz: 0897800fc0a73dc7ced36609748d3ee76c2d235119dc97e7388c545db48104f63459352510239e7e41a4ed390d2fbc68c5c7d0270a0ad9278866b9e634e6371b
6
+ metadata.gz: 9f7b6ea402d9bb1e79340dd031ff3ed8c4d69eea102aa064972f9c9306cb977449755ddca892a6ef6926a08b690e611fcc1fd22c54c3830331f17e4db287ef85
7
+ data.tar.gz: 8930ea3e4d97cfd3ef521df8c05901cd123a16d4f226fbf8feca9837bb13aad96a91153dea82d1c3f386e0386b636bbf70bc75ca4f277d39b66090bb9ed82b52
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  Changes
2
2
  ==
3
+ 2014-06-03 (1.3.0)
4
+
5
+ This version requires vcloud-rest v. 1.3.0.
6
+
7
+ FEATURES:
8
+
9
+ * Add "media" item type management to `catalog item show`
10
+ * Add commands `[vm|vapp] discard suspended` to discard suspended state of a vApp or VM
11
+
12
+ FIXES:
13
+
14
+ * Adapt 'vc vm show' to display different IPs from same network
15
+
16
+ Note that now `get_vm` appends NetworkConnectionIndex to network name to generate a unique hash key.
17
+
3
18
  2014-02-06 (1.2.0)
4
19
  --
5
20
 
data/README.md CHANGED
@@ -23,7 +23,7 @@ FEATURES
23
23
  - show VDCs
24
24
  - show Catalogs
25
25
  - show Catalog Items
26
- - create/start/stop/delete/show/reset/suspend/reboot vApps and VMs
26
+ - create/start/stop/delete/show/reset/suspend/reboot/discard suspended vApps and VMs
27
27
  - add/edit/delete vApp networks (both internal and external)
28
28
  - basic VM network configuration
29
29
  - basic VM Guest Customization configuration
@@ -31,9 +31,12 @@ FEATURES
31
31
 
32
32
  PREREQUISITES
33
33
  --
34
- - chef >= 0.10.0
34
+ - chef
35
35
  - knife-windows
36
- - vcloud-rest ~> 1.2.0
36
+ - vcloud-rest
37
+
38
+ (see *knife-vcloud.gemspec* for details)
39
+
37
40
 
38
41
  USAGE
39
42
  --
@@ -52,6 +55,7 @@ USAGE
52
55
  knife vc vapp clone [VDC] [SOURCE_VAPP] [DEST_NAME] (options)
53
56
  knife vc vapp create [VDC] [NAME] [DESCRIPTION] [TEMPLATE_ID] (options)
54
57
  knife vc vapp delete [VAPP] (options)
58
+ knife vc vapp discard suspended [VAPP] (options)
55
59
  knife vc vapp network external [add|delete|edit| [VAPP] [NETWORK] (options)
56
60
  knife vc vapp network internal [add|delete|edit| [VAPP] [NETWORK] (options)
57
61
  knife vc vapp reboot [VAPP] (options)
@@ -230,6 +234,8 @@ _Example:_
230
234
  ###Manage vApp/VM status
231
235
  vApp/VM's status can be managed with _start/stop/reboot/reset/suspend/delete_
232
236
 
237
+ A suspended state can be discarded, it means that a vApp/VM is switched from paused to stopped.
238
+
233
239
  Note: use _knife vc vm..._ to operate on VMs.
234
240
 
235
241
  _Example:_
@@ -33,22 +33,42 @@ class Chef
33
33
  catalog_item = get_catalog_item(item_arg)
34
34
  connection.logout
35
35
 
36
- header = [
37
- ui.color('Name', :bold),
38
- ui.color('Template ID', :bold)
39
- ]
40
-
41
- ui.msg "#{ui.color('Description:', :cyan)} #{catalog_item[:description]}"
42
- list = header
43
- list.flatten!
44
-
45
- catalog_item[:items].each do |item|
46
- list << (item[:name] || '')
47
- list << (item[:id] || '')
48
- # TODO: show VMs using this item? item[:vms_hash]
49
- end
36
+ if catalog_item[:type] == "vAppTemplate"
37
+ header = [
38
+ ui.color('Name', :bold),
39
+ ui.color('Template ID', :bold)
40
+ ]
41
+
42
+ ui.msg "#{ui.color('Description:', :cyan)} #{catalog_item[:description]}"
43
+ list = header
44
+
45
+ catalog_item[:items].each do |item|
46
+ list << (item[:name] || '')
47
+ list << (item[:id] || '')
48
+ # TODO: show VMs using this item? item[:vms_hash]
49
+ end
50
+
51
+ ui.msg ui.list(list, :columns_across, 2)
52
+
53
+ elsif catalog_item[:type] == "media"
54
+ header = [
55
+ ui.color('Name', :bold),
56
+ ui.color('Media ID', :bold)
57
+ ]
50
58
 
51
- ui.msg ui.list(list, :columns_across, 2)
59
+ ui.msg "#{ui.color('Description:', :cyan)} #{catalog_item[:description]}"
60
+ list = header
61
+
62
+ list << (catalog_item[:name] || '')
63
+ list << (catalog_item[:id] || '')
64
+
65
+ ui.msg ui.list(list, :columns_across, 2)
66
+
67
+ elsif catalog_item[:type] == "unknown"
68
+
69
+ ui.msg "#{ui.color('Description:', :cyan)} #{catalog_item[:description]}"
70
+ ui.msg "#{ui.color('Unknown catalog item type', :bold)}"
71
+ end
52
72
  end
53
73
  end
54
74
  end
@@ -0,0 +1,44 @@
1
+ #
2
+ # Author:: Marco Betti (<m.betti@gmail.com>)
3
+ # Copyright:: Copyright (c) 2014
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ class Chef
20
+ class Knife
21
+ class VcVappDiscardSuspended < Chef::Knife
22
+ include Knife::VcCommon
23
+ include Knife::VcVappCommon
24
+
25
+ banner "knife vc vapp discard suspended [VAPP] (options)"
26
+
27
+ def run
28
+ $stdout.sync = true
29
+
30
+ vapp_arg = @name_args.shift
31
+
32
+ connection.login
33
+ vapp = get_vapp(vapp_arg)
34
+
35
+ task_id = connection.discard_suspend_state_vapp vapp[:id]
36
+
37
+ ui.msg "Discarding vApp suspended state..."
38
+ wait_task(connection, task_id)
39
+
40
+ connection.logout
41
+ end
42
+ end
43
+ end
44
+ end
@@ -42,11 +42,11 @@ class Chef
42
42
 
43
43
  case command
44
44
  when :create
45
- task_id = connection.create_snapshot vapp[:id]
45
+ task_id = connection.create_vapp_snapshot vapp[:id]
46
46
  ui.msg "vApp snapshot creation..."
47
47
  wait_task(connection, task_id)
48
48
  when :revert
49
- task_id = connection.revert_snapshot vapp[:id]
49
+ task_id = connection.revert_vapp_snapshot vapp[:id]
50
50
  ui.msg "vApp snapshot revert..."
51
51
  wait_task(connection, task_id)
52
52
  end
@@ -51,6 +51,7 @@ require 'chef/knife/vapp/vc_vapp_suspend'
51
51
  require 'chef/knife/vapp/vc_vapp_clone'
52
52
  require 'chef/knife/vapp/vc_vapp_bootstrap'
53
53
  require 'chef/knife/vapp/vc_vapp_snapshot'
54
+ require 'chef/knife/vapp/vc_vapp_discard_suspended'
54
55
 
55
56
  # VM
56
57
  require 'chef/knife/common/vc_vm_common'
@@ -65,6 +66,7 @@ require 'chef/knife/vm/vc_vm_start'
65
66
  require 'chef/knife/vm/vc_vm_stop'
66
67
  require 'chef/knife/vm/vc_vm_suspend'
67
68
  require 'chef/knife/vm/vc_vm_bootstrap'
69
+ require 'chef/knife/vm/vc_vm_discard_suspended'
68
70
 
69
71
  # OVF
70
72
  require 'chef/knife/ovf/vc_ovf_upload'
@@ -0,0 +1,44 @@
1
+ #
2
+ # Author:: Marco Betti (<m.betti@gmail.com>)
3
+ # Copyright:: Copyright (c) 2014
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ class Chef
20
+ class Knife
21
+ class VcVmDiscardSuspended < Chef::Knife
22
+ include Knife::VcCommon
23
+ include Knife::VcVmCommon
24
+
25
+ banner "knife vc vm discard suspended [VM] (options)"
26
+
27
+ def run
28
+ $stdout.sync = true
29
+
30
+ vm_arg = @name_args.shift
31
+
32
+ connection.login
33
+ vm = get_vm(vm_arg)
34
+
35
+ task_id = connection.discard_suspend_state_vm vm[:id]
36
+
37
+ ui.msg "Discarding VM suspended state..."
38
+ wait_task(connection, task_id)
39
+
40
+ connection.logout
41
+ end
42
+ end
43
+ end
44
+ end
@@ -61,7 +61,8 @@ class Chef
61
61
 
62
62
  list << ['', '', ui.color('Networks', :bold), '']
63
63
  vm[:networks].each do |network, values|
64
- list << [(network || ''), '']
64
+ # remove NetworkConnectionIndex from network hash key
65
+ list << [network.gsub(/^(.*)_[0-9]+$/, '\1') || '', '']
65
66
  values.each do |k, v|
66
67
  list << " #{(pretty_symbol(k) || '')}"
67
68
  list << (v || '')
@@ -1,3 +1,3 @@
1
1
  module KnifeVCloud
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-vcloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Tortarolo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-06 00:00:00.000000000 Z
11
+ date: 2014-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.10.0
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.10.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: knife-windows
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
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: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: vcloud-rest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.2.0
47
+ version: 1.3.0
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
- version: 1.2.0
54
+ version: 1.3.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: winrm
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.1.3
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.1.3
69
69
  description: A Knife plugin to create, list and manage vCloud servers
@@ -74,8 +74,8 @@ extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
76
  - CHANGELOG.md
77
- - README.md
78
77
  - LICENSE
78
+ - README.md
79
79
  - lib/chef/knife/catalog/vc_catalog_item_show.rb
80
80
  - lib/chef/knife/catalog/vc_catalog_show.rb
81
81
  - lib/chef/knife/common/vc_bootstrap_common.rb
@@ -93,6 +93,7 @@ files:
93
93
  - lib/chef/knife/vapp/vc_vapp_clone.rb
94
94
  - lib/chef/knife/vapp/vc_vapp_create.rb
95
95
  - lib/chef/knife/vapp/vc_vapp_delete.rb
96
+ - lib/chef/knife/vapp/vc_vapp_discard_suspended.rb
96
97
  - lib/chef/knife/vapp/vc_vapp_network_external.rb
97
98
  - lib/chef/knife/vapp/vc_vapp_network_internal.rb
98
99
  - lib/chef/knife/vapp/vc_vapp_reboot.rb
@@ -108,6 +109,7 @@ files:
108
109
  - lib/chef/knife/vdc/vc_vdc_show.rb
109
110
  - lib/chef/knife/vm/vc_vm_bootstrap.rb
110
111
  - lib/chef/knife/vm/vc_vm_config_guest.rb
112
+ - lib/chef/knife/vm/vc_vm_discard_suspended.rb
111
113
  - lib/chef/knife/vm/vc_vm_network.rb
112
114
  - lib/chef/knife/vm/vc_vm_reboot.rb
113
115
  - lib/chef/knife/vm/vc_vm_reset.rb
@@ -128,19 +130,18 @@ require_paths:
128
130
  - lib
129
131
  required_ruby_version: !ruby/object:Gem::Requirement
130
132
  requirements:
131
- - - '>='
133
+ - - ">="
132
134
  - !ruby/object:Gem::Version
133
135
  version: '0'
134
136
  required_rubygems_version: !ruby/object:Gem::Requirement
135
137
  requirements:
136
- - - '>='
138
+ - - ">="
137
139
  - !ruby/object:Gem::Version
138
140
  version: '0'
139
141
  requirements: []
140
142
  rubyforge_project:
141
- rubygems_version: 2.1.11
143
+ rubygems_version: 2.2.2
142
144
  signing_key:
143
145
  specification_version: 4
144
146
  summary: A knife plugin for the VMWare vCloud API
145
147
  test_files: []
146
- has_rdoc: