[PATCH] adding service dependancy support for audrey

Dan Radez dradez at redhat.com
Wed May 9 18:05:31 UTC 2012


---
 src/app/util/config_server_util.rb |   25 +++++++++++++++++--------
 src/app/util/deployable-rng.xml    |    5 ++++-
 src/app/util/deployable_xml.rb     |    4 ++++
 3 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/src/app/util/config_server_util.rb b/src/app/util/config_server_util.rb
index 971d89b..749f1cf 100644
--- a/src/app/util/config_server_util.rb
+++ b/src/app/util/config_server_util.rb
@@ -70,17 +70,25 @@ module ConfigServerUtil
 
   class ReferenceParameterConfig < ParameterConfig
     attr_accessor :assembly_name, :parameter_name
-    def initialize(name, assembly_name, parameter_name)
-      super(name)
+    def initialize(param, assembly_name)
+      super(param.name)
       @assembly_name = assembly_name
-      @parameter_name = parameter_name
+      @parameter_name = param.reference_parameter
+      @service_name = param.reference_service
     end
 
     protected
     def _xml
-      super do
-        "<reference assembly='#{@assembly_name}'" +
-           " provided-parameter='#{@parameter_name}'/>\n"
+      if @parameter_name
+        super do
+          "<reference assembly='#{@assembly_name}'" +
+            " provided-parameter='#{@parameter_name}'/>\n"
+        end
+      elsif @service_name
+        super do
+          "<reference assembly='#{@assembly_name}'" +
+            " service-parameter='#{@service_name}'/>\n"
+        end
       end
     end
   end
@@ -157,6 +165,8 @@ module ConfigServerUtil
       @deployable_id = deployable_id
       @deployable_name = deployable_name
 
+      @config_xml = nil
+
       @config_server = config_server
 
       @uuid = @instance.uuid
@@ -206,8 +216,7 @@ module ConfigServerUtil
             val = ValueParameterConfig.new(param.name, param.value)
           elsif param.reference?
             assembly_uuid = @assembly_uuids[param.reference_assembly]
-            val = ReferenceParameterConfig.new(param.name,
-                      assembly_uuid, param.reference_parameter)
+            val = ReferenceParameterConfig.new(param, assembly_uuid)
           else
             raise InstanceConfigError, "No value provided for parameter.  " +
               "Assembly: #{@assembly.name}, Service: #{service.name}, " +
diff --git a/src/app/util/deployable-rng.xml b/src/app/util/deployable-rng.xml
index 88884e8..a8b01db 100644
--- a/src/app/util/deployable-rng.xml
+++ b/src/app/util/deployable-rng.xml
@@ -145,7 +145,10 @@
         <element name="value"><text/></element>
         <element name="reference">
           <attribute name="assembly"><text/></attribute>
-          <attribute name="parameter"><text/></attribute>
+          <choice>
+            <attribute name="parameter"><text/></attribute>
+            <attribute name="service"><text/></attribute>
+          </choice>
         </element>
       </choice>
     </element>
diff --git a/src/app/util/deployable_xml.rb b/src/app/util/deployable_xml.rb
index 272476d..568e8c6 100644
--- a/src/app/util/deployable_xml.rb
+++ b/src/app/util/deployable_xml.rb
@@ -48,6 +48,10 @@ class ParameterXML
     reference_node['assembly'] if reference?
   end
 
+  def reference_service
+    reference_node['service'] if reference?
+  end
+
   def reference_parameter
     reference_node['parameter'] if reference?
   end
-- 
1.7.10.1




More information about the aeolus-devel mailing list