poolparty 0.2.6 → 0.2.18
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +123 -4
- data/PostInstall.txt +2 -1
- data/bin/cloud +16 -7
- data/bin/cloud-provision +9 -5
- data/bin/cloud-run +19 -0
- data/bin/cloud-ssh +2 -7
- data/bin/cloud-start +2 -1
- data/bin/pool +3 -3
- data/bin/server-build-messenger +20 -0
- data/bin/server-fire-cmd +14 -0
- data/bin/server-get-load +29 -0
- data/bin/server-list-active +25 -0
- data/bin/server-list-responding +24 -0
- data/bin/server-rerun +24 -0
- data/bin/server-start-master +27 -0
- data/bin/server-start-node +33 -0
- data/config/requirements.rb +1 -1
- data/erl_crash.dump +8409 -0
- data/lib/erlang/messenger/Emakefile +1 -0
- data/lib/erlang/messenger/Makefile +15 -0
- data/lib/erlang/messenger/README +5 -0
- data/lib/erlang/messenger/Rakefile +60 -0
- data/lib/erlang/messenger/control +11 -0
- data/lib/erlang/messenger/ebin/master.app +19 -0
- data/lib/erlang/messenger/ebin/master_app.beam +0 -0
- data/lib/erlang/messenger/ebin/node.app +19 -0
- data/lib/erlang/messenger/ebin/node_app.beam +0 -0
- data/lib/erlang/messenger/ebin/packager.app +19 -0
- data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -0
- data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -0
- data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
- data/lib/erlang/messenger/ebin/utils.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/AUTHORS +2 -0
- data/lib/erlang/messenger/lib/eunit/CHANGELOG +14 -0
- data/lib/erlang/messenger/lib/eunit/COPYING +504 -0
- data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
- data/lib/erlang/messenger/lib/eunit/NOTES +276 -0
- data/lib/erlang/messenger/lib/eunit/README +3 -0
- data/lib/erlang/messenger/lib/eunit/doc/edoc-info +3 -0
- data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
- data/lib/erlang/messenger/lib/eunit/doc/eunit.html +172 -0
- data/lib/erlang/messenger/lib/eunit/doc/index.html +17 -0
- data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +12 -0
- data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +984 -0
- data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +980 -0
- data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +11 -0
- data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +55 -0
- data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +21 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +1 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +339 -0
- data/lib/erlang/messenger/lib/eunit/examples/fib.erl +19 -0
- data/lib/erlang/messenger/lib/eunit/examples/tests.txt +1 -0
- data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +313 -0
- data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
- data/lib/erlang/messenger/lib/eunit/src/autoload.erl +388 -0
- data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +243 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +21 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +1 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit.erl +196 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +102 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +798 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +48 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +682 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +552 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +157 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +340 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +64 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +334 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +45 -0
- data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +272 -0
- data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +409 -0
- data/lib/erlang/messenger/lib/eunit/sys.config +9 -0
- data/lib/erlang/messenger/lib/eunit/vsn.mk +1 -0
- data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_master_rel-0.1.script +242 -0
- data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_node_rel-0.1.script +242 -0
- data/lib/erlang/messenger/src/master_app.erl +39 -0
- data/lib/erlang/messenger/src/node_app.erl +39 -0
- data/lib/erlang/messenger/src/pm_client.erl +19 -0
- data/lib/erlang/messenger/src/pm_cluster.erl +57 -0
- data/lib/erlang/messenger/src/pm_event_handler.erl +21 -0
- data/lib/erlang/messenger/src/pm_master.erl +118 -0
- data/lib/erlang/messenger/src/pm_master_supervisor.erl +40 -0
- data/lib/erlang/messenger/src/pm_node.erl +124 -0
- data/lib/erlang/messenger/src/pm_node_supervisor.erl +40 -0
- data/lib/erlang/messenger/src/pm_packager.erl +73 -0
- data/lib/erlang/messenger/src/utils.erl +38 -0
- data/lib/poolparty/base_packages/haproxy.rb +9 -2
- data/lib/poolparty/base_packages/heartbeat.rb +40 -28
- data/lib/poolparty/base_packages/poolparty.rb +39 -16
- data/lib/poolparty/base_packages/ruby.rb +2 -3
- data/lib/poolparty/config/allowed_commands.yml +1 -0
- data/lib/poolparty/core/array.rb +5 -2
- data/lib/poolparty/core/hash.rb +16 -2
- data/lib/poolparty/core/string.rb +9 -2
- data/lib/poolparty/core/symbol.rb +2 -2
- data/lib/poolparty/dependency_resolutions/base.rb +12 -0
- data/lib/poolparty/dependency_resolutions/puppet.rb +49 -0
- data/lib/poolparty/exceptions/UnacceptableCommand.rb +5 -0
- data/lib/poolparty/helpers/console.rb +3 -2
- data/lib/poolparty/helpers/display.rb +3 -3
- data/lib/poolparty/helpers/messenger.rb +29 -0
- data/lib/poolparty/helpers/optioner.rb +6 -2
- data/lib/poolparty/helpers/provisioner_base.rb +18 -11
- data/lib/poolparty/helpers/provisioners/master.rb +24 -22
- data/lib/poolparty/helpers/provisioners/slave.rb +8 -4
- data/lib/poolparty/modules/definable_resource.rb +1 -0
- data/lib/poolparty/modules/file_writer.rb +11 -10
- data/lib/poolparty/modules/method_missing_sugar.rb +1 -1
- data/lib/poolparty/modules/pretty_printer.rb +11 -11
- data/lib/poolparty/modules/resourcing_dsl.rb +61 -0
- data/lib/poolparty/monitors/base_monitor.rb +17 -3
- data/lib/poolparty/monitors/monitors/cpu_monitor.rb +15 -0
- data/lib/poolparty/monitors/monitors/memory_monitor.rb +23 -0
- data/lib/poolparty/net/remote_instance.rb +6 -1
- data/lib/poolparty/net/remoter.rb +23 -5
- data/lib/poolparty/net/remoter_base.rb +5 -1
- data/lib/poolparty/plugins/git.rb +22 -24
- data/lib/poolparty/pool/base.rb +22 -6
- data/lib/poolparty/pool/cloud.rb +28 -4
- data/lib/poolparty/pool/custom_resource.rb +6 -6
- data/lib/poolparty/pool/loggable.rb +3 -0
- data/lib/poolparty/pool/pool.rb +1 -1
- data/lib/poolparty/pool/resource.rb +58 -94
- data/lib/poolparty/pool/resources/class_package.rb +6 -6
- data/lib/poolparty/pool/resources/conditional.rb +5 -1
- data/lib/poolparty/pool/resources/exec.rb +6 -2
- data/lib/poolparty/pool/resources/gem.rb +22 -8
- data/lib/poolparty/pool/resources/remote_file.rb +5 -1
- data/lib/poolparty/pool/resources/symlink.rb +25 -0
- data/lib/poolparty/pool/resources/variable.rb +8 -7
- data/lib/poolparty/pool/tmp/.ppkeys +3 -0
- data/lib/poolparty/pool/tmp/happydayz +1 -0
- data/lib/poolparty/pool/tmp/install_master.sh +33 -0
- data/lib/poolparty/pool/tmp/pool.spec +11 -0
- data/lib/poolparty/pool/tmp/poolparty.pp +600 -0
- data/lib/poolparty/pool/tmp/tc-instances.list +1 -0
- data/lib/poolparty/templates/cib.xml +54 -0
- data/lib/poolparty/templates/ha.cf +12 -3
- data/lib/poolparty/templates/haproxy.conf +3 -3
- data/lib/poolparty/templates/haresources +3 -0
- data/lib/poolparty/templates/poolparty.monitor +14 -0
- data/lib/poolparty/templates/puppet.conf +3 -4
- data/lib/poolparty/version.rb +1 -1
- data/lib/poolparty.rb +9 -6
- data/poolparty.gemspec +7 -6
- data/setup.rb +3 -3
- data/spec/poolparty/bin/console_spec.rb +1 -1
- data/spec/poolparty/core/array_spec.rb +5 -0
- data/spec/poolparty/core/hash_spec.rb +19 -1
- data/spec/poolparty/core/string_spec.rb +13 -0
- data/spec/poolparty/dependency_resolutions/base_spec.rb +11 -0
- data/spec/poolparty/helpers/messenger_spec.rb +14 -0
- data/spec/poolparty/helpers/optioner_spec.rb +2 -1
- data/spec/poolparty/helpers/provisioner_base_spec.rb +1 -1
- data/spec/poolparty/helpers/provisioners/master_spec.rb +2 -2
- data/spec/poolparty/helpers/provisioners/slave_spec.rb +3 -3
- data/spec/poolparty/modules/file_writer_spec.rb +9 -0
- data/spec/poolparty/monitors/base_monitor_spec.rb +19 -0
- data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +17 -0
- data/spec/poolparty/net/remote_instance_spec.rb +6 -1
- data/spec/poolparty/net/remote_spec.rb +51 -42
- data/spec/poolparty/net/remoter_spec.rb +2 -1
- data/spec/poolparty/plugins/git_spec.rb +2 -2
- data/spec/poolparty/pool/base_spec.rb +20 -2
- data/spec/poolparty/pool/cloud_spec.rb +30 -1
- data/spec/poolparty/pool/custom_resource_spec.rb +2 -2
- data/spec/poolparty/pool/plugin_spec.rb +4 -4
- data/spec/poolparty/pool/pool_spec.rb +1 -1
- data/spec/poolparty/pool/resource_spec.rb +66 -0
- data/spec/poolparty/pool/resources/gem_spec.rb +29 -3
- data/spec/poolparty/pool/resources/symlink_spec.rb +22 -0
- data/spec/poolparty/pool/resources/variable_spec.rb +4 -0
- data/spec/poolparty/spec_helper.rb +5 -0
- data/tasks/cloud.rake +0 -54
- data/tasks/development.rake +0 -12
- data/tasks/ec2.rake +1 -16
- data/tasks/instance.rake +0 -61
- data/test_manifest.pp +286 -166
- data/website/index.html +5 -5
- data/website/index.txt +3 -3
- metadata +137 -8
- data/bin/pool-start-monitor +0 -1
- data/lib/erlang/eb_server.erl +0 -27
- data/lib/poolparty/plugins/gem_package.rb +0 -17
- data/spec/poolparty/modules/tmp/willy/nilly.rb +0 -1
@@ -0,0 +1,242 @@
|
|
1
|
+
%% script generated at {2008,10,23} {20,39,52}
|
2
|
+
{script,
|
3
|
+
{"node","0.1"},
|
4
|
+
[{preLoaded,
|
5
|
+
[erlang,erl_prim_loader,prim_file,prim_inet,init,otp_ring0]},
|
6
|
+
{progress,preloaded},
|
7
|
+
{path,
|
8
|
+
["/opt/local/lib/erlang/lib/kernel-2.12.2/ebin",
|
9
|
+
"/opt/local/lib/erlang/lib/stdlib-1.15.2/ebin"]},
|
10
|
+
{primLoad,[error_handler]},
|
11
|
+
{kernel_load_completed},
|
12
|
+
{progress,kernel_load_completed},
|
13
|
+
{path,["/opt/local/lib/erlang/lib/kernel-2.12.2/ebin"]},
|
14
|
+
{primLoad,
|
15
|
+
[zlib,wrap_log_reader,user_sup,user_drv,user,seq_trace,rpc,
|
16
|
+
ram_file,pg2,packages,os,net_kernel,net_adm,net,
|
17
|
+
kernel_config,kernel,inet_udp,inet_tcp_dist,inet_tcp,
|
18
|
+
inet_sctp,inet_res,inet_parse,inet_hosts,
|
19
|
+
inet_gethost_native,inet_dns,inet_db,inet_config,inet6_udp,
|
20
|
+
inet6_tcp_dist,inet6_tcp,inet,hipe_unified_loader,heart,
|
21
|
+
group,global_search,global_group,global,gen_udp,gen_tcp,
|
22
|
+
gen_sctp,file_server,file_io_server,file,erts_debug,
|
23
|
+
error_logger,erl_reply,erl_epmd,erl_distribution,erl_ddll,
|
24
|
+
erl_boot_server,dist_util,dist_ac,disk_log_sup,
|
25
|
+
disk_log_server,disk_log_1,disk_log,code_server,code_aux,
|
26
|
+
code,auth,application_starter,application_master,
|
27
|
+
application_controller,application]},
|
28
|
+
{path,["/opt/local/lib/erlang/lib/stdlib-1.15.2/ebin"]},
|
29
|
+
{primLoad,
|
30
|
+
[zip,win32reg,timer,sys,supervisor_bridge,supervisor,string,
|
31
|
+
sofs,slave,shell_default,shell,sets,regexp,random,queue,
|
32
|
+
qlc_pt,qlc,proplists,proc_lib,pool,pg,otp_internal,ordsets,
|
33
|
+
orddict,ms_transform,math,log_mf_h,lists,lib,io_lib_pretty,
|
34
|
+
io_lib_fread,io_lib_format,io_lib,io,gen_server,gen_fsm,
|
35
|
+
gen_event,gen,gb_trees,gb_sets,filename,filelib,file_sorter,
|
36
|
+
eval_bits,ets,escript,error_logger_tty_h,
|
37
|
+
error_logger_file_h,erl_tar,erl_scan,erl_pp,erl_posix_msg,
|
38
|
+
erl_parse,erl_lint,erl_internal,erl_expand_records,erl_eval,
|
39
|
+
erl_compile,erl_bits,epp,edlin_expand,edlin,digraph_utils,
|
40
|
+
digraph,dict,dets_v9,dets_v8,dets_utils,dets_sup,
|
41
|
+
dets_server,dets,calendar,c,beam_lib,base64,array]},
|
42
|
+
{path,["/opt/local/lib/erlang/lib/inets-5.0.5/ebin"]},
|
43
|
+
{primLoad,
|
44
|
+
[tftp_sup,tftp_lib,tftp_file,tftp_engine,tftp_binary,tftp,
|
45
|
+
mod_trace,mod_security_server,mod_security,
|
46
|
+
mod_responsecontrol,mod_range,mod_log,mod_include,
|
47
|
+
mod_htaccess,mod_head,mod_get,mod_esi,mod_disk_log,mod_dir,
|
48
|
+
mod_cgi,mod_browser,mod_auth_server,mod_auth_plain,
|
49
|
+
mod_auth_mnesia,mod_auth_dets,mod_auth,mod_alias,
|
50
|
+
mod_actions,inets_sup,inets_service,inets_app,inets,
|
51
|
+
httpd_util,httpd_sup,httpd_socket,httpd_script_env,
|
52
|
+
httpd_response,httpd_request_handler,httpd_request,
|
53
|
+
httpd_misc_sup,httpd_manager,httpd_log,httpd_instance_sup,
|
54
|
+
httpd_file,httpd_example,httpd_esi,httpd_conf,httpd_cgi,
|
55
|
+
httpd_acceptor_sup,httpd_acceptor,httpd,httpc_sup,
|
56
|
+
httpc_response,httpc_request,httpc_profile_sup,
|
57
|
+
httpc_manager,httpc_handler_sup,httpc_handler,http_util,
|
58
|
+
http_uri,http_transport,http_response,http_request,
|
59
|
+
http_cookie,http_chunk,http,ftp_sup,ftp_response,
|
60
|
+
ftp_progress,ftp]},
|
61
|
+
{path,["/opt/local/lib/erlang/lib/crypto-1.5.1.1/ebin"]},
|
62
|
+
{primLoad,[crypto_sup,crypto_server,crypto_app,crypto]},
|
63
|
+
{path,["/opt/local/lib/erlang/lib/sasl-2.1.5.2/ebin"]},
|
64
|
+
{primLoad,
|
65
|
+
[systools_relup,systools_rc,systools_make,systools_lib,
|
66
|
+
systools,sasl_report_tty_h,sasl_report_file_h,sasl_report,
|
67
|
+
sasl,release_handler_1,release_handler,rb_format_supp,rb,
|
68
|
+
overload,misc_supp,format_lib_supp,erlsrv,alarm_handler]},
|
69
|
+
{path,
|
70
|
+
["/Users/auser/Sites/work/citrusbyte/internal/gems/pool-party/poolparty/lib/erlang/messenger/ebin"]},
|
71
|
+
{primLoad,[utils,pm_node_supervisor,pm_node,node_app]},
|
72
|
+
{progress,modules_loaded},
|
73
|
+
{path,
|
74
|
+
["/opt/local/lib/erlang/lib/kernel-2.12.2/ebin",
|
75
|
+
"/opt/local/lib/erlang/lib/stdlib-1.15.2/ebin",
|
76
|
+
"/opt/local/lib/erlang/lib/inets-5.0.5/ebin",
|
77
|
+
"/opt/local/lib/erlang/lib/crypto-1.5.1.1/ebin",
|
78
|
+
"/opt/local/lib/erlang/lib/sasl-2.1.5.2/ebin",
|
79
|
+
"/Users/auser/Sites/work/citrusbyte/internal/gems/pool-party/poolparty/lib/erlang/messenger/ebin"]},
|
80
|
+
{kernelProcess,heart,{heart,start,[]}},
|
81
|
+
{kernelProcess,error_logger,{error_logger,start_link,[]}},
|
82
|
+
{kernelProcess,application_controller,
|
83
|
+
{application_controller,start,
|
84
|
+
[{application,kernel,
|
85
|
+
[{description,"ERTS CXC 138 10"},
|
86
|
+
{vsn,"2.12.2"},
|
87
|
+
{id,[]},
|
88
|
+
{modules,
|
89
|
+
[application,application_controller,application_master,
|
90
|
+
application_starter,auth,code,code_aux,packages,
|
91
|
+
code_server,dist_util,erl_boot_server,
|
92
|
+
erl_distribution,erl_prim_loader,erl_reply,erlang,
|
93
|
+
error_handler,error_logger,file,file_server,
|
94
|
+
file_io_server,prim_file,global,global_group,
|
95
|
+
global_search,group,heart,hipe_unified_loader,
|
96
|
+
inet6_tcp,inet6_tcp_dist,inet6_udp,inet_config,
|
97
|
+
inet_hosts,inet_gethost_native,inet_tcp_dist,init,
|
98
|
+
kernel,kernel_config,net,net_adm,net_kernel,os,
|
99
|
+
ram_file,rpc,user,user_drv,user_sup,disk_log,
|
100
|
+
disk_log_1,disk_log_server,disk_log_sup,dist_ac,
|
101
|
+
erl_ddll,erl_epmd,erts_debug,gen_tcp,gen_udp,gen_sctp,
|
102
|
+
prim_inet,inet,inet_db,inet_dns,inet_parse,inet_res,
|
103
|
+
inet_tcp,inet_udp,inet_sctp,pg2,seq_trace,
|
104
|
+
wrap_log_reader,zlib,otp_ring0]},
|
105
|
+
{registered,
|
106
|
+
[application_controller,erl_reply,auth,boot_server,
|
107
|
+
code_server,disk_log_server,disk_log_sup,
|
108
|
+
erl_prim_loader,error_logger,file_server_2,
|
109
|
+
fixtable_server,global_group,global_name_server,heart,
|
110
|
+
init,kernel_config,kernel_sup,net_kernel,net_sup,rex,
|
111
|
+
user,os_server,ddll_server,erl_epmd,inet_db,pg2]},
|
112
|
+
{applications,[]},
|
113
|
+
{included_applications,[]},
|
114
|
+
{env,[{error_logger,tty}]},
|
115
|
+
{start_phases,undefined},
|
116
|
+
{maxT,infinity},
|
117
|
+
{maxP,infinity},
|
118
|
+
{mod,{kernel,[]}}]}]}},
|
119
|
+
{progress,init_kernel_started},
|
120
|
+
{apply,
|
121
|
+
{application,load,
|
122
|
+
[{application,stdlib,
|
123
|
+
[{description,"ERTS CXC 138 10"},
|
124
|
+
{vsn,"1.15.2"},
|
125
|
+
{id,[]},
|
126
|
+
{modules,
|
127
|
+
[array,base64,beam_lib,c,calendar,dets,dets_server,
|
128
|
+
dets_sup,dets_utils,dets_v8,dets_v9,dict,digraph,
|
129
|
+
digraph_utils,edlin,edlin_expand,epp,eval_bits,
|
130
|
+
erl_bits,erl_compile,erl_eval,erl_expand_records,
|
131
|
+
erl_internal,erl_lint,erl_parse,erl_posix_msg,erl_pp,
|
132
|
+
erl_scan,erl_tar,error_logger_file_h,
|
133
|
+
error_logger_tty_h,escript,ets,file_sorter,filelib,
|
134
|
+
filename,gb_trees,gb_sets,gen,gen_event,gen_fsm,
|
135
|
+
gen_server,io,io_lib,io_lib_format,io_lib_fread,
|
136
|
+
io_lib_pretty,lib,lists,log_mf_h,math,ms_transform,
|
137
|
+
orddict,ordsets,otp_internal,pg,pool,proc_lib,
|
138
|
+
proplists,qlc,qlc_pt,queue,random,regexp,sets,shell,
|
139
|
+
shell_default,slave,sofs,string,supervisor,
|
140
|
+
supervisor_bridge,sys,timer,win32reg,zip]},
|
141
|
+
{registered,
|
142
|
+
[timer_server,rsh_starter,take_over_monitor,
|
143
|
+
pool_master,dets]},
|
144
|
+
{applications,[kernel]},
|
145
|
+
{included_applications,[]},
|
146
|
+
{env,[]},
|
147
|
+
{start_phases,undefined},
|
148
|
+
{maxT,infinity},
|
149
|
+
{maxP,infinity}]}]}},
|
150
|
+
{apply,
|
151
|
+
{application,load,
|
152
|
+
[{application,inets,
|
153
|
+
[{description,"INETS CXC 138 49"},
|
154
|
+
{vsn,"5.0.5"},
|
155
|
+
{id,[]},
|
156
|
+
{modules,
|
157
|
+
[inets,inets_sup,inets_app,inets_service,ftp,
|
158
|
+
ftp_progress,ftp_response,ftp_sup,http,httpc_handler,
|
159
|
+
httpc_handler_sup,httpc_manager,httpc_profile_sup,
|
160
|
+
httpc_request,httpc_response,httpc_sup,http_cookie,
|
161
|
+
http_uri,http_chunk,http_request,http_response,
|
162
|
+
http_transport,http_util,httpd,httpd_acceptor,
|
163
|
+
httpd_acceptor_sup,httpd_cgi,httpd_conf,httpd_esi,
|
164
|
+
httpd_example,httpd_file,httpd_instance_sup,httpd_log,
|
165
|
+
httpd_manager,httpd_misc_sup,httpd_request,
|
166
|
+
httpd_request_handler,httpd_response,httpd_script_env,
|
167
|
+
httpd_socket,httpd_sup,httpd_util,mod_actions,
|
168
|
+
mod_alias,mod_auth,mod_auth_dets,mod_auth_mnesia,
|
169
|
+
mod_auth_plain,mod_auth_server,mod_browser,mod_cgi,
|
170
|
+
mod_dir,mod_disk_log,mod_esi,mod_get,mod_head,
|
171
|
+
mod_htaccess,mod_include,mod_log,mod_range,
|
172
|
+
mod_responsecontrol,mod_security,mod_security_server,
|
173
|
+
mod_trace,tftp,tftp_binary,tftp_engine,tftp_file,
|
174
|
+
tftp_lib,tftp_sup]},
|
175
|
+
{registered,[inets_sup,httpc_manager]},
|
176
|
+
{applications,[kernel,stdlib]},
|
177
|
+
{included_applications,[]},
|
178
|
+
{env,[]},
|
179
|
+
{start_phases,undefined},
|
180
|
+
{maxT,infinity},
|
181
|
+
{maxP,infinity},
|
182
|
+
{mod,{inets_app,[]}}]}]}},
|
183
|
+
{apply,
|
184
|
+
{application,load,
|
185
|
+
[{application,crypto,
|
186
|
+
[{description,"CRYPTO version 1"},
|
187
|
+
{vsn,"1.5.1.1"},
|
188
|
+
{id,[]},
|
189
|
+
{modules,[crypto,crypto_app,crypto_sup,crypto_server]},
|
190
|
+
{registered,[crypto_sup,crypto_server]},
|
191
|
+
{applications,[kernel,stdlib]},
|
192
|
+
{included_applications,[]},
|
193
|
+
{env,[]},
|
194
|
+
{start_phases,undefined},
|
195
|
+
{maxT,infinity},
|
196
|
+
{maxP,infinity},
|
197
|
+
{mod,{crypto_app,[]}}]}]}},
|
198
|
+
{apply,
|
199
|
+
{application,load,
|
200
|
+
[{application,sasl,
|
201
|
+
[{description,"SASL CXC 138 11"},
|
202
|
+
{vsn,"2.1.5.2"},
|
203
|
+
{id,[]},
|
204
|
+
{modules,
|
205
|
+
[sasl,alarm_handler,format_lib_supp,misc_supp,overload,
|
206
|
+
rb,rb_format_supp,release_handler,release_handler_1,
|
207
|
+
erlsrv,sasl_report,sasl_report_tty_h,
|
208
|
+
sasl_report_file_h,systools,systools_make,systools_rc,
|
209
|
+
systools_relup,systools_lib]},
|
210
|
+
{registered,
|
211
|
+
[sasl_sup,alarm_handler,overload,release_handler]},
|
212
|
+
{applications,[kernel,stdlib]},
|
213
|
+
{included_applications,[]},
|
214
|
+
{env,[{sasl_error_logger,tty},{errlog_type,all}]},
|
215
|
+
{start_phases,undefined},
|
216
|
+
{maxT,infinity},
|
217
|
+
{maxP,infinity},
|
218
|
+
{mod,{sasl,[]}}]}]}},
|
219
|
+
{apply,
|
220
|
+
{application,load,
|
221
|
+
[{application,node,
|
222
|
+
[{description,"Node Server for PoolParty"},
|
223
|
+
{vsn,"0.1"},
|
224
|
+
{id,[]},
|
225
|
+
{modules,[node_app,pm_node,pm_node_supervisor,utils]},
|
226
|
+
{registered,[pm_node,pm_node_supervisor]},
|
227
|
+
{applications,[kernel,stdlib]},
|
228
|
+
{included_applications,[]},
|
229
|
+
{env,[]},
|
230
|
+
{start_phases,[]},
|
231
|
+
{maxT,infinity},
|
232
|
+
{maxP,infinity},
|
233
|
+
{mod,{node_app,[]}}]}]}},
|
234
|
+
{progress,applications_loaded},
|
235
|
+
{apply,{application,start_boot,[kernel,permanent]}},
|
236
|
+
{apply,{application,start_boot,[stdlib,permanent]}},
|
237
|
+
{apply,{application,start_boot,[inets,permanent]}},
|
238
|
+
{apply,{application,start_boot,[crypto,permanent]}},
|
239
|
+
{apply,{application,start_boot,[sasl,permanent]}},
|
240
|
+
{apply,{application,start_boot,[node,permanent]}},
|
241
|
+
{apply,{c,erlangrc,[]}},
|
242
|
+
{progress,started}]}.
|
@@ -0,0 +1,39 @@
|
|
1
|
+
-module (master_app).
|
2
|
+
-behaviour(application).
|
3
|
+
|
4
|
+
%% Application callbacks
|
5
|
+
-export([start/2, stop/1]).
|
6
|
+
|
7
|
+
%%====================================================================
|
8
|
+
%% Application callbacks
|
9
|
+
%%====================================================================
|
10
|
+
%%--------------------------------------------------------------------
|
11
|
+
%% Function: start(Type, StartArgs) -> {ok, Pid} |
|
12
|
+
%% {ok, Pid, State} |
|
13
|
+
%% {error, Reason}
|
14
|
+
%% Description: This function is called whenever an application
|
15
|
+
%% is started using application:start/1,2, and should start the processes
|
16
|
+
%% of the application. If the application is structured according to the
|
17
|
+
%% OTP design principles as a supervision tree, this means starting the
|
18
|
+
%% top supervisor of the tree.
|
19
|
+
%%--------------------------------------------------------------------
|
20
|
+
start(_Type, StartArgs) ->
|
21
|
+
case pm_master_supervisor:start_link(StartArgs) of
|
22
|
+
{ok, Pid} ->
|
23
|
+
{ok, Pid};
|
24
|
+
Error ->
|
25
|
+
Error
|
26
|
+
end.
|
27
|
+
|
28
|
+
%%--------------------------------------------------------------------
|
29
|
+
%% Function: stop(State) -> void()
|
30
|
+
%% Description: This function is called whenever an application
|
31
|
+
%% has stopped. It is intended to be the opposite of Module:start/2 and
|
32
|
+
%% should do any necessary cleaning up. The return value is ignored.
|
33
|
+
%%--------------------------------------------------------------------
|
34
|
+
stop(_State) ->
|
35
|
+
ok.
|
36
|
+
|
37
|
+
%%====================================================================
|
38
|
+
%% Internal functions
|
39
|
+
%%====================================================================
|
@@ -0,0 +1,39 @@
|
|
1
|
+
-module (node_app).
|
2
|
+
-behaviour(application).
|
3
|
+
|
4
|
+
%% Application callbacks
|
5
|
+
-export([start/2, stop/1]).
|
6
|
+
|
7
|
+
%%====================================================================
|
8
|
+
%% Application callbacks
|
9
|
+
%%====================================================================
|
10
|
+
%%--------------------------------------------------------------------
|
11
|
+
%% Function: start(Type, StartArgs) -> {ok, Pid} |
|
12
|
+
%% {ok, Pid, State} |
|
13
|
+
%% {error, Reason}
|
14
|
+
%% Description: This function is called whenever an application
|
15
|
+
%% is started using application:start/1,2, and should start the processes
|
16
|
+
%% of the application. If the application is structured according to the
|
17
|
+
%% OTP design principles as a supervision tree, this means starting the
|
18
|
+
%% top supervisor of the tree.
|
19
|
+
%%--------------------------------------------------------------------
|
20
|
+
start(_Type, StartArgs) ->
|
21
|
+
case pm_node_supervisor:start_link(StartArgs) of
|
22
|
+
{ok, Pid} ->
|
23
|
+
{ok, Pid};
|
24
|
+
Error ->
|
25
|
+
Error
|
26
|
+
end.
|
27
|
+
|
28
|
+
%%--------------------------------------------------------------------
|
29
|
+
%% Function: stop(State) -> void()
|
30
|
+
%% Description: This function is called whenever an application
|
31
|
+
%% has stopped. It is intended to be the opposite of Module:start/2 and
|
32
|
+
%% should do any necessary cleaning up. The return value is ignored.
|
33
|
+
%%--------------------------------------------------------------------
|
34
|
+
stop(_State) ->
|
35
|
+
ok.
|
36
|
+
|
37
|
+
%%====================================================================
|
38
|
+
%% Internal functions
|
39
|
+
%%====================================================================
|
@@ -0,0 +1,19 @@
|
|
1
|
+
-module (pm_client).
|
2
|
+
-export ([init/0, send_cmd/1, reconfigure_cloud/0, get_load/1, get_live_nodes/0]).
|
3
|
+
-export ([shutdown/0]).
|
4
|
+
% Run commands on the running master process
|
5
|
+
% erl -pa ./ebin/ -run pm_client get_load cpu -run init stop -noshell
|
6
|
+
|
7
|
+
% Connect to the master
|
8
|
+
init() -> net_adm:ping(master).
|
9
|
+
% Send the command Cmd to the pm_master process
|
10
|
+
send_cmd(Cmd) -> pm_master:fire_cmd(Cmd).
|
11
|
+
% Reconfigure the cloud
|
12
|
+
reconfigure_cloud() -> pm_master:reconfigure_cloud().
|
13
|
+
% Get the load on the cloud of type Type
|
14
|
+
get_load(Type) -> pm_master:get_load(Type).
|
15
|
+
% Get a list of the live nodes
|
16
|
+
get_live_nodes() -> pm_master:get_live_nodes().
|
17
|
+
% Terminate the cloud messenger
|
18
|
+
% This sends a shutdown to the whole cloud
|
19
|
+
shutdown() -> pm_master:shutdown_cloud().
|
@@ -0,0 +1,57 @@
|
|
1
|
+
-module(pm_cluster).
|
2
|
+
|
3
|
+
-ifdef(EUNIT).
|
4
|
+
-include_lib("eunit/include/eunit.hrl").
|
5
|
+
-endif.
|
6
|
+
|
7
|
+
-export ([slaves/1, slaves/0]).
|
8
|
+
-export ([get_live_nodes/0,refresh_live_nodes/0]).
|
9
|
+
-export ([send_call/2, master/0]).
|
10
|
+
|
11
|
+
send_call(Type, Args) ->
|
12
|
+
Nodes = get_live_nodes(),
|
13
|
+
rpc:multicall(Nodes, pm_node, Type, [Args]).
|
14
|
+
|
15
|
+
master() ->
|
16
|
+
{erlang:node()}.
|
17
|
+
|
18
|
+
slaves([]) ->
|
19
|
+
ok;
|
20
|
+
|
21
|
+
slaves([Host|Hosts]) ->
|
22
|
+
Args = erl_system_args(),
|
23
|
+
NodeName = "pp_cluster",
|
24
|
+
{ok, Node} = slave:start_link(Host, NodeName, Args),
|
25
|
+
io:format("Erlang node started = [~p]~n", [Node]),
|
26
|
+
slaves(Hosts).
|
27
|
+
|
28
|
+
slaves() ->
|
29
|
+
get_live_nodes().
|
30
|
+
|
31
|
+
erl_system_args()->
|
32
|
+
Shared = case init:get_argument(shared) of
|
33
|
+
error -> " ";
|
34
|
+
{ok,[[]]} -> " -shared "
|
35
|
+
end,
|
36
|
+
lists:append(
|
37
|
+
["-rsh ssh -setcookie",
|
38
|
+
atom_to_list(erlang:get_cookie()),
|
39
|
+
Shared, " +Mea r10b "
|
40
|
+
]).
|
41
|
+
|
42
|
+
refresh_live_nodes() ->
|
43
|
+
String = ". /etc/profile && server-list-active -c name",
|
44
|
+
Nodes = string:tokens(os:cmd(String), "\n\t"),
|
45
|
+
io:format("nodes: ~p~n", [Nodes]),
|
46
|
+
lists:map(
|
47
|
+
fun(No) ->
|
48
|
+
io:format("pinging ~p~n", [list_to_atom(lists:append("pp_cluster@",No))]),
|
49
|
+
net_adm:ping(list_to_atom(lists:append("@pp_cluster", No)))
|
50
|
+
end,
|
51
|
+
Nodes),
|
52
|
+
ok.
|
53
|
+
% Get the live nodes
|
54
|
+
get_live_nodes() ->
|
55
|
+
nodes().
|
56
|
+
%% Do not forget to start erlang with a command like:
|
57
|
+
%% erl -rsh ssh -sname clustmaster
|
@@ -0,0 +1,21 @@
|
|
1
|
+
% Handles generic events
|
2
|
+
-module (pm_event_handler).
|
3
|
+
-export ([make/0, add_handler/1, event/1]).
|
4
|
+
|
5
|
+
% Make a new event handler
|
6
|
+
make() ->
|
7
|
+
register(?MODULE, spawn(fun() -> handle_events(fun no_op/1) end )).
|
8
|
+
|
9
|
+
add_handler(Fun) ->
|
10
|
+
whereis(?MODULE) ! {add, Fun}.
|
11
|
+
|
12
|
+
event(X) -> whereis(?MODULE) ! {event, X}.
|
13
|
+
|
14
|
+
handle_events(Fun) ->
|
15
|
+
receive
|
16
|
+
{event, Any} ->
|
17
|
+
(catch Fun(Any)),
|
18
|
+
handle_events(Fun)
|
19
|
+
end.
|
20
|
+
|
21
|
+
no_op(_) -> void.
|
@@ -0,0 +1,118 @@
|
|
1
|
+
%%%-------------------------------------------------------------------
|
2
|
+
%%% File : pm_master.erl
|
3
|
+
%%% Author : Ari Lerner <arilerner@mac.com>
|
4
|
+
%%% The client is a running process that will run on the master node
|
5
|
+
%%% and spawn requests to the pm_nodes and compile the responses
|
6
|
+
%%% for use within the poolparty network
|
7
|
+
%%%-------------------------------------------------------------------
|
8
|
+
-module(pm_master).
|
9
|
+
-behaviour(gen_server).
|
10
|
+
|
11
|
+
%% API
|
12
|
+
-export([start_link/0]).
|
13
|
+
|
14
|
+
%% gen_server callbacks
|
15
|
+
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
16
|
+
terminate/2, code_change/3]).
|
17
|
+
-record(state, {}).
|
18
|
+
-define(SERVER, ?MODULE).
|
19
|
+
|
20
|
+
% Client function definitions
|
21
|
+
-export ([get_load/1, reconfigure_cloud/0, fire_cmd/1]).
|
22
|
+
-export ([shutdown_cloud/0]).
|
23
|
+
|
24
|
+
%%====================================================================
|
25
|
+
%% API
|
26
|
+
%%====================================================================
|
27
|
+
%%--------------------------------------------------------------------
|
28
|
+
%% Function: start_link() -> {ok,Pid} | ignore | {error,Error}
|
29
|
+
%% Description: Starts the server
|
30
|
+
%%--------------------------------------------------------------------
|
31
|
+
start_link() ->
|
32
|
+
gen_server:start_link({global, ?SERVER}, ?MODULE, [], []).
|
33
|
+
|
34
|
+
%%====================================================================
|
35
|
+
%% gen_server callbacks
|
36
|
+
%%====================================================================
|
37
|
+
|
38
|
+
%%--------------------------------------------------------------------
|
39
|
+
%% Function: init(Args) -> {ok, State} |
|
40
|
+
%% {ok, State, Timeout} |
|
41
|
+
%% ignore |
|
42
|
+
%% {stop, Reason}
|
43
|
+
%% Description: Initiates the server
|
44
|
+
%%--------------------------------------------------------------------
|
45
|
+
init([]) ->
|
46
|
+
{ok, #state{}}.
|
47
|
+
|
48
|
+
%%--------------------------------------------------------------------
|
49
|
+
%% Function: %% handle_call(Request, From, State) -> {reply, Reply, State} |
|
50
|
+
%% {reply, Reply, State, Timeout} |
|
51
|
+
%% {noreply, State} |
|
52
|
+
%% {noreply, State, Timeout} |
|
53
|
+
%% {stop, Reason, Reply, State} |
|
54
|
+
%% {stop, Reason, State}
|
55
|
+
%% Description: Handling call messages
|
56
|
+
%%--------------------------------------------------------------------
|
57
|
+
handle_call(_Request, _From, State) ->
|
58
|
+
Reply = ok,
|
59
|
+
{reply, Reply, State}.
|
60
|
+
|
61
|
+
%%--------------------------------------------------------------------
|
62
|
+
%% Function: handle_cast(Msg, State) -> {noreply, State} |
|
63
|
+
%% {noreply, State, Timeout} |
|
64
|
+
%% {stop, Reason, State}
|
65
|
+
%% Description: Handling cast messages
|
66
|
+
%%--------------------------------------------------------------------
|
67
|
+
handle_cast(_Msg, State) ->
|
68
|
+
{noreply, State}.
|
69
|
+
|
70
|
+
%%--------------------------------------------------------------------
|
71
|
+
%% Function: handle_info(Info, State) -> {noreply, State} |
|
72
|
+
%% {noreply, State, Timeout} |
|
73
|
+
%% {stop, Reason, State}
|
74
|
+
%% Description: Handling all non call/cast messages
|
75
|
+
%%--------------------------------------------------------------------
|
76
|
+
handle_info(_Info, State) ->
|
77
|
+
{noreply, State}.
|
78
|
+
|
79
|
+
%%--------------------------------------------------------------------
|
80
|
+
%% Function: terminate(Reason, State) -> void()
|
81
|
+
%% Description: This function is called by a gen_server when it is about to
|
82
|
+
%% terminate. It should be the opposite of Module:init/1 and do any necessary
|
83
|
+
%% cleaning up. When it returns, the gen_server terminates with Reason.
|
84
|
+
%% The return value is ignored.
|
85
|
+
%%--------------------------------------------------------------------
|
86
|
+
terminate(_Reason, _State) ->
|
87
|
+
ok.
|
88
|
+
|
89
|
+
%%--------------------------------------------------------------------
|
90
|
+
%% Func: code_change(OldVsn, State, Extra) -> {ok, NewState}
|
91
|
+
%% Description: Convert process state when code is changed
|
92
|
+
%%--------------------------------------------------------------------
|
93
|
+
code_change(_OldVsn, State, _Extra) ->
|
94
|
+
{ok, State}.
|
95
|
+
|
96
|
+
%%--------------------------------------------------------------------
|
97
|
+
%%% Internal functions
|
98
|
+
%%--------------------------------------------------------------------
|
99
|
+
|
100
|
+
% pm_master:get_load("0", "cpu").
|
101
|
+
get_load(Type) ->
|
102
|
+
{Loads, _} = pm_cluster:send_call(get_load_for_type, [Type]),
|
103
|
+
{utils:convert_responses_to_int_list(Loads)}.
|
104
|
+
|
105
|
+
% Send reconfigure tasks to every node
|
106
|
+
reconfigure_cloud() ->
|
107
|
+
pm_cluster:send_call(run_reconfig, []),
|
108
|
+
{ok}.
|
109
|
+
|
110
|
+
% Fire the given command on all nodes
|
111
|
+
fire_cmd(Cmd) ->
|
112
|
+
pm_cluster:send_call(fire_cmd, [Cmd]),
|
113
|
+
{ok}.
|
114
|
+
|
115
|
+
% Shutdown
|
116
|
+
shutdown_cloud() ->
|
117
|
+
pm_cluster:send_call(stop, []),
|
118
|
+
{ok}.
|
@@ -0,0 +1,40 @@
|
|
1
|
+
% This supervisor is responsible for monitoring the
|
2
|
+
% client service
|
3
|
+
|
4
|
+
-module (pm_master_supervisor).
|
5
|
+
-behaviour(supervisor).
|
6
|
+
|
7
|
+
-export([start/0, start_in_shell_for_testing/0, start_link/1, init/1]).
|
8
|
+
|
9
|
+
-ifdef(EUNIT).
|
10
|
+
-include_lib("eunit/include/eunit.hrl").
|
11
|
+
-endif.
|
12
|
+
|
13
|
+
start() ->
|
14
|
+
spawn(fun() ->
|
15
|
+
supervisor:start_link({local, ?MODULE}, ?MODULE, _Arg = [])
|
16
|
+
end).
|
17
|
+
|
18
|
+
start_in_shell_for_testing() ->
|
19
|
+
{ok, Pid} = supervisor:start_link({local, ?MODULE}, ?MODULE, _Arg = []),
|
20
|
+
unlink(Pid).
|
21
|
+
|
22
|
+
start_link(Args) ->
|
23
|
+
supervisor:start_link({local, ?MODULE}, ?MODULE, Args).
|
24
|
+
|
25
|
+
init([]) ->
|
26
|
+
RestartStrategy = one_for_one,
|
27
|
+
MaxRestarts = 3, % 1000
|
28
|
+
MaxTimeBetRestarts = 30, % 3600
|
29
|
+
|
30
|
+
SupFlags = {RestartStrategy, MaxRestarts, MaxTimeBetRestarts},
|
31
|
+
|
32
|
+
LoadServers = [
|
33
|
+
{pm_master1,
|
34
|
+
{pm_master, start_link, []},
|
35
|
+
permanent, 5000, worker,
|
36
|
+
[pm_master]
|
37
|
+
}
|
38
|
+
],
|
39
|
+
|
40
|
+
{ok, {SupFlags, LoadServers}}.
|