vmesh 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
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: []