Introducing func-transmit (prototype) -- a way to cleanly call func from non-Python code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



So, previous discussion on the list indicated we needed a good way to call the Func API over stdin/stdout to allow for non-Python programs to act as if they were the overlord. Parsing just doesn't work here.

Marco Mornati contibuted a very nice initial version, which I've tweaked a bit. For simplicity of working on it, have added to git and packaged in the RPM. I am really excited about this feature as it should allow for much more usage of Func in a lot of interesting ways. Even more exciting is that this implementation is, as with many things in Func, amazingly short!

This is called "func-transmit", and it's not quite done yet in that we need a manpage, and we /might/ want to do XMLRPC marshalling instead (just because it's one less dependency). Currently this uses the relatively ancient YAML package that is packaged with cobbler. (yum install cobbler if you are lazy). This will be resolved shortly.

Sources are in /func/func/scripts

Example usage:

[root@localhost scripts]# python func-transmit < func-transmit-demo
---
localhost.localdomain:
   - 0
   - |
       Hello World
   - ''


This shows command line usage, though more realistically, this would be called by another program with a pipe for sending things from stdin and recieving standard out.

Func-transmit-demo in the above case is a simple YAML file containing info about what we want Func to do:

[root@localhost scripts]# cat func-transmit-demo
clients: "*"
aysnc: False
nforks: 1
module: command
method: run
parameters: "/bin/echo Hello World"

Note in the above case, there is only one parameter, a string. You can also send in arrays and hashes and anything else that can go over XMLRPC. This is easier when using YAML to first serialize a datastructure (hash, map, dictionary, whatever you want to call it) than writing the YAML yourself. I'll make a Wiki topic on this also, as well as file Trac items for including YAML in Func and making the man page.

Expansions and improvements to this are welcome, you can send in patches against the version in git.

--Michael



_______________________________________________
Func-list mailing list
Func-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/func-list

[Index of Archives]     [Fedora Users]     [Linux Networking]     [Fedora Legacy List]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux