XAPI Host Plugins: Difference between revisions
From Xen
Jump to navigationJump to search
No edit summary |
Lars.kurth (talk | contribs) No edit summary |
||
(2 intermediate revisions by one other user not shown) | |||
Line 3: | Line 3: | ||
"The XenAPI has an extension mechanism that allows one to install a Python script (usually, but it can be any executable) on the host side, and then call that through the XenAPI." - http://wiki.openstack.org/XenAPI |
"The XenAPI has an extension mechanism that allows one to install a Python script (usually, but it can be any executable) on the host side, and then call that through the XenAPI." - http://wiki.openstack.org/XenAPI |
||
Writing a XenAPI plugin in |
Writing a XenAPI plugin in Python is simplified by using the XenAPIPlugin module, which is by default installed in dom0 in XCP. Below is a simple XenAPI plugin which reverses a string passed to it: |
||
<pre> |
<pre> |
||
Line 15: | Line 15: | ||
return data[::-1] |
return data[::-1] |
||
except KeyError: |
except KeyError: |
||
raise RuntimeError("No |
raise RuntimeError("No argument found with key 'data'.") |
||
if __name__ == "__main__": |
if __name__ == "__main__": |
||
Line 28: | Line 28: | ||
</pre> |
</pre> |
||
[[Category: |
[[Category:XAPI Devel]] |
||
[[Category:OpenStack]] |
[[Category:OpenStack]] |
Latest revision as of 12:11, 11 July 2013
XAPI Host Plugins
"The XenAPI has an extension mechanism that allows one to install a Python script (usually, but it can be any executable) on the host side, and then call that through the XenAPI." - http://wiki.openstack.org/XenAPI
Writing a XenAPI plugin in Python is simplified by using the XenAPIPlugin module, which is by default installed in dom0 in XCP. Below is a simple XenAPI plugin which reverses a string passed to it:
#!/usr/bin/python import XenAPIPlugin def main(session, args): try: data = args["data"] return data[::-1] except KeyError: raise RuntimeError("No argument found with key 'data'.") if __name__ == "__main__": XenAPIPlugin.dispatch({"main": main})
Save this code to /etc/xapi.d/plugins/reverse and make it executable. The plugin can then be run from the CLI like so:
# xe host-call-plugin host-uuid=<host-uuid> plugin=reverse fn=main args:data="hello, world" dlrow ,olleh