<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<div class="moz-cite-prefix">On 11/26/2013 03:04 PM, Simon Boulet
wrote:<br>
</div>
<blockquote
cite="mid:CAEWtS+EqNuyNLrRt3865H6r8pKHq5SUVxFZobG6TkpX6aCz75A@mail.gmail.com"
type="cite">
<div dir="ltr">Bonjour Olivier,
<div><br>
</div>
<div>I think there are two issues in your question.<br>
<div><br>
</div>
<div class="gmail_extra">
<div class="gmail_quote">On Tue, Nov 26, 2013 at 5:55 AM,
Olivier Sallou <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:olivier.sallou@irisa.fr" target="_blank">olivier.sallou@irisa.fr</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div> <br>
<div>On 11/26/2013 11:51 AM, Olivier Sallou wrote:<br>
</div>
<blockquote type="cite"> <br>
<div>On 11/26/2013 11:14 AM, Carlos Martín Sánchez
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>stored in VM/USER_TEMPLATE. You can see
this with the onevm show -x command. The
onevm update action only allows to edit the
USER_TEMPLATE attributes, and as you
described, the create hook is triggered
after the VM has been correctly created.</div>
<div><br>
</div>
</div>
</blockquote>
</blockquote>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>First, yes, you can use the VM CREATE hooks to inject
or change the USER_TEMPLATE attributes by issuing the
onevm update action. To prevent VMs from being deployed
before the hooks has run, you can set VM_SUBMIT_ON_HOLD
= "YES", and have your hook do a onevm release at the
end of its execution for the scheduler to pick and
deploy the VM. This will make sure that when the VM is
deployed, the template contains all the attributes you
wanted.</div>
<div>
<div><br>
</div>
<div>You can also do some extra sanitization / filtering
and not allow the VM to be deployed if contains some
missing attributes, etc. by not calling the onevm
release at the end.</div>
</div>
<div><br>
</div>
<div>This works very well for us. In fact, we do some
heavy stuff in the hooks, such as attaching additional
IP addresses, attaching or detaching disks, etc.
dynamically according to external sources, such as the
OpenNebula user template (but also external databases,
CRM, etc.)</div>
</div>
</div>
</div>
</div>
</blockquote>
My hook job is ok regarding vm user_template update, I tried with
and without VM_SUBMIT_ON_HOLD (thanks for the hint), but I have the
same issue, my user_template variables are not set in the context.sh
file.<br>
<blockquote
cite="mid:CAEWtS+EqNuyNLrRt3865H6r8pKHq5SUVxFZobG6TkpX6aCz75A@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div class="gmail_extra">
<div class="gmail_quote">
<div><span style="color:rgb(80,0,80)"> </span><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>
<blockquote type="cite"> What I expect is to get my
USER_TEMPLATE in the context.sh mounted in my VM.<br>
<br>
A basic use case is to generate a unique password
for a web application running in the VM. I'd like
to generate the passsword with a hook and send the
password to the user by mail (until here, this is
fine). The generated password is also in the VM
context/template so that it appears in the
context.sh of the VM. At startup, a specific init
script read the VM contextualization and init the
web application with the password provided.<br>
</blockquote>
</div>
The above example could be managed directly in the VM,
without specific contextualization, but there are
cases where some variables could be user dependent, so
those variables would need to be set dynamically on
opennebula server side.
<div>
<div><br>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div><br>
</div>
<div>Perhaps that's the real problem here... I'm not very
familiar with context.sh script. Is the entire VM
template available (including the USER_TEMPLATE) or only
the CONTEXT section?</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
user_template is not set by itelf in the vm context file, only the
context. But in my context, I add variables that refer to
USER_TEMPLATE (but it is right that there are not set in first
place, only after hooks). So it seems that we can refer to
USER_TEMPLATE var, but only if there are predefined, not added in a
hook (template not regenerated/calculated).<br>
<br>
the best would be to have user_template vars added to the context.sh
file in addition to the one in the vm template, AFTER the hooks.<br>
<br>
Olivier<br>
<blockquote
cite="mid:CAEWtS+EqNuyNLrRt3865H6r8pKHq5SUVxFZobG6TkpX6aCz75A@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div>Simon</div>
</div>
<br>
</div>
</div>
</div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Olivier Sallou
IRISA / University of Rennes 1
Campus de Beaulieu, 35000 RENNES - FRANCE
Tel: 02.99.84.71.95
gpg key id: 4096R/326D8438 (keyring.debian.org)
Key fingerprint = 5FB4 6F83 D3B9 5204 6335 D26D 78DC 68DB 326D 8438
</pre>
</body>
</html>