[one-users] OCCI syntax - [Wrong type! error] AND No ARCH defined BUG

Strutz, Marco marco.strutz at fokus-extern.fraunhofer.de
Tue Dec 21 07:04:05 PST 2010


Hi.

It works now. Thank you!!!

Nevertheless the syntax is very restrictive.
<TARGET>hda</TARGET>
produces "hda" as value BUT
<TARGET>
     hda
</TARGET>
produces  "/n     hda/n"

This can lead to serious problems during instantiate time during
parameter parsing by opennebula/libvirt/etc.


My final (working) template looks like this:
<COMPUTE>
<NAME>sl5.5</NAME>
<DISK>
<STORAGE href="http://localhost/storage/3"/>
<TARGET>hda</TARGET>
</DISK>
<INSTANCE_TYPE>small</INSTANCE_TYPE>
<NIC>
<NETWORK href="http://localhost/network/2" />
</NIC> <CONTEXT> <HOSTNAME>onevm</HOSTNAME>
<FILES>/srv/cloud/one/context/resources/software.tar.gz
/srv/cloud/one/context/resources/init.sh</FILES>
<TARGET>hdb</TARGET>
</CONTEXT>
</COMPUTE>






But: the first attempt with your new suggested template produced a new
error message:

$ occi-compute create template.xml
No such file or directory - /srv/cloud/one/etc/occi_templates/common.erb

I had manually copy it from the sources
(./src/cloud/occi/etc/templates.common.erb) to
/srv/cloud/one/etc/occi_templates/, although I previously run the update
command:
$ ./install -u oneadmin -g cloud -k -d /srv/cloud/one


Perhaps is it a bug in the update script?
Anyway, I'm glad the occi request works now.



So the 'git pull' solved my occi problem but it produced a new one:
My VM's cannot be instantiate anymore:
Vm.log --> [VMM] [E]: No ARCH defined and no default provided

I can resolve it by adding [1]
OS = [ ARCH="x86_64"]
to my one template BUT since "ARCH" is not part of the OGF OCCI
specification this can be a big problem?!

For my installation even the suggested modification (according to [2])
by manually setting the ARCH type in
$ONE_LOCATION/etc/vmm_ssh/vmm_ssh_kvm.conf
to
OS = [boot = "hd", ARCH="x86_64"]
didn't worked and resulted in the same error in the vm.log
"No ARCH defined and no default provided"


[1]
http://opennebula.org/documentation:rel2.0:template#os_and_boot_options_
section
[2] http://www.mail-archive.com/users@lists.opennebula.org/msg01222.html



Marco


-----Original Message-----
From: dmamolina at gmail.com [mailto:dmamolina at gmail.com] On Behalf Of
Daniel Molina Aranda
Sent: Tuesday, December 21, 2010 12:01 PM
To: Strutz, Marco
Cc: users at lists.opennebula.org
Subject: Re: [one-users] OCCI syntax - [Wrong type! error]

Hi,

On one hand the problem is the template that you are using. You are
asking for a disk linked to a storage resource and a nic linked to an
existing network, so that the template should be:

<COMPUTE>
       <NAME>sl5.5</NAME>
       <DISK>
               <STORAGE href="http://yourserver/storage/3" />
               <TARGET>hda</TARGET>
       </DISK>
       <NIC>
               <NETWORK href="http://yourserver/network/2" />
       </NIC>
       <INSTANCE_TYPE>small</INSTANCE_TYPE>
       <CONTEXT>
               <HOSTNAME>onevm</HOSTNAME>
               <FILES>/srv/cloud/one/context/resources/software.tar.gz
/srv/cloud/one/context/resources/init.sh</FILES>
               <TARGET>hdb</TARGET>
       </CONTEXT>
</COMPUTE>

For more information about OCCI usage [1], [2]

On the other hand there is a bug using xml templates that defines their
elements in more than one line, like this:

<COMPUTE>
       <NAME>
               foo
       </NAME>
       .....
</COMPUTE>


I have opened a ticket regarding this issue [3]

Hope this helps.

[1] http://www.opennebula.org/documentation:rel2.0:occiug
[2] http://www.opennebula.org/documentation:rel2.0:occidd
[3] http://dev.opennebula.org/issues/454

On 21 December 2010 10:36, Strutz, Marco
<marco.strutz at fokus-extern.fraunhofer.de> wrote:


	Hi.
	
	Thanks for helping.
	I have updated to the latest git-version but there is still the
same
	"Wrong Type!" message.
	
	Perhaps it is really a problem about the occi syntax? Is there a
way to
	validate it? Is it possible to manually add some debug-output to
the
	ruby code: which file is responsible for parsing the xml
description?
	
	
	Thanks
	Marco
	
	-----Original Message-----
	From: dmamolina at gmail.com [mailto:dmamolina at gmail.com] On Behalf
Of
	Daniel Molina Aranda
	Sent: Monday, December 20, 2010 11:18 AM
	To: Strutz, Marco
	Cc: users at lists.opennebula.org
	Subject: Re: [one-users] OCCI syntax - [Wrong type! error]
	
	
	Hi,
	
	The reason of that error is a typo in the common.erb file. It
was fixed
	in the last maintenance release. [1]
	
	In the python code, you have to use the VM template syntax [2],
because
	you are interacting with the core using the xmlrpc api.
	
	Hope this helps.
	
	[1]
	
http://dev.opennebula.org/projects/opennebula/repository/revisions/18361
	
ccfe643632aba5dd84e5128d8fbaa1774bb/diff/src/cloud/occi/etc/templates/co
<http://dev.opennebula.org/projects/opennebula/repository/revisions/1836
1
ccfe643632aba5dd84e5128d8fbaa1774bb/diff/src/cloud/occi/etc/templates/co
> 
	mmon.erb
	[2] http://www.opennebula.org/documentation:rel2.0:template
	
	
	On 20 December 2010 10:18, Strutz, Marco
	<marco.strutz at fokus-extern.fraunhofer.de> wrote:
	
	
	       Hi.
	
	       I want to use OpenNebula for dynamic instantiation of
virtual
	machines
	       by interfacing OCCI.
	       Unfortunately I'm facing some problems with the occi
template
	definition
	       syntax.
	       Can you please help with the "Wrong type!" error?
	
	
	
	
	       the problem:
	       ************
	       $ occi-compute create occiTemplate.xml
	       Wrong type!
	
	
	       --> "Wrong type!" is the response of the OCCIServer.
	'occi-compute'
	       works fine.
	
	
	
	       the template
	       *************
	       $ cat occiTemplate.xml
	       <COMPUTE>
	              <NAME>sl5.5</NAME>
	              <STORAGE>
	                      <DISK image="3" dev="hda" />
	              </STORAGE>
	              <NETWORK>
	                      <NIC network="2" />
	              </NETWORK>
	              <INSTANCE_TYPE>
	                              small
	              </INSTANCE_TYPE>
	              <CONTEXT>
	                      <HOSTNAME>
	                              onevm
	                      </HOSTNAME>
	                      <FILES>
	
	/srv/cloud/one/context/resources/software.tar.gz
	       /srv/cloud/one/context/resources/init.sh
	                      </FILES>
	                      <TARGET>
	                                   hdb
	                      </TARGET>
	              </CONTEXT>
	       </COMPUTE>
	
	
	
	
	
	
	
	       same template but this time as xmlrpc request
	       *********************************************
	       $ python xmlrpcDeploy.py
	       xmlrpc-response.status  = False
	       xmlrpc-response.message = [VirtualMachineAllocate] Error
trying
	to PARSE
	
	       VM TEMPLATE Returned error code [1].. Reason: syntax
error,
	unexpected
	       VARIABLE, expecting EQUAL or EQUAL_EMPTY at line 1,
columns
	15:19
	
	
	
	
	       python source for xmlrpc request
	       ********************************
	       $ cat xmlrpcDeploy.py
	       import xmlrpclib
	
server=xmlrpclib.ServerProxy("http://localhost:2633/RPC2")
	       oneAuth =
"oneadmin:7bc8559a8fe509e680562b85c337f170956fcb06"
	       template = (
	       '<COMPUTE>'
	       ' <NAME>sl5.5</NAME>'
	       ' <STORAGE>'
	       ' <DISK image="3" dev="hda" />'
	       ' </STORAGE>'
	       ' <NETWORK>'
	       ' <NIC network="2" />'
	       ' </NETWORK>'
	       ' <INSTANCE_TYPE>'
	       '        small'
	       ' </INSTANCE_TYPE>'
	       ' <CONTEXT>'
	       ' <HOSTNAME>'
	       '            onevm'
	       ' </HOSTNAME>'
	       ' <FILES>'
	       '
/srv/cloud/one/context/resources/software.tar.gz
	       /srv/cloud/one/context/resources/init.sh'
	       ' </FILES>'
	       ' <TARGET>'
	       '            hdb'
	       ' </TARGET>'
	       ' </CONTEXT>'
	       '</COMPUTE>'
	       )
	
	       response = server.one.vm.allocate(oneAuth, str(template))
	       status = str(response[0])
	       message = str(response[1])
	       print 'xmlrpc-response.status  = ' + status
	       print 'xmlrpc-response.message = ' + message
	
	
	
	
	       occi-server.log
	       **************
	       (...)
	       127.0.0.1 - - [17/Dec/2010 16:51:27] "POST /compute
HTTP/1.1"
	500 11
	       0.0016
	
	
	       one_xmlrpc.log
	       **************
	       (...)
	       127.0.0.1 -  - [17/Dec/2010:17:43:54 +0100] "POST" 200
463
	
	
	
	       --> no more hints
	
	
	        opennebula version
	       *******************
	       $ git log | head -n 3
	       commit 5f6b326c52a53fbc709c1c35bf1a301b1593a775
	       Author: Jaime Melis <j.melis at fdi.ucm.es>
	       Date:   Mon Nov 8 19:35:42 2010 +0100
	
	
	       python version
	       **************
	       $ python
	       Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
	       [GCC 4.4.3] on linux2
	
	
	
	
	       thanks in advance
	       Marco
	
	       _______________________________________________
	       Users mailing list
	       Users at lists.opennebula.org
	
http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
	
	
	
	
	
	--
	Daniel Molina, Cloud Technology Engineer/Researcher DSA Research
Group:
	web http://dsa-research.org and blog
http://blog.dsa-research.org
	OpenNebula Open Source Toolkit for Cloud Computing:
	http://www.OpenNebula.org
	
	




--
Daniel Molina, Cloud Technology Engineer/Researcher DSA Research Group:
web http://dsa-research.org and blog http://blog.dsa-research.org
OpenNebula Open Source Toolkit for Cloud Computing:
http://www.OpenNebula.org




More information about the Users mailing list