]> xenbits.xensource.com Git - libvirt.git/commitdiff
* include/libvirt.h[.in] src/driver.h src/libvirt.c
authorDaniel Veillard <veillard@redhat.com>
Mon, 3 Apr 2006 13:46:43 +0000 (13:46 +0000)
committerDaniel Veillard <veillard@redhat.com>
Mon, 3 Apr 2006 13:46:43 +0000 (13:46 +0000)
  src/libvirt_sym.version src/*_internal.[ch]: added an entry
  point for reboot and corresponding driver plug
* src/virsh.c: added a reboot option using it
* docs/*: regenerated
Daniel

23 files changed:
ChangeLog
docs/APIchunk0.html
docs/APIchunk1.html
docs/APIchunk2.html
docs/APIfiles.html
docs/APIfunctions.html
docs/APIsymbols.html
docs/html/libvirt-libvirt.html
docs/libvirt-api.xml
docs/libvirt-refs.xml
include/libvirt.h
include/libvirt.h.in
include/libvirt/libvirt.h
include/libvirt/libvirt.h.in
src/driver.h
src/libvirt.c
src/libvirt_sym.version
src/virsh.c
src/xen_internal.c
src/xend_internal.c
src/xend_internal.h
src/xs_internal.c
src/xs_internal.h

index 9f56346dba04de387aa712dca7ce041410be5114..0f11bb18c941c755a25b21c2572e02147ace44cb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Mon Apr  3 14:46:39 EDT 2006 Daniel Veillard <veillard@redhat.com>
+
+       * include/libvirt.h[.in] src/driver.h src/libvirt.c 
+         src/libvirt_sym.version src/*_internal.[ch]: added an entry
+         point for reboot and corresponding driver plug
+       * src/virsh.c: added a reboot option using it
+       * docs/*: regenerated 
+
 Thu Mar 30 16:38:18 EST 2006 Daniel Veillard <veillard@redhat.com>
 
        * src/xend_internal.c: applied patch from Daniel P. Berrange,
index 2b79cfcf911898c5cf8b09577782112425267f69..63587f9a4f5d18185394fd979151ca581204ad32 100644 (file)
@@ -57,6 +57,7 @@
 <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
 </dd><dt>NUMA</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
 </dd><dt>Note</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 </dd></dl><h2>Letter O:</h2><dl><dt>OUT</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
 <a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
@@ -68,6 +69,7 @@
 </dd><dt>Provides</dt><dd><a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
 <a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
 </dd></dl><h2>Letter R:</h2><dl><dt>Read-Only</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
+</dd><dt>Reboot</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 </dd><dt>Reset</dt><dd><a href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a><br />
 <a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
 <a href="html/libvirt-virterror.html#virResetLastError">virResetLastError</a><br />
 <a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
 </dd><dt>add</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
-</dd><dt>after</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
+</dd><dt>after</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
+<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
 <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 </dd><dt>against</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
 </dd><dt>alive</dt><dd><a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
-</dd><dt>being</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
+</dd><dt>being</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
+<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 <a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
 <a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
 </dd><dt>better</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
 </dd><dt>block</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
 </dd><dt>but</dt><dd><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
 <a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
index 8db336fee282cdd50ede12340a0d70bf841dec42..63cc24dba9456798aa6f5def2d423ba81b1d2480 100644 (file)
@@ -27,6 +27,7 @@
 </dd><dt>especially</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
 </dd><dt>expected</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
 </dd><dt>extra</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 </dd><dt>extracted</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
 <a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
 </dd><dt>extraction</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
@@ -37,6 +38,7 @@
 <a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
 <a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
@@ -51,6 +53,7 @@
 </dd><dt>first</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
 <a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
 </dd><dt>flags</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 </dd><dt>for</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
 <a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
 <a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
@@ -60,6 +63,7 @@
 <a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
 <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 <a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
 </dd><dt>global</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
 <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
 </dd><dt>guest</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 </dd></dl><h2>Letter h:</h2><dl><dt>handler</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
 <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
 </dd><dt>have</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
 </dd><dt>how</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
 </dd><dt>human-readable</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
-</dd></dl><h2>Letter i:</h2><dl><dt>ignore</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
+</dd></dl><h2>Letter i:</h2><dl><dt>ignore</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
+<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 </dd><dt>image</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
 </dd><dt>indicating</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
 </dd><dt>information</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
 <a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
 <a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
 <a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
 <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
index 1973107b1f9bd77a8b0c06695fb4f1307e76dff5..72473307f543024b6d879e5602da4636d66c2c7c 100644 (file)
@@ -29,6 +29,7 @@
 <a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
 <a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
 <a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
 <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 <a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
@@ -53,6 +54,7 @@
 <a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
@@ -65,6 +67,7 @@
 </dd><dt>only</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
 <a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
 </dd><dt>operation</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 </dd><dt>option</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 </dd><dt>optional</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
 <a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
 <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
 </dd><dt>ramdisk</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
 </dd><dt>reactivate</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
-</dd><dt>reboot</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
+</dd><dt>reboot</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
+<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 </dd><dt>receive</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
 <a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
 </dd><dt>relaunch</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
 </dd><dt>release</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
 <a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
 </dd><dt>reporting</dt><dd><a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
-</dd><dt>request</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
+</dd><dt>request</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
+<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 </dd><dt>requires</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
 <a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
 <a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
 <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
 </dd><dt>resources</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
+</dd><dt>restart</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 </dd><dt>restarted</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
 </dd><dt>restore</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
 </dd><dt>stay</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
 </dd><dt>stderr</dt><dd><a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
 <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
-</dd><dt>still</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
-</dd><dt>stopped</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
+</dd><dt>still</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
+<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
+</dd><dt>stopped</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
+<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
 </dd><dt>store</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
 <a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
 </dd><dt>string</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
 <a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
 <a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
 <a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
 <a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
index ce70802c0c96c153449b8392823736c82715e329..dbf3b0e94c7fdbe7fe7cf39f4b6e3bc3f14fbc24 100644 (file)
@@ -50,6 +50,7 @@
 <a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
 <a href="html/libvirt-libvirt.html#virDomainPtr">virDomainPtr</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainRestart">virDomainRestart</a><br />
 <a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
 <a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
index 4f6834dd3f6a950f06327c82b74e08abe3d2797a..27170a689eacf78d6fa4eefa8f1168ccc0a41076 100644 (file)
@@ -4,6 +4,7 @@
 </p><h2>Type int *:</h2><p><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
 </p><h2>Type unsigned char *:</h2><p><a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
 </p><h2>Type unsigned int:</h2><p><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 </p><h2>Type unsigned long:</h2><p><a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
 </p><h2>Type unsigned long *:</h2><p><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
 <a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
@@ -32,6 +33,7 @@
 <a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
 <a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
 <a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
 <a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
index 7c7e8f7bb45c6f81ab9d59ac519dad6221179f32..c44eb90909a10ac3ace73170ce608cdb019225ff 100644 (file)
@@ -94,6 +94,7 @@
 <a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
 <a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
 <a href="html/libvirt-libvirt.html#virDomainPtr">virDomainPtr</a><br />
+<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
 <a href="html/libvirt-libvirt.html#virDomainRestart">virDomainRestart</a><br />
 <a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
 <a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
index f2a2977a5bfd67d476c0329fac7ce1d205f1abc5..c06d0ef2cc355f6bb5216a7df1c27a6c80f38494 100644 (file)
@@ -36,6 +36,7 @@ The content of this structure is not made public by the API.
 <pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a>       <a href="#virDomainLookupByID">virDomainLookupByID</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     int id)</pre>
 <pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a>       <a href="#virDomainLookupByName">virDomainLookupByName</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * name)</pre>
 <pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a>       <a href="#virDomainLookupByUUID">virDomainLookupByUUID</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const unsigned char * uuid)</pre>
+<pre class="programlisting">int        <a href="#virDomainReboot">virDomainReboot</a>                  (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br />                                     unsigned int flags)</pre>
 <pre class="programlisting">int        <a href="#virDomainRestore">virDomainRestore</a>                (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * from)</pre>
 <pre class="programlisting">int        <a href="#virDomainResume">virDomainResume</a>                  (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
 <pre class="programlisting">int        <a href="#virDomainSave">virDomainSave</a>                      (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br />                                     const char * to)</pre>
@@ -145,7 +146,9 @@ The content of this structure is not made public by the API.
 </pre><p>Try to lookup a domain on the given hypervisor based on its name.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainLookupByUUID" id="virDomainLookupByUUID"></a>Function: virDomainLookupByUUID</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a>     virDomainLookupByUUID   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const unsigned char * uuid)<br />
 </pre><p>Try to lookup a domain on the given hypervisor based on its UUID.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>uuid</tt></i>:</span></td><td>the UUID string for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainRestore" id="virDomainRestore"></a>Function: virDomainRestore</h3><pre class="programlisting">int  virDomainRestore                (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * from)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>uuid</tt></i>:</span></td><td>the UUID string for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainReboot" id="virDomainReboot"></a>Function: virDomainReboot</h3><pre class="programlisting">int     virDomainReboot                 (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br />                                     unsigned int flags)<br />
+</pre><p>Reboot a domain, the domain object is still usable there after but the domain OS is being stopped for a restart. Note that the guest OS may ignore the request.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>extra flags for the reboot operation, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainRestore" id="virDomainRestore"></a>Function: virDomainRestore</h3><pre class="programlisting">int       virDomainRestore                (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * from)<br />
 </pre><p>This method will restore a domain saved to disk by virDomainSave().</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>path to the</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainResume" id="virDomainResume"></a>Function: virDomainResume</h3><pre class="programlisting">int       virDomainResume                 (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
 </pre><p>Resume an suspended domain, the process is restarted from the state where it was frozen by calling virSuspendDomain(). This function may requires priviledged access</p>
index 15186f30e77527513557989ed8bbbc138ad12289..67b86867a43f3abcf91298d327a6155eefb7d85a 100644 (file)
@@ -60,6 +60,7 @@
      <exports symbol='virConnectOpen' type='function'/>
      <exports symbol='virDomainSuspend' type='function'/>
      <exports symbol='virConnectClose' type='function'/>
+     <exports symbol='virDomainReboot' type='function'/>
      <exports symbol='virInitialize' type='function'/>
      <exports symbol='virDomainGetID' type='function'/>
      <exports symbol='virDomainResume' type='function'/>
       <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
       <arg name='uuid' type='const unsigned char *' info='the UUID string for the domain'/>
     </function>
+    <function name='virDomainReboot' file='libvirt' module='libvirt'>
+      <info>Reboot a domain, the domain object is still usable there after but the domain OS is being stopped for a restart. Note that the guest OS may ignore the request.</info>
+      <return type='int' info='0 in case of success and -1 in case of failure.'/>
+      <arg name='domain' type='virDomainPtr' info='a domain object'/>
+      <arg name='flags' type='unsigned int' info='extra flags for the reboot operation, not used yet'/>
+    </function>
     <function name='virDomainRestore' file='libvirt' module='libvirt'>
       <info>This method will restore a domain saved to disk by virDomainSave().</info>
       <return type='int' info='0 in case of success and -1 in case of failure.'/>
index 61f80078ac6fb46d31bcbb8f115ac7c3105b5c58..0ccfc12271a0965b19f93a28582470187fabe56b 100644 (file)
@@ -95,6 +95,7 @@
     <reference name='virDomainLookupByName' href='html/libvirt-libvirt.html#virDomainLookupByName'/>
     <reference name='virDomainLookupByUUID' href='html/libvirt-libvirt.html#virDomainLookupByUUID'/>
     <reference name='virDomainPtr' href='html/libvirt-libvirt.html#virDomainPtr'/>
+    <reference name='virDomainReboot' href='html/libvirt-libvirt.html#virDomainReboot'/>
     <reference name='virDomainRestart' href='html/libvirt-libvirt.html#virDomainRestart'/>
     <reference name='virDomainRestore' href='html/libvirt-libvirt.html#virDomainRestore'/>
     <reference name='virDomainResume' href='html/libvirt-libvirt.html#virDomainResume'/>
       <ref name='virDomainLookupByName'/>
       <ref name='virDomainLookupByUUID'/>
       <ref name='virDomainPtr'/>
+      <ref name='virDomainReboot'/>
       <ref name='virDomainRestart'/>
       <ref name='virDomainRestore'/>
       <ref name='virDomainResume'/>
     </type>
     <type name='unsigned int'>
       <ref name='virDomainCreateLinux'/>
+      <ref name='virDomainReboot'/>
     </type>
     <type name='unsigned long'>
       <ref name='virDomainSetMaxMemory'/>
       <ref name='virDomainGetOSType'/>
       <ref name='virDomainGetUUID'/>
       <ref name='virDomainGetXMLDesc'/>
+      <ref name='virDomainReboot'/>
       <ref name='virDomainResume'/>
       <ref name='virDomainSave'/>
       <ref name='virDomainSetMaxMemory'/>
       <ref name='virDomainLookupByName'/>
       <ref name='virDomainLookupByUUID'/>
       <ref name='virDomainPtr'/>
+      <ref name='virDomainReboot'/>
       <ref name='virDomainRestart'/>
       <ref name='virDomainRestore'/>
       <ref name='virDomainResume'/>
         </word>
         <word name='Note'>
           <ref name='virDomainGetInfo'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         </word>
       </letter>
         <word name='Read-Only'>
           <ref name='virConnectGetVersion'/>
         </word>
+        <word name='Reboot'>
+          <ref name='virDomainReboot'/>
+        </word>
         <word name='Reset'>
           <ref name='virConnResetLastError'/>
           <ref name='virResetError'/>
           <ref name='virDomainShutdown'/>
         </word>
         <word name='after'>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainSave'/>
           <ref name='virDomainShutdown'/>
         </word>
           <ref name='virDomainLookupByUUID'/>
         </word>
         <word name='being'>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
           <ref name='virErrorFunc'/>
           <ref name='virResetError'/>
         </word>
         <word name='but'>
           <ref name='virConnGetLastError'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
           <ref name='virDomainSuspend'/>
           <ref name='virGetLastError'/>
         </word>
         <word name='extra'>
           <ref name='_virError'/>
+          <ref name='virDomainReboot'/>
         </word>
         <word name='extracted'>
           <ref name='virConnectGetVersion'/>
           <ref name='virDomainLookupByID'/>
           <ref name='virDomainLookupByName'/>
           <ref name='virDomainLookupByUUID'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainRestore'/>
           <ref name='virDomainResume'/>
           <ref name='virDomainSave'/>
         </word>
         <word name='flags'>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virDomainReboot'/>
         </word>
         <word name='for'>
           <ref name='_virDomainInfo'/>
           <ref name='virDomainGetUUID'/>
           <ref name='virDomainLookupByName'/>
           <ref name='virDomainLookupByUUID'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainSave'/>
           <ref name='virDomainShutdown'/>
           <ref name='virErrorFunc'/>
         </word>
         <word name='guest'>
           <ref name='virDomainCreateLinux'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         </word>
       </letter>
       </letter>
       <letter name='i'>
         <word name='ignore'>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         </word>
         <word name='image'>
           <ref name='virDomainCreateLinux'/>
           <ref name='virDomainDestroy'/>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainResume'/>
           <ref name='virDomainSave'/>
           <ref name='virDomainShutdown'/>
           <ref name='virDomainFree'/>
           <ref name='virDomainGetName'/>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainSave'/>
           <ref name='virDomainShutdown'/>
           <ref name='virGetLastError'/>
           <ref name='virDomainLookupByID'/>
           <ref name='virDomainLookupByName'/>
           <ref name='virDomainLookupByUUID'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainResume'/>
           <ref name='virDomainSave'/>
           <ref name='virDomainSetMaxMemory'/>
         </word>
         <word name='operation'>
           <ref name='virDomainGetOSType'/>
+          <ref name='virDomainReboot'/>
         </word>
         <word name='option'>
           <ref name='virDomainShutdown'/>
           <ref name='virDomainSuspend'/>
         </word>
         <word name='reboot'>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         </word>
         <word name='receive'>
           <ref name='virDefaultErrorFunc'/>
         </word>
         <word name='request'>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         </word>
         <word name='requires'>
           <ref name='virDomainDestroy'/>
           <ref name='virDomainSuspend'/>
         </word>
+        <word name='restart'>
+          <ref name='virDomainReboot'/>
+        </word>
         <word name='restarted'>
           <ref name='virDomainResume'/>
         </word>
           <ref name='virSetErrorFunc'/>
         </word>
         <word name='still'>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         </word>
         <word name='stopped'>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         </word>
         <word name='store'>
           <ref name='virDomainFree'/>
           <ref name='virDomainGetInfo'/>
           <ref name='virDomainGetUUID'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainRestore'/>
           <ref name='virDomainResume'/>
           <ref name='virDomainSave'/>
           <ref name='virConnResetLastError'/>
           <ref name='virDomainGetInfo'/>
           <ref name='virDomainGetName'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         </word>
         <word name='their'>
         </word>
         <word name='there'>
           <ref name='virConnectClose'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
           <ref name='virErrorFunc'/>
           <ref name='virSetErrorFunc'/>
         </word>
         <word name='usable'>
           <ref name='virConnectOpenReadOnly'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         </word>
         <word name='use'>
           <ref name='virDomainFree'/>
           <ref name='virDomainGetInfo'/>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virDomainReboot'/>
           <ref name='virDomainSuspend'/>
         </word>
         <word name='user'>
       <letter name='y'>
         <word name='yet'>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virDomainReboot'/>
         </word>
       </letter>
       <letter name='z'>
index 364a5894cc9949b3c017c6e630310092bba85a13..02ca8c21972e81894b47843ac88a2aa1af97b2e5 100644 (file)
@@ -230,6 +230,8 @@ virDomainPtr                virDomainLookupByID     (virConnectPtr conn,
 virDomainPtr           virDomainLookupByUUID   (virConnectPtr conn,
                                                 const unsigned char *uuid);
 int                    virDomainShutdown       (virDomainPtr domain);
+int                    virDomainReboot         (virDomainPtr domain,
+                                                unsigned int flags);
 int                    virDomainDestroy        (virDomainPtr domain);
 int                    virDomainFree           (virDomainPtr domain);
 
index b596712b2b781fa3c3bd0ff2bcf05802c02a8a22..a73c46ac93f275b781b383ef595bdaf902858d45 100644 (file)
@@ -230,6 +230,8 @@ virDomainPtr                virDomainLookupByID     (virConnectPtr conn,
 virDomainPtr           virDomainLookupByUUID   (virConnectPtr conn,
                                                 const unsigned char *uuid);
 int                    virDomainShutdown       (virDomainPtr domain);
+int                    virDomainReboot         (virDomainPtr domain,
+                                                unsigned int flags);
 int                    virDomainDestroy        (virDomainPtr domain);
 int                    virDomainFree           (virDomainPtr domain);
 
index 364a5894cc9949b3c017c6e630310092bba85a13..02ca8c21972e81894b47843ac88a2aa1af97b2e5 100644 (file)
@@ -230,6 +230,8 @@ virDomainPtr                virDomainLookupByID     (virConnectPtr conn,
 virDomainPtr           virDomainLookupByUUID   (virConnectPtr conn,
                                                 const unsigned char *uuid);
 int                    virDomainShutdown       (virDomainPtr domain);
+int                    virDomainReboot         (virDomainPtr domain,
+                                                unsigned int flags);
 int                    virDomainDestroy        (virDomainPtr domain);
 int                    virDomainFree           (virDomainPtr domain);
 
index b596712b2b781fa3c3bd0ff2bcf05802c02a8a22..a73c46ac93f275b781b383ef595bdaf902858d45 100644 (file)
@@ -230,6 +230,8 @@ virDomainPtr                virDomainLookupByID     (virConnectPtr conn,
 virDomainPtr           virDomainLookupByUUID   (virConnectPtr conn,
                                                 const unsigned char *uuid);
 int                    virDomainShutdown       (virDomainPtr domain);
+int                    virDomainReboot         (virDomainPtr domain,
+                                                unsigned int flags);
 int                    virDomainDestroy        (virDomainPtr domain);
 int                    virDomainFree           (virDomainPtr domain);
 
index fd5af748af6ccb63f06011b2575ef3d5e6725bb3..5489e7fcba094955871dff947aa9a784b47d6787 100644 (file)
@@ -59,6 +59,9 @@ typedef int
        (*virDrvDomainResume)           (virDomainPtr domain);
 typedef int
        (*virDrvDomainShutdown)         (virDomainPtr domain);
+typedef int
+       (*virDrvDomainReboot)           (virDomainPtr domain,
+                                        unsigned int flags);
 typedef int
        (*virDrvDomainDestroy)          (virDomainPtr domain);
 typedef int
@@ -113,6 +116,7 @@ struct _virDriver {
        virDrvDomainSuspend             domainSuspend;
        virDrvDomainResume              domainResume;
        virDrvDomainShutdown            domainShutdown;
+       virDrvDomainReboot              domainReboot;
        virDrvDomainDestroy             domainDestroy;
        virDrvDomainFree                domainFree;
        virDrvDomainGetName             domainGetName;
index 99ba6e505444fad0e614c8312c2c699307128afb..b10c206293dae770cc74b9eddeaad8893ece25af 100644 (file)
@@ -664,9 +664,7 @@ virDomainLookupByID(virConnectPtr conn, int id)
     return (ret);
   error:
     if (ret != NULL)
-        free(path);
-    if (path != NULL)
-        free(path);
+        free(ret);
     if (path != NULL)
         free(path);
     return (NULL);
@@ -1042,6 +1040,47 @@ virDomainShutdown(virDomainPtr domain)
     return (ret);
 }
 
+/**
+ * virDomainReboot:
+ * @domain: a domain object
+ * @flags: extra flags for the reboot operation, not used yet
+ *
+ * Reboot a domain, the domain object is still usable there after but
+ * the domain OS is being stopped for a restart.
+ * Note that the guest OS may ignore the request.
+ *
+ * Returns 0 in case of success and -1 in case of failure.
+ */
+int
+virDomainReboot(virDomainPtr domain, unsigned int flags)
+{
+    int ret;
+
+    if (!VIR_IS_CONNECTED_DOMAIN(domain)) {
+        virLibDomainError(domain, VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
+        return (-1);
+    }
+
+    /*
+     * try first with the xend daemon
+     */
+    ret = xenDaemonDomainReboot(domain, flags);
+    if (ret == 0) {
+        domain->flags |= DOMAIN_IS_SHUTDOWN;
+        return (0);
+    }
+
+    /*
+     * this is very hackish, the domU kernel probes for a special 
+     * node in the xenstore and launch the shutdown command if found.
+     */
+    ret = xenDaemonDomainReboot(domain, flags);
+    if (ret == 0) {
+        domain->flags |= DOMAIN_IS_SHUTDOWN;
+    }
+    return (ret);
+}
+
 /**
  * virDomainGetName:
  * @domain: a domain object
index 618f42877d6d9960c8d5d1101e7b1834697c28d1..077e5ee6e8e7f6c04e67b778c07b784b7d23d82b 100644 (file)
@@ -26,6 +26,7 @@
        virDomainSave;
        virDomainSetMaxMemory;
        virDomainShutdown;
+       virDomainReboot;
        virDomainSuspend;
        virGetVersion;
        virCopyLastError;
index 6c7a001fd01ab39dc507d8b572dd2eae44469765..39c3665bd3eeba7a56cf7b1204e8092666f17b18 100644 (file)
@@ -635,6 +635,45 @@ cmdShutdown(vshControl * ctl, vshCmd * cmd)
     return ret;
 }
 
+/*
+ * "reboot" command
+ */
+static vshCmdInfo info_reboot[] = {
+    {"syntax", "reboot <domain>"},
+    {"help", "reboot a domain"},
+    {"desc", "Run a reboot command in the targetted domain"},
+    {NULL, NULL}
+};
+
+static vshCmdOptDef opts_reboot[] = {
+    {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name or id"},
+    {NULL, 0, 0, NULL}
+};
+
+static int
+cmdReboot(vshControl * ctl, vshCmd * cmd)
+{
+    virDomainPtr dom;
+    int ret = TRUE;
+    char *name;
+
+    if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
+        return FALSE;
+
+    if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &name)))
+        return FALSE;
+
+    if (virDomainReboot(dom, 0) == 0) {
+        vshPrint(ctl, VSH_MESG, "Domain %s is being rebooted\n", name);
+    } else {
+        vshError(ctl, FALSE, "Failed to reboot domain\n");
+        ret = FALSE;
+    }
+
+    virDomainFree(dom);
+    return ret;
+}
+
 /*
  * "destroy" command
  */
@@ -961,6 +1000,7 @@ static vshCmdDef commands[] = {
     {"save", cmdSave, opts_save, info_save},
     {"restore", cmdRestore, opts_restore, info_restore},
     {"shutdown", cmdShutdown, opts_shutdown, info_shutdown},
+    {"reboot", cmdReboot, opts_reboot, info_reboot},
     {"destroy", cmdDestroy, opts_destroy, info_destroy},
     {"help", cmdHelp, opts_help, info_help},
     {"idof", cmdIdof, opts_idof, info_idof},
index ccfc7cfdf80435ebc07506041fc8b3fccd402bcf..b579831367e8cc46f844d8ada9f293a3ff58f93e 100644 (file)
@@ -57,6 +57,7 @@ static virDriver xenHypervisorDriver = {
     xenHypervisorPauseDomain, /* domainSuspend */
     xenHypervisorResumeDomain, /* domainResume */
     NULL, /* domainShutdown */
+    NULL, /* domainReboot */
     xenHypervisorDestroyDomain, /* domainDestroy */
     NULL, /* domainFree */
     NULL, /* domainGetName */
index f1771c9dcc048e6b04930beafec94b1bd62e56c3..03ba2a7ccf8fefeb313d88cda99991bbdd6a564a 100644 (file)
@@ -55,6 +55,7 @@ static virDriver xenDaemonDriver = {
     xenDaemonDomainSuspend, /* domainSuspend */
     xenDaemonDomainResume, /* domainResume */
     xenDaemonDomainShutdown, /* domainShutdown */
+    xenDaemonDomainReboot, /* domainReboot */
     xenDaemonDomainDestroy, /* domainDestroy */
     NULL, /* domainFree */
     NULL, /* domainGetName */
@@ -965,26 +966,6 @@ xend_rename(virConnectPtr xend, const char *old, const char *new)
     return xend_op(xend, old, "op", "rename", "name", new, NULL);
 }
 
-/**
- * xend_reboot:
- * @xend: pointer to the Xem Daemon block
- * @name: name for the domain
- *
- * Reboot the domain, the OS is properly shutdown and restarted
- *
- * Returns 0 in case of success, -1 (with errno) in case of error.
- */
-int
-xend_reboot(virConnectPtr xend, const char *name)
-{
-    if ((xend == NULL) || (name == NULL)) {
-        /* this should be caught at the interface but ... */
-        virXendError(xend, VIR_ERR_INVALID_ARG, __FUNCTION__);
-        return (-1);
-    }
-    return xend_op(xend, name, "op", "shutdown", "reason", "reboot", NULL);
-}
-
 /**
  * xend_sysrq:
  * @xend: pointer to the Xem Daemon block
@@ -1768,6 +1749,28 @@ xenDaemonDomainShutdown(virDomainPtr domain)
     return xend_op(domain->conn, domain->name, "op", "shutdown", "reason", "halt", NULL);
 }
 
+/**
+ * xenDaemonDomainReboot:
+ * @domain: pointer to the Domain block
+ * @flags: extra flags for the reboot operation, not used yet
+ *
+ * Reboot the domain, the OS is requested to properly shutdown
+ * and restart but the domain may ignore it.  It will return immediately
+ * after queuing the request.
+ *
+ * Returns 0 in case of success, -1 (with errno) in case of error.
+ */
+int
+xenDaemonDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED)
+{
+    if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
+        virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG,
+                    __FUNCTION__);
+        return(-1);
+    }
+    return xend_op(domain->conn, domain->name, "op", "shutdown", "reason", "reboot", NULL);
+}
+
 /**
  * xenDaemonDomainDestroy:
  * @domain: pointer to the Domain block
index 25addb9a8b3635e3e061ad12b6649e9005f220b0..1deead8d6619508b1204af413840ae2c9aca5789 100644 (file)
@@ -509,18 +509,6 @@ int xenDaemonOpen_unix(virConnectPtr xend, const char *path);
  */
     int xend_sysrq(virConnectPtr xend, const char *name, const char *key);
 
-/**
- * \brief Request a domain to reboot
- * \param xend A xend instance
- * \param name The domain's name
- * \return 0 for success; -1 (with errno) on error
- * 
- * This method *requests* that a domain reboot itself.  This is only
- * a request and the domain may ignore it.  It will return immediately
- * after queuing the request.
- */
-    int xend_reboot(virConnectPtr xend, const char *name);
-
 /**
  * \brief Obtain a list of currently running domains
  * \param xend A xend instance
@@ -644,6 +632,7 @@ int xenDaemonClose(virConnectPtr conn);
 int xenDaemonDomainSuspend(virDomainPtr domain);
 int xenDaemonDomainResume(virDomainPtr domain);
 int xenDaemonDomainShutdown(virDomainPtr domain);
+int xenDaemonDomainReboot(virDomainPtr domain, unsigned int flags);
 int xenDaemonDomainDestroy(virDomainPtr domain);
 int xenDaemonDomainSave(virDomainPtr domain, const char *filename);
 int xenDaemonDomainRestore(virConnectPtr conn, const char *filename);
index 4a24aa9954990272405f11388247ee8e48d488f1..87a96054a61ac9c9d6b6dbe5ae34c728101d62df 100644 (file)
@@ -46,7 +46,8 @@ static virDriver xenStoreDriver = {
     NULL, /* domainLookupByName */
     NULL, /* domainSuspend */
     NULL, /* domainResume */
-    NULL, /* domainShutdown */
+    xenStoreDomainShutdown, /* domainShutdown */
+    xenStoreDomainReboot, /* domainReboot */
     NULL, /* domainDestroy */
     NULL, /* domainFree */
     NULL, /* domainGetName */
@@ -599,3 +600,29 @@ xenStoreDomainShutdown(virDomainPtr domain)
     return(virDomainDoStoreWrite(domain, "control/shutdown", "halt"));
 }
 
+/**
+ * xenStoreDomainReboot:
+ * @domain: pointer to the Domain block
+ * @flags: extra flags for the reboot operation, not used yet
+ *
+ * Reboot the domain, the OS is requested to properly shutdown
+ * and reboot but the domain may ignore it.  It will return immediately
+ * after queuing the request.
+ *
+ * Returns 0 in case of success, -1 in case of error.
+ */
+int
+xenStoreDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED)
+{
+    if ((domain == NULL) || (domain->conn == NULL)) {
+        virXenStoreError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG,
+                        __FUNCTION__);
+        return(-1);
+    }
+    /*
+     * this is very hackish, the domU kernel probes for a special 
+     * node in the xenstore and launch the shutdown command if found.
+     */
+    return(virDomainDoStoreWrite(domain, "control/shutdown", "reboot"));
+}
+
index fdecf2bd9dfdaab5db14fe59241c443b020c3f20..17c1d1c32e2ecdce9ed4e43990285817c671b84a 100644 (file)
 extern "C" {
 #endif
 
-void   xenStoreRegister        (void);
-int    xenStoreOpen            (virConnectPtr conn,
-                                const char *name,
-                                int flags);
-int    xenStoreClose           (virConnectPtr conn);
-int    xenStoreGetDomainInfo   (virDomainPtr domain,
-                                virDomainInfoPtr info);
-int    xenStoreNumOfDomains    (virConnectPtr conn);
-int     xenStoreListDomains    (virConnectPtr conn,
-                                int *ids,
-                                int maxids);
-virDomainPtr xenStoreDomainLookupByName(virConnectPtr conn, const char *name);
-unsigned long xenStoreGetMaxMemory(virDomainPtr domain);
-int    xenStoreDomainSetMaxMemory      (virDomainPtr domain,
-                                unsigned long memory);
-unsigned long xenStoreDomainGetMaxMemory(virDomainPtr domain);
-int xenStoreDomainShutdown(virDomainPtr domain);
+void           xenStoreRegister        (void);
+int            xenStoreOpen            (virConnectPtr conn,
+                                        const char *name,
+                                        int flags);
+int            xenStoreClose           (virConnectPtr conn);
+int            xenStoreGetDomainInfo   (virDomainPtr domain,
+                                        virDomainInfoPtr info);
+int            xenStoreNumOfDomains    (virConnectPtr conn);
+int            xenStoreListDomains     (virConnectPtr conn,
+                                        int *ids,
+                                        int maxids);
+virDomainPtr   xenStoreDomainLookupByName(virConnectPtr conn,
+                                        const char *name);
+unsigned long  xenStoreGetMaxMemory    (virDomainPtr domain);
+int            xenStoreDomainSetMaxMemory(virDomainPtr domain,
+                                        unsigned long memory);
+unsigned long  xenStoreDomainGetMaxMemory(virDomainPtr domain);
+int            xenStoreDomainShutdown  (virDomainPtr domain);
+int            xenStoreDomainReboot    (virDomainPtr domain,
+                                        unsigned int flags);
 #ifdef __cplusplus
 }
 #endif