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 +7 -0
- data/Gemfile.lock +4 -4
- data/README.md +24 -6
- data/features/step_definitions/vmesh.annotate_steps.rb +7 -0
- data/features/vmesh.annotate.feature +12 -0
- data/lib/vmesh/commands/annotate.rb +26 -0
- data/lib/vmesh/machine.rb +9 -0
- data/lib/vmesh/version.rb +1 -1
- metadata +19 -36
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
|
+
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.
|
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.
|
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.
|
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
|
-
|
119
|
-
|
|
120
|
-
|
|
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,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
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
|
-
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:
|
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:
|
220
|
+
rubygems_version: 2.2.2
|
238
221
|
signing_key:
|
239
|
-
specification_version:
|
222
|
+
specification_version: 4
|
240
223
|
summary: VMWare command line suite
|
241
224
|
test_files: []
|