Skip to content

anchor/mudpuppy

Repository files navigation

mudpuppy is a Python based automation agent/client for make-magic

It allows you to write independant 'modules' in Python code, to automate
items in a make-magic task.  When run, mudpuppy will poll a make-magic
server for tasks that are outstanding, and will complete any items with
which it has a module for. Once the module has run successfully, mudpuppy
will tell make-magic that the item has been completed, and then will look
for more work to do.

There are some example modules in modules/test.py. The simplest case is:

class TestModule(Automatia):
        '''Test item automation model
        Successfuly automates a specific item
        '''
        can_handle = ('TestModuleItem',)

        def do_magic(self):
		print "Hello world"

which will automate an item with the name 'TestModuleItem' by printing
"Hello world" to stdout, and then returning successfully (allowing the
item to be marked as complete).

In config.py you can define both the API URL of your make-magic server, 
as well as a list of modules to load. Only modules listed in the
installed_items config item will by loaded by mudpuppy. 

There is also a helper base class that allows you to easily kick off
an Orchestra job, wait for it to complete, and optionally update the
make-magic task state from the key/value pairs returned by Orchestra.
This makes it very easy to integrate Orchestra with make-magic/mudpuppy
with very little work. Look in modules/test.py for some examples for
doing this.  See https://github.com/anchor/orchestra for more information
about Orchestra.

Although make-magic is designed to be able to be used with almost no python
knowledge, mudpuppy is specifically designed to automate items with python
code; Feel free to implement agents such as this in any other language you
wish.

For more information on make-magic, see https://github.com/anchor/make-magic

About

Python based automation agent for make-magic

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages