wakame-vdc-dcmgr 11.06.0 → 11.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. data/Rakefile +19 -31
  2. data/bin/collector +6 -1
  3. data/config/db/migrations/0001_v1110_origin.rb +446 -0
  4. data/config/dcmgr.conf.example +51 -0
  5. data/lib/dcmgr.rb +99 -22
  6. data/lib/dcmgr/cli/base.rb +34 -1
  7. data/lib/dcmgr/cli/host.rb +24 -20
  8. data/lib/dcmgr/cli/image.rb +38 -19
  9. data/lib/dcmgr/cli/keypair.rb +16 -12
  10. data/lib/dcmgr/cli/network.rb +189 -81
  11. data/lib/dcmgr/cli/quota.rb +2 -2
  12. data/lib/dcmgr/cli/security_group.rb +106 -0
  13. data/lib/dcmgr/cli/spec.rb +144 -39
  14. data/lib/dcmgr/cli/storage.rb +16 -15
  15. data/lib/dcmgr/cli/tag.rb +20 -14
  16. data/lib/dcmgr/cli/vlan.rb +5 -5
  17. data/lib/dcmgr/drivers/backing_store.rb +32 -0
  18. data/lib/dcmgr/drivers/comstar.rb +81 -0
  19. data/lib/dcmgr/drivers/iijgio_storage.rb +9 -19
  20. data/lib/dcmgr/drivers/iscsi_target.rb +41 -0
  21. data/lib/dcmgr/drivers/kvm.rb +161 -28
  22. data/lib/dcmgr/drivers/linux_iscsi.rb +60 -0
  23. data/lib/dcmgr/drivers/local_storage.rb +24 -0
  24. data/lib/dcmgr/drivers/lxc.rb +167 -125
  25. data/lib/dcmgr/drivers/raw.rb +74 -0
  26. data/lib/dcmgr/drivers/s3_storage.rb +7 -19
  27. data/lib/dcmgr/drivers/snapshot_storage.rb +18 -28
  28. data/lib/dcmgr/drivers/storage_initiator.rb +28 -0
  29. data/lib/dcmgr/drivers/sun_iscsi.rb +32 -0
  30. data/lib/dcmgr/drivers/zfs.rb +77 -0
  31. data/lib/dcmgr/endpoints/core_api.rb +315 -263
  32. data/lib/dcmgr/endpoints/errors.rb +21 -10
  33. data/lib/dcmgr/endpoints/metadata.rb +360 -23
  34. data/lib/dcmgr/helpers/cli_helper.rb +6 -3
  35. data/lib/dcmgr/helpers/ec2_metadata_helper.rb +9 -0
  36. data/lib/dcmgr/helpers/nic_helper.rb +11 -0
  37. data/lib/dcmgr/helpers/snapshot_storage_helper.rb +34 -0
  38. data/lib/dcmgr/models/account.rb +0 -6
  39. data/lib/dcmgr/models/account_resource.rb +0 -4
  40. data/lib/dcmgr/models/base_new.rb +14 -2
  41. data/lib/dcmgr/models/dhcp_range.rb +38 -0
  42. data/lib/dcmgr/models/frontend_system.rb +0 -6
  43. data/lib/dcmgr/models/history.rb +0 -11
  44. data/lib/dcmgr/models/host_node.rb +131 -0
  45. data/lib/dcmgr/models/hostname_lease.rb +0 -8
  46. data/lib/dcmgr/models/image.rb +31 -18
  47. data/lib/dcmgr/models/instance.rb +137 -143
  48. data/lib/dcmgr/models/instance_nic.rb +52 -29
  49. data/lib/dcmgr/models/instance_security_group.rb +9 -0
  50. data/lib/dcmgr/models/instance_spec.rb +163 -31
  51. data/lib/dcmgr/models/ip_lease.rb +10 -21
  52. data/lib/dcmgr/models/mac_lease.rb +30 -11
  53. data/lib/dcmgr/models/network.rb +148 -27
  54. data/lib/dcmgr/models/physical_network.rb +18 -0
  55. data/lib/dcmgr/models/quota.rb +0 -10
  56. data/lib/dcmgr/models/request_log.rb +3 -18
  57. data/lib/dcmgr/models/security_group.rb +66 -0
  58. data/lib/dcmgr/models/security_group_rule.rb +145 -0
  59. data/lib/dcmgr/models/ssh_key_pair.rb +16 -19
  60. data/lib/dcmgr/models/{storage_pool.rb → storage_node.rb} +35 -25
  61. data/lib/dcmgr/models/tag.rb +0 -14
  62. data/lib/dcmgr/models/tag_mapping.rb +1 -7
  63. data/lib/dcmgr/models/vlan_lease.rb +2 -8
  64. data/lib/dcmgr/models/volume.rb +49 -37
  65. data/lib/dcmgr/models/volume_snapshot.rb +15 -17
  66. data/lib/dcmgr/node_modules/hva_collector.rb +69 -28
  67. data/lib/dcmgr/node_modules/instance_ha.rb +23 -12
  68. data/lib/dcmgr/node_modules/instance_monitor.rb +16 -2
  69. data/lib/dcmgr/node_modules/openflow_controller.rb +784 -0
  70. data/lib/dcmgr/node_modules/scheduler.rb +189 -0
  71. data/lib/dcmgr/node_modules/service_netfilter.rb +452 -227
  72. data/lib/dcmgr/node_modules/service_openflow.rb +731 -0
  73. data/lib/dcmgr/node_modules/sta_collector.rb +20 -0
  74. data/lib/dcmgr/node_modules/sta_tgt_initializer.rb +35 -0
  75. data/lib/dcmgr/rack/request_logger.rb +11 -6
  76. data/lib/dcmgr/rpc/hva_handler.rb +256 -110
  77. data/lib/dcmgr/rpc/sta_handler.rb +244 -0
  78. data/lib/dcmgr/scheduler.rb +122 -8
  79. data/lib/dcmgr/scheduler/host_node/exclude_same.rb +24 -0
  80. data/lib/dcmgr/scheduler/host_node/find_first.rb +12 -0
  81. data/lib/dcmgr/scheduler/host_node/least_usage.rb +28 -0
  82. data/lib/dcmgr/scheduler/host_node/per_instance.rb +18 -0
  83. data/lib/dcmgr/scheduler/host_node/specify_node.rb +26 -0
  84. data/lib/dcmgr/scheduler/network/flat_single.rb +23 -0
  85. data/lib/dcmgr/scheduler/network/nat_one_to_one.rb +23 -0
  86. data/lib/dcmgr/scheduler/network/per_instance.rb +39 -0
  87. data/lib/dcmgr/scheduler/network/vif_template.rb +19 -0
  88. data/lib/dcmgr/scheduler/storage_node/find_first.rb +13 -0
  89. data/lib/dcmgr/scheduler/storage_node/least_usage.rb +23 -0
  90. data/lib/dcmgr/storage_service.rb +39 -40
  91. data/lib/dcmgr/tags.rb +3 -3
  92. data/lib/dcmgr/version.rb +1 -1
  93. data/lib/dcmgr/vnet.rb +105 -0
  94. data/lib/dcmgr/vnet/factories.rb +141 -0
  95. data/lib/dcmgr/vnet/isolators/by_securitygroup.rb +21 -0
  96. data/lib/dcmgr/vnet/isolators/dummy.rb +17 -0
  97. data/lib/dcmgr/vnet/netfilter/cache.rb +51 -0
  98. data/lib/dcmgr/vnet/netfilter/chain.rb +66 -0
  99. data/lib/dcmgr/vnet/netfilter/controller.rb +193 -0
  100. data/lib/dcmgr/vnet/netfilter/ebtables_rule.rb +53 -0
  101. data/lib/dcmgr/vnet/netfilter/iptables_rule.rb +45 -0
  102. data/lib/dcmgr/vnet/netfilter/task_manager.rb +459 -0
  103. data/lib/dcmgr/vnet/tasks/accept_all_dns.rb +19 -0
  104. data/lib/dcmgr/vnet/tasks/accept_arp_broadcast.rb +24 -0
  105. data/lib/dcmgr/vnet/tasks/accept_arp_from_friends.rb +34 -0
  106. data/lib/dcmgr/vnet/tasks/accept_arp_from_gateway.rb +21 -0
  107. data/lib/dcmgr/vnet/tasks/accept_arp_to_host.rb +30 -0
  108. data/lib/dcmgr/vnet/tasks/accept_ip_from_friends.rb +26 -0
  109. data/lib/dcmgr/vnet/tasks/accept_ip_from_gateway.rb +23 -0
  110. data/lib/dcmgr/vnet/tasks/accept_ip_to_anywhere.rb +18 -0
  111. data/lib/dcmgr/vnet/tasks/accept_related_established.rb +45 -0
  112. data/lib/dcmgr/vnet/tasks/accept_wakame_dhcp_only.rb +33 -0
  113. data/lib/dcmgr/vnet/tasks/accept_wakame_dns_only.rb +33 -0
  114. data/lib/dcmgr/vnet/tasks/debug_iptables.rb +21 -0
  115. data/lib/dcmgr/vnet/tasks/drop_arp_forwarding.rb +27 -0
  116. data/lib/dcmgr/vnet/tasks/drop_arp_to_host.rb +24 -0
  117. data/lib/dcmgr/vnet/tasks/drop_ip_from_anywhere.rb +18 -0
  118. data/lib/dcmgr/vnet/tasks/drop_ip_spoofing.rb +34 -0
  119. data/lib/dcmgr/vnet/tasks/drop_mac_spoofing.rb +33 -0
  120. data/lib/dcmgr/vnet/tasks/exclude_from_nat.rb +47 -0
  121. data/lib/dcmgr/vnet/tasks/security_group.rb +37 -0
  122. data/lib/dcmgr/vnet/tasks/static_nat.rb +54 -0
  123. data/lib/dcmgr/vnet/tasks/translate_metadata_address.rb +32 -0
  124. data/web/metadata/config.ru +1 -1
  125. metadata +174 -89
  126. data/lib/dcmgr/cli/group.rb +0 -101
  127. data/lib/dcmgr/endpoints/core_api_mock.rb +0 -865
  128. data/lib/dcmgr/models/host_pool.rb +0 -122
  129. data/lib/dcmgr/models/instance_netfilter_group.rb +0 -16
  130. data/lib/dcmgr/models/netfilter_group.rb +0 -89
  131. data/lib/dcmgr/models/netfilter_rule.rb +0 -21
  132. data/lib/dcmgr/scheduler/find_last.rb +0 -16
  133. data/lib/dcmgr/scheduler/find_random.rb +0 -16
  134. data/lib/dcmgr/stm/instance.rb +0 -25
  135. data/lib/dcmgr/stm/snapshot_context.rb +0 -33
  136. data/lib/dcmgr/stm/volume_context.rb +0 -65
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ module Dcmgr
4
+ module VNet
5
+ module Tasks
6
+
7
+ # Disables instances from spoofing another mac address
8
+ class DropMacSpoofing < Task
9
+ include Dcmgr::VNet::Netfilter
10
+ attr_accessor :mac
11
+ attr_accessor :enable_logging
12
+ attr_accessor :log_prefix
13
+
14
+ def initialize(mac,enable_logging,log_prefix)
15
+ super()
16
+ self.mac = mac
17
+ self.enable_logging = enable_logging
18
+ self.log_prefix = log_prefix
19
+
20
+ # Prevent spoofing to the outside world
21
+ self.rules << EbtablesRule.new(:filter,:forward,:arp,:outgoing,"--protocol arp --arp-mac-src ! #{self.mac} #{EbtablesRule.log_arp(self.log_prefix) if self.enable_logging} -j DROP")
22
+ # Prevent spoofing to the host
23
+ self.rules << EbtablesRule.new(:filter,:input,:arp,:outgoing,"--protocol arp --arp-mac-src ! #{self.mac} #{EbtablesRule.log_arp(self.log_prefix) if self.enable_logging} -j DROP")
24
+ # Prevent spoofing from the outside world
25
+ self.rules << EbtablesRule.new(:filter,:forward,:arp,:incoming,"--protocol arp --arp-mac-dst ! #{self.mac} #{EbtablesRule.log_arp(self.log_prefix) if self.enable_logging} -j DROP")
26
+ # Prevent spoofing from the host
27
+ self.rules << EbtablesRule.new(:filter,:output,:arp,:incoming,"--protocol arp --arp-mac-dst ! #{self.mac} #{EbtablesRule.log_arp(self.log_prefix) if self.enable_logging} -j DROP")
28
+ end
29
+ end
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,47 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ module Dcmgr
4
+ module VNet
5
+ module Tasks
6
+
7
+ # Contains specific rules for ip addresses to which connections should
8
+ # not be natted.
9
+ class ExcludeFromNat < Task
10
+ include Dcmgr::VNet::Netfilter
11
+ #An array of the ip addresses excluded from nat
12
+ attr_accessor :excluded_ips
13
+
14
+ def initialize(ips,self_ip)
15
+ super()
16
+ raise ArgumentError, "ips Must be an array containing IP addresses" unless ips.is_a? Array
17
+
18
+ ips.each { |ip|
19
+ if ip.is_a? String
20
+ exclude = IPAddress(ip)
21
+ elsif ip.is_a? IPAddress
22
+ exclude = ip
23
+ else
24
+ next
25
+ end
26
+
27
+ #self.rules << IptablesRule.new(:nat,:prerouting,nil,:incoming,"-d #{self_ip} -s #{ip} -j ACCEPT")
28
+ self.rules << IptablesRule.new(:nat,:postrouting,nil,:outgoing,"-d #{ip} -s #{self_ip} -j ACCEPT")
29
+ }
30
+ end
31
+ end
32
+
33
+ # Contains specific rules for ip addresses to which connections should
34
+ # not be natted. Depends on the netfilter IpSet module
35
+ class ExcludeFromNatIpSet < Task
36
+ include Dcmgr::VNet::Netfilter
37
+ attr_accessor :excluded_ips
38
+
39
+ def initialize(ips,self_ip)
40
+ raise NotImplementedError
41
+ end
42
+ #TODO: Write this class!
43
+ end
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,37 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ module Dcmgr
4
+ module VNet
5
+ module Tasks
6
+
7
+ class SecurityGroup < Task
8
+ include Dcmgr::VNet::Netfilter
9
+ def initialize(group_map)
10
+ super()
11
+ group_map[:rules].each { |rule|
12
+ case rule[:ip_protocol]
13
+ when 'tcp', 'udp'
14
+ if rule[:ip_fport] == rule[:ip_tport]
15
+ self.rules << IptablesRule.new(:filter,:forward,rule[:ip_protocol].to_sym,:incoming,"-p #{rule[:ip_protocol]} -s #{rule[:ip_source]} --dport #{rule[:ip_fport]} -j ACCEPT")
16
+ else
17
+ self.rules << IptablesRule.new(:filter,:forward,rule[:ip_protocol].to_sym,:incoming,"-p #{rule[:ip_protocol]} -s #{rule[:ip_source]} --dport #{rule[:ip_fport]}:#{rule[:ip_tport]} -j ACCEPT")
18
+ end
19
+ when 'icmp'
20
+ # icmp
21
+ # This extension can be used if `--protocol icmp' is specified. It provides the following option:
22
+ # [!] --icmp-type {type[/code]|typename}
23
+ # This allows specification of the ICMP type, which can be a numeric ICMP type, type/code pair, or one of the ICMP type names shown by the command
24
+ # iptables -p icmp -h
25
+ if rule[:icmp_type] == -1 && rule[:icmp_code] == -1
26
+ self.rules << IptablesRule.new(:filter,:forward,rule[:ip_protocol].to_sym,:incoming,"-p #{rule[:ip_protocol]} -s #{rule[:ip_source]} -j ACCEPT")
27
+ else
28
+ self.rules << IptablesRule.new(:filter,:forward,rule[:ip_protocol].to_sym,:incoming,"-p #{rule[:ip_protocol]} -s #{rule[:ip_source]} --icmp-type #{rule[:icmp_type]}/#{rule[:icmp_code]} -j ACCEPT")
29
+ end
30
+ end
31
+ }
32
+ end
33
+ end
34
+
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,54 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ module Dcmgr
4
+ module VNet
5
+ module Tasks
6
+
7
+ class StaticNatLog < Task
8
+ include Dcmgr::VNet::Netfilter
9
+ attr_accessor :inside_ip
10
+ attr_accessor :outside_ip
11
+ attr_accessor :snat_log_prefix
12
+ attr_accessor :dnat_log_prefix
13
+
14
+ def initialize(inside_ip,outside_ip,snat_log_prefix = "",dnat_log_prefix = "")
15
+ super()
16
+
17
+ self.inside_ip = inside_ip
18
+ self.outside_ip = outside_ip
19
+ self.snat_log_prefix = snat_log_prefix
20
+ self.dnat_log_prefix = dnat_log_prefix
21
+
22
+ self.rules = []
23
+ self.rules << IptablesRule.new(:nat,:prerouting,nil,:incoming,"-d #{self.outside_ip} -j LOG --log-prefix '#{self.dnat_log_prefix}'")
24
+ self.rules << IptablesRule.new(:nat,:postrouting,nil,:outgoing,"-s #{self.inside_ip} -j LOG --log-prefix '#{self.snat_log_prefix}'")
25
+ end
26
+ end
27
+
28
+ class StaticNat < Task
29
+ include Dcmgr::VNet::Netfilter
30
+ attr_accessor :inside_ip
31
+ attr_accessor :outside_ip
32
+ attr_accessor :mac_address
33
+
34
+ def initialize(inside_ip, outside_ip, mac_address)
35
+ super()
36
+
37
+ self.inside_ip = inside_ip
38
+ self.outside_ip = outside_ip
39
+ self.mac_address = mac_address
40
+
41
+ self.rules = []
42
+
43
+ # Reply ARP requests for the outside ip
44
+ self.rules << EbtablesRule.new(:nat,:prerouting,:arp,:incoming,"-p arp --arp-ip-dst #{self.outside_ip} --arp-opcode REQUEST -j arpreply --arpreply-mac #{self.mac_address}")
45
+
46
+ # Translate the ip
47
+ self.rules << IptablesRule.new(:nat,:postrouting,nil,:outgoing,"-s #{self.inside_ip} -j SNAT --to #{self.outside_ip}")
48
+ self.rules << IptablesRule.new(:nat,:prerouting,nil,:incoming,"-d #{self.outside_ip} -j DNAT --to #{self.inside_ip}")
49
+ end
50
+ end
51
+
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ module Dcmgr
4
+ module VNet
5
+ module Tasks
6
+
7
+ class TranslateMetadataAddress < Task
8
+ include Dcmgr::VNet::Netfilter
9
+ #TODO: allow ARP traffic to metadata server
10
+ attr_reader :metadata_ip
11
+ attr_reader :metadata_port
12
+ attr_reader :metadata_fake_ip
13
+ attr_reader :metadata_fake_port
14
+
15
+ def initialize(vnic_id,metadata_ip,metadata_port,metadata_fake_ip = "169.254.169.254",metadata_fake_port = "80")
16
+ super()
17
+
18
+ @metadata_ip = metadata_ip
19
+ @metadata_port = metadata_port
20
+ @metadata_fake_ip = metadata_fake_ip
21
+ @metadata_fake_port = metadata_fake_port
22
+
23
+ # Translate requests to the metadata server
24
+ self.rules << IptablesRule.new(:nat,:prerouting,:tcp,:outgoing,"-m physdev --physdev-in #{vnic_id} -d #{self.metadata_fake_ip} -p tcp --dport #{self.metadata_fake_port} -j DNAT --to-destination #{self.metadata_ip}:#{self.metadata_port}")
25
+ # Accept tcp traffic to the metadata server
26
+ self.rules << IptablesRule.new(:filter,:forward,:tcp,:outgoing,"-p tcp -d #{self.metadata_ip} --dport #{self.metadata_port} -j ACCEPT")
27
+ end
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -14,4 +14,4 @@ use Dcmgr::Rack::RunInitializer, lambda {
14
14
  Dcmgr.run_initializers('sequel')
15
15
  }
16
16
 
17
- run Dcmgr::Endpoints::Metadata.new
17
+ run Dcmgr::Endpoints::Ec2Metadata.new
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wakame-vdc-dcmgr
3
3
  version: !ruby/object:Gem::Version
4
- hash: 95
5
- prerelease: false
4
+ hash: 119
5
+ prerelease:
6
6
  segments:
7
7
  - 11
8
- - 6
8
+ - 12
9
9
  - 0
10
- version: 11.06.0
10
+ version: 11.12.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - axsh Ltd.
@@ -15,28 +15,28 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-30 00:00:00 +09:00
19
- default_executable: collector
18
+ date: 2011-12-22 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
21
+ name: isono
22
22
  prerelease: false
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
26
  - - "="
27
27
  - !ruby/object:Gem::Version
28
- hash: 17
28
+ hash: 5
29
29
  segments:
30
30
  - 0
31
31
  - 2
32
- - 3
33
- version: 0.2.3
34
- requirement: *id001
32
+ - 9
33
+ version: 0.2.9
35
34
  type: :runtime
36
- name: isono
35
+ version_requirements: *id001
37
36
  - !ruby/object:Gem::Dependency
37
+ name: log4r
38
38
  prerelease: false
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ">="
@@ -45,12 +45,12 @@ dependencies:
45
45
  segments:
46
46
  - 0
47
47
  version: "0"
48
- requirement: *id002
49
48
  type: :runtime
50
- name: log4r
49
+ version_requirements: *id002
51
50
  - !ruby/object:Gem::Dependency
51
+ name: extlib
52
52
  prerelease: false
53
- version_requirements: &id003 !ruby/object:Gem::Requirement
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
54
  none: false
55
55
  requirements:
56
56
  - - "="
@@ -61,12 +61,12 @@ dependencies:
61
61
  - 9
62
62
  - 15
63
63
  version: 0.9.15
64
- requirement: *id003
65
64
  type: :runtime
66
- name: extlib
65
+ version_requirements: *id003
67
66
  - !ruby/object:Gem::Dependency
67
+ name: configuration
68
68
  prerelease: false
69
- version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
70
  none: false
71
71
  requirements:
72
72
  - - ">="
@@ -75,28 +75,12 @@ dependencies:
75
75
  segments:
76
76
  - 0
77
77
  version: "0"
78
- requirement: *id004
79
78
  type: :runtime
80
- name: configuration
81
- - !ruby/object:Gem::Dependency
82
- prerelease: false
83
- version_requirements: &id005 !ruby/object:Gem::Requirement
84
- none: false
85
- requirements:
86
- - - "="
87
- - !ruby/object:Gem::Version
88
- hash: 17
89
- segments:
90
- - 1
91
- - 1
92
- - 1
93
- version: 1.1.1
94
- requirement: *id005
95
- type: :runtime
96
- name: statemachine
79
+ version_requirements: *id004
97
80
  - !ruby/object:Gem::Dependency
81
+ name: ruby-hmac
98
82
  prerelease: false
99
- version_requirements: &id006 !ruby/object:Gem::Requirement
83
+ requirement: &id005 !ruby/object:Gem::Requirement
100
84
  none: false
101
85
  requirements:
102
86
  - - ">="
@@ -105,12 +89,12 @@ dependencies:
105
89
  segments:
106
90
  - 0
107
91
  version: "0"
108
- requirement: *id006
109
92
  type: :runtime
110
- name: ruby-hmac
93
+ version_requirements: *id005
111
94
  - !ruby/object:Gem::Dependency
95
+ name: ipaddress
112
96
  prerelease: false
113
- version_requirements: &id007 !ruby/object:Gem::Requirement
97
+ requirement: &id006 !ruby/object:Gem::Requirement
114
98
  none: false
115
99
  requirements:
116
100
  - - "="
@@ -121,44 +105,44 @@ dependencies:
121
105
  - 7
122
106
  - 0
123
107
  version: 0.7.0
124
- requirement: *id007
125
108
  type: :runtime
126
- name: ipaddress
109
+ version_requirements: *id006
127
110
  - !ruby/object:Gem::Dependency
111
+ name: rack
128
112
  prerelease: false
129
- version_requirements: &id008 !ruby/object:Gem::Requirement
113
+ requirement: &id007 !ruby/object:Gem::Requirement
130
114
  none: false
131
115
  requirements:
132
116
  - - ">="
133
117
  - !ruby/object:Gem::Version
134
- hash: 29
118
+ hash: 31
135
119
  segments:
136
120
  - 1
121
+ - 3
137
122
  - 2
138
- - 1
139
- version: 1.2.1
140
- requirement: *id008
123
+ version: 1.3.2
141
124
  type: :runtime
142
- name: rack
125
+ version_requirements: *id007
143
126
  - !ruby/object:Gem::Dependency
127
+ name: sinatra
144
128
  prerelease: false
145
- version_requirements: &id009 !ruby/object:Gem::Requirement
129
+ requirement: &id008 !ruby/object:Gem::Requirement
146
130
  none: false
147
131
  requirements:
148
132
  - - "="
149
133
  - !ruby/object:Gem::Version
150
- hash: 29
134
+ hash: 19
151
135
  segments:
152
136
  - 1
153
137
  - 2
154
- - 1
155
- version: 1.2.1
156
- requirement: *id009
138
+ - 6
139
+ version: 1.2.6
157
140
  type: :runtime
158
- name: sinatra
141
+ version_requirements: *id008
159
142
  - !ruby/object:Gem::Dependency
143
+ name: json
160
144
  prerelease: false
161
- version_requirements: &id010 !ruby/object:Gem::Requirement
145
+ requirement: &id009 !ruby/object:Gem::Requirement
162
146
  none: false
163
147
  requirements:
164
148
  - - ">="
@@ -169,28 +153,28 @@ dependencies:
169
153
  - 2
170
154
  - 0
171
155
  version: 1.2.0
172
- requirement: *id010
173
156
  type: :runtime
174
- name: json
157
+ version_requirements: *id009
175
158
  - !ruby/object:Gem::Dependency
159
+ name: sequel
176
160
  prerelease: false
177
- version_requirements: &id011 !ruby/object:Gem::Requirement
161
+ requirement: &id010 !ruby/object:Gem::Requirement
178
162
  none: false
179
163
  requirements:
180
164
  - - "="
181
165
  - !ruby/object:Gem::Version
182
- hash: 83
166
+ hash: 107
183
167
  segments:
184
168
  - 3
185
- - 21
169
+ - 27
186
170
  - 0
187
- version: 3.21.0
188
- requirement: *id011
171
+ version: 3.27.0
189
172
  type: :runtime
190
- name: sequel
173
+ version_requirements: *id010
191
174
  - !ruby/object:Gem::Dependency
175
+ name: mysql
192
176
  prerelease: false
193
- version_requirements: &id012 !ruby/object:Gem::Requirement
177
+ requirement: &id011 !ruby/object:Gem::Requirement
194
178
  none: false
195
179
  requirements:
196
180
  - - ">="
@@ -201,12 +185,60 @@ dependencies:
201
185
  - 8
202
186
  - 1
203
187
  version: 2.8.1
204
- requirement: *id012
205
188
  type: :runtime
206
- name: mysql
189
+ version_requirements: *id011
207
190
  - !ruby/object:Gem::Dependency
191
+ name: net-dhcp
208
192
  prerelease: false
209
- version_requirements: &id013 !ruby/object:Gem::Requirement
193
+ requirement: &id012 !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ hash: 19
199
+ segments:
200
+ - 1
201
+ - 1
202
+ - 0
203
+ version: 1.1.0
204
+ type: :runtime
205
+ version_requirements: *id012
206
+ - !ruby/object:Gem::Dependency
207
+ name: bit-struct
208
+ prerelease: false
209
+ requirement: &id013 !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ hash: 39
215
+ segments:
216
+ - 0
217
+ - 13
218
+ - 6
219
+ version: 0.13.6
220
+ type: :runtime
221
+ version_requirements: *id013
222
+ - !ruby/object:Gem::Dependency
223
+ name: racket
224
+ prerelease: false
225
+ requirement: &id014 !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ hash: 1
231
+ segments:
232
+ - 1
233
+ - 0
234
+ - 11
235
+ version: 1.0.11
236
+ type: :runtime
237
+ version_requirements: *id014
238
+ - !ruby/object:Gem::Dependency
239
+ name: bacon
240
+ prerelease: false
241
+ requirement: &id015 !ruby/object:Gem::Requirement
210
242
  none: false
211
243
  requirements:
212
244
  - - ">="
@@ -215,12 +247,12 @@ dependencies:
215
247
  segments:
216
248
  - 0
217
249
  version: "0"
218
- requirement: *id013
219
250
  type: :development
220
- name: bacon
251
+ version_requirements: *id015
221
252
  - !ruby/object:Gem::Dependency
253
+ name: rake
222
254
  prerelease: false
223
- version_requirements: &id014 !ruby/object:Gem::Requirement
255
+ requirement: &id016 !ruby/object:Gem::Requirement
224
256
  none: false
225
257
  requirements:
226
258
  - - ">="
@@ -229,10 +261,9 @@ dependencies:
229
261
  segments:
230
262
  - 0
231
263
  version: "0"
232
- requirement: *id014
233
264
  type: :development
234
- name: rake
235
- description: ""
265
+ version_requirements: *id016
266
+ description: Datacenter Hypervisor
236
267
  email:
237
268
  - dev@axsh.net
238
269
  executables:
@@ -243,6 +274,7 @@ extra_rdoc_files: []
243
274
 
244
275
  files:
245
276
  - config/path_resolver.rb
277
+ - config/db/migrations/0001_v1110_origin.rb
246
278
  - config/initializers/passenger.rb
247
279
  - config/initializers/isono.rb
248
280
  - config/initializers/sequel.rb
@@ -256,38 +288,46 @@ files:
256
288
  - lib/sinatra/lazy_auth.rb
257
289
  - lib/dcmgr/rack/request_logger.rb
258
290
  - 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
291
  - lib/dcmgr/version.rb
263
- - lib/dcmgr/scheduler/find_random.rb
264
- - lib/dcmgr/scheduler/find_last.rb
292
+ - lib/dcmgr/scheduler/host_node/least_usage.rb
293
+ - lib/dcmgr/scheduler/host_node/per_instance.rb
294
+ - lib/dcmgr/scheduler/host_node/specify_node.rb
295
+ - lib/dcmgr/scheduler/host_node/exclude_same.rb
296
+ - lib/dcmgr/scheduler/host_node/find_first.rb
297
+ - lib/dcmgr/scheduler/network/per_instance.rb
298
+ - lib/dcmgr/scheduler/network/vif_template.rb
299
+ - lib/dcmgr/scheduler/network/flat_single.rb
300
+ - lib/dcmgr/scheduler/network/nat_one_to_one.rb
301
+ - lib/dcmgr/scheduler/storage_node/least_usage.rb
302
+ - lib/dcmgr/scheduler/storage_node/find_first.rb
265
303
  - lib/dcmgr/scheduler.rb
266
304
  - lib/dcmgr/endpoints/metadata.rb
267
305
  - lib/dcmgr/endpoints/errors.rb
268
- - lib/dcmgr/endpoints/core_api_mock.rb
269
306
  - lib/dcmgr/endpoints/core_api.rb
270
307
  - lib/dcmgr/tags.rb
308
+ - lib/dcmgr/vnet.rb
271
309
  - lib/dcmgr/models/ip_lease.rb
272
- - lib/dcmgr/models/instance_netfilter_group.rb
273
310
  - lib/dcmgr/models/volume_snapshot.rb
274
- - lib/dcmgr/models/storage_pool.rb
275
- - lib/dcmgr/models/netfilter_rule.rb
276
311
  - lib/dcmgr/models/tag_mapping.rb
277
312
  - lib/dcmgr/models/instance_spec.rb
278
- - lib/dcmgr/models/host_pool.rb
279
313
  - lib/dcmgr/models/instance_nic.rb
280
314
  - lib/dcmgr/models/mac_lease.rb
281
315
  - lib/dcmgr/models/vlan_lease.rb
316
+ - lib/dcmgr/models/host_node.rb
317
+ - lib/dcmgr/models/security_group_rule.rb
282
318
  - lib/dcmgr/models/base_new.rb
319
+ - lib/dcmgr/models/instance_security_group.rb
283
320
  - lib/dcmgr/models/account.rb
321
+ - lib/dcmgr/models/dhcp_range.rb
322
+ - lib/dcmgr/models/security_group.rb
284
323
  - lib/dcmgr/models/frontend_system.rb
285
324
  - lib/dcmgr/models/image.rb
286
325
  - lib/dcmgr/models/instance.rb
287
326
  - lib/dcmgr/models/volume.rb
288
- - lib/dcmgr/models/netfilter_group.rb
289
327
  - lib/dcmgr/models/tag.rb
290
328
  - lib/dcmgr/models/account_resource.rb
329
+ - lib/dcmgr/models/physical_network.rb
330
+ - lib/dcmgr/models/storage_node.rb
291
331
  - lib/dcmgr/models/hostname_lease.rb
292
332
  - lib/dcmgr/models/network.rb
293
333
  - lib/dcmgr/models/request_log.rb
@@ -296,27 +336,74 @@ files:
296
336
  - lib/dcmgr/models/history.rb
297
337
  - lib/dcmgr/models/ssh_key_pair.rb
298
338
  - lib/dcmgr/logger.rb
339
+ - lib/dcmgr/drivers/iscsi_target.rb
299
340
  - lib/dcmgr/drivers/lxc.rb
341
+ - lib/dcmgr/drivers/comstar.rb
342
+ - lib/dcmgr/drivers/linux_iscsi.rb
300
343
  - lib/dcmgr/drivers/iijgio_storage.rb
344
+ - lib/dcmgr/drivers/raw.rb
345
+ - lib/dcmgr/drivers/backing_store.rb
301
346
  - lib/dcmgr/drivers/s3_storage.rb
347
+ - lib/dcmgr/drivers/storage_initiator.rb
348
+ - lib/dcmgr/drivers/zfs.rb
302
349
  - lib/dcmgr/drivers/snapshot_storage.rb
303
350
  - lib/dcmgr/drivers/hypervisor.rb
304
351
  - lib/dcmgr/drivers/kvm.rb
352
+ - lib/dcmgr/drivers/local_storage.rb
353
+ - lib/dcmgr/drivers/sun_iscsi.rb
305
354
  - lib/dcmgr/rubygems.rb
306
355
  - lib/dcmgr/storage_service.rb
356
+ - lib/dcmgr/rpc/sta_handler.rb
307
357
  - lib/dcmgr/rpc/hva_handler.rb
308
358
  - lib/dcmgr/messaging_client.rb
359
+ - lib/dcmgr/helpers/ec2_metadata_helper.rb
309
360
  - lib/dcmgr/helpers/nic_helper.rb
310
361
  - lib/dcmgr/helpers/cli_helper.rb
362
+ - lib/dcmgr/helpers/snapshot_storage_helper.rb
363
+ - lib/dcmgr/node_modules/openflow_controller.rb
311
364
  - lib/dcmgr/node_modules/hva_collector.rb
312
365
  - lib/dcmgr/node_modules/instance_ha.rb
366
+ - lib/dcmgr/node_modules/scheduler.rb
367
+ - lib/dcmgr/node_modules/sta_tgt_initializer.rb
313
368
  - lib/dcmgr/node_modules/sta_collector.rb
369
+ - lib/dcmgr/node_modules/service_openflow.rb
314
370
  - lib/dcmgr/node_modules/instance_monitor.rb
315
371
  - lib/dcmgr/node_modules/service_netfilter.rb
372
+ - lib/dcmgr/vnet/netfilter/chain.rb
373
+ - lib/dcmgr/vnet/netfilter/controller.rb
374
+ - lib/dcmgr/vnet/netfilter/task_manager.rb
375
+ - lib/dcmgr/vnet/netfilter/ebtables_rule.rb
376
+ - lib/dcmgr/vnet/netfilter/iptables_rule.rb
377
+ - lib/dcmgr/vnet/netfilter/cache.rb
378
+ - lib/dcmgr/vnet/factories.rb
379
+ - lib/dcmgr/vnet/tasks/drop_ip_from_anywhere.rb
380
+ - lib/dcmgr/vnet/tasks/accept_related_established.rb
381
+ - lib/dcmgr/vnet/tasks/accept_wakame_dns_only.rb
382
+ - lib/dcmgr/vnet/tasks/drop_arp_to_host.rb
383
+ - lib/dcmgr/vnet/tasks/static_nat.rb
384
+ - lib/dcmgr/vnet/tasks/drop_arp_forwarding.rb
385
+ - lib/dcmgr/vnet/tasks/accept_arp_to_host.rb
386
+ - lib/dcmgr/vnet/tasks/accept_ip_from_gateway.rb
387
+ - lib/dcmgr/vnet/tasks/accept_arp_from_friends.rb
388
+ - lib/dcmgr/vnet/tasks/security_group.rb
389
+ - lib/dcmgr/vnet/tasks/accept_wakame_dhcp_only.rb
390
+ - lib/dcmgr/vnet/tasks/accept_arp_broadcast.rb
391
+ - lib/dcmgr/vnet/tasks/accept_ip_from_friends.rb
392
+ - lib/dcmgr/vnet/tasks/translate_metadata_address.rb
393
+ - lib/dcmgr/vnet/tasks/accept_all_dns.rb
394
+ - lib/dcmgr/vnet/tasks/drop_ip_spoofing.rb
395
+ - lib/dcmgr/vnet/tasks/drop_mac_spoofing.rb
396
+ - lib/dcmgr/vnet/tasks/accept_arp_from_gateway.rb
397
+ - lib/dcmgr/vnet/tasks/debug_iptables.rb
398
+ - lib/dcmgr/vnet/tasks/exclude_from_nat.rb
399
+ - lib/dcmgr/vnet/tasks/accept_ip_to_anywhere.rb
400
+ - lib/dcmgr/vnet/isolators/by_securitygroup.rb
401
+ - lib/dcmgr/vnet/isolators/dummy.rb
316
402
  - lib/dcmgr/cli/vlan.rb
317
403
  - lib/dcmgr/cli/storage.rb
318
404
  - lib/dcmgr/cli/spec.rb
319
405
  - lib/dcmgr/cli/errors.rb
406
+ - lib/dcmgr/cli/security_group.rb
320
407
  - lib/dcmgr/cli/host.rb
321
408
  - lib/dcmgr/cli/image.rb
322
409
  - lib/dcmgr/cli/tag.rb
@@ -324,7 +411,6 @@ files:
324
411
  - lib/dcmgr/cli/network.rb
325
412
  - lib/dcmgr/cli/base.rb
326
413
  - lib/dcmgr/cli/quota.rb
327
- - lib/dcmgr/cli/group.rb
328
414
  - lib/ext/time.rb
329
415
  - web/api/public/index.html
330
416
  - web/metadata/public/index.html
@@ -335,7 +421,6 @@ files:
335
421
  - web/metadata/config.ru
336
422
  - config/dcmgr.conf.example
337
423
  - bin/collector
338
- has_rdoc: true
339
424
  homepage: http://wakame.jp/
340
425
  licenses: []
341
426
 
@@ -367,9 +452,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
367
452
  requirements: []
368
453
 
369
454
  rubyforge_project:
370
- rubygems_version: 1.3.7
455
+ rubygems_version: 1.8.6
371
456
  signing_key:
372
457
  specification_version: 3
373
- summary: "Datacenter management toolkit for IaaS Cloud: datacenter manager and support modules"
458
+ summary: "Wakame-VDC: Server modules"
374
459
  test_files: []
375
460