<html><body><div style="font-family: trebuchet ms,sans-serif; font-size: 12pt; color: #000000"><div><ol style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;"><li>OK, so you are quite defensive and rude about this for some reason</li></ol>You are suggesting modifying and maintaining (currently) 5 migrate scripts, then redistributing (and keeping up-to-date)</div><div>90 other scripts, just to cope with a current deficiency with the current mechanism available for add-ons with regards to</div><div>hooking into the current infrastructure. </div><div><br></div><div>That was me being restrained.</div><div><br></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">>I know it's not as elegant as the four line solution but point 2.</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;"><br></span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">To put it mildly. </span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;"><br></span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">I'm *not* trying to insist my solution is included, but there needs to be "a" solution and generating lots more</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;">duplicate code to install and redistribute simply isn't "it" and I'm more than a little shocked anyone would suggest it!</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;" data-mce-style="font-family: Helvetica, Arial, sans-serif;"><br></span></div><div><br></div><div><span name="x"></span><div><div><span size="2" style="font-size: small;" data-mce-style="font-size: small;">--</span></div><div><table class="mceItemTable"><tbody><tr><td><img src="http://linuxforums.org.uk/index.php?action=dlattach;attach=262;type=avatar" data-mce-src="http://linuxforums.org.uk/index.php?action=dlattach;attach=262;type=avatar" src="http://linuxforums.org.uk/index.php?action=dlattach;attach=262;type=avatar"></td><td><div><b style="font-family: verdana, Helvetica, sans-serif; font-size: 11px; line-height: 14px;" data-mce-style="font-family: verdana, Helvetica, sans-serif; font-size: 11px; line-height: 14px;">Gareth Bult</b><br><span color="#666666" style="color: #666666;" data-mce-style="color: #666666;"><span face="verdana, Helvetica, sans-serif" style="font-family: verdana, Helvetica, sans-serif;" data-mce-style="font-family: verdana, Helvetica, sans-serif;"><span style="font-size: 11px; line-height: 14px;" data-mce-style="font-size: 11px; line-height: 14px;">“The odds of hitting your target go up dramatically when you aim at it.”</span></span></span><span color="#666666" style="color: #666666;" data-mce-style="color: #666666;"><br></span><span color="#666666" style="color: #666666;" data-mce-style="color: #666666;"><span style="color: #666666; font-family: verdana, Helvetica, sans-serif; font-size: 11px; line-height: 14px;" data-mce-style="color: #666666; font-family: verdana, Helvetica, sans-serif; font-size: 11px; line-height: 14px;">See the status of my current project at <a data-mce-href="http://vdc-store.com" href="http://vdc-store.com" target="_blank">http://vdc-store.com</a></span></span></div><div><span color="#666666" style="color: #666666;" data-mce-style="color: #666666;"><span face="verdana, Helvetica, sans-serif" style="font-family: verdana, Helvetica, sans-serif;" data-mce-style="font-family: verdana, Helvetica, sans-serif;"><span style="font-size: 11px; line-height: 14px;" data-mce-style="font-size: 11px; line-height: 14px;"><br></span></span></span></div></td></tr></tbody></table></div></div><span name="x"></span><br></div><hr id="zwchr"><div style="color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>From: </b>"David Macleod" <dmacleod@csir.co.za><br><b>To: </b>"Gareth Bult" <gareth@linux.co.uk><br><b>Cc: </b>"Jaime Melis" <jmelis@opennebula.org>, dev@lists.opennebula.org<br><b>Sent: </b>Monday, 20 January, 2014 12:50:14 PM<br><b>Subject: </b>Re: [one-dev] Live migration / recovery - suggestions<br><div><br></div><div dir="ltr"><ol><li>OK, so you are quite defensive and rude about this for some reason.<br></li><li>The OpenNebula project has just said they don't want to change their code base to suit you, so your four line solution is off the table.<br>
</li><li>You don't need to write the vmm drivers from scratch. Just copy the three provided with ONE call them kvm-vdc, xen-vdc and vmware-vdc or something, then make your customization to them. I know it's not as elegant as the four line solution but point 2.</li>
</ol></div><div class="gmail_extra"><br><div><br></div><div class="gmail_quote">On Mon, Jan 20, 2014 at 2:23 PM, Gareth Bult <span dir="ltr"><<a href="mailto:gareth@linux.co.uk" target="_blank">gareth@linux.co.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-size:12pt;font-family:trebuchet ms,sans-serif"><div>Once I switch to a different vmm (say "vdc" rather than "kvm") , how will the system know to fall back on</div>
<div>the hypervisor in use for all the other scripts that I don't want to modify?</div><div class="im"><div><br></div><div><span></span><div><div><span style="font-size:small">--</span></div><div><table class="mceItemTable">
<tbody><tr><td><img src="http://linuxforums.org.uk/index.php?action=dlattach;attach=262;type=avatar" src="http://linuxforums.org.uk/index.php?action=dlattach;attach=262;type=avatar"></td><td><div><b style="font-family:verdana,Helvetica,sans-serif;font-size:11px;line-height:14px">Gareth Bult</b><br><span style="color:#666666"><span style="font-family:verdana,Helvetica,sans-serif"><span style="font-size:11px;line-height:14px">“The odds of hitting your target go up dramatically when you aim at it.”</span></span></span><span style="color:#666666"><br>
</span><span style="color:#666666"><span style="color:#666666;font-family:verdana,Helvetica,sans-serif;font-size:11px;line-height:14px">See the status of my current project at <a href="http://vdc-store.com" target="_blank">http://vdc-store.com</a></span></span></div>
<div><span style="color:#666666"><span style="font-family:verdana,Helvetica,sans-serif"><span style="font-size:11px;line-height:14px"><br></span></span></span></div></td>
</tr></tbody></table></div></div><span></span><br></div><hr></div><div style="font-size:12pt;font-style:normal;font-family:Helvetica,Arial,sans-serif;text-decoration:none;font-weight:normal"><div class="im"><b>From: </b>"David Macleod" <<a href="mailto:dmacleod@csir.co.za" target="_blank">dmacleod@csir.co.za</a>><br>
<b>To: </b>"Gareth Bult" <<a href="mailto:gareth@linux.co.uk" target="_blank">gareth@linux.co.uk</a>><br><b>Cc: </b>"Jaime Melis" <<a href="mailto:jmelis@opennebula.org" target="_blank">jmelis@opennebula.org</a>>, <a href="mailto:dev@lists.opennebula.org" target="_blank">dev@lists.opennebula.org</a><br>
</div><b>Sent: </b>Monday, 20 January, 2014 11:57:31 AM<div class="im"><br><b>Subject: </b>Re: [one-dev] Live migration / recovery - suggestions<br><div><br></div></div>No, you should write a basic framework around the migrate script that supports the three hypervisors that OpenNebula uses.<br>
<div><br></div>>>> Gareth Bult <<a href="mailto:gareth@linux.co.uk" target="_blank">gareth@linux.co.uk</a>> 2014/01/20 02:15 PM >>><div><div class="h5"><br><div style="font-size:12pt;font-family:trebuchet ms,sans-serif">
<div>Erm, yeah, Ok, should I include filters for the coffee machine too ?!<br></div><div><br></div><div><span></span><div><div><span style="FONT-SIZE:small">--</span></div><div><table class="mceItemTable"><tbody><tr><td><img src="https://mail.linux.co.uk/service/home/~/?auth=co&id=504676&part=4" src="https://mail.linux.co.uk/service/home/~/?auth=co&id=504676&part=4"></td>
<td><div><b style="FONT-SIZE:11px;FONT-FAMILY:verdana,Helvetica,sans-serif;LINE-HEIGHT:14px">Gareth Bult</b><br><span style="COLOR:#666666"><span style="FONT-FAMILY:verdana,Helvetica,sans-serif"><span style="FONT-SIZE:11px;LINE-HEIGHT:14px">“The odds of hitting your target go up dramatically when you aim at it.”</span></span></span><span style="COLOR:#666666"><br>
</span><span style="COLOR:#666666"><span style="FONT-SIZE:11px;FONT-FAMILY:verdana,Helvetica,sans-serif;COLOR:#666666;LINE-HEIGHT:14px">See the status of my current project at <a href="http://vdc-store.com" target="_blank">http://vdc-store.com</a></span></span></div>
<div><span style="COLOR:#666666"><span style="FONT-FAMILY:verdana,Helvetica,sans-serif"><span style="FONT-SIZE:11px;LINE-HEIGHT:14px"><br></span></span></span></div></td></tr></tbody></table></div></div><span></span><br></div>
<hr><div style="font-style:normal;font-size:12pt;font-family:Helvetica,Arial,sans-serif;text-decoration:none;font-weight:normal"><b>From: </b>"David Macleod" <<a href="mailto:dmacleod@csir.co.za" target="_blank">dmacleod@csir.co.za</a>><br>
<b>To: </b>"Gareth Bult" <<a href="mailto:gareth@linux.co.uk" target="_blank">gareth@linux.co.uk</a>><br><b>Cc: </b>"Jaime Melis" <<a href="mailto:jmelis@opennebula.org" target="_blank">jmelis@opennebula.org</a>>, <a href="mailto:dev@lists.opennebula.org" target="_blank">dev@lists.opennebula.org</a><br>
<b>Sent: </b>Monday, 20 January, 2014 11:50:26 AM<br><b>Subject: </b>Re: [one-dev] Live migration / recovery - suggestions<br><div><br></div>Then distribute a vmm driver per hypervisor...<br><div><br></div>>>> Gareth Bult <<a href="mailto:gareth@linux.co.uk" target="_blank">gareth@linux.co.uk</a>> 2014/01/20 02:01 PM >>><br>
<div style="font-size:12pt;font-family:trebuchet ms,sans-serif"><div>.. Erm, because the vmm driver is per-hypervisor .. and this product is technically<br></div><div>hypervisor agnostic .. ??</div><div><br></div><div><br>
</div><div><span></span><div><div><span style="FONT-SIZE:small">--</span></div><div><table class="mceItemTable"><tbody><tr><td><img src="https://mail.linux.co.uk/service/home/~/?auth=co&id=504676&part=2" src="https://mail.linux.co.uk/service/home/~/?auth=co&id=504676&part=2"></td><td><div><b style="FONT-SIZE:11px;FONT-FAMILY:verdana,Helvetica,sans-serif;LINE-HEIGHT:14px">Gareth Bult</b><br>
<span style="COLOR:#666666"><span style="FONT-FAMILY:verdana,Helvetica,sans-serif"><span style="FONT-SIZE:11px;LINE-HEIGHT:14px">“The odds of hitting your target go up dramatically when you aim at it.”</span></span></span><span style="COLOR:#666666"><br>
</span><span style="COLOR:#666666"><span style="FONT-SIZE:11px;FONT-FAMILY:verdana,Helvetica,sans-serif;COLOR:#666666;LINE-HEIGHT:14px">See the status of my current project at <a href="http://vdc-store.com" target="_blank">http://vdc-store.com</a></span></span></div>
<div><span style="COLOR:#666666"><span style="FONT-FAMILY:verdana,Helvetica,sans-serif"><span style="FONT-SIZE:11px;LINE-HEIGHT:14px"><br></span></span></span></div></td></tr></tbody></table></div></div><span></span><br></div>
<hr><div style="font-style:normal;font-size:12pt;font-family:Helvetica,Arial,sans-serif;text-decoration:none;font-weight:normal"><b>From: </b>"David Macleod" <<a href="mailto:dmacleod@csir.co.za" target="_blank">dmacleod@csir.co.za</a>><br>
<b>To: </b>"Gareth Bult" <<a href="mailto:gareth@linux.co.uk" target="_blank">gareth@linux.co.uk</a>>, "Jaime Melis" <<a href="mailto:jmelis@opennebula.org" target="_blank">jmelis@opennebula.org</a>><br>
<b>Cc: </b><a href="mailto:dev@lists.opennebula.org" target="_blank">dev@lists.opennebula.org</a><br><b>Sent: </b>Monday, 20 January, 2014 11:32:33 AM<br><b>Subject: </b>Re: [one-dev] Live migration / recovery - suggestions<br>
<div><br></div><div>Hi Gareth, Jaime</div><div> </div><div>Why can't the recovery be handled by the migrate script? You can distribute your own custom vmm driver so that it doesn't get overwritten by the updates. That's how I wrote my add-on, I also have the need to recover from a migrate fail.</div>
<div> </div><div>Regards,</div><div>David</div><div><br>>>> Jaime Melis <<a href="mailto:jmelis@opennebula.org" target="_blank">jmelis@opennebula.org</a>> 2014/01/20 12:43 PM >>><br></div><div dir="ltr">
<div>Hi Gareth,</div><div><br></div><div>we've been studying your proposal, and even though we agree with what you say we</div><div>aren't 100% convinced with this solution. The issues with the proposal are the</div>
<div>following:</div><div><br></div><div>- As long as it's possible, we'd like to keep separate the main opennebula code</div><div>and the addons. In this case it means that we are not very comfortable with</div><div>
point 3: adding addon-specific code to the main repository.</div><div><br></div><div>- The proposed solution only solves the "migrate" issue, but other addons will</div><div>have potentially issues with other scripts, and not necessarily with the</div>
<div>"CleanUp" part of the "ssh_exec_and_log". We would like to find a more general</div><div>solution.</div><div><br></div><div>We are still thinking about this, we definitely want to solve this issue, so if</div>
<div>you (or anyone else) has any ideas, please let us know.</div><div><br></div><div>cheers,</div><div>Jaime</div></div><div class="gmail_extra"><br><div><br></div><div class="gmail_quote">On Tue, Jan 14, 2014 at 2:23 PM, Gareth Bult <span dir="ltr"><<a href="mailto:gareth@linux.co.uk" target="_blank">gareth@linux.co.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:#ccc 1px solid"><div style="FONT-SIZE:12pt;FONT-FAMILY:trebuchet ms,sans-serif"><div>Hey Guys, I've done a little work on the migration script - <span style="FONT-SIZE:12pt">this is what I've done here ..</span></div>
<div><span style="FONT-SIZE:12pt">- be nice if something similar could be implemented @ source .. ?</span></div><div><br></div><div>1. ssh_exec_and_log (generic change - this could be useful elsewhere..) modify as follows;</div>
<div><p><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">function ssh_exec_and_log</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">{</span><br>
<span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">message=$2</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif"><span style="COLOR:rgb(255,0,0)">cleanup=$3 # ++</span></span></p>
<p><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">EXEC_LOG_ERR=`$1 2>&1 1>/dev/null`</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">EXEC_LOG_RC=$?</span></p>
<p><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">if [ $EXEC_LOG_RC -ne 0 ]; then</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">log_error "Command \"$1\" failed: $EXEC_LOG_ERR"</span><br>
<span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif"><span style="COLOR:rgb(255,0,0)">if [ ! -z $cleanup ]; then # ++</span></span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif;COLOR:rgb(255,0,0)">$cleanup # ++</span><br>
<span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif;COLOR:rgb(255,0,0)">fi # ++<br></span></p><p><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">if [ -n "$2" ]; then</span><br>
<span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">error_message "$2"</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">else</span><br>
<span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">error_message "Error executing $1: $EXEC_LOG_ERR"</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">fi</span><br>
<span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">return $EXEC_LOG_RC</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">fi</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">}</span></p>
</div><div>i.e. allow a third parameter which is a function to call if the exec fails.</div><div><br></div><div>2. migrate (for my vdc code), add <span style="FONT-SIZE:12pt">"CleanUp" as a last parameter on the exec_and_log on the last line</span></div>
<div><p><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">ssh_exec_and_log "virsh --connect $LIBVIRT_URI migrate --live $deploy_id $QEMU_PROTOCOL://$dest_host/system" \</span><br>
<span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">"Could not migrate $deploy_id to $dest_host" <span style="COLOR:rgb(255,0,0)">CleanUp</span></span></p></div><div>3. Then add the following function to migrate;</div>
<div><p><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">function CleanUp</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">{</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">VDC=$(dirname $0)/../../../vdc-nebula</span><br>
<span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">if [ -d "${VDC}" ]; then</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">${VDC}/remotes/tm/vdc/postmigrate_fail ${deploy_id} ${dest_host}</span><br>
<span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">fi</span><br><span style="FONT-FAMILY:'courier new',courier,monaco,monospace,sans-serif">}</span></p><p><span style="FONT-SIZE:12pt">Cleanup could be extended for other storage options ... ??<br>
I guess ideally you would pass the driver through and CleanUp would become completely generic and postmigrate_fail<br>would become just another standard routine??</span></p><p><br></p></div><div><div></div><span></span></div></div></blockquote></div></div></div></div></div></div></div></div></div></div></blockquote></div></div></div></div></body></html>