knife-xenserver 1.2 → 1.2.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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ # 1.2.1 - Mon 12 Nov 2012
2
+
3
+ * Maks3w patches for xenserver-automated related stuff
4
+
5
+ * Added --match flag to the 'vm delete' command.
6
+
7
+ If --match is used, every VM matching VM_NAME will be deleted
8
+
9
+ * Deprecate --force-delete option in 'vm delete' since --yes should
10
+ be used to confirm (force).
11
+
1
12
  # 1.2 - Thu 25 Oct 2012
2
13
 
3
14
  * Greatly improved 'vm list' command
data/README.md CHANGED
@@ -61,7 +61,8 @@ Create a VM from template and add two custom VIFs in networks 'Integration-VLAN'
61
61
  --vm-networks 'Integration-VLAN,Another-VLAN' \
62
62
  --mac-addresses 11:22:33:44:55:66
63
63
 
64
- Create a VM from template and supply ip/host/domain configuration. Requires installation of xe-automater scripts (https://github.com/adamlau/xenserver-automater)
64
+ Create a VM from template and supply ip/host/domain configuration. Requires installation of xe-automater scripts
65
+ (https://github.com/krobertson/xenserver-automater)
65
66
 
66
67
  knife xenserver vm create --vm-template my-template -x root --keep-template-networks \
67
68
  --vm-name my-hostname \
@@ -236,8 +236,8 @@ class Chef
236
236
  attrs = {}
237
237
  (attrs['vm-data/ip'] = config[:vm_ip]) if config[:vm_ip]
238
238
  (attrs['vm-data/gw'] = config[:vm_gateway]) if config[:vm_gateway]
239
- (attrs['vm-data/netmask'] = config[:vm_netmask]) if config[:vm_netmask]
240
- (attrs['vm-data/dns'] = config[:vm_dns]) if config[:vm_dns]
239
+ (attrs['vm-data/nm'] = config[:vm_netmask]) if config[:vm_netmask]
240
+ (attrs['vm-data/ns'] = config[:vm_dns]) if config[:vm_dns]
241
241
  (attrs['vm-data/dm'] = config[:vm_domain]) if config[:vm_domain]
242
242
  if !attrs.empty?
243
243
  puts "Adding attributes to xenstore..."
@@ -30,23 +30,41 @@ class Chef
30
30
  :long => "--force-delete NO",
31
31
  :default => 'no',
32
32
  :description => "Do not confirm VM deletion when yes"
33
+
34
+ option :match,
35
+ :long => "--match",
36
+ :description => "Delete VMs matching VM_NAME (regex)",
37
+ :boolean => true
33
38
 
34
39
  def run
40
+ if config[:force_delete] =~ /y|yes/i
41
+ ui.warn "--force-delete is deprecated."
42
+ ui.warn "Use --yes to confirm deletion."
43
+ config[:yes] = true
44
+ end
35
45
  deleted = []
36
46
  connection.servers.each do |vm|
47
+ to_delete = []
37
48
  @name_args.each do |vm_name|
38
- if (vm_name == vm.name) or (vm_name == vm.uuid)
39
- if config[:force_delete] =~ /(no|NO|false|FALSE)/
40
- confirm("Do you really want to #{'delete'.bold.red} this virtual machine #{vm.name.bold.red}")
49
+ if config[:match]
50
+ if vm.name =~ /#{vm_name}/
51
+ to_delete << vm
52
+ end
53
+ else
54
+ if (vm_name == vm.name) or (vm_name == vm.uuid)
55
+ to_delete << vm
41
56
  end
42
- vm.destroy
43
- deleted << vm_name
44
- ui.info("#{'Deleted'.yellow} virtual machine #{vm.name.yellow} [uuid: #{vm.uuid}]")
45
57
  end
46
58
  end
59
+ to_delete.each do |vm|
60
+ confirm("Do you really want to #{'delete'.bold.red} this virtual machine #{vm.name.bold.red}")
61
+ vm.destroy
62
+ deleted << vm.name
63
+ ui.info("#{'Deleted'.yellow} virtual machine #{vm.name.yellow} [uuid: #{vm.uuid}]")
64
+ end
47
65
  end
48
66
  @name_args.each do |vm_name|
49
- ui.warn "Virtual Machine #{vm_name} not found" if not deleted.include?(vm_name)
67
+ ui.warn "Virtual Machine#{'(s) matching' if config[:match]} '#{vm_name}' not found" if deleted.size == 0
50
68
  end
51
69
  end
52
70
 
@@ -1,6 +1,6 @@
1
1
  module Knife
2
2
  module XenServer
3
- VERSION = "1.2"
3
+ VERSION = "1.2.1"
4
4
  MAJOR, MINOR, TINY = VERSION.split('.')
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,25 +1,24 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-xenserver
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.2'
5
4
  prerelease:
5
+ version: 1.2.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sergio Rubio
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-12 00:00:00.000000000 Z
12
+ date: 2012-12-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: terminal-table
15
+ type: :runtime
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0'
22
- type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
24
  none: false
@@ -27,15 +26,15 @@ dependencies:
27
26
  - - ! '>='
28
27
  - !ruby/object:Gem::Version
29
28
  version: '0'
29
+ name: terminal-table
30
30
  - !ruby/object:Gem::Dependency
31
- name: chef
31
+ type: :runtime
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0.10'
38
- type: :runtime
39
38
  prerelease: false
40
39
  version_requirements: !ruby/object:Gem::Requirement
41
40
  none: false
@@ -43,15 +42,15 @@ dependencies:
43
42
  - - ! '>='
44
43
  - !ruby/object:Gem::Version
45
44
  version: '0.10'
45
+ name: chef
46
46
  - !ruby/object:Gem::Dependency
47
- name: fog
47
+ type: :runtime
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
51
  - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
53
  version: '1.4'
54
- type: :runtime
55
54
  prerelease: false
56
55
  version_requirements: !ruby/object:Gem::Requirement
57
56
  none: false
@@ -59,15 +58,15 @@ dependencies:
59
58
  - - ! '>='
60
59
  - !ruby/object:Gem::Version
61
60
  version: '1.4'
61
+ name: fog
62
62
  - !ruby/object:Gem::Dependency
63
- name: colored
63
+ type: :runtime
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
67
  - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
- type: :runtime
71
70
  prerelease: false
72
71
  version_requirements: !ruby/object:Gem::Requirement
73
72
  none: false
@@ -75,15 +74,15 @@ dependencies:
75
74
  - - ! '>='
76
75
  - !ruby/object:Gem::Version
77
76
  version: '0'
77
+ name: colored
78
78
  - !ruby/object:Gem::Dependency
79
- name: alchemist
79
+ type: :runtime
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
83
  - - ! '>='
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
- type: :runtime
87
86
  prerelease: false
88
87
  version_requirements: !ruby/object:Gem::Requirement
89
88
  none: false
@@ -91,15 +90,15 @@ dependencies:
91
90
  - - ! '>='
92
91
  - !ruby/object:Gem::Version
93
92
  version: '0'
93
+ name: alchemist
94
94
  - !ruby/object:Gem::Dependency
95
- name: uuidtools
95
+ type: :runtime
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - ! '>='
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
- type: :runtime
103
102
  prerelease: false
104
103
  version_requirements: !ruby/object:Gem::Requirement
105
104
  none: false
@@ -107,6 +106,7 @@ dependencies:
107
106
  - - ! '>='
108
107
  - !ruby/object:Gem::Version
109
108
  version: '0'
109
+ name: uuidtools
110
110
  description: XenServer Support for Chef's Knife Command
111
111
  email:
112
112
  - rubiojr@frameos.org