On 11/14/2011 02:49 PM, gblomqui(a)redhat.com wrote:
From: Greg Blomquist <gblomqui(a)redhat.com>
Changes include:
* update deployable relaxNG file to allow for inline configruation content for
configuration files
* updating config_server_util and deployable_xml to allow for inline
configuration file content
---
src/app/util/config_server_util.rb | 24 ++++--------------------
src/app/util/deployable-rng.xml | 29 +++++++++++++++++++++++------
src/app/util/deployable_xml.rb | 14 ++------------
3 files changed, 29 insertions(+), 38 deletions(-)
diff --git a/src/app/util/config_server_util.rb b/src/app/util/config_server_util.rb
index b73641b..3e8465c 100644
--- a/src/app/util/config_server_util.rb
+++ b/src/app/util/config_server_util.rb
@@ -116,27 +116,23 @@ module ConfigServerUtil
end
def executable
- @executable ||= if @svc.executable
- @svc.executable
- end
+ @executable ||= @svc.executable
end
def files
- @files ||= if not @svc.files.empty?
- @svc.files
- else []; end
+ @files ||= @svc.files
end
protected
def _xml
xml "<service name='#{@name}'>\n"
if executable
- xml " <executable url='#{executable}'/>\n"
+ xml " #{executable.to_xml}"
end
unless files.empty?
xml " <files>\n"
files.each do |file|
- xml " <file url='#{file}'/>\n"
+ xml " #{file.to_xml}\n"
end
xml " </files>\n"
end
@@ -193,18 +189,6 @@ module ConfigServerUtil
end
private
- def executable
- @executable ||= if @assembly.executable
- @assembly.executable
- end
- end
-
- def files
- @files ||= unless @assembly.files.empty?
- @assembly.files
- end
- end
-
def provided_parameters
@provided_parameters ||= unless @assembly.output_parameters.empty?
@assembly.output_parameters.dup
diff --git a/src/app/util/deployable-rng.xml b/src/app/util/deployable-rng.xml
index a30164c..ec3beef 100644
--- a/src/app/util/deployable-rng.xml
+++ b/src/app/util/deployable-rng.xml
@@ -81,15 +81,11 @@
<!-- service describes the executable, additional files, and runtime
parameters that should be propagated to the launched instance -->
<define name="service-configuration-definition">
- <element name="executable">
- <attribute name="url"><text/></attribute>
- </element>
+ <ref name="configuration-executable-definition"/>
<optional>
<element name="files">
<oneOrMore>
- <element name="file">
- <attribute name="url"><text/></attribute>
- </element>
+ <ref name="configuration-file-definition"/>
</oneOrMore>
</element>
</optional>
@@ -102,6 +98,27 @@
</optional>
</define>
+ <define name="configuration-executable-definition">
+ <element name="executable">
+ <choice>
+ <attribute name="url"><text/></attribute>
+ <element name="contents"><text/></element>
+ </choice>
+ </element>
+ </define>
+
+ <define name="configuration-file-definition">
+ <element name="file">
+ <choice>
+ <attribute name="url"><text/></attribute>
+ <element name="contents">
+ <attribute name="filename"><text/></attribute>
+ <text/>
+ </element>
+ </choice>
+ </element>
+ </define>
+
<define name="configuration-parameter-definition">
<element name="parameter">
<attribute name="name"><text/></attribute>
diff --git a/src/app/util/deployable_xml.rb b/src/app/util/deployable_xml.rb
index c15c08d..e343309 100644
--- a/src/app/util/deployable_xml.rb
+++ b/src/app/util/deployable_xml.rb
@@ -75,20 +75,10 @@ class ServiceXML
@name = name
@description = description
@executable = executable
- @file_nodes = files || []
+ @files = files || []
@parameter_nodes = parameters || []
end
- attr_reader :name, :description
-
- def executable
- @executable['url'] if @executable
- end
-
- def files
- @files ||= @file_nodes.collect do |file_node|
- file_node['url']
- end
- end
+ attr_reader :name, :description, :executable, :files
def parameters
@parameters ||= @parameter_nodes.collect do |param_node|
self-ack and push