Jump to: navigation, search

Satori/ConfigObjectProposal

Configuration settings for Satori are currently gathered from the command line via argparse. argparse creates a namespace object that allows variables to be read in dotted attribute for (config.foo, config.bar, etc). However, this makes developers who want to use Satori in their application create their own namespace-like object. The proposed change is to treat the configuration object as a dictionary.

Using Satori in Python Code Today

from satori import discovery

class MyConfig(object):
    pass

config = MyConfig()
config.username = "bob"
config.system_info = "ohai-solo"

result = discovery.run('192.0.2.1', config)

Converting the Config Object to a Dictionary

To implement this change, parse_args from satori/shell.py will pass the argparse object to the vars() call. This will convert the object to a dictionary.

Satori in Python Code After Implementation

from satori import discovery
result = discovery.run('192.0.2.1', {'username': 'bob', 'system_info': 'ohai-solo)