wakame 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. data/History.txt +20 -0
  2. data/README.rdoc +63 -0
  3. data/Rakefile +86 -0
  4. data/VERSION +1 -0
  5. data/app_generators/wakame/templates/README +0 -0
  6. data/app_generators/wakame/templates/Rakefile +18 -0
  7. data/app_generators/wakame/templates/bin/wakame-agent +9 -0
  8. data/app_generators/wakame/templates/bin/wakame-master +9 -0
  9. data/app_generators/wakame/templates/bin/wakameadm +9 -0
  10. data/app_generators/wakame/templates/cluster/resources/apache_app/apache_app.rb +54 -0
  11. data/app_generators/wakame/templates/cluster/resources/apache_app/conf/apache2.conf +46 -0
  12. data/app_generators/wakame/templates/cluster/resources/apache_app/conf/envvars-app +7 -0
  13. data/app_generators/wakame/templates/cluster/resources/apache_app/conf/sites-app.conf +23 -0
  14. data/app_generators/wakame/templates/cluster/resources/apache_app/conf/system-app.conf +67 -0
  15. data/app_generators/wakame/templates/cluster/resources/apache_app/init.d/apache2-app +192 -0
  16. data/app_generators/wakame/templates/cluster/resources/apache_lb/apache_lb.rb +56 -0
  17. data/app_generators/wakame/templates/cluster/resources/apache_lb/conf/apache2.conf +46 -0
  18. data/app_generators/wakame/templates/cluster/resources/apache_lb/conf/envvars-lb +6 -0
  19. data/app_generators/wakame/templates/cluster/resources/apache_lb/conf/sites-lb.conf +54 -0
  20. data/app_generators/wakame/templates/cluster/resources/apache_lb/conf/system-lb.conf +75 -0
  21. data/app_generators/wakame/templates/cluster/resources/apache_lb/init.d/apache2-lb +192 -0
  22. data/app_generators/wakame/templates/cluster/resources/apache_www/apache_www.rb +50 -0
  23. data/app_generators/wakame/templates/cluster/resources/apache_www/conf/apache2.conf +47 -0
  24. data/app_generators/wakame/templates/cluster/resources/apache_www/conf/envvars-www +7 -0
  25. data/app_generators/wakame/templates/cluster/resources/apache_www/conf/sites-www.conf +23 -0
  26. data/app_generators/wakame/templates/cluster/resources/apache_www/conf/system-www.conf +63 -0
  27. data/app_generators/wakame/templates/cluster/resources/apache_www/init.d/apache2-www +192 -0
  28. data/app_generators/wakame/templates/cluster/resources/ec2_elastic_ip/ec2_elastic_ip.rb +39 -0
  29. data/app_generators/wakame/templates/cluster/resources/mysql_master/conf/my.cnf +154 -0
  30. data/app_generators/wakame/templates/cluster/resources/mysql_master/init.d/mysql +185 -0
  31. data/app_generators/wakame/templates/cluster/resources/mysql_master/mysql_master.rb +174 -0
  32. data/app_generators/wakame/templates/config/boot.rb +85 -0
  33. data/app_generators/wakame/templates/config/cluster.rb +64 -0
  34. data/app_generators/wakame/templates/config/environments/common.rb +0 -0
  35. data/app_generators/wakame/templates/config/environments/ec2.rb +3 -0
  36. data/app_generators/wakame/templates/config/environments/stand_alone.rb +0 -0
  37. data/app_generators/wakame/templates/config/init.d/wakame-agent +72 -0
  38. data/app_generators/wakame/templates/config/init.d/wakame-master +73 -0
  39. data/app_generators/wakame/wakame_generator.rb +124 -0
  40. data/bin/wakame +18 -0
  41. data/contrib/imagesetup.sh +77 -0
  42. data/lib/ext/eventmachine.rb +86 -0
  43. data/lib/ext/shellwords.rb +172 -0
  44. data/lib/ext/uri.rb +15 -0
  45. data/lib/wakame/action.rb +156 -0
  46. data/lib/wakame/actions/destroy_instances.rb +39 -0
  47. data/lib/wakame/actions/launch_cluster.rb +31 -0
  48. data/lib/wakame/actions/migrate_service.rb +65 -0
  49. data/lib/wakame/actions/propagate_instances.rb +95 -0
  50. data/lib/wakame/actions/reload_service.rb +21 -0
  51. data/lib/wakame/actions/scaleout_when_high_load.rb +44 -0
  52. data/lib/wakame/actions/shutdown_cluster.rb +22 -0
  53. data/lib/wakame/actions/shutdown_vm.rb +19 -0
  54. data/lib/wakame/actions/start_service.rb +64 -0
  55. data/lib/wakame/actions/stop_service.rb +49 -0
  56. data/lib/wakame/actions/util.rb +71 -0
  57. data/lib/wakame/actor/daemon.rb +37 -0
  58. data/lib/wakame/actor/service_monitor.rb +21 -0
  59. data/lib/wakame/actor/system.rb +46 -0
  60. data/lib/wakame/actor.rb +33 -0
  61. data/lib/wakame/agent.rb +226 -0
  62. data/lib/wakame/amqp_client.rb +219 -0
  63. data/lib/wakame/command/action_status.rb +62 -0
  64. data/lib/wakame/command/actor.rb +23 -0
  65. data/lib/wakame/command/clone_service.rb +12 -0
  66. data/lib/wakame/command/launch_cluster.rb +15 -0
  67. data/lib/wakame/command/migrate_service.rb +21 -0
  68. data/lib/wakame/command/propagate_service.rb +24 -0
  69. data/lib/wakame/command/shutdown_cluster.rb +15 -0
  70. data/lib/wakame/command/status.rb +81 -0
  71. data/lib/wakame/command.rb +31 -0
  72. data/lib/wakame/command_queue.rb +44 -0
  73. data/lib/wakame/configuration.rb +93 -0
  74. data/lib/wakame/daemonize.rb +96 -0
  75. data/lib/wakame/event.rb +232 -0
  76. data/lib/wakame/event_dispatcher.rb +154 -0
  77. data/lib/wakame/graph.rb +79 -0
  78. data/lib/wakame/initializer.rb +162 -0
  79. data/lib/wakame/instance_counter.rb +78 -0
  80. data/lib/wakame/logger.rb +12 -0
  81. data/lib/wakame/manager/commands.rb +134 -0
  82. data/lib/wakame/master.rb +369 -0
  83. data/lib/wakame/monitor/agent.rb +50 -0
  84. data/lib/wakame/monitor/service.rb +183 -0
  85. data/lib/wakame/monitor.rb +69 -0
  86. data/lib/wakame/packets.rb +160 -0
  87. data/lib/wakame/queue_declare.rb +14 -0
  88. data/lib/wakame/rule.rb +116 -0
  89. data/lib/wakame/rule_engine.rb +202 -0
  90. data/lib/wakame/runner/administrator_command.rb +112 -0
  91. data/lib/wakame/runner/agent.rb +81 -0
  92. data/lib/wakame/runner/master.rb +93 -0
  93. data/lib/wakame/scheduler.rb +251 -0
  94. data/lib/wakame/service.rb +914 -0
  95. data/lib/wakame/template.rb +189 -0
  96. data/lib/wakame/trigger.rb +66 -0
  97. data/lib/wakame/triggers/instance_count_update.rb +45 -0
  98. data/lib/wakame/triggers/load_history.rb +107 -0
  99. data/lib/wakame/triggers/maintain_ssh_known_hosts.rb +43 -0
  100. data/lib/wakame/triggers/process_command.rb +34 -0
  101. data/lib/wakame/triggers/shutdown_unused_vm.rb +16 -0
  102. data/lib/wakame/util.rb +569 -0
  103. data/lib/wakame/vm_manipulator.rb +186 -0
  104. data/lib/wakame.rb +59 -0
  105. data/tasks/ec2.rake +127 -0
  106. data/tests/cluster.json +3 -0
  107. data/tests/conf/a +1 -0
  108. data/tests/conf/b +1 -0
  109. data/tests/conf/c +1 -0
  110. data/tests/setup_agent.rb +39 -0
  111. data/tests/setup_master.rb +28 -0
  112. data/tests/test_actor.rb +54 -0
  113. data/tests/test_agent.rb +218 -0
  114. data/tests/test_amqp_client.rb +94 -0
  115. data/tests/test_graph.rb +36 -0
  116. data/tests/test_master.rb +167 -0
  117. data/tests/test_monitor.rb +47 -0
  118. data/tests/test_rule_engine.rb +127 -0
  119. data/tests/test_scheduler.rb +123 -0
  120. data/tests/test_service.rb +60 -0
  121. data/tests/test_template.rb +67 -0
  122. data/tests/test_uri_amqp.rb +19 -0
  123. data/tests/test_util.rb +71 -0
  124. data/wakame_generators/resource/resource_generator.rb +54 -0
  125. data/wakame_generators/resource/templates/apache_app/apache_app.rb +60 -0
  126. data/wakame_generators/resource/templates/apache_app/conf/apache2.conf +46 -0
  127. data/wakame_generators/resource/templates/apache_app/conf/envvars-app +7 -0
  128. data/wakame_generators/resource/templates/apache_app/conf/sites-app.conf +23 -0
  129. data/wakame_generators/resource/templates/apache_app/conf/system-app.conf +67 -0
  130. data/wakame_generators/resource/templates/apache_app/init.d/apache2-app +192 -0
  131. data/wakame_generators/resource/templates/apache_lb/apache_lb.rb +67 -0
  132. data/wakame_generators/resource/templates/apache_lb/conf/apache2.conf +46 -0
  133. data/wakame_generators/resource/templates/apache_lb/conf/envvars-lb +6 -0
  134. data/wakame_generators/resource/templates/apache_lb/conf/sites-lb.conf +54 -0
  135. data/wakame_generators/resource/templates/apache_lb/conf/system-lb.conf +75 -0
  136. data/wakame_generators/resource/templates/apache_lb/init.d/apache2-lb +192 -0
  137. data/wakame_generators/resource/templates/apache_www/apache_www.rb +56 -0
  138. data/wakame_generators/resource/templates/apache_www/conf/apache2.conf +47 -0
  139. data/wakame_generators/resource/templates/apache_www/conf/envvars-www +7 -0
  140. data/wakame_generators/resource/templates/apache_www/conf/sites-www.conf +23 -0
  141. data/wakame_generators/resource/templates/apache_www/conf/system-www.conf +63 -0
  142. data/wakame_generators/resource/templates/apache_www/init.d/apache2-www +192 -0
  143. data/wakame_generators/resource/templates/ec2_elastic_ip/ec2_elastic_ip.rb +39 -0
  144. data/wakame_generators/resource/templates/mysql_master/conf/my.cnf +154 -0
  145. data/wakame_generators/resource/templates/mysql_master/init.d/mysql +185 -0
  146. data/wakame_generators/resource/templates/mysql_master/mysql_master.rb +119 -0
  147. metadata +289 -0
@@ -0,0 +1,185 @@
1
+ #!/bin/bash
2
+ #
3
+ ### BEGIN INIT INFO
4
+ # Provides: mysql
5
+ # Required-Start: $remote_fs $syslog mysql-ndb
6
+ # Required-Stop: $remote_fs $syslog mysql-ndb
7
+ # Should-Start: $network $named $time
8
+ # Should-Stop: $network $named $time
9
+ # Default-Start: 2 3 4 5
10
+ # Default-Stop: 0 1 6
11
+ # Short-Description: Start and stop the mysql database server daemon
12
+ # Description: Controls the main MySQL database server daemon "mysqld"
13
+ # and its wrapper script "mysqld_safe".
14
+ ### END INIT INFO
15
+ #
16
+
17
+ [ -n $WAKAME_ROOT ] || { echo "WAKAME_ROOT env was not set" >&2; exit 1; }
18
+
19
+ set -e
20
+ set -u
21
+ ${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
22
+
23
+ test -x /usr/sbin/mysqld || exit 0
24
+
25
+ . /lib/lsb/init-functions
26
+
27
+ SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
28
+ CONF=$WAKAME_ROOT/tmp/config/mysql_master/conf/my.cnf
29
+ MYADMIN="/usr/bin/mysqladmin --defaults-file=$CONF"
30
+
31
+ # priority can be overriden and "-s" adds output to stderr
32
+ ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mysql -i"
33
+
34
+ # Safeguard (relative paths, core dumps..)
35
+ cd /
36
+ umask 077
37
+
38
+ # mysqladmin likes to read /root/.my.cnf. This is usually not what I want
39
+ # as many admins e.g. only store a password without a username there and
40
+ # so break my scripts.
41
+ export HOME=/etc/mysql/
42
+
43
+ ## Fetch a particular option from mysql's invocation.
44
+ #
45
+ # Usage: void mysqld_get_param option
46
+ mysqld_get_param() {
47
+ /usr/sbin/mysqld --print-defaults \
48
+ | tr " " "\n" \
49
+ | grep -- "--$1" \
50
+ | tail -n 1 \
51
+ | cut -d= -f2
52
+ }
53
+
54
+ ## Do some sanity checks before even trying to start mysqld.
55
+ sanity_checks() {
56
+ # check for config file
57
+ if [ ! -r $CONF ]; then
58
+ echo "WARNING: $CONF cannot be read." | $ERR_LOGGER
59
+ fi
60
+
61
+ # check for diskspace shortage
62
+ datadir=`mysqld_get_param datadir`
63
+ if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk '{ exit ($4>4096) }'; then
64
+ log_failure_msg "$0: ERROR: The partition with $datadir is too full!"
65
+ echo "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER
66
+ exit 1
67
+ fi
68
+ }
69
+
70
+ ## Checks if there is a server running and if so if it is accessible.
71
+ #
72
+ # check_alive insists on a pingable server
73
+ # check_dead also fails if there is a lost mysqld in the process list
74
+ #
75
+ # Usage: boolean mysqld_status [check_alive|check_dead] [warn|nowarn]
76
+ mysqld_status () {
77
+ ping_output=`$MYADMIN ping 2>&1`; ping_alive=$(( ! $? ))
78
+
79
+ ps_alive=0
80
+ pidfile=`mysqld_get_param pid-file`
81
+ if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi
82
+
83
+ if [ "$1" = "check_alive" -a $ping_alive = 1 ] ||
84
+ [ "$1" = "check_dead" -a $ping_alive = 0 -a $ps_alive = 0 ]; then
85
+ return 0 # EXIT_SUCCESS
86
+ else
87
+ if [ "$2" = "warn" ]; then
88
+ echo -e "$ps_alive processes alive and '$MYADMIN ping' resulted in\n$ping_output\n" | $ERR_LOGGER -p daemon.debug
89
+ fi
90
+ return 1 # EXIT_FAILURE
91
+ fi
92
+ }
93
+
94
+ #
95
+ # main()
96
+ #
97
+
98
+ case "${1:-''}" in
99
+ 'start')
100
+ sanity_checks;
101
+ # Start daemon
102
+ log_daemon_msg "Starting MySQL database server" "mysqld"
103
+ if mysqld_status check_alive nowarn; then
104
+ log_progress_msg "already running"
105
+ log_end_msg 0
106
+ else
107
+ /usr/bin/mysqld_safe --defaults-file="$CONF" --skip-character-set-client-handshake > /dev/null 2>&1 &
108
+ # 6s was reported in #352070 to be too few when using ndbcluster
109
+ for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do
110
+ sleep 1
111
+ if mysqld_status check_alive nowarn ; then break; fi
112
+ log_progress_msg "."
113
+ done
114
+ if mysqld_status check_alive warn; then
115
+ log_end_msg 0
116
+ # Now start mysqlcheck or whatever the admin wants.
117
+ output=$(/etc/mysql/debian-start)
118
+ [ -n "$output" ] && log_action_msg "$output"
119
+ else
120
+ log_end_msg 1
121
+ log_failure_msg "Please take a look at the syslog"
122
+ fi
123
+ fi
124
+
125
+ ;;
126
+
127
+ 'stop')
128
+ # * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible
129
+ # at least for cron, we can rely on it here, too. (although we have
130
+ # to specify it explicit as e.g. sudo environments points to the normal
131
+ # users home and not /root)
132
+ log_daemon_msg "Stopping MySQL database server" "mysqld"
133
+ if ! mysqld_status check_dead nowarn; then
134
+ set +e
135
+ shutdown_out=`$MYADMIN shutdown 2>&1`; r=$?
136
+ set -e
137
+ if [ "$r" -ne 0 ]; then
138
+ log_end_msg 1
139
+ [ "$VERBOSE" != "no" ] && log_failure_msg "Error: $shutdown_out"
140
+ log_daemon_msg "Killing MySQL database server by signal" "mysqld"
141
+ killall -15 mysqld
142
+ server_down=
143
+ for i in 1 2 3 4 5 6 7 8 9 10; do
144
+ sleep 1
145
+ if mysqld_status check_dead nowarn; then server_down=1; break; fi
146
+ done
147
+ if test -z "$server_down"; then killall -9 mysqld; fi
148
+ fi
149
+ fi
150
+
151
+ if ! mysqld_status check_dead warn; then
152
+ log_end_msg 1
153
+ log_failure_msg "Please stop MySQL manually and read /usr/share/doc/mysql-server-5.0/README.Debian.gz!"
154
+ exit -1
155
+ else
156
+ log_end_msg 0
157
+ fi
158
+ ;;
159
+
160
+ 'restart')
161
+ set +e; $SELF stop; set -e
162
+ $SELF start
163
+ ;;
164
+
165
+ 'reload'|'force-reload')
166
+ log_daemon_msg "Reloading MySQL database server" "mysqld"
167
+ $MYADMIN reload
168
+ log_end_msg 0
169
+ ;;
170
+
171
+ 'status')
172
+ if mysqld_status check_alive nowarn; then
173
+ log_action_msg "$($MYADMIN version)"
174
+ else
175
+ log_action_msg "MySQL is stopped."
176
+ exit 3
177
+ fi
178
+ ;;
179
+
180
+ *)
181
+ echo "Usage: $SELF start|stop|restart|reload|force-reload|status"
182
+ exit 1
183
+ ;;
184
+ esac
185
+
@@ -0,0 +1,119 @@
1
+
2
+ class MySQL_Master < Wakame::Service::Resource
3
+
4
+ def_attribute :duplicable, false
5
+ def_attribute :mysqld_basedir, '/home/wakame/mysql'
6
+ def_attribute :mysqld_server_id, 1
7
+ def_attribute :mysqld_port, 3306
8
+
9
+ def_attribute :ebs_volume, ''
10
+ def_attribute :ebs_device, '/dev/sdm'
11
+ def_attribute :ebs_mount_option, 'noatime'
12
+
13
+ def basedir
14
+ File.join(Wakame.config.root_path, 'cluster', 'resources', 'mysql_master')
15
+ end
16
+
17
+ def mysqld_datadir
18
+ File.expand_path('data', mysqld_basedir)
19
+ end
20
+
21
+ def mysqld_log_bin
22
+ File.expand_path('mysql-bin.log', mysqld_datadir)
23
+ end
24
+
25
+ def render_config(template)
26
+ template.cp(%w(init.d/mysql))
27
+ template.render(%w(conf/my.cnf))
28
+ template.chmod("init.d/mysql", 0755)
29
+ end
30
+
31
+
32
+ def start(svc, action)
33
+ vm_manipulator = Wakame::VmManipulator.create
34
+
35
+ # $ echo "GRANT REPLICATION SLAVE, REPLICATION CLIENT, RELOAD ON *.* TO 'wakame-repl'@'%' IDENTIFIED BY 'wakame-slave';" | /usr/bin/mysql -h#{mysql_master_ip} -uroot
36
+
37
+ require 'right_aws'
38
+ ec2 = RightAws::Ec2.new(Wakame.config.aws_access_key, Wakame.config.aws_secret_key)
39
+
40
+ res = ec2.describe_volumes([self.ebs_volume])[0]
41
+ ec2_instance_id = res[:aws_instance_id]
42
+ if res[:aws_status] == 'in-use' && ec2_instance_id == svc.agent.attr[:instance_id]
43
+ # Nothin to be done
44
+ elsif res[:aws_status] == 'in-use' && ec2_instance_id != svc.agent.attr[:instance_id]
45
+ ec2.detach_volume(self.ebs_volume)
46
+ cond = ConditionalWait.new { |c|
47
+ c.poll {
48
+ res1 = ec2.describe_volumes([self.ebs_volume])[0]
49
+ res1[:aws_status] == 'available'
50
+ }
51
+ }
52
+ cond.wait
53
+
54
+ ec2.attach_volume(self.ebs_volume, svc.agent.attr[:instance_id], self.ebs_device)
55
+ cond = ConditionalWait.new { |c|
56
+ c.poll {
57
+ res1 = ec2.describe_volumes([self.ebs_volume])[0]
58
+ res1[:aws_status] == 'in-use'
59
+ }
60
+ }
61
+ cond.wait
62
+
63
+ elsif res[:aws_status] == 'available'
64
+ ec2.attach_volume(self.ebs_volume, svc.agent.attr[:instance_id], self.ebs_device)
65
+ cond = ConditionalWait.new { |c|
66
+ c.poll {
67
+ res1 = ec2.describe_volumes([self.ebs_volume])[0]
68
+ res1[:aws_status] == 'in-use'
69
+ }
70
+ }
71
+ cond.wait
72
+
73
+ end
74
+
75
+ cond = ConditionalWait.new { |cond|
76
+ cond.wait_event(Wakame::Event::ServiceOnline) { |event|
77
+ event.instance_id == svc.instance_id
78
+ }
79
+ }
80
+
81
+ action.actor_request(svc.agent.agent_id,
82
+ '/service_monitor/register',
83
+ svc.instance_id,
84
+ :command, "/usr/bin/mysqladmin --defaults-file=#{svc.agent.root_path}/tmp/config/mysql_master/conf/my.cnf ping > /dev/null") { |req|
85
+ }
86
+
87
+ action.actor_request(svc.agent.agent_id, '/system/mount', self.ebs_device, self.mysqld_datadir, self.ebs_mount_option) { |req|
88
+ req.wait
89
+ Wakame.log.debug("MySQL volume was mounted: #{self.mysqld_datadir}")
90
+ }
91
+
92
+ action.actor_request(svc.agent.agent_id, '/daemon/start', 'mysql_master', 'init.d/mysql') { |req|
93
+ req.wait
94
+ Wakame.log.debug("MySQL process started")
95
+ }
96
+
97
+ cond.wait
98
+ end
99
+
100
+ def stop(svc, action)
101
+ cond = ConditionalWait.new { |cond|
102
+ cond.wait_event(Wakame::Event::ServiceOffline) { |event|
103
+ event.instance_id == svc.instance_id
104
+ }
105
+ }
106
+
107
+ action.actor_request(svc.agent.agent_id, '/daemon/stop', 'mysql_master', 'init.d/mysql') { |req| req.wait }
108
+ action.actor_request(svc.agent.agent_id, '/system/umount', self.mysqld_datadir) { |req|
109
+ req.wait
110
+ Wakame.log.debug("MySQL volume unmounted")
111
+ }
112
+
113
+ cond.wait
114
+
115
+ action.actor_request(svc.agent.agent_id,
116
+ '/service_monitor/unregister',
117
+ svc.instance_id).request
118
+ end
119
+ end
metadata ADDED
@@ -0,0 +1,289 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wakame
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - axsh co.,Ltd.
8
+ - Masahiro Fujiwara
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-06-26 00:00:00 +09:00
14
+ default_executable: wakame
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: amqp
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 0.6.0
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: amazon-ec2
28
+ type: :runtime
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 0.3.6
35
+ version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: right_aws
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 1.10.0
45
+ version:
46
+ - !ruby/object:Gem::Dependency
47
+ name: eventmachine
48
+ type: :runtime
49
+ version_requirement:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.12.8
55
+ version:
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ type: :runtime
59
+ version_requirement:
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 0.8.7
65
+ version:
66
+ - !ruby/object:Gem::Dependency
67
+ name: log4r
68
+ type: :runtime
69
+ version_requirement:
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.0.5
75
+ version:
76
+ - !ruby/object:Gem::Dependency
77
+ name: daemons
78
+ type: :runtime
79
+ version_requirement:
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: 1.0.10
85
+ version:
86
+ - !ruby/object:Gem::Dependency
87
+ name: rubigen
88
+ type: :runtime
89
+ version_requirement:
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: 1.5.2
95
+ version:
96
+ - !ruby/object:Gem::Dependency
97
+ name: jeweler
98
+ type: :runtime
99
+ version_requirement:
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 1.0.0
105
+ version:
106
+ description: ""
107
+ email:
108
+ - m-fujiwara@axsh.net
109
+ executables:
110
+ - wakame
111
+ extensions: []
112
+
113
+ extra_rdoc_files:
114
+ - README.rdoc
115
+ files:
116
+ - History.txt
117
+ - README.rdoc
118
+ - Rakefile
119
+ - VERSION
120
+ - app_generators/wakame/templates/README
121
+ - app_generators/wakame/templates/Rakefile
122
+ - app_generators/wakame/templates/bin/wakame-agent
123
+ - app_generators/wakame/templates/bin/wakame-master
124
+ - app_generators/wakame/templates/bin/wakameadm
125
+ - app_generators/wakame/templates/cluster/resources/apache_app/apache_app.rb
126
+ - app_generators/wakame/templates/cluster/resources/apache_app/conf/apache2.conf
127
+ - app_generators/wakame/templates/cluster/resources/apache_app/conf/envvars-app
128
+ - app_generators/wakame/templates/cluster/resources/apache_app/conf/sites-app.conf
129
+ - app_generators/wakame/templates/cluster/resources/apache_app/conf/system-app.conf
130
+ - app_generators/wakame/templates/cluster/resources/apache_app/init.d/apache2-app
131
+ - app_generators/wakame/templates/cluster/resources/apache_lb/apache_lb.rb
132
+ - app_generators/wakame/templates/cluster/resources/apache_lb/conf/apache2.conf
133
+ - app_generators/wakame/templates/cluster/resources/apache_lb/conf/envvars-lb
134
+ - app_generators/wakame/templates/cluster/resources/apache_lb/conf/sites-lb.conf
135
+ - app_generators/wakame/templates/cluster/resources/apache_lb/conf/system-lb.conf
136
+ - app_generators/wakame/templates/cluster/resources/apache_lb/init.d/apache2-lb
137
+ - app_generators/wakame/templates/cluster/resources/apache_www/apache_www.rb
138
+ - app_generators/wakame/templates/cluster/resources/apache_www/conf/apache2.conf
139
+ - app_generators/wakame/templates/cluster/resources/apache_www/conf/envvars-www
140
+ - app_generators/wakame/templates/cluster/resources/apache_www/conf/sites-www.conf
141
+ - app_generators/wakame/templates/cluster/resources/apache_www/conf/system-www.conf
142
+ - app_generators/wakame/templates/cluster/resources/apache_www/init.d/apache2-www
143
+ - app_generators/wakame/templates/cluster/resources/ec2_elastic_ip/ec2_elastic_ip.rb
144
+ - app_generators/wakame/templates/cluster/resources/mysql_master/conf/my.cnf
145
+ - app_generators/wakame/templates/cluster/resources/mysql_master/init.d/mysql
146
+ - app_generators/wakame/templates/cluster/resources/mysql_master/mysql_master.rb
147
+ - app_generators/wakame/templates/config/boot.rb
148
+ - app_generators/wakame/templates/config/cluster.rb
149
+ - app_generators/wakame/templates/config/environments/common.rb
150
+ - app_generators/wakame/templates/config/environments/ec2.rb
151
+ - app_generators/wakame/templates/config/environments/stand_alone.rb
152
+ - app_generators/wakame/templates/config/init.d/wakame-agent
153
+ - app_generators/wakame/templates/config/init.d/wakame-master
154
+ - app_generators/wakame/wakame_generator.rb
155
+ - bin/wakame
156
+ - contrib/imagesetup.sh
157
+ - lib/ext/eventmachine.rb
158
+ - lib/ext/shellwords.rb
159
+ - lib/ext/uri.rb
160
+ - lib/wakame.rb
161
+ - lib/wakame/action.rb
162
+ - lib/wakame/actions/destroy_instances.rb
163
+ - lib/wakame/actions/launch_cluster.rb
164
+ - lib/wakame/actions/migrate_service.rb
165
+ - lib/wakame/actions/propagate_instances.rb
166
+ - lib/wakame/actions/reload_service.rb
167
+ - lib/wakame/actions/scaleout_when_high_load.rb
168
+ - lib/wakame/actions/shutdown_cluster.rb
169
+ - lib/wakame/actions/shutdown_vm.rb
170
+ - lib/wakame/actions/start_service.rb
171
+ - lib/wakame/actions/stop_service.rb
172
+ - lib/wakame/actions/util.rb
173
+ - lib/wakame/actor.rb
174
+ - lib/wakame/actor/daemon.rb
175
+ - lib/wakame/actor/service_monitor.rb
176
+ - lib/wakame/actor/system.rb
177
+ - lib/wakame/agent.rb
178
+ - lib/wakame/amqp_client.rb
179
+ - lib/wakame/command.rb
180
+ - lib/wakame/command/action_status.rb
181
+ - lib/wakame/command/actor.rb
182
+ - lib/wakame/command/clone_service.rb
183
+ - lib/wakame/command/launch_cluster.rb
184
+ - lib/wakame/command/migrate_service.rb
185
+ - lib/wakame/command/propagate_service.rb
186
+ - lib/wakame/command/shutdown_cluster.rb
187
+ - lib/wakame/command/status.rb
188
+ - lib/wakame/command_queue.rb
189
+ - lib/wakame/configuration.rb
190
+ - lib/wakame/daemonize.rb
191
+ - lib/wakame/event.rb
192
+ - lib/wakame/event_dispatcher.rb
193
+ - lib/wakame/graph.rb
194
+ - lib/wakame/initializer.rb
195
+ - lib/wakame/instance_counter.rb
196
+ - lib/wakame/logger.rb
197
+ - lib/wakame/manager/commands.rb
198
+ - lib/wakame/master.rb
199
+ - lib/wakame/monitor.rb
200
+ - lib/wakame/monitor/agent.rb
201
+ - lib/wakame/monitor/service.rb
202
+ - lib/wakame/packets.rb
203
+ - lib/wakame/queue_declare.rb
204
+ - lib/wakame/rule.rb
205
+ - lib/wakame/rule_engine.rb
206
+ - lib/wakame/runner/administrator_command.rb
207
+ - lib/wakame/runner/agent.rb
208
+ - lib/wakame/runner/master.rb
209
+ - lib/wakame/scheduler.rb
210
+ - lib/wakame/service.rb
211
+ - lib/wakame/template.rb
212
+ - lib/wakame/trigger.rb
213
+ - lib/wakame/triggers/instance_count_update.rb
214
+ - lib/wakame/triggers/load_history.rb
215
+ - lib/wakame/triggers/maintain_ssh_known_hosts.rb
216
+ - lib/wakame/triggers/process_command.rb
217
+ - lib/wakame/triggers/shutdown_unused_vm.rb
218
+ - lib/wakame/util.rb
219
+ - lib/wakame/vm_manipulator.rb
220
+ - tasks/ec2.rake
221
+ - tests/cluster.json
222
+ - tests/conf/a
223
+ - tests/conf/b
224
+ - tests/conf/c
225
+ - tests/setup_agent.rb
226
+ - tests/setup_master.rb
227
+ - tests/test_actor.rb
228
+ - tests/test_agent.rb
229
+ - tests/test_amqp_client.rb
230
+ - tests/test_graph.rb
231
+ - tests/test_master.rb
232
+ - tests/test_monitor.rb
233
+ - tests/test_rule_engine.rb
234
+ - tests/test_scheduler.rb
235
+ - tests/test_service.rb
236
+ - tests/test_template.rb
237
+ - tests/test_uri_amqp.rb
238
+ - tests/test_util.rb
239
+ - wakame_generators/resource/resource_generator.rb
240
+ - wakame_generators/resource/templates/apache_app/apache_app.rb
241
+ - wakame_generators/resource/templates/apache_app/conf/apache2.conf
242
+ - wakame_generators/resource/templates/apache_app/conf/envvars-app
243
+ - wakame_generators/resource/templates/apache_app/conf/sites-app.conf
244
+ - wakame_generators/resource/templates/apache_app/conf/system-app.conf
245
+ - wakame_generators/resource/templates/apache_app/init.d/apache2-app
246
+ - wakame_generators/resource/templates/apache_lb/apache_lb.rb
247
+ - wakame_generators/resource/templates/apache_lb/conf/apache2.conf
248
+ - wakame_generators/resource/templates/apache_lb/conf/envvars-lb
249
+ - wakame_generators/resource/templates/apache_lb/conf/sites-lb.conf
250
+ - wakame_generators/resource/templates/apache_lb/conf/system-lb.conf
251
+ - wakame_generators/resource/templates/apache_lb/init.d/apache2-lb
252
+ - wakame_generators/resource/templates/apache_www/apache_www.rb
253
+ - wakame_generators/resource/templates/apache_www/conf/apache2.conf
254
+ - wakame_generators/resource/templates/apache_www/conf/envvars-www
255
+ - wakame_generators/resource/templates/apache_www/conf/sites-www.conf
256
+ - wakame_generators/resource/templates/apache_www/conf/system-www.conf
257
+ - wakame_generators/resource/templates/apache_www/init.d/apache2-www
258
+ - wakame_generators/resource/templates/ec2_elastic_ip/ec2_elastic_ip.rb
259
+ - wakame_generators/resource/templates/mysql_master/conf/my.cnf
260
+ - wakame_generators/resource/templates/mysql_master/init.d/mysql
261
+ - wakame_generators/resource/templates/mysql_master/mysql_master.rb
262
+ has_rdoc: true
263
+ homepage: http://wakame.rubyforge.org/
264
+ post_install_message:
265
+ rdoc_options:
266
+ - --charset=UTF-8
267
+ require_paths:
268
+ - lib
269
+ required_ruby_version: !ruby/object:Gem::Requirement
270
+ requirements:
271
+ - - ">="
272
+ - !ruby/object:Gem::Version
273
+ version: "0"
274
+ version:
275
+ required_rubygems_version: !ruby/object:Gem::Requirement
276
+ requirements:
277
+ - - ">="
278
+ - !ruby/object:Gem::Version
279
+ version: "0"
280
+ version:
281
+ requirements: []
282
+
283
+ rubyforge_project: wakame
284
+ rubygems_version: 1.3.1
285
+ signing_key:
286
+ specification_version: 2
287
+ summary: A distributed service framework on top of Cloud environments.
288
+ test_files: []
289
+