auser-poolparty 0.2.16 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. data/Manifest.txt +72 -7
  2. data/PostInstall.txt +1 -1
  3. data/Rakefile +11 -0
  4. data/bin/cloud-provision +6 -10
  5. data/bin/server-build-messenger +20 -0
  6. data/bin/server-fire-cmd +0 -2
  7. data/bin/server-list-responding +24 -0
  8. data/bin/server-start-master +4 -9
  9. data/bin/server-start-node +7 -6
  10. data/lib/erlang/messenger/Emakefile +1 -0
  11. data/lib/erlang/messenger/Rakefile +29 -20
  12. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  13. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  14. data/lib/erlang/messenger/ebin/packager.app +19 -0
  15. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  16. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  17. data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
  18. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  19. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -7
  20. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  21. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  22. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -7
  23. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  24. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  25. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  26. data/lib/erlang/messenger/lib/eunit/AUTHORS +2 -0
  27. data/lib/erlang/messenger/lib/eunit/CHANGELOG +14 -0
  28. data/lib/erlang/messenger/lib/eunit/COPYING +504 -0
  29. data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
  30. data/lib/erlang/messenger/lib/eunit/NOTES +276 -0
  31. data/lib/erlang/messenger/lib/eunit/README +3 -0
  32. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +3 -0
  33. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  34. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +172 -0
  35. data/lib/erlang/messenger/lib/eunit/doc/index.html +17 -0
  36. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +12 -0
  37. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +984 -0
  38. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +980 -0
  39. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +11 -0
  40. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +55 -0
  41. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  42. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  43. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +21 -0
  44. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +1 -0
  45. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  46. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  47. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  48. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  49. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  50. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  51. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  52. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  53. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  54. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  55. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  56. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  57. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +339 -0
  58. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +19 -0
  59. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +1 -0
  60. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +313 -0
  61. data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
  62. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +388 -0
  63. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +243 -0
  64. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +21 -0
  65. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +1 -0
  66. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +196 -0
  67. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +102 -0
  68. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +798 -0
  69. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +48 -0
  70. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +682 -0
  71. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +552 -0
  72. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +157 -0
  73. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +340 -0
  74. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +64 -0
  75. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +334 -0
  76. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +45 -0
  77. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +272 -0
  78. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +409 -0
  79. data/lib/erlang/messenger/lib/eunit/sys.config +9 -0
  80. data/lib/erlang/messenger/lib/eunit/vsn.mk +1 -0
  81. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  82. data/lib/erlang/messenger/pm_master_rel-0.1.script +75 -2
  83. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  84. data/lib/erlang/messenger/pm_node_rel-0.1.script +75 -2
  85. data/lib/erlang/messenger/src/pm_client.erl +8 -3
  86. data/lib/erlang/messenger/src/pm_cluster.erl +32 -9
  87. data/lib/erlang/messenger/src/pm_master.erl +10 -11
  88. data/lib/erlang/messenger/src/pm_node.erl +2 -3
  89. data/lib/erlang/messenger/src/pm_packager.erl +73 -0
  90. data/lib/erlang/messenger/src/utils.erl +3 -10
  91. data/lib/poolparty/base_packages/heartbeat.rb +9 -9
  92. data/lib/poolparty/base_packages/poolparty.rb +16 -10
  93. data/lib/poolparty/config/allowed_commands.yml +1 -0
  94. data/lib/poolparty/core/object.rb +8 -0
  95. data/lib/poolparty/exceptions/UnacceptableCommand.rb +5 -0
  96. data/lib/poolparty/helpers/messenger.rb +29 -0
  97. data/lib/poolparty/helpers/provisioner_base.rb +7 -7
  98. data/lib/poolparty/helpers/provisioners/master.rb +3 -7
  99. data/lib/poolparty/helpers/provisioners/slave.rb +1 -0
  100. data/lib/poolparty/modules/cloud_resourcer.rb +7 -5
  101. data/lib/poolparty/modules/configurable.rb +1 -1
  102. data/lib/poolparty/modules/method_missing_sugar.rb +6 -1
  103. data/lib/poolparty/modules/pretty_printer.rb +1 -0
  104. data/lib/poolparty/modules/resourcing_dsl.rb +2 -1
  105. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +1 -1
  106. data/lib/poolparty/net/remoter.rb +3 -1
  107. data/lib/poolparty/plugins/git.rb +3 -3
  108. data/lib/poolparty/pool/base.rb +7 -2
  109. data/lib/poolparty/pool/cloud.rb +3 -3
  110. data/lib/poolparty/pool/resource.rb +38 -24
  111. data/lib/poolparty/pool/resources/class_package.rb +2 -2
  112. data/lib/poolparty/pool/resources/conditional.rb +8 -4
  113. data/lib/poolparty/pool/resources/{gem.rb → gem_package.rb} +0 -0
  114. data/lib/poolparty/pool/resources/package.rb +8 -1
  115. data/lib/poolparty/version.rb +1 -1
  116. data/lib/poolparty.rb +1 -1
  117. data/poolparty.gemspec +476 -61
  118. data/spec/poolparty/core/object_spec.rb +20 -0
  119. data/spec/poolparty/helpers/messenger_spec.rb +14 -0
  120. data/spec/poolparty/helpers/provisioners/master_spec.rb +2 -2
  121. data/spec/poolparty/net/remoter_spec.rb +1 -1
  122. data/spec/poolparty/plugins/git_spec.rb +26 -19
  123. data/spec/poolparty/pool/base_spec.rb +20 -2
  124. data/spec/poolparty/pool/cloud_spec.rb +256 -249
  125. data/spec/poolparty/pool/custom_resource_spec.rb +6 -1
  126. data/spec/poolparty/pool/plugin_spec.rb +71 -65
  127. data/spec/poolparty/pool/resource_spec.rb +314 -237
  128. data/spec/poolparty/pool/resources/class_package_spec.rb +71 -66
  129. data/spec/poolparty/pool/resources/conditional_spec.rb +30 -26
  130. data/spec/poolparty/pool/resources/gem_spec.rb +18 -14
  131. data/spec/poolparty/pool/resources/variable_spec.rb +1 -1
  132. data/spec/poolparty/pool/script_spec.rb +46 -37
  133. data/spec/poolparty/spec_helper.rb +4 -0
  134. data/tasks/cloud.rake +0 -54
  135. data/tasks/development.rake +11 -14
  136. data/tasks/ec2.rake +10 -17
  137. data/tasks/instance.rake +0 -61
  138. data/website/index.html +1 -1
  139. metadata +83 -10
@@ -18,23 +18,36 @@ module PoolParty
18
18
  end
19
19
 
20
20
  def add_resource(type, opts={}, parent=self, &block)
21
- resource = get_resource(type, opts[:name], parent)
22
- if resource
23
- resource
21
+ if in_resources?(type, opts[:name])
22
+ get_resource(type, opts[:name], parent)
24
23
  else
25
- returning "PoolParty::Resources::#{type.to_s.camelize}".classify.constantize.new(opts, parent, &block) do |o|
26
- resource(type) << o
24
+ returning "PoolParty::Resources::#{type.to_s.camelize}".classify.constantize.new(opts, parent, &block) do |o|
25
+ store_into_global_resource_store(o)
26
+ resource(type) << o
27
27
  end
28
28
  end
29
+ end
30
+ def get_resource(ty, key, parent=self)
31
+ resource(ty).select {|r| r.key == key }.first || get_from_global_resource_store(ty, key)
29
32
  end
30
-
31
- def get_resource(type, key, parent=self)
32
- resource(type).select {|resource| resource.key == key }.first
33
+ def in_resources?(type, key, parent=self)
34
+ !(get_resource(type, key) && in_global_resource_store?(type, key)).nil?
35
+ end
36
+ def global_resources_store
37
+ $global_resources ||= []
38
+ end
39
+ def store_into_global_resource_store(r)
40
+ global_resources_store << r unless in_global_resource_store?(r.class_name_sym, r.key)
41
+ end
42
+ def get_from_global_resource_store(ty, key)
43
+ global_resources_store.select {|r| r if r.same_resources_of(ty, key) }.first
44
+ end
45
+ def in_global_resource_store?(ty, key)
46
+ !get_from_global_resource_store(ty, key).nil?
33
47
  end
34
-
35
48
  #:nodoc:
36
49
  def reset_resources!
37
- @resources = nil
50
+ $global_resources = @resources = nil
38
51
  end
39
52
 
40
53
  # def resources_string(pre="")
@@ -66,6 +79,9 @@ module PoolParty
66
79
  def #{lowercase_class_name}(opts={}, parent=self, &blk)
67
80
  add_resource(:#{lowercase_class_name}, opts, parent, &blk)
68
81
  end
82
+ def get_#{lowercase_class_name}(name)
83
+ get_resource(:#{lowercase_class_name}, name) if in_resources?(:#{lowercase_class_name}, name)
84
+ end
69
85
  EOE
70
86
  PoolParty::Resources.module_eval method
71
87
  PoolParty::Resources.add_has_and_does_not_have_methods_for(lowercase_class_name.to_sym)
@@ -102,18 +118,7 @@ module PoolParty
102
118
  requires parent.to_s if @parent.is_a?(PoolParty::Resources::Resource) && printable? && @parent.printable?
103
119
  end
104
120
  end
105
-
106
- # def requirement_tree
107
- # p = @parent
108
- # returning Array.new do |arr|
109
- # arr << p.to_s
110
- # while p && p != self && p.is_a?(PoolParty::Resources::Resource) && p.requires
111
- # arr << p.requires
112
- # p = p.parent
113
- # end
114
- # end.flatten.uniq
115
- # end
116
-
121
+
117
122
  # Stub, so you can create virtual resources
118
123
  # This is called after the resource is initialized
119
124
  # with the options given to it in the init-block
@@ -123,14 +128,19 @@ module PoolParty
123
128
  # DSL Overriders
124
129
  include PoolParty::ResourcingDsl
125
130
 
131
+ def same_resources_of(t, k)
132
+ key == k && class_name_sym == t && !duplicatable?
133
+ end
134
+ def duplicatable?
135
+ false
136
+ end
126
137
  # This way we can subclass resources without worry
127
138
  def class_type_name
128
139
  self.class.to_s.top_level_class
129
- end
140
+ end
130
141
  def self.custom_function(str)
131
142
  custom_functions << str
132
143
  end
133
-
134
144
  def self.custom_function(str)
135
145
  custom_functions << str
136
146
  end
@@ -163,6 +173,10 @@ module PoolParty
163
173
  def printable?
164
174
  true
165
175
  end
176
+ # Private method just for resource retrievling purposes
177
+ def class_name_sym
178
+ self.class.to_s.top_level_class.downcase.to_sym
179
+ end
166
180
  # We want to gather the options, but if the option sent is nil
167
181
  # then we want to override the option value by sending the key as
168
182
  # a method so that we can override this if necessary.
@@ -12,7 +12,7 @@ module PoolParty
12
12
  class Classpackage < Resource
13
13
 
14
14
  default_options({
15
- :name => nil
15
+ :name => "custom"
16
16
  })
17
17
 
18
18
  def initialize(opts={}, parent=self, &block)
@@ -38,7 +38,7 @@ module PoolParty
38
38
  end
39
39
 
40
40
  def name(*args)
41
- args.empty? ? (@name || parent.name) : @name ||= args.first
41
+ args.empty? ? (@name || parent.name || "custom_#{Time.now.to_i}") : @name ||= args.first
42
42
  end
43
43
 
44
44
  end
@@ -2,12 +2,12 @@ module PoolParty
2
2
  module Resources
3
3
 
4
4
  def execute_if(attr_s="$hostname", str="", parent=self, &block)
5
- parent = parent.is_a?(PoolParty::Cloud::Cloud) ? parent : parent.parent
5
+ # parent = parent.is_a?(PoolParty::Cloud::Cloud) ? parent : parent.parent
6
6
  opts = {:attribute => attr_s, :equal => str}
7
7
  options = parent.respond_to?(:options) ? parent.options.merge!(opts) : opts
8
- @c = PoolParty::Resources::Conditional.new(options, parent, &block)
9
- parent.instance_eval {add_resource(:conditional, options, parent, &block) }
10
- @c
8
+ # @c = PoolParty::Resources::Conditional.new(options, parent, &block)
9
+ parent.add_resource(:conditional, options, parent, &block)
10
+ # @c
11
11
  end
12
12
 
13
13
  class Conditional < Resource
@@ -29,6 +29,10 @@ module PoolParty
29
29
  false
30
30
  end
31
31
 
32
+ def duplicatable?
33
+ false
34
+ end
35
+
32
36
  def to_string(pre="")
33
37
  returning Array.new do |output|
34
38
  output << "# #{name.sanitize}"
@@ -6,7 +6,14 @@ module PoolParty
6
6
  default_options({
7
7
  :ensure => "installed",
8
8
  :name => nil
9
- })
9
+ })
10
+
11
+ def present
12
+ "installed"
13
+ end
14
+ def absent
15
+ "absent"
16
+ end
10
17
 
11
18
  end
12
19
 
@@ -2,7 +2,7 @@ module PoolParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 18
5
+ TINY = 20
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/poolparty.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'rubygems'
2
2
 
3
3
  # Load required gems
4
- %w(active_support open4 ftools logging ruby2ruby).each do |lib|
4
+ %w(activesupport open4 ftools logging ruby2ruby).each do |lib|
5
5
  begin
6
6
  require lib
7
7
  rescue Exception => e