wakame-vdc-agents 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 (138) hide show
  1. data/Rakefile +19 -31
  2. data/bin/hva +15 -5
  3. data/bin/nsa +15 -5
  4. data/bin/sta +9 -222
  5. data/config/db/migrations/0001_v1110_origin.rb +446 -0
  6. data/config/hva.conf.example +19 -11
  7. data/config/nsa.conf.example +1 -1
  8. data/lib/dcmgr.rb +99 -22
  9. data/lib/dcmgr/cli/base.rb +34 -1
  10. data/lib/dcmgr/cli/host.rb +24 -20
  11. data/lib/dcmgr/cli/image.rb +38 -19
  12. data/lib/dcmgr/cli/keypair.rb +16 -12
  13. data/lib/dcmgr/cli/network.rb +189 -81
  14. data/lib/dcmgr/cli/quota.rb +2 -2
  15. data/lib/dcmgr/cli/security_group.rb +106 -0
  16. data/lib/dcmgr/cli/spec.rb +144 -39
  17. data/lib/dcmgr/cli/storage.rb +16 -15
  18. data/lib/dcmgr/cli/tag.rb +20 -14
  19. data/lib/dcmgr/cli/vlan.rb +5 -5
  20. data/lib/dcmgr/drivers/backing_store.rb +32 -0
  21. data/lib/dcmgr/drivers/comstar.rb +81 -0
  22. data/lib/dcmgr/drivers/iijgio_storage.rb +9 -19
  23. data/lib/dcmgr/drivers/iscsi_target.rb +41 -0
  24. data/lib/dcmgr/drivers/kvm.rb +161 -28
  25. data/lib/dcmgr/drivers/linux_iscsi.rb +60 -0
  26. data/lib/dcmgr/drivers/local_storage.rb +24 -0
  27. data/lib/dcmgr/drivers/lxc.rb +167 -125
  28. data/lib/dcmgr/drivers/raw.rb +74 -0
  29. data/lib/dcmgr/drivers/s3_storage.rb +7 -19
  30. data/lib/dcmgr/drivers/snapshot_storage.rb +18 -28
  31. data/lib/dcmgr/drivers/storage_initiator.rb +28 -0
  32. data/lib/dcmgr/drivers/sun_iscsi.rb +32 -0
  33. data/lib/dcmgr/drivers/zfs.rb +77 -0
  34. data/lib/dcmgr/endpoints/core_api.rb +315 -263
  35. data/lib/dcmgr/endpoints/errors.rb +21 -10
  36. data/lib/dcmgr/endpoints/metadata.rb +360 -23
  37. data/lib/dcmgr/helpers/cli_helper.rb +6 -3
  38. data/lib/dcmgr/helpers/ec2_metadata_helper.rb +9 -0
  39. data/lib/dcmgr/helpers/nic_helper.rb +11 -0
  40. data/lib/dcmgr/helpers/snapshot_storage_helper.rb +34 -0
  41. data/lib/dcmgr/models/account.rb +0 -6
  42. data/lib/dcmgr/models/account_resource.rb +0 -4
  43. data/lib/dcmgr/models/base_new.rb +14 -2
  44. data/lib/dcmgr/models/dhcp_range.rb +38 -0
  45. data/lib/dcmgr/models/frontend_system.rb +0 -6
  46. data/lib/dcmgr/models/history.rb +0 -11
  47. data/lib/dcmgr/models/host_node.rb +131 -0
  48. data/lib/dcmgr/models/hostname_lease.rb +0 -8
  49. data/lib/dcmgr/models/image.rb +31 -18
  50. data/lib/dcmgr/models/instance.rb +137 -143
  51. data/lib/dcmgr/models/instance_nic.rb +52 -29
  52. data/lib/dcmgr/models/instance_security_group.rb +9 -0
  53. data/lib/dcmgr/models/instance_spec.rb +163 -31
  54. data/lib/dcmgr/models/ip_lease.rb +10 -21
  55. data/lib/dcmgr/models/mac_lease.rb +30 -11
  56. data/lib/dcmgr/models/network.rb +148 -27
  57. data/lib/dcmgr/models/physical_network.rb +18 -0
  58. data/lib/dcmgr/models/quota.rb +0 -10
  59. data/lib/dcmgr/models/request_log.rb +3 -18
  60. data/lib/dcmgr/models/security_group.rb +66 -0
  61. data/lib/dcmgr/models/security_group_rule.rb +145 -0
  62. data/lib/dcmgr/models/ssh_key_pair.rb +16 -19
  63. data/lib/dcmgr/models/{storage_pool.rb → storage_node.rb} +35 -25
  64. data/lib/dcmgr/models/tag.rb +0 -14
  65. data/lib/dcmgr/models/tag_mapping.rb +1 -7
  66. data/lib/dcmgr/models/vlan_lease.rb +2 -8
  67. data/lib/dcmgr/models/volume.rb +49 -37
  68. data/lib/dcmgr/models/volume_snapshot.rb +15 -17
  69. data/lib/dcmgr/node_modules/hva_collector.rb +69 -28
  70. data/lib/dcmgr/node_modules/instance_ha.rb +23 -12
  71. data/lib/dcmgr/node_modules/instance_monitor.rb +16 -2
  72. data/lib/dcmgr/node_modules/openflow_controller.rb +784 -0
  73. data/lib/dcmgr/node_modules/scheduler.rb +189 -0
  74. data/lib/dcmgr/node_modules/service_netfilter.rb +452 -227
  75. data/lib/dcmgr/node_modules/service_openflow.rb +731 -0
  76. data/lib/dcmgr/node_modules/sta_collector.rb +20 -0
  77. data/lib/dcmgr/node_modules/sta_tgt_initializer.rb +35 -0
  78. data/lib/dcmgr/rack/request_logger.rb +11 -6
  79. data/lib/dcmgr/rpc/hva_handler.rb +256 -110
  80. data/lib/dcmgr/rpc/sta_handler.rb +244 -0
  81. data/lib/dcmgr/scheduler.rb +122 -8
  82. data/lib/dcmgr/scheduler/host_node/exclude_same.rb +24 -0
  83. data/lib/dcmgr/scheduler/host_node/find_first.rb +12 -0
  84. data/lib/dcmgr/scheduler/host_node/least_usage.rb +28 -0
  85. data/lib/dcmgr/scheduler/host_node/per_instance.rb +18 -0
  86. data/lib/dcmgr/scheduler/host_node/specify_node.rb +26 -0
  87. data/lib/dcmgr/scheduler/network/flat_single.rb +23 -0
  88. data/lib/dcmgr/scheduler/network/nat_one_to_one.rb +23 -0
  89. data/lib/dcmgr/scheduler/network/per_instance.rb +39 -0
  90. data/lib/dcmgr/scheduler/network/vif_template.rb +19 -0
  91. data/lib/dcmgr/scheduler/storage_node/find_first.rb +13 -0
  92. data/lib/dcmgr/scheduler/storage_node/least_usage.rb +23 -0
  93. data/lib/dcmgr/storage_service.rb +39 -40
  94. data/lib/dcmgr/tags.rb +3 -3
  95. data/lib/dcmgr/version.rb +1 -1
  96. data/lib/dcmgr/vnet.rb +105 -0
  97. data/lib/dcmgr/vnet/factories.rb +141 -0
  98. data/lib/dcmgr/vnet/isolators/by_securitygroup.rb +21 -0
  99. data/lib/dcmgr/vnet/isolators/dummy.rb +17 -0
  100. data/lib/dcmgr/vnet/netfilter/cache.rb +51 -0
  101. data/lib/dcmgr/vnet/netfilter/chain.rb +66 -0
  102. data/lib/dcmgr/vnet/netfilter/controller.rb +193 -0
  103. data/lib/dcmgr/vnet/netfilter/ebtables_rule.rb +53 -0
  104. data/lib/dcmgr/vnet/netfilter/iptables_rule.rb +45 -0
  105. data/lib/dcmgr/vnet/netfilter/task_manager.rb +459 -0
  106. data/lib/dcmgr/vnet/tasks/accept_all_dns.rb +19 -0
  107. data/lib/dcmgr/vnet/tasks/accept_arp_broadcast.rb +24 -0
  108. data/lib/dcmgr/vnet/tasks/accept_arp_from_friends.rb +34 -0
  109. data/lib/dcmgr/vnet/tasks/accept_arp_from_gateway.rb +21 -0
  110. data/lib/dcmgr/vnet/tasks/accept_arp_to_host.rb +30 -0
  111. data/lib/dcmgr/vnet/tasks/accept_ip_from_friends.rb +26 -0
  112. data/lib/dcmgr/vnet/tasks/accept_ip_from_gateway.rb +23 -0
  113. data/lib/dcmgr/vnet/tasks/accept_ip_to_anywhere.rb +18 -0
  114. data/lib/dcmgr/vnet/tasks/accept_related_established.rb +45 -0
  115. data/lib/dcmgr/vnet/tasks/accept_wakame_dhcp_only.rb +33 -0
  116. data/lib/dcmgr/vnet/tasks/accept_wakame_dns_only.rb +33 -0
  117. data/lib/dcmgr/vnet/tasks/debug_iptables.rb +21 -0
  118. data/lib/dcmgr/vnet/tasks/drop_arp_forwarding.rb +27 -0
  119. data/lib/dcmgr/vnet/tasks/drop_arp_to_host.rb +24 -0
  120. data/lib/dcmgr/vnet/tasks/drop_ip_from_anywhere.rb +18 -0
  121. data/lib/dcmgr/vnet/tasks/drop_ip_spoofing.rb +34 -0
  122. data/lib/dcmgr/vnet/tasks/drop_mac_spoofing.rb +33 -0
  123. data/lib/dcmgr/vnet/tasks/exclude_from_nat.rb +47 -0
  124. data/lib/dcmgr/vnet/tasks/security_group.rb +37 -0
  125. data/lib/dcmgr/vnet/tasks/static_nat.rb +54 -0
  126. data/lib/dcmgr/vnet/tasks/translate_metadata_address.rb +32 -0
  127. metadata +105 -68
  128. data/lib/dcmgr/cli/group.rb +0 -101
  129. data/lib/dcmgr/endpoints/core_api_mock.rb +0 -865
  130. data/lib/dcmgr/models/host_pool.rb +0 -122
  131. data/lib/dcmgr/models/instance_netfilter_group.rb +0 -16
  132. data/lib/dcmgr/models/netfilter_group.rb +0 -89
  133. data/lib/dcmgr/models/netfilter_rule.rb +0 -21
  134. data/lib/dcmgr/scheduler/find_last.rb +0 -16
  135. data/lib/dcmgr/scheduler/find_random.rb +0 -16
  136. data/lib/dcmgr/stm/instance.rb +0 -25
  137. data/lib/dcmgr/stm/snapshot_context.rb +0 -33
  138. 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
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wakame-vdc-agents
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:
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
- 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
78
  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,12 +105,12 @@ 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: open4
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
  - - ">="
@@ -135,12 +119,12 @@ dependencies:
135
119
  segments:
136
120
  - 0
137
121
  version: "0"
138
- requirement: *id008
139
122
  type: :runtime
140
- name: open4
123
+ version_requirements: *id007
141
124
  - !ruby/object:Gem::Dependency
125
+ name: bacon
142
126
  prerelease: false
143
- version_requirements: &id009 !ruby/object:Gem::Requirement
127
+ requirement: &id008 !ruby/object:Gem::Requirement
144
128
  none: false
145
129
  requirements:
146
130
  - - ">="
@@ -149,12 +133,12 @@ dependencies:
149
133
  segments:
150
134
  - 0
151
135
  version: "0"
152
- requirement: *id009
153
136
  type: :development
154
- name: bacon
137
+ version_requirements: *id008
155
138
  - !ruby/object:Gem::Dependency
139
+ name: rake
156
140
  prerelease: false
157
- version_requirements: &id010 !ruby/object:Gem::Requirement
141
+ requirement: &id009 !ruby/object:Gem::Requirement
158
142
  none: false
159
143
  requirements:
160
144
  - - ">="
@@ -163,10 +147,9 @@ dependencies:
163
147
  segments:
164
148
  - 0
165
149
  version: "0"
166
- requirement: *id010
167
150
  type: :development
168
- name: rake
169
- description: ""
151
+ version_requirements: *id009
152
+ description: Datacenter Hypervisor
170
153
  email:
171
154
  - dev@axsh.net
172
155
  executables:
@@ -179,6 +162,7 @@ extra_rdoc_files: []
179
162
 
180
163
  files:
181
164
  - config/path_resolver.rb
165
+ - config/db/migrations/0001_v1110_origin.rb
182
166
  - config/initializers/passenger.rb
183
167
  - config/initializers/isono.rb
184
168
  - config/initializers/sequel.rb
@@ -192,38 +176,46 @@ files:
192
176
  - lib/sinatra/lazy_auth.rb
193
177
  - lib/dcmgr/rack/request_logger.rb
194
178
  - 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
179
  - lib/dcmgr/version.rb
199
- - lib/dcmgr/scheduler/find_random.rb
200
- - lib/dcmgr/scheduler/find_last.rb
180
+ - lib/dcmgr/scheduler/host_node/least_usage.rb
181
+ - lib/dcmgr/scheduler/host_node/per_instance.rb
182
+ - lib/dcmgr/scheduler/host_node/specify_node.rb
183
+ - lib/dcmgr/scheduler/host_node/exclude_same.rb
184
+ - lib/dcmgr/scheduler/host_node/find_first.rb
185
+ - lib/dcmgr/scheduler/network/per_instance.rb
186
+ - lib/dcmgr/scheduler/network/vif_template.rb
187
+ - lib/dcmgr/scheduler/network/flat_single.rb
188
+ - lib/dcmgr/scheduler/network/nat_one_to_one.rb
189
+ - lib/dcmgr/scheduler/storage_node/least_usage.rb
190
+ - lib/dcmgr/scheduler/storage_node/find_first.rb
201
191
  - lib/dcmgr/scheduler.rb
202
192
  - lib/dcmgr/endpoints/metadata.rb
203
193
  - lib/dcmgr/endpoints/errors.rb
204
- - lib/dcmgr/endpoints/core_api_mock.rb
205
194
  - lib/dcmgr/endpoints/core_api.rb
206
195
  - lib/dcmgr/tags.rb
196
+ - lib/dcmgr/vnet.rb
207
197
  - lib/dcmgr/models/ip_lease.rb
208
- - lib/dcmgr/models/instance_netfilter_group.rb
209
198
  - lib/dcmgr/models/volume_snapshot.rb
210
- - lib/dcmgr/models/storage_pool.rb
211
- - lib/dcmgr/models/netfilter_rule.rb
212
199
  - lib/dcmgr/models/tag_mapping.rb
213
200
  - lib/dcmgr/models/instance_spec.rb
214
- - lib/dcmgr/models/host_pool.rb
215
201
  - lib/dcmgr/models/instance_nic.rb
216
202
  - lib/dcmgr/models/mac_lease.rb
217
203
  - lib/dcmgr/models/vlan_lease.rb
204
+ - lib/dcmgr/models/host_node.rb
205
+ - lib/dcmgr/models/security_group_rule.rb
218
206
  - lib/dcmgr/models/base_new.rb
207
+ - lib/dcmgr/models/instance_security_group.rb
219
208
  - lib/dcmgr/models/account.rb
209
+ - lib/dcmgr/models/dhcp_range.rb
210
+ - lib/dcmgr/models/security_group.rb
220
211
  - lib/dcmgr/models/frontend_system.rb
221
212
  - lib/dcmgr/models/image.rb
222
213
  - lib/dcmgr/models/instance.rb
223
214
  - lib/dcmgr/models/volume.rb
224
- - lib/dcmgr/models/netfilter_group.rb
225
215
  - lib/dcmgr/models/tag.rb
226
216
  - lib/dcmgr/models/account_resource.rb
217
+ - lib/dcmgr/models/physical_network.rb
218
+ - lib/dcmgr/models/storage_node.rb
227
219
  - lib/dcmgr/models/hostname_lease.rb
228
220
  - lib/dcmgr/models/network.rb
229
221
  - lib/dcmgr/models/request_log.rb
@@ -232,27 +224,74 @@ files:
232
224
  - lib/dcmgr/models/history.rb
233
225
  - lib/dcmgr/models/ssh_key_pair.rb
234
226
  - lib/dcmgr/logger.rb
227
+ - lib/dcmgr/drivers/iscsi_target.rb
235
228
  - lib/dcmgr/drivers/lxc.rb
229
+ - lib/dcmgr/drivers/comstar.rb
230
+ - lib/dcmgr/drivers/linux_iscsi.rb
236
231
  - lib/dcmgr/drivers/iijgio_storage.rb
232
+ - lib/dcmgr/drivers/raw.rb
233
+ - lib/dcmgr/drivers/backing_store.rb
237
234
  - lib/dcmgr/drivers/s3_storage.rb
235
+ - lib/dcmgr/drivers/storage_initiator.rb
236
+ - lib/dcmgr/drivers/zfs.rb
238
237
  - lib/dcmgr/drivers/snapshot_storage.rb
239
238
  - lib/dcmgr/drivers/hypervisor.rb
240
239
  - lib/dcmgr/drivers/kvm.rb
240
+ - lib/dcmgr/drivers/local_storage.rb
241
+ - lib/dcmgr/drivers/sun_iscsi.rb
241
242
  - lib/dcmgr/rubygems.rb
242
243
  - lib/dcmgr/storage_service.rb
244
+ - lib/dcmgr/rpc/sta_handler.rb
243
245
  - lib/dcmgr/rpc/hva_handler.rb
244
246
  - lib/dcmgr/messaging_client.rb
247
+ - lib/dcmgr/helpers/ec2_metadata_helper.rb
245
248
  - lib/dcmgr/helpers/nic_helper.rb
246
249
  - lib/dcmgr/helpers/cli_helper.rb
250
+ - lib/dcmgr/helpers/snapshot_storage_helper.rb
251
+ - lib/dcmgr/node_modules/openflow_controller.rb
247
252
  - lib/dcmgr/node_modules/hva_collector.rb
248
253
  - lib/dcmgr/node_modules/instance_ha.rb
254
+ - lib/dcmgr/node_modules/scheduler.rb
255
+ - lib/dcmgr/node_modules/sta_tgt_initializer.rb
249
256
  - lib/dcmgr/node_modules/sta_collector.rb
257
+ - lib/dcmgr/node_modules/service_openflow.rb
250
258
  - lib/dcmgr/node_modules/instance_monitor.rb
251
259
  - lib/dcmgr/node_modules/service_netfilter.rb
260
+ - lib/dcmgr/vnet/netfilter/chain.rb
261
+ - lib/dcmgr/vnet/netfilter/controller.rb
262
+ - lib/dcmgr/vnet/netfilter/task_manager.rb
263
+ - lib/dcmgr/vnet/netfilter/ebtables_rule.rb
264
+ - lib/dcmgr/vnet/netfilter/iptables_rule.rb
265
+ - lib/dcmgr/vnet/netfilter/cache.rb
266
+ - lib/dcmgr/vnet/factories.rb
267
+ - lib/dcmgr/vnet/tasks/drop_ip_from_anywhere.rb
268
+ - lib/dcmgr/vnet/tasks/accept_related_established.rb
269
+ - lib/dcmgr/vnet/tasks/accept_wakame_dns_only.rb
270
+ - lib/dcmgr/vnet/tasks/drop_arp_to_host.rb
271
+ - lib/dcmgr/vnet/tasks/static_nat.rb
272
+ - lib/dcmgr/vnet/tasks/drop_arp_forwarding.rb
273
+ - lib/dcmgr/vnet/tasks/accept_arp_to_host.rb
274
+ - lib/dcmgr/vnet/tasks/accept_ip_from_gateway.rb
275
+ - lib/dcmgr/vnet/tasks/accept_arp_from_friends.rb
276
+ - lib/dcmgr/vnet/tasks/security_group.rb
277
+ - lib/dcmgr/vnet/tasks/accept_wakame_dhcp_only.rb
278
+ - lib/dcmgr/vnet/tasks/accept_arp_broadcast.rb
279
+ - lib/dcmgr/vnet/tasks/accept_ip_from_friends.rb
280
+ - lib/dcmgr/vnet/tasks/translate_metadata_address.rb
281
+ - lib/dcmgr/vnet/tasks/accept_all_dns.rb
282
+ - lib/dcmgr/vnet/tasks/drop_ip_spoofing.rb
283
+ - lib/dcmgr/vnet/tasks/drop_mac_spoofing.rb
284
+ - lib/dcmgr/vnet/tasks/accept_arp_from_gateway.rb
285
+ - lib/dcmgr/vnet/tasks/debug_iptables.rb
286
+ - lib/dcmgr/vnet/tasks/exclude_from_nat.rb
287
+ - lib/dcmgr/vnet/tasks/accept_ip_to_anywhere.rb
288
+ - lib/dcmgr/vnet/isolators/by_securitygroup.rb
289
+ - lib/dcmgr/vnet/isolators/dummy.rb
252
290
  - lib/dcmgr/cli/vlan.rb
253
291
  - lib/dcmgr/cli/storage.rb
254
292
  - lib/dcmgr/cli/spec.rb
255
293
  - lib/dcmgr/cli/errors.rb
294
+ - lib/dcmgr/cli/security_group.rb
256
295
  - lib/dcmgr/cli/host.rb
257
296
  - lib/dcmgr/cli/image.rb
258
297
  - lib/dcmgr/cli/tag.rb
@@ -260,7 +299,6 @@ files:
260
299
  - lib/dcmgr/cli/network.rb
261
300
  - lib/dcmgr/cli/base.rb
262
301
  - lib/dcmgr/cli/quota.rb
263
- - lib/dcmgr/cli/group.rb
264
302
  - lib/ext/time.rb
265
303
  - Rakefile
266
304
  - LICENSE
@@ -270,7 +308,6 @@ files:
270
308
  - bin/hva
271
309
  - bin/sta
272
310
  - bin/nsa
273
- has_rdoc: true
274
311
  homepage: http://wakame.jp/
275
312
  licenses: []
276
313
 
@@ -302,9 +339,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
302
339
  requirements: []
303
340
 
304
341
  rubyforge_project:
305
- rubygems_version: 1.3.7
342
+ rubygems_version: 1.8.6
306
343
  signing_key:
307
344
  specification_version: 3
308
- summary: "Datacenter management toolkit for IaaS Cloud: agent modules"
345
+ summary: "Wakame-VDC: Agent modules"
309
346
  test_files: []
310
347