wakame-vdc-agents 10.12.0 → 11.06.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/LICENSE +164 -201
  2. data/Rakefile +6 -11
  3. data/bin/hva +11 -1351
  4. data/bin/nsa +5 -9
  5. data/bin/sta +124 -71
  6. data/config/hva.conf.example +12 -0
  7. data/config/initializers/isono.rb +7 -23
  8. data/config/initializers/sequel.rb +11 -2
  9. data/lib/dcmgr.rb +70 -11
  10. data/lib/dcmgr/cli/base.rb +74 -0
  11. data/lib/dcmgr/cli/errors.rb +59 -0
  12. data/lib/dcmgr/cli/group.rb +101 -0
  13. data/lib/dcmgr/cli/host.rb +101 -0
  14. data/lib/dcmgr/cli/image.rb +108 -0
  15. data/lib/dcmgr/cli/keypair.rb +72 -0
  16. data/lib/dcmgr/cli/network.rb +198 -0
  17. data/lib/dcmgr/cli/quota.rb +28 -0
  18. data/lib/dcmgr/cli/spec.rb +82 -0
  19. data/lib/dcmgr/cli/storage.rb +88 -0
  20. data/lib/dcmgr/cli/tag.rb +81 -0
  21. data/lib/dcmgr/cli/vlan.rb +53 -0
  22. data/lib/dcmgr/drivers/hypervisor.rb +33 -0
  23. data/lib/dcmgr/drivers/iijgio_storage.rb +37 -0
  24. data/lib/dcmgr/drivers/kvm.rb +118 -0
  25. data/lib/dcmgr/drivers/lxc.rb +167 -0
  26. data/lib/dcmgr/drivers/s3_storage.rb +39 -0
  27. data/lib/dcmgr/drivers/snapshot_storage.rb +51 -0
  28. data/lib/dcmgr/endpoints/core_api.rb +188 -324
  29. data/lib/dcmgr/endpoints/core_api_mock.rb +52 -3
  30. data/lib/dcmgr/endpoints/errors.rb +73 -32
  31. data/lib/dcmgr/endpoints/metadata.rb +163 -16
  32. data/lib/dcmgr/helpers/cli_helper.rb +1 -1
  33. data/lib/dcmgr/helpers/nic_helper.rb +35 -0
  34. data/lib/dcmgr/logger.rb +5 -1
  35. data/lib/dcmgr/messaging_client.rb +117 -0
  36. data/lib/dcmgr/models/account.rb +27 -3
  37. data/lib/dcmgr/models/base_new.rb +21 -7
  38. data/lib/dcmgr/models/host_pool.rb +27 -7
  39. data/lib/dcmgr/models/image.rb +31 -3
  40. data/lib/dcmgr/models/instance.rb +72 -23
  41. data/lib/dcmgr/models/instance_nic.rb +12 -2
  42. data/lib/dcmgr/models/instance_spec.rb +16 -0
  43. data/lib/dcmgr/models/ip_lease.rb +37 -1
  44. data/lib/dcmgr/models/netfilter_group.rb +7 -7
  45. data/lib/dcmgr/models/network.rb +42 -3
  46. data/lib/dcmgr/models/quota.rb +25 -0
  47. data/lib/dcmgr/models/request_log.rb +26 -11
  48. data/lib/dcmgr/models/ssh_key_pair.rb +14 -1
  49. data/lib/dcmgr/models/storage_pool.rb +19 -72
  50. data/lib/dcmgr/models/tag.rb +5 -0
  51. data/lib/dcmgr/models/vlan_lease.rb +8 -0
  52. data/lib/dcmgr/models/volume.rb +26 -8
  53. data/lib/dcmgr/models/volume_snapshot.rb +37 -0
  54. data/lib/dcmgr/node_modules/hva_collector.rb +56 -36
  55. data/lib/dcmgr/node_modules/instance_ha.rb +1 -1
  56. data/lib/dcmgr/node_modules/instance_monitor.rb +70 -0
  57. data/lib/dcmgr/node_modules/service_netfilter.rb +914 -0
  58. data/lib/dcmgr/node_modules/sta_collector.rb +7 -30
  59. data/lib/dcmgr/rack/request_logger.rb +60 -0
  60. data/lib/dcmgr/rack/run_initializer.rb +42 -0
  61. data/lib/dcmgr/rpc/hva_handler.rb +388 -0
  62. data/lib/dcmgr/rubygems.rb +7 -0
  63. data/lib/dcmgr/storage_service.rb +98 -0
  64. data/lib/dcmgr/tags.rb +2 -2
  65. data/lib/dcmgr/version.rb +8 -0
  66. data/lib/ext/time.rb +8 -0
  67. data/lib/sinatra/respond_to.rb +3 -0
  68. data/lib/sinatra/sequel_transaction.rb +20 -5
  69. metadata +133 -100
  70. data/lib/dcmgr/models/physical_host.rb +0 -67
  71. data/lib/dcmgr/web/base.rb +0 -21
@@ -0,0 +1,7 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ begin
4
+ require 'rubygems'
5
+ require 'bundler/setup'
6
+ rescue Exception => e
7
+ end
@@ -0,0 +1,98 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ module Dcmgr
4
+ class StorageService
5
+
6
+ @snapshot_repository_config = nil
7
+
8
+ def initialize(provider, access_key, secret_key)
9
+ @account = {}
10
+ @account[:provider] = provider.upcase
11
+ @account[:access_key] = access_key
12
+ @account[:secret_key] = secret_key
13
+ end
14
+
15
+ def self.snapshot_repository_config
16
+ if @snapshot_repository_config.nil?
17
+ config_file = YAML.load_file(File.join(File.expand_path(DCMGR_ROOT), 'config', 'snapshot_repository.yml'))
18
+ @snapshot_repository_config = config_file
19
+ else
20
+ @snapshot_repository_config
21
+ end
22
+ end
23
+
24
+ def self.has_driver?(driver)
25
+ %w(S3 IIJGIO).include? driver.upcase
26
+ end
27
+
28
+ def bucket(name)
29
+ case @account[:provider]
30
+ when 'S3'
31
+ @driver = Dcmgr::Drivers::S3Storage.new(name)
32
+ when 'IIJGIO'
33
+ @driver = Dcmgr::Drivers::IIJGIOStorage.new(name)
34
+ else
35
+ raise "#{@account[:provider]} is not a recognized storage provider"
36
+ end
37
+
38
+ @driver.setenv('SERVICE', @account[:provider].downcase)
39
+ @driver.setenv('ACCESS_KEY_ID', @account[:access_key])
40
+ @driver.setenv('SECRET_ACCESS_KEY', @account[:secret_key])
41
+ @driver
42
+ end
43
+
44
+ def self.repository(repository_address)
45
+ if repository_address.nil?
46
+ return {}
47
+ end
48
+ tmp = repository_address.split(',')
49
+ destination_key = tmp[0]
50
+ dest = destination_key.match(/^([a-z0-9_]+)@([a-z0-9_-]+):([a-z0-9_-]+):([a-z0-9_\-\/]+)(snap-[a-z0-9]+\.zsnap)+$/)
51
+ if dest.nil?
52
+ raise "Invalid format: #{repository_address}"
53
+ end
54
+
55
+ h = {
56
+ :destination => dest[1],
57
+ :driver => dest[2],
58
+ :bucket => dest[3],
59
+ :path => dest[4],
60
+ :filename => dest[5],
61
+ :access_key => tmp[1],
62
+ :secret_key => tmp[2],
63
+ }
64
+ end
65
+
66
+ def self.repository_address(destination_key)
67
+ format = '%s,%s,%s'
68
+ config_data = self.snapshot_repository_config
69
+ destination = destination_key.split('@')[0]
70
+
71
+ if destination == 'local'
72
+ config = {:access_key => '', :secret_key => ''}
73
+ else
74
+ config = config_data[destination]
75
+ end
76
+
77
+ sprintf(format, *[destination_key, config["access_key"], config["secret_key"]])
78
+ end
79
+
80
+ def self.destination_key(account_id, destination, store_path, filename)
81
+ format = '%s@%s:%s:%s'
82
+ if destination == 'local'
83
+ config = {
84
+ "driver" => "local",
85
+ "bucket" => "none"
86
+ }
87
+ else
88
+ config_data = snapshot_repository_config
89
+ config = config_data[destination]
90
+ if config.nil?
91
+ raise "Destination isn't exists"
92
+ end
93
+ store_path = "snapshots/#{account_id}/"
94
+ end
95
+ sprintf(format, *[destination, config["driver"], config["bucket"], File.join(store_path, filename)])
96
+ end
97
+ end
98
+ end
data/lib/dcmgr/tags.rb CHANGED
@@ -32,7 +32,7 @@ module Dcmgr::Tags
32
32
 
33
33
  class HostPool < Models::Tag
34
34
  def accept_mapping?(to)
35
- to.is_a?(Dcmgr::Models::HostNode)
35
+ to.is_a?(Dcmgr::Models::HostPool)
36
36
  end
37
37
 
38
38
  def pick(spec)
@@ -48,7 +48,7 @@ module Dcmgr::Tags
48
48
 
49
49
  class StoragePool < Models::Tag
50
50
  def accept_mapping?(to)
51
- to.is_a?(Dcmgr::Models::StorageNode)
51
+ to.is_a?(Dcmgr::Models::StoragePool)
52
52
  end
53
53
  end
54
54
  end
@@ -0,0 +1,8 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ module Dcmgr
4
+ VERSION_MAJOR="11.06"
5
+ VERSION_MINOR=0
6
+
7
+ VERSION="#{VERSION_MAJOR}.#{VERSION_MINOR}"
8
+ end
data/lib/ext/time.rb ADDED
@@ -0,0 +1,8 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'time'
3
+
4
+ class Time
5
+ def to_json(*args)
6
+ self.utc.iso8601.to_s.to_json(*args)
7
+ end
8
+ end
@@ -41,6 +41,9 @@ module Sinatra
41
41
  #
42
42
  # and the format will automatically be available in <tt>format</tt>
43
43
  app.before do
44
+
45
+ response['Content-Type'] = ''
46
+
44
47
  # Let through sinatra image urls in development
45
48
  next if self.class.development? && request.path_info =~ %r{/__sinatra__/.*?.png}
46
49
 
@@ -5,17 +5,32 @@ require 'sequel'
5
5
 
6
6
  module Sinatra
7
7
  # wrap routed request with sequel transaction block.
8
+ # note: this is NOT thread safe. please ensure not to be used in the
9
+ # multi-threaded apps.
8
10
  module SequelTransaction
9
11
  module Helpers
12
+ # TODO: abstract database connection. it means that do not use
13
+ # Sequel::DATABASE.first where to get the connection.
14
+
15
+ public
16
+ # commit manually before return from the request block
17
+ def commit_transaction
18
+ db = Sequel::DATABASES.first
19
+ db << db.__send__(:commit_transaction_sql)
20
+ end
21
+
10
22
  private
11
23
  def route_eval(&block)
24
+
12
25
  db = Sequel::DATABASES.first
13
-
14
- ret = nil
15
- db.transaction do
16
- ret = instance_eval(&block)
26
+ begin
27
+ db.transaction do
28
+ super(&block)
29
+ end
30
+ rescue Sequel::DatabaseError, Sequel::DatabaseConnectionError => e
31
+ db.disconnect
32
+ raise e
17
33
  end
18
- throw :halt, ret
19
34
  end
20
35
  end
21
36
 
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wakame-vdc-agents
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 95
4
5
  prerelease: false
5
6
  segments:
6
- - 10
7
- - 12
7
+ - 11
8
+ - 6
8
9
  - 0
9
- version: 10.12.0
10
+ version: 11.06.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - axsh Ltd.
@@ -14,157 +15,157 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-12-24 00:00:00 +09:00
18
+ date: 2011-06-30 00:00:00 +09:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  prerelease: false
22
- name: isono
23
- type: :runtime
24
23
  version_requirements: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
25
  requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- - 1
31
- - 0
32
- version: 0.1.0
33
- - - <
26
+ - - "="
34
27
  - !ruby/object:Gem::Version
28
+ hash: 17
35
29
  segments:
36
30
  - 0
37
31
  - 2
38
- version: "0.2"
32
+ - 3
33
+ version: 0.2.3
39
34
  requirement: *id001
40
- - !ruby/object:Gem::Dependency
41
- prerelease: false
42
- name: eventmachine
43
35
  type: :runtime
44
- version_requirements: &id002 !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "="
47
- - !ruby/object:Gem::Version
48
- segments:
49
- - 0
50
- - 12
51
- - 10
52
- version: 0.12.10
53
- requirement: *id002
36
+ name: isono
54
37
  - !ruby/object:Gem::Dependency
55
38
  prerelease: false
56
- name: log4r
57
- type: :runtime
58
- version_requirements: &id003 !ruby/object:Gem::Requirement
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
59
41
  requirements:
60
42
  - - ">="
61
43
  - !ruby/object:Gem::Version
44
+ hash: 3
62
45
  segments:
63
46
  - 0
64
47
  version: "0"
65
- requirement: *id003
48
+ requirement: *id002
49
+ type: :runtime
50
+ name: log4r
66
51
  - !ruby/object:Gem::Dependency
67
52
  prerelease: false
68
- name: extlib
69
- type: :runtime
70
- version_requirements: &id004 !ruby/object:Gem::Requirement
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
+ none: false
71
55
  requirements:
72
56
  - - "="
73
57
  - !ruby/object:Gem::Version
58
+ hash: 37
74
59
  segments:
75
60
  - 0
76
61
  - 9
77
62
  - 15
78
63
  version: 0.9.15
79
- requirement: *id004
64
+ requirement: *id003
65
+ type: :runtime
66
+ name: extlib
80
67
  - !ruby/object:Gem::Dependency
81
68
  prerelease: false
82
- name: configuration
83
- type: :runtime
84
- version_requirements: &id005 !ruby/object:Gem::Requirement
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
70
+ none: false
85
71
  requirements:
86
72
  - - ">="
87
73
  - !ruby/object:Gem::Version
74
+ hash: 3
88
75
  segments:
89
76
  - 0
90
77
  version: "0"
91
- requirement: *id005
78
+ requirement: *id004
79
+ type: :runtime
80
+ name: configuration
92
81
  - !ruby/object:Gem::Dependency
93
82
  prerelease: false
94
- name: statemachine
95
- type: :runtime
96
- version_requirements: &id006 !ruby/object:Gem::Requirement
83
+ version_requirements: &id005 !ruby/object:Gem::Requirement
84
+ none: false
97
85
  requirements:
98
86
  - - "="
99
87
  - !ruby/object:Gem::Version
88
+ hash: 17
100
89
  segments:
101
90
  - 1
102
91
  - 1
103
92
  - 1
104
93
  version: 1.1.1
105
- requirement: *id006
94
+ requirement: *id005
95
+ type: :runtime
96
+ name: statemachine
106
97
  - !ruby/object:Gem::Dependency
107
98
  prerelease: false
108
- name: ruby-hmac
109
- type: :runtime
110
- version_requirements: &id007 !ruby/object:Gem::Requirement
99
+ version_requirements: &id006 !ruby/object:Gem::Requirement
100
+ none: false
111
101
  requirements:
112
102
  - - ">="
113
103
  - !ruby/object:Gem::Version
104
+ hash: 3
114
105
  segments:
115
106
  - 0
116
107
  version: "0"
117
- requirement: *id007
108
+ requirement: *id006
109
+ type: :runtime
110
+ name: ruby-hmac
118
111
  - !ruby/object:Gem::Dependency
119
112
  prerelease: false
120
- name: ipaddress
121
- type: :runtime
122
- version_requirements: &id008 !ruby/object:Gem::Requirement
113
+ version_requirements: &id007 !ruby/object:Gem::Requirement
114
+ none: false
123
115
  requirements:
124
116
  - - "="
125
117
  - !ruby/object:Gem::Version
118
+ hash: 3
126
119
  segments:
127
120
  - 0
128
121
  - 7
129
122
  - 0
130
123
  version: 0.7.0
131
- requirement: *id008
124
+ requirement: *id007
125
+ type: :runtime
126
+ name: ipaddress
132
127
  - !ruby/object:Gem::Dependency
133
128
  prerelease: false
134
- name: open4
135
- type: :runtime
136
- version_requirements: &id009 !ruby/object:Gem::Requirement
129
+ version_requirements: &id008 !ruby/object:Gem::Requirement
130
+ none: false
137
131
  requirements:
138
132
  - - ">="
139
133
  - !ruby/object:Gem::Version
134
+ hash: 3
140
135
  segments:
141
136
  - 0
142
137
  version: "0"
143
- requirement: *id009
138
+ requirement: *id008
139
+ type: :runtime
140
+ name: open4
144
141
  - !ruby/object:Gem::Dependency
145
142
  prerelease: false
146
- name: bacon
147
- type: :development
148
- version_requirements: &id010 !ruby/object:Gem::Requirement
143
+ version_requirements: &id009 !ruby/object:Gem::Requirement
144
+ none: false
149
145
  requirements:
150
146
  - - ">="
151
147
  - !ruby/object:Gem::Version
148
+ hash: 3
152
149
  segments:
153
150
  - 0
154
151
  version: "0"
155
- requirement: *id010
152
+ requirement: *id009
153
+ type: :development
154
+ name: bacon
156
155
  - !ruby/object:Gem::Dependency
157
156
  prerelease: false
158
- name: rake
159
- type: :development
160
- version_requirements: &id011 !ruby/object:Gem::Requirement
157
+ version_requirements: &id010 !ruby/object:Gem::Requirement
158
+ none: false
161
159
  requirements:
162
160
  - - ">="
163
161
  - !ruby/object:Gem::Version
162
+ hash: 3
164
163
  segments:
165
164
  - 0
166
165
  version: "0"
167
- requirement: *id011
166
+ requirement: *id010
167
+ type: :development
168
+ name: rake
168
169
  description: ""
169
170
  email:
170
171
  - dev@axsh.net
@@ -178,61 +179,89 @@ extra_rdoc_files: []
178
179
 
179
180
  files:
180
181
  - config/path_resolver.rb
181
- - config/initializers/isono.rb
182
182
  - config/initializers/passenger.rb
183
+ - config/initializers/isono.rb
183
184
  - config/initializers/sequel.rb
184
185
  - lib/dcmgr.rb
185
186
  - lib/sinatra/accept_media_types.rb
187
+ - lib/sinatra/url_for.rb
186
188
  - lib/sinatra/sequel_transaction.rb
187
189
  - lib/sinatra/static_assets.rb
190
+ - lib/sinatra/rabbit.rb
188
191
  - lib/sinatra/respond_to.rb
189
192
  - lib/sinatra/lazy_auth.rb
190
- - lib/sinatra/rabbit.rb
191
- - lib/sinatra/url_for.rb
192
- - lib/dcmgr/web/base.rb
193
- - lib/dcmgr/logger.rb
194
- - lib/dcmgr/helpers/cli_helper.rb
193
+ - lib/dcmgr/rack/request_logger.rb
194
+ - lib/dcmgr/rack/run_initializer.rb
195
+ - lib/dcmgr/stm/snapshot_context.rb
196
+ - lib/dcmgr/stm/volume_context.rb
197
+ - lib/dcmgr/stm/instance.rb
198
+ - lib/dcmgr/version.rb
195
199
  - lib/dcmgr/scheduler/find_random.rb
196
200
  - lib/dcmgr/scheduler/find_last.rb
197
- - lib/dcmgr/node_modules/instance_ha.rb
198
- - lib/dcmgr/node_modules/sta_collector.rb
199
- - lib/dcmgr/node_modules/hva_collector.rb
200
- - lib/dcmgr/endpoints/errors.rb
201
- - lib/dcmgr/endpoints/core_api.rb
201
+ - lib/dcmgr/scheduler.rb
202
202
  - lib/dcmgr/endpoints/metadata.rb
203
+ - lib/dcmgr/endpoints/errors.rb
203
204
  - lib/dcmgr/endpoints/core_api_mock.rb
204
- - lib/dcmgr/stm/instance.rb
205
- - lib/dcmgr/stm/snapshot_context.rb
206
- - lib/dcmgr/stm/volume_context.rb
207
- - lib/dcmgr/models/frontend_system.rb
205
+ - lib/dcmgr/endpoints/core_api.rb
206
+ - lib/dcmgr/tags.rb
207
+ - lib/dcmgr/models/ip_lease.rb
208
+ - lib/dcmgr/models/instance_netfilter_group.rb
209
+ - lib/dcmgr/models/volume_snapshot.rb
208
210
  - lib/dcmgr/models/storage_pool.rb
211
+ - lib/dcmgr/models/netfilter_rule.rb
212
+ - lib/dcmgr/models/tag_mapping.rb
213
+ - lib/dcmgr/models/instance_spec.rb
214
+ - lib/dcmgr/models/host_pool.rb
209
215
  - lib/dcmgr/models/instance_nic.rb
210
- - lib/dcmgr/models/image.rb
211
- - lib/dcmgr/models/base.rb
212
216
  - lib/dcmgr/models/mac_lease.rb
213
- - lib/dcmgr/models/hostname_lease.rb
214
- - lib/dcmgr/models/volume_snapshot.rb
215
- - lib/dcmgr/models/instance_spec.rb
217
+ - lib/dcmgr/models/vlan_lease.rb
218
+ - lib/dcmgr/models/base_new.rb
219
+ - lib/dcmgr/models/account.rb
220
+ - lib/dcmgr/models/frontend_system.rb
221
+ - lib/dcmgr/models/image.rb
216
222
  - lib/dcmgr/models/instance.rb
217
223
  - lib/dcmgr/models/volume.rb
224
+ - lib/dcmgr/models/netfilter_group.rb
225
+ - lib/dcmgr/models/tag.rb
218
226
  - lib/dcmgr/models/account_resource.rb
219
- - lib/dcmgr/models/vlan_lease.rb
220
- - lib/dcmgr/models/physical_host.rb
227
+ - lib/dcmgr/models/hostname_lease.rb
221
228
  - lib/dcmgr/models/network.rb
222
- - lib/dcmgr/models/ip_lease.rb
223
- - lib/dcmgr/models/host_pool.rb
224
- - lib/dcmgr/models/ssh_key_pair.rb
225
- - lib/dcmgr/models/history.rb
226
229
  - lib/dcmgr/models/request_log.rb
227
- - lib/dcmgr/models/tag.rb
228
- - lib/dcmgr/models/base_new.rb
229
- - lib/dcmgr/models/tag_mapping.rb
230
- - lib/dcmgr/models/instance_netfilter_group.rb
231
- - lib/dcmgr/models/account.rb
232
- - lib/dcmgr/models/netfilter_group.rb
233
- - lib/dcmgr/models/netfilter_rule.rb
234
- - lib/dcmgr/tags.rb
235
- - lib/dcmgr/scheduler.rb
230
+ - lib/dcmgr/models/base.rb
231
+ - lib/dcmgr/models/quota.rb
232
+ - lib/dcmgr/models/history.rb
233
+ - lib/dcmgr/models/ssh_key_pair.rb
234
+ - lib/dcmgr/logger.rb
235
+ - lib/dcmgr/drivers/lxc.rb
236
+ - lib/dcmgr/drivers/iijgio_storage.rb
237
+ - lib/dcmgr/drivers/s3_storage.rb
238
+ - lib/dcmgr/drivers/snapshot_storage.rb
239
+ - lib/dcmgr/drivers/hypervisor.rb
240
+ - lib/dcmgr/drivers/kvm.rb
241
+ - lib/dcmgr/rubygems.rb
242
+ - lib/dcmgr/storage_service.rb
243
+ - lib/dcmgr/rpc/hva_handler.rb
244
+ - lib/dcmgr/messaging_client.rb
245
+ - lib/dcmgr/helpers/nic_helper.rb
246
+ - lib/dcmgr/helpers/cli_helper.rb
247
+ - lib/dcmgr/node_modules/hva_collector.rb
248
+ - lib/dcmgr/node_modules/instance_ha.rb
249
+ - lib/dcmgr/node_modules/sta_collector.rb
250
+ - lib/dcmgr/node_modules/instance_monitor.rb
251
+ - lib/dcmgr/node_modules/service_netfilter.rb
252
+ - lib/dcmgr/cli/vlan.rb
253
+ - lib/dcmgr/cli/storage.rb
254
+ - lib/dcmgr/cli/spec.rb
255
+ - lib/dcmgr/cli/errors.rb
256
+ - lib/dcmgr/cli/host.rb
257
+ - lib/dcmgr/cli/image.rb
258
+ - lib/dcmgr/cli/tag.rb
259
+ - lib/dcmgr/cli/keypair.rb
260
+ - lib/dcmgr/cli/network.rb
261
+ - lib/dcmgr/cli/base.rb
262
+ - lib/dcmgr/cli/quota.rb
263
+ - lib/dcmgr/cli/group.rb
264
+ - lib/ext/time.rb
236
265
  - Rakefile
237
266
  - LICENSE
238
267
  - NOTICE
@@ -251,25 +280,29 @@ rdoc_options: []
251
280
  require_paths:
252
281
  - lib
253
282
  required_ruby_version: !ruby/object:Gem::Requirement
283
+ none: false
254
284
  requirements:
255
285
  - - ">="
256
286
  - !ruby/object:Gem::Version
287
+ hash: 57
257
288
  segments:
258
289
  - 1
259
290
  - 8
260
291
  - 7
261
292
  version: 1.8.7
262
293
  required_rubygems_version: !ruby/object:Gem::Requirement
294
+ none: false
263
295
  requirements:
264
296
  - - ">="
265
297
  - !ruby/object:Gem::Version
298
+ hash: 3
266
299
  segments:
267
300
  - 0
268
301
  version: "0"
269
302
  requirements: []
270
303
 
271
304
  rubyforge_project:
272
- rubygems_version: 1.3.6
305
+ rubygems_version: 1.3.7
273
306
  signing_key:
274
307
  specification_version: 3
275
308
  summary: "Datacenter management toolkit for IaaS Cloud: agent modules"