vmesh 0.1.5 → 0.1.6

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 17ba0f64fbefa7fc6b06ae99b0599a257ba1da06
4
+ data.tar.gz: 4d2dae0a283f3d6b67356cb41b8a82ec1e6aa54c
5
+ SHA512:
6
+ metadata.gz: 3e8f2cd2bdb9700d7c23e552c1d3ef02aec231991f8604923a4fbf59adfb8effafcd6f42428f87e647fc4f4e0b9ec9b8fe165d9f56542a121713cef3cf361807
7
+ data.tar.gz: 546804af173c6ae8e7542bfc5c654c9823e218c3fc9a507b604dcd2dac9cfaae7f550d19d9d1e07f1a5a635109a23e64b9239fe0cefd0ae8f30531e0483f1205
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vmesh (0.1.4)
4
+ vmesh (0.1.5)
5
5
  gli (= 2.9.0)
6
6
  highline (~> 1.6)
7
7
  logger (= 1.2.8)
@@ -33,12 +33,12 @@ GEM
33
33
  json (1.8.1)
34
34
  logger (1.2.8)
35
35
  metaclass (0.0.4)
36
- mini_portile (0.6.1)
36
+ mini_portile (0.6.2)
37
37
  mocha (1.0.0)
38
38
  metaclass (~> 0.0.1)
39
39
  multi_json (1.10.0)
40
40
  multi_test (0.1.1)
41
- nokogiri (1.6.4.1)
41
+ nokogiri (1.6.6.2)
42
42
  mini_portile (~> 0.6.0)
43
43
  rake (10.3.1)
44
44
  rbvmomi (1.8.2)
@@ -49,7 +49,7 @@ GEM
49
49
  json (~> 1.4)
50
50
  rspec-expectations (2.14.5)
51
51
  diff-lcs (>= 1.1.3, < 2.0)
52
- trollop (2.0)
52
+ trollop (2.1.1)
53
53
 
54
54
  PLATFORMS
55
55
  ruby
data/README.md CHANGED
@@ -22,6 +22,7 @@ Vmesh is currently Alpha, hence the 0-dot version; it is susceptible to methods,
22
22
  - [Create or clone](#)
23
23
  - [IP Handling](#)
24
24
  - [How vmesh deals with datastores](#)
25
+ - [Annotate](#)
25
26
  - [Power](#)
26
27
  - [Deleting a VM can be done with the command](#)
27
28
  - [List](#)
@@ -95,7 +96,7 @@ Get help
95
96
  vmesh --help
96
97
  ```
97
98
 
98
- Help on a specific command
99
+ Help on a specific command, e.g. get help for create
99
100
 
100
101
  ```
101
102
  vmesh create --help
@@ -115,9 +116,11 @@ When creating multiple servers vmesh automatically increments the IP Address, e.
115
116
  vmesh create "vmweb01,vmweb02" linux --ip_address='192.168.0.10'
116
117
  ```
117
118
  creates the following servers
118
- || server name || ip ||
119
- | vmweb01 | 192.168.0.10 |
120
- | vmweb02 | 192.168.0.11 |
119
+
120
+ | server name | ip |
121
+ | ----------- | ------------ |
122
+ | vmweb01 | 192.168.0.10 |
123
+ | vmweb02 | 192.168.0.11 |
121
124
 
122
125
 
123
126
  ###### How vmesh deals with datastores
@@ -130,6 +133,19 @@ When specifying datastore vmesh will use a datastore matching name exactly, if i
130
133
  e.g. for the above, if datastores exist with names FIRST_SEARCH_STRING, ANOTHER_SEARCH_STRING it will find both (as they both contain "SEARCH_STRING") then use the one with the most free space.
131
134
 
132
135
 
136
+ ### Create or clone
137
+
138
+ To set the annotations on a vm named vmweb01
139
+ ```
140
+ vmesh annotate vmweb01 set "Here is a nice note about this rather generically named web server\nAnd here's a new line simply because we can!"
141
+ ```
142
+
143
+ To get any annotation
144
+ ```
145
+ vmesh annotate vmweb01 get
146
+ ```
147
+
148
+
133
149
  ### Power
134
150
 
135
151
  To change the power state of a VM
@@ -188,6 +204,8 @@ Display disk usage for all disks with 'gold' in the name
188
204
 
189
205
  ## TODOs
190
206
 
207
+ * Find vm would be nice
208
+
191
209
  * Sort out problem with upstream rbvmomi/nogokiri
192
210
 
193
211
  * Related bug here https://github.com/nsidc/vagrant-vsphere/issues/28
@@ -202,12 +220,12 @@ Display disk usage for all disks with 'gold' in the name
202
220
 
203
221
  * General
204
222
 
223
+ * Make the output nicer for terminal output, as in, passing to other commands.
224
+
205
225
  * Performance enhancements would be nice
206
226
 
207
227
  * Server defaults in external configuration, e.g. Symlink to config/shared/ or etcd
208
228
 
209
- * Vmesh everything else :-)
210
-
211
229
 
212
230
  ## Copyright
213
231
 
@@ -0,0 +1,7 @@
1
+ When /^I annotate set with no note$/ do
2
+ step %(I run `vmesh -u user -p secret annotate`)
3
+ end
4
+
5
+ When /^I annotate set with a note$/ do
6
+ step %(I run `vmesh -u user -p secret annotate`)
7
+ end
@@ -0,0 +1,12 @@
1
+ Feature: Annotate a VM
2
+ In order to manage servers
3
+ I want to be able to add an annotation to the VM
4
+ So I can understand what they're for
5
+
6
+ Scenario: Annotate with no arguments
7
+ When I annotate with no arguments
8
+ Then the exit status should be 1
9
+
10
+ Scenario: Annotate passing set but no note
11
+ When I annotate set with no note
12
+ Then the exit status should be 1
@@ -0,0 +1,26 @@
1
+
2
+ desc 'get or set annotations for the vm'
3
+ arg_name 'vm_name get|set "vm notes go here"'
4
+
5
+ command [:annotate,:note] do |c|
6
+ c.action do |global_options,options,args|
7
+ ARGV.size >= 2 or abort "must specify VM and an action"
8
+ vm_target = ARGV.shift
9
+ action = ARGV.shift
10
+ @logger.debug "Annotate invoked for #{vm_target} with action #{action}\n\t#{global_options[:host]}\n\t#{options}\n\t#{args}."
11
+
12
+ vm_manager = Vmesh::VSphere.new global_options
13
+ vm = vm_manager.get_machine(vm_target, global_options[:datacenter])
14
+ Vmesh::logger.debug "Got vm #{vm.name}"
15
+
16
+ case action
17
+ when 'get'
18
+ puts vm.annotation
19
+ when 'set'
20
+ note = ARGV.shift or abort "No annotation given"
21
+ vm.annotation = note
22
+ else
23
+ abort "Invalid action #{action}, valid ones are get|set." unless %w(get set).include? action
24
+ end
25
+ end
26
+ end
data/lib/vmesh/machine.rb CHANGED
@@ -63,5 +63,14 @@ module Vmesh
63
63
 
64
64
  Machine.new(@vm.CloneVM_Task(:folder => vm_folder, :name => vm_name, :spec => clone_spec, :numCPUs => config[:numCPUs], :memoryMB => config[:memoryMB]).wait_for_completion)
65
65
  end
66
+
67
+ def annotation
68
+ @vm.config.annotation
69
+ end
70
+
71
+ def annotation=(note)
72
+ Vmesh::logger.debug "Adding annotation \"#{note}\" to the vm."
73
+ @vm.ReconfigVM_Task(:spec => RbVmomi::VIM.VirtualMachineConfigSpec(:annotation => note)).wait_for_completion
74
+ end
66
75
  end
67
76
  end
data/lib/vmesh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vmesh
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.6'
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmesh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
5
- prerelease:
4
+ version: 0.1.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Kurt Gardiner
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-11-19 00:00:00.000000000 Z
11
+ date: 2015-02-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - '='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - '='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rdoc
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - '='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - '='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: aruba
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - '='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - '='
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: mocha
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - '='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - '='
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: gli
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - '='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - '='
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: logger
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - '='
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - '='
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rbvmomi
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - '='
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - '='
124
109
  - !ruby/object:Gem::Version
@@ -126,33 +111,29 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: highline
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ~>
115
+ - - "~>"
132
116
  - !ruby/object:Gem::Version
133
117
  version: '1.6'
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ~>
122
+ - - "~>"
140
123
  - !ruby/object:Gem::Version
141
124
  version: '1.6'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: nokogiri
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ~>
129
+ - - "~>"
148
130
  - !ruby/object:Gem::Version
149
131
  version: '1.6'
150
132
  type: :runtime
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ~>
136
+ - - "~>"
156
137
  - !ruby/object:Gem::Version
157
138
  version: '1.6'
158
139
  description: VMWare command line suite, command vmware from the comfort of your own
@@ -165,8 +146,8 @@ extra_rdoc_files:
165
146
  - README.rdoc
166
147
  - vmesh.rdoc
167
148
  files:
168
- - .gitattributes
169
- - .gitignore
149
+ - ".gitattributes"
150
+ - ".gitignore"
170
151
  - Gemfile
171
152
  - Gemfile.lock
172
153
  - LICENSE.txt
@@ -174,14 +155,17 @@ files:
174
155
  - README.rdoc
175
156
  - Rakefile
176
157
  - bin/vmesh
158
+ - features/step_definitions/vmesh.annotate_steps.rb
177
159
  - features/step_definitions/vmesh.create_steps.rb
178
160
  - features/step_definitions/vmesh.power_steps.rb
179
161
  - features/step_definitions/vmesh_steps.rb
180
162
  - features/support/env.rb
163
+ - features/vmesh.annotate.feature
181
164
  - features/vmesh.create.feature
182
165
  - features/vmesh.feature
183
166
  - features/vmesh.power.feature
184
167
  - lib/vmesh.rb
168
+ - lib/vmesh/commands/annotate.rb
185
169
  - lib/vmesh/commands/create.rb
186
170
  - lib/vmesh/commands/create_helpers.rb
187
171
  - lib/vmesh/commands/df.rb
@@ -210,32 +194,31 @@ files:
210
194
  homepage: http://github.com/krutisfood/mesh
211
195
  licenses:
212
196
  - MIT
197
+ metadata: {}
213
198
  post_install_message:
214
199
  rdoc_options:
215
- - --title
200
+ - "--title"
216
201
  - vmesh
217
- - --main
202
+ - "--main"
218
203
  - README.rdoc
219
- - -ri
204
+ - "-ri"
220
205
  require_paths:
221
206
  - lib
222
207
  - lib
223
208
  required_ruby_version: !ruby/object:Gem::Requirement
224
- none: false
225
209
  requirements:
226
- - - ! '>='
210
+ - - ">="
227
211
  - !ruby/object:Gem::Version
228
212
  version: '0'
229
213
  required_rubygems_version: !ruby/object:Gem::Requirement
230
- none: false
231
214
  requirements:
232
- - - ! '>='
215
+ - - ">="
233
216
  - !ruby/object:Gem::Version
234
217
  version: '0'
235
218
  requirements: []
236
219
  rubyforge_project:
237
- rubygems_version: 1.8.23
220
+ rubygems_version: 2.2.2
238
221
  signing_key:
239
- specification_version: 3
222
+ specification_version: 4
240
223
  summary: VMWare command line suite
241
224
  test_files: []