wakame-vdc-dcmgr 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/collector +10 -24
  4. data/config/dcmgr.conf.example +18 -6
  5. data/config/initializers/isono.rb +7 -23
  6. data/config/initializers/sequel.rb +11 -2
  7. data/lib/dcmgr.rb +70 -11
  8. data/lib/dcmgr/cli/base.rb +74 -0
  9. data/lib/dcmgr/cli/errors.rb +59 -0
  10. data/lib/dcmgr/cli/group.rb +101 -0
  11. data/lib/dcmgr/cli/host.rb +101 -0
  12. data/lib/dcmgr/cli/image.rb +108 -0
  13. data/lib/dcmgr/cli/keypair.rb +72 -0
  14. data/lib/dcmgr/cli/network.rb +198 -0
  15. data/lib/dcmgr/cli/quota.rb +28 -0
  16. data/lib/dcmgr/cli/spec.rb +82 -0
  17. data/lib/dcmgr/cli/storage.rb +88 -0
  18. data/lib/dcmgr/cli/tag.rb +81 -0
  19. data/lib/dcmgr/cli/vlan.rb +53 -0
  20. data/lib/dcmgr/drivers/hypervisor.rb +33 -0
  21. data/lib/dcmgr/drivers/iijgio_storage.rb +37 -0
  22. data/lib/dcmgr/drivers/kvm.rb +118 -0
  23. data/lib/dcmgr/drivers/lxc.rb +167 -0
  24. data/lib/dcmgr/drivers/s3_storage.rb +39 -0
  25. data/lib/dcmgr/drivers/snapshot_storage.rb +51 -0
  26. data/lib/dcmgr/endpoints/core_api.rb +188 -324
  27. data/lib/dcmgr/endpoints/core_api_mock.rb +52 -3
  28. data/lib/dcmgr/endpoints/errors.rb +73 -32
  29. data/lib/dcmgr/endpoints/metadata.rb +163 -16
  30. data/lib/dcmgr/helpers/cli_helper.rb +1 -1
  31. data/lib/dcmgr/helpers/nic_helper.rb +35 -0
  32. data/lib/dcmgr/logger.rb +5 -1
  33. data/lib/dcmgr/messaging_client.rb +117 -0
  34. data/lib/dcmgr/models/account.rb +27 -3
  35. data/lib/dcmgr/models/base_new.rb +21 -7
  36. data/lib/dcmgr/models/host_pool.rb +27 -7
  37. data/lib/dcmgr/models/image.rb +31 -3
  38. data/lib/dcmgr/models/instance.rb +72 -23
  39. data/lib/dcmgr/models/instance_nic.rb +12 -2
  40. data/lib/dcmgr/models/instance_spec.rb +16 -0
  41. data/lib/dcmgr/models/ip_lease.rb +37 -1
  42. data/lib/dcmgr/models/netfilter_group.rb +7 -7
  43. data/lib/dcmgr/models/network.rb +42 -3
  44. data/lib/dcmgr/models/quota.rb +25 -0
  45. data/lib/dcmgr/models/request_log.rb +26 -11
  46. data/lib/dcmgr/models/ssh_key_pair.rb +14 -1
  47. data/lib/dcmgr/models/storage_pool.rb +19 -72
  48. data/lib/dcmgr/models/tag.rb +5 -0
  49. data/lib/dcmgr/models/vlan_lease.rb +8 -0
  50. data/lib/dcmgr/models/volume.rb +26 -8
  51. data/lib/dcmgr/models/volume_snapshot.rb +37 -0
  52. data/lib/dcmgr/node_modules/hva_collector.rb +56 -36
  53. data/lib/dcmgr/node_modules/instance_ha.rb +1 -1
  54. data/lib/dcmgr/node_modules/instance_monitor.rb +70 -0
  55. data/lib/dcmgr/node_modules/service_netfilter.rb +914 -0
  56. data/lib/dcmgr/node_modules/sta_collector.rb +7 -30
  57. data/lib/dcmgr/rack/request_logger.rb +60 -0
  58. data/lib/dcmgr/rack/run_initializer.rb +42 -0
  59. data/lib/dcmgr/rpc/hva_handler.rb +388 -0
  60. data/lib/dcmgr/rubygems.rb +7 -0
  61. data/lib/dcmgr/storage_service.rb +98 -0
  62. data/lib/dcmgr/tags.rb +2 -2
  63. data/lib/dcmgr/version.rb +8 -0
  64. data/lib/ext/time.rb +8 -0
  65. data/lib/sinatra/respond_to.rb +3 -0
  66. data/lib/sinatra/sequel_transaction.rb +20 -5
  67. data/web/api/config.ru +9 -13
  68. data/web/metadata/config.ru +10 -13
  69. metadata +162 -120
  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
 
data/web/api/config.ru CHANGED
@@ -1,20 +1,16 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- begin
4
- require 'rubygems'
5
- require 'bundler'
6
- Bundler.setup(:default, :dcmgr)
7
- rescue ::Exception => e
8
- end
9
- $:.unshift "#{File.dirname(__FILE__)}/../../lib"
3
+ $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../lib"
10
4
 
5
+ require 'dcmgr/rubygems'
11
6
  require 'dcmgr'
12
7
 
13
- if File.exists?('../../config/dcmgr.conf')
14
- Dcmgr.configure('../../config/dcmgr.conf')
15
- else
16
- raise "Could not find the config/dcmgr.conf configuration file."
17
- end
18
- Dcmgr.run_initializers
8
+ Dcmgr.configure(File.expand_path('../../../config/dcmgr.conf', __FILE__))
19
9
 
10
+ use Dcmgr::Rack::RunInitializer, lambda {
11
+ Dcmgr.run_initializers
12
+ }, lambda {
13
+ next if Isono::NodeModules::DataStore.disconnected? == false
14
+ Dcmgr.run_initializers('sequel')
15
+ }
20
16
  run Dcmgr::Endpoints::CoreAPI.new
@@ -1,20 +1,17 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- begin
4
- require 'rubygems'
5
- require 'bundler'
6
- Bundler.setup(:default, :dcmgr)
7
- rescue ::Exception => e
8
- end
9
- $:.unshift "#{File.dirname(__FILE__)}/../../lib"
3
+ $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../lib"
10
4
 
5
+ require 'dcmgr/rubygems'
11
6
  require 'dcmgr'
12
7
 
13
- if File.exists?('../../config/dcmgr.conf')
14
- Dcmgr.configure('../../config/dcmgr.conf')
15
- else
16
- raise "Could not find the config/dcmgr.conf configuration file."
17
- end
18
- Dcmgr.run_initializers
8
+ Dcmgr.configure(File.expand_path('../../../config/dcmgr.conf', __FILE__))
9
+
10
+ use Dcmgr::Rack::RunInitializer, lambda {
11
+ Dcmgr.run_initializers
12
+ }, lambda {
13
+ next if Isono::NodeModules::DataStore.disconnected? == false
14
+ Dcmgr.run_initializers('sequel')
15
+ }
19
16
 
20
17
  run Dcmgr::Endpoints::Metadata.new
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wakame-vdc-dcmgr
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,214 +15,223 @@ 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: collector
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: rack
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: 29
140
135
  segments:
141
136
  - 1
142
137
  - 2
143
138
  - 1
144
139
  version: 1.2.1
145
- requirement: *id009
140
+ requirement: *id008
141
+ type: :runtime
142
+ name: rack
146
143
  - !ruby/object:Gem::Dependency
147
144
  prerelease: false
148
- name: sinatra
149
- type: :runtime
150
- version_requirements: &id010 !ruby/object:Gem::Requirement
145
+ version_requirements: &id009 !ruby/object:Gem::Requirement
146
+ none: false
151
147
  requirements:
152
148
  - - "="
153
149
  - !ruby/object:Gem::Version
150
+ hash: 29
154
151
  segments:
155
152
  - 1
156
- - 0
157
- version: "1.0"
158
- requirement: *id010
153
+ - 2
154
+ - 1
155
+ version: 1.2.1
156
+ requirement: *id009
157
+ type: :runtime
158
+ name: sinatra
159
159
  - !ruby/object:Gem::Dependency
160
160
  prerelease: false
161
- name: json
162
- type: :runtime
163
- version_requirements: &id011 !ruby/object:Gem::Requirement
161
+ version_requirements: &id010 !ruby/object:Gem::Requirement
162
+ none: false
164
163
  requirements:
165
164
  - - ">="
166
165
  - !ruby/object:Gem::Version
166
+ hash: 31
167
167
  segments:
168
168
  - 1
169
169
  - 2
170
170
  - 0
171
171
  version: 1.2.0
172
- requirement: *id011
172
+ requirement: *id010
173
+ type: :runtime
174
+ name: json
173
175
  - !ruby/object:Gem::Dependency
174
176
  prerelease: false
175
- name: sequel
176
- type: :runtime
177
- version_requirements: &id012 !ruby/object:Gem::Requirement
177
+ version_requirements: &id011 !ruby/object:Gem::Requirement
178
+ none: false
178
179
  requirements:
179
180
  - - "="
180
181
  - !ruby/object:Gem::Version
182
+ hash: 83
181
183
  segments:
182
184
  - 3
183
- - 16
185
+ - 21
184
186
  - 0
185
- version: 3.16.0
186
- requirement: *id012
187
+ version: 3.21.0
188
+ requirement: *id011
189
+ type: :runtime
190
+ name: sequel
187
191
  - !ruby/object:Gem::Dependency
188
192
  prerelease: false
189
- name: mysql
190
- type: :runtime
191
- version_requirements: &id013 !ruby/object:Gem::Requirement
193
+ version_requirements: &id012 !ruby/object:Gem::Requirement
194
+ none: false
192
195
  requirements:
193
196
  - - ">="
194
197
  - !ruby/object:Gem::Version
198
+ hash: 45
195
199
  segments:
196
200
  - 2
197
201
  - 8
198
202
  - 1
199
203
  version: 2.8.1
200
- requirement: *id013
204
+ requirement: *id012
205
+ type: :runtime
206
+ name: mysql
201
207
  - !ruby/object:Gem::Dependency
202
208
  prerelease: false
203
- name: bacon
204
- type: :development
205
- version_requirements: &id014 !ruby/object:Gem::Requirement
209
+ version_requirements: &id013 !ruby/object:Gem::Requirement
210
+ none: false
206
211
  requirements:
207
212
  - - ">="
208
213
  - !ruby/object:Gem::Version
214
+ hash: 3
209
215
  segments:
210
216
  - 0
211
217
  version: "0"
212
- requirement: *id014
218
+ requirement: *id013
219
+ type: :development
220
+ name: bacon
213
221
  - !ruby/object:Gem::Dependency
214
222
  prerelease: false
215
- name: rake
216
- type: :development
217
- version_requirements: &id015 !ruby/object:Gem::Requirement
223
+ version_requirements: &id014 !ruby/object:Gem::Requirement
224
+ none: false
218
225
  requirements:
219
226
  - - ">="
220
227
  - !ruby/object:Gem::Version
228
+ hash: 3
221
229
  segments:
222
230
  - 0
223
231
  version: "0"
224
- requirement: *id015
232
+ requirement: *id014
233
+ type: :development
234
+ name: rake
225
235
  description: ""
226
236
  email:
227
237
  - dev@axsh.net
@@ -233,61 +243,89 @@ extra_rdoc_files: []
233
243
 
234
244
  files:
235
245
  - config/path_resolver.rb
236
- - config/initializers/isono.rb
237
246
  - config/initializers/passenger.rb
247
+ - config/initializers/isono.rb
238
248
  - config/initializers/sequel.rb
239
249
  - lib/dcmgr.rb
240
250
  - lib/sinatra/accept_media_types.rb
251
+ - lib/sinatra/url_for.rb
241
252
  - lib/sinatra/sequel_transaction.rb
242
253
  - lib/sinatra/static_assets.rb
254
+ - lib/sinatra/rabbit.rb
243
255
  - lib/sinatra/respond_to.rb
244
256
  - lib/sinatra/lazy_auth.rb
245
- - lib/sinatra/rabbit.rb
246
- - lib/sinatra/url_for.rb
247
- - lib/dcmgr/web/base.rb
248
- - lib/dcmgr/logger.rb
249
- - lib/dcmgr/helpers/cli_helper.rb
257
+ - lib/dcmgr/rack/request_logger.rb
258
+ - lib/dcmgr/rack/run_initializer.rb
259
+ - lib/dcmgr/stm/snapshot_context.rb
260
+ - lib/dcmgr/stm/volume_context.rb
261
+ - lib/dcmgr/stm/instance.rb
262
+ - lib/dcmgr/version.rb
250
263
  - lib/dcmgr/scheduler/find_random.rb
251
264
  - lib/dcmgr/scheduler/find_last.rb
252
- - lib/dcmgr/node_modules/instance_ha.rb
253
- - lib/dcmgr/node_modules/sta_collector.rb
254
- - lib/dcmgr/node_modules/hva_collector.rb
255
- - lib/dcmgr/endpoints/errors.rb
256
- - lib/dcmgr/endpoints/core_api.rb
265
+ - lib/dcmgr/scheduler.rb
257
266
  - lib/dcmgr/endpoints/metadata.rb
267
+ - lib/dcmgr/endpoints/errors.rb
258
268
  - lib/dcmgr/endpoints/core_api_mock.rb
259
- - lib/dcmgr/stm/instance.rb
260
- - lib/dcmgr/stm/snapshot_context.rb
261
- - lib/dcmgr/stm/volume_context.rb
262
- - lib/dcmgr/models/frontend_system.rb
269
+ - lib/dcmgr/endpoints/core_api.rb
270
+ - lib/dcmgr/tags.rb
271
+ - lib/dcmgr/models/ip_lease.rb
272
+ - lib/dcmgr/models/instance_netfilter_group.rb
273
+ - lib/dcmgr/models/volume_snapshot.rb
263
274
  - lib/dcmgr/models/storage_pool.rb
275
+ - lib/dcmgr/models/netfilter_rule.rb
276
+ - lib/dcmgr/models/tag_mapping.rb
277
+ - lib/dcmgr/models/instance_spec.rb
278
+ - lib/dcmgr/models/host_pool.rb
264
279
  - lib/dcmgr/models/instance_nic.rb
265
- - lib/dcmgr/models/image.rb
266
- - lib/dcmgr/models/base.rb
267
280
  - lib/dcmgr/models/mac_lease.rb
268
- - lib/dcmgr/models/hostname_lease.rb
269
- - lib/dcmgr/models/volume_snapshot.rb
270
- - lib/dcmgr/models/instance_spec.rb
281
+ - lib/dcmgr/models/vlan_lease.rb
282
+ - lib/dcmgr/models/base_new.rb
283
+ - lib/dcmgr/models/account.rb
284
+ - lib/dcmgr/models/frontend_system.rb
285
+ - lib/dcmgr/models/image.rb
271
286
  - lib/dcmgr/models/instance.rb
272
287
  - lib/dcmgr/models/volume.rb
288
+ - lib/dcmgr/models/netfilter_group.rb
289
+ - lib/dcmgr/models/tag.rb
273
290
  - lib/dcmgr/models/account_resource.rb
274
- - lib/dcmgr/models/vlan_lease.rb
275
- - lib/dcmgr/models/physical_host.rb
291
+ - lib/dcmgr/models/hostname_lease.rb
276
292
  - lib/dcmgr/models/network.rb
277
- - lib/dcmgr/models/ip_lease.rb
278
- - lib/dcmgr/models/host_pool.rb
279
- - lib/dcmgr/models/ssh_key_pair.rb
280
- - lib/dcmgr/models/history.rb
281
293
  - lib/dcmgr/models/request_log.rb
282
- - lib/dcmgr/models/tag.rb
283
- - lib/dcmgr/models/base_new.rb
284
- - lib/dcmgr/models/tag_mapping.rb
285
- - lib/dcmgr/models/instance_netfilter_group.rb
286
- - lib/dcmgr/models/account.rb
287
- - lib/dcmgr/models/netfilter_group.rb
288
- - lib/dcmgr/models/netfilter_rule.rb
289
- - lib/dcmgr/tags.rb
290
- - lib/dcmgr/scheduler.rb
294
+ - lib/dcmgr/models/base.rb
295
+ - lib/dcmgr/models/quota.rb
296
+ - lib/dcmgr/models/history.rb
297
+ - lib/dcmgr/models/ssh_key_pair.rb
298
+ - lib/dcmgr/logger.rb
299
+ - lib/dcmgr/drivers/lxc.rb
300
+ - lib/dcmgr/drivers/iijgio_storage.rb
301
+ - lib/dcmgr/drivers/s3_storage.rb
302
+ - lib/dcmgr/drivers/snapshot_storage.rb
303
+ - lib/dcmgr/drivers/hypervisor.rb
304
+ - lib/dcmgr/drivers/kvm.rb
305
+ - lib/dcmgr/rubygems.rb
306
+ - lib/dcmgr/storage_service.rb
307
+ - lib/dcmgr/rpc/hva_handler.rb
308
+ - lib/dcmgr/messaging_client.rb
309
+ - lib/dcmgr/helpers/nic_helper.rb
310
+ - lib/dcmgr/helpers/cli_helper.rb
311
+ - lib/dcmgr/node_modules/hva_collector.rb
312
+ - lib/dcmgr/node_modules/instance_ha.rb
313
+ - lib/dcmgr/node_modules/sta_collector.rb
314
+ - lib/dcmgr/node_modules/instance_monitor.rb
315
+ - lib/dcmgr/node_modules/service_netfilter.rb
316
+ - lib/dcmgr/cli/vlan.rb
317
+ - lib/dcmgr/cli/storage.rb
318
+ - lib/dcmgr/cli/spec.rb
319
+ - lib/dcmgr/cli/errors.rb
320
+ - lib/dcmgr/cli/host.rb
321
+ - lib/dcmgr/cli/image.rb
322
+ - lib/dcmgr/cli/tag.rb
323
+ - lib/dcmgr/cli/keypair.rb
324
+ - lib/dcmgr/cli/network.rb
325
+ - lib/dcmgr/cli/base.rb
326
+ - lib/dcmgr/cli/quota.rb
327
+ - lib/dcmgr/cli/group.rb
328
+ - lib/ext/time.rb
291
329
  - web/api/public/index.html
292
330
  - web/metadata/public/index.html
293
331
  - Rakefile
@@ -307,25 +345,29 @@ rdoc_options: []
307
345
  require_paths:
308
346
  - lib
309
347
  required_ruby_version: !ruby/object:Gem::Requirement
348
+ none: false
310
349
  requirements:
311
350
  - - ">="
312
351
  - !ruby/object:Gem::Version
352
+ hash: 57
313
353
  segments:
314
354
  - 1
315
355
  - 8
316
356
  - 7
317
357
  version: 1.8.7
318
358
  required_rubygems_version: !ruby/object:Gem::Requirement
359
+ none: false
319
360
  requirements:
320
361
  - - ">="
321
362
  - !ruby/object:Gem::Version
363
+ hash: 3
322
364
  segments:
323
365
  - 0
324
366
  version: "0"
325
367
  requirements: []
326
368
 
327
369
  rubyforge_project:
328
- rubygems_version: 1.3.6
370
+ rubygems_version: 1.3.7
329
371
  signing_key:
330
372
  specification_version: 3
331
373
  summary: "Datacenter management toolkit for IaaS Cloud: datacenter manager and support modules"