diff --git a/src/cloud/occi/lib/ImagePoolOCCI.rb b/src/cloud/occi/lib/ImagePoolOCCI.rb index 3bdfa8cf9d..ee38636867 100755 --- a/src/cloud/occi/lib/ImagePoolOCCI.rb +++ b/src/cloud/occi/lib/ImagePoolOCCI.rb @@ -14,20 +14,21 @@ # limitations under the License. # #--------------------------------------------------------------------------- # -require 'OpenNebula' - -include OpenNebula +require 'ImageOCCI' class ImagePoolOCCI < ImagePool OCCI_IMAGE_POOL = %q{ <% self.each{ |im| %> + <% if verbose %> + <%= im.to_occi(base_url) %> + <% else %> + <% end %> <% } %> } - # Creates the OCCI representation of a Virtual Machine Pool def to_occi(base_url) begin @@ -40,5 +41,9 @@ class ImagePoolOCCI < ImagePool return occi_text.gsub(/\n\s*/,'') end + + def factory(element_xml) + ImageOCCI.new(element_xml,@client) + end end diff --git a/src/cloud/occi/lib/OCCIServer.rb b/src/cloud/occi/lib/OCCIServer.rb index fbe3d210a9..8a4f66cf33 100755 --- a/src/cloud/occi/lib/OCCIServer.rb +++ b/src/cloud/occi/lib/OCCIServer.rb @@ -62,11 +62,11 @@ class OCCIServer < CloudServer # Prepare the OCCI XML Response # resource:: _Pool_ or _PoolElement_ that represents a OCCI resource # [return] _String_,_Integer_ Resource Representation or error, status code - def to_occi_xml(resource, code) - xml_response = resource.to_occi(@base_url) + def to_occi_xml(resource, opts) + xml_response = resource.to_occi(@base_url, opts[:verbose]) return xml_response, 500 if OpenNebula.is_error?(xml_response) - return xml_response, code + return xml_response, opts[:code] end ############################################################################ @@ -122,7 +122,7 @@ class OCCIServer < CloudServer return rc, CloudServer::HTTP_ERROR_CODE[rc.errno] end - return to_occi_xml(vmpool, 200) + return to_occi_xml(vmpool, :status=>200, :verbose=>request.params['verbose']) end @@ -142,7 +142,7 @@ class OCCIServer < CloudServer return rc, CloudServer::HTTP_ERROR_CODE[rc.errno] end - return to_occi_xml(network_pool, 200) + return to_occi_xml(network_pool, :status=>200, :verbose=>request.params['verbose']) end # Gets the pool representation of STORAGES @@ -161,7 +161,7 @@ class OCCIServer < CloudServer return rc, CloudServer::HTTP_ERROR_CODE[rc.errno] end - return to_occi_xml(image_pool, 200) + return to_occi_xml(image_pool, :status=>200, :verbose=>request.params['verbose']) end # Gets the pool representation of USERs @@ -178,7 +178,7 @@ class OCCIServer < CloudServer return rc, CloudServer::HTTP_ERROR_CODE[rc.errno] end - return to_occi_xml(user_pool, 200) + return to_occi_xml(user_pool, :status=>200, :verbose=>request.params['verbose']) end ############################################################################ @@ -214,7 +214,7 @@ class OCCIServer < CloudServer # --- Prepare XML Response --- vm.info - return to_occi_xml(vm, 201) + return to_occi_xml(vm, :status=>201) end # Get the representation of a COMPUTE resource @@ -233,7 +233,7 @@ class OCCIServer < CloudServer return rc, CloudServer::HTTP_ERROR_CODE[rc.errno] end - return to_occi_xml(vm, 200) + return to_occi_xml(vm, :status=>200) end @@ -277,7 +277,7 @@ class OCCIServer < CloudServer return result, code else vm.info - return to_occi_xml(vm, code) + return to_occi_xml(vm, :status=>code) end end @@ -307,7 +307,7 @@ class OCCIServer < CloudServer # --- Prepare XML Response --- network.info - return to_occi_xml(network, 201) + return to_occi_xml(network, :status=>201) end # Retrieves a NETWORK resource @@ -325,7 +325,7 @@ class OCCIServer < CloudServer return rc, CloudServer::HTTP_ERROR_CODE[rc.errno] end - return to_occi_xml(network, 200) + return to_occi_xml(network, :status=>200) end # Deletes a NETWORK resource @@ -371,7 +371,7 @@ class OCCIServer < CloudServer # --- Prepare XML Response --- vnet.info - return to_occi_xml(vnet, 202) + return to_occi_xml(vnet, :status=>202) end ############################################################################ @@ -411,7 +411,7 @@ class OCCIServer < CloudServer # --- Prepare XML Response --- image.info - return to_occi_xml(image, 201) + return to_occi_xml(image, :status=>201) end # Get a STORAGE resource @@ -430,7 +430,7 @@ class OCCIServer < CloudServer end # --- Prepare XML Response --- - return to_occi_xml(image, 200) + return to_occi_xml(image, :status=>200) end # Deletes a STORAGE resource (Not yet implemented) @@ -484,7 +484,7 @@ class OCCIServer < CloudServer # --- Prepare XML Response --- image.info - return to_occi_xml(image, 202) + return to_occi_xml(image, :status=>202) end # Get the representation of a USER @@ -503,6 +503,6 @@ class OCCIServer < CloudServer return rc, CloudServer::HTTP_ERROR_CODE[rc.errno] end - return to_occi_xml(user, 200) + return to_occi_xml(user, :status=>200) end end diff --git a/src/cloud/occi/lib/UserPoolOCCI.rb b/src/cloud/occi/lib/UserPoolOCCI.rb index bfad719c78..2745020dc7 100644 --- a/src/cloud/occi/lib/UserPoolOCCI.rb +++ b/src/cloud/occi/lib/UserPoolOCCI.rb @@ -14,20 +14,21 @@ # limitations under the License. # #--------------------------------------------------------------------------- # -require 'OpenNebula' - -include OpenNebula +require 'UserOCCI' class UserPoolOCCI < UserPool OCCI_USER_POOL = %q{ <% self.each{ |user| %> + <% if verbose %> + <%= user.to_occi(base_url) %> + <% else %> + <% end %> <% } %> } - # Creates the OCCI representation of a User Pool def to_occi(base_url) begin @@ -40,4 +41,8 @@ class UserPoolOCCI < UserPool return occi_text.gsub(/\n\s*/,'') end + + def factory(element_xml) + UserOCCI.new(element_xml,@client) + end end \ No newline at end of file diff --git a/src/cloud/occi/lib/VirtualMachinePoolOCCI.rb b/src/cloud/occi/lib/VirtualMachinePoolOCCI.rb index 55c9767c12..58a4eb6baa 100755 --- a/src/cloud/occi/lib/VirtualMachinePoolOCCI.rb +++ b/src/cloud/occi/lib/VirtualMachinePoolOCCI.rb @@ -14,22 +14,24 @@ # limitations under the License. # #--------------------------------------------------------------------------- # -require 'OpenNebula' - -include OpenNebula +require 'VirtualMachineOCCI' class VirtualMachinePoolOCCI < VirtualMachinePool OCCI_VM_POOL = %q{ - <% self.each{ |vm| %> + <% self.each{ |vm| %> + <% if verbose %> + <%= vm.to_occi(base_url) %> + <% else %> + <% end %> <% } %> } # Creates the OCCI representation of a Virtual Machine Pool - def to_occi(base_url) + def to_occi(base_url, verbose=false) begin occi = ERB.new(OCCI_VM_POOL) occi_text = occi.result(binding) @@ -40,5 +42,9 @@ class VirtualMachinePoolOCCI < VirtualMachinePool return occi_text.gsub(/\n\s*/,'') end + + def factory(element_xml) + VirtualMachineOCCI.new(element_xml,@client) + end end diff --git a/src/cloud/occi/lib/VirtualNetworkPoolOCCI.rb b/src/cloud/occi/lib/VirtualNetworkPoolOCCI.rb index 6772fefce9..3de2469ae9 100755 --- a/src/cloud/occi/lib/VirtualNetworkPoolOCCI.rb +++ b/src/cloud/occi/lib/VirtualNetworkPoolOCCI.rb @@ -14,15 +14,17 @@ # limitations under the License. # #--------------------------------------------------------------------------- # -require 'OpenNebula' - -include OpenNebula +require 'VirtualNetworkOCCI' class VirtualNetworkPoolOCCI < VirtualNetworkPool OCCI_NETWORK_POOL = %q{ - <% self.each{ |vn| %> + <% self.each{ |vn| %> + <% if verbose %> + <%= vn.to_occi(base_url) %> + <% else %> + <% end %> <% } %> } @@ -39,4 +41,8 @@ class VirtualNetworkPoolOCCI < VirtualNetworkPool return occi_text.gsub(/\n\s*/,'') end + + def factory(element_xml) + VirtualNetworkOCCI.new(element_xml,@client) + end end \ No newline at end of file