1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- """
- Test interacting with the wheel system. This script is useful when testing
- wheel modules
- """
- # Import Python libs
- from __future__ import absolute_import
- import optparse
- import pprint
- import salt.auth
- # Import Salt Libs
- import salt.config
- import salt.wheel
- def parse():
- """
- Parse the command line options
- """
- parser = optparse.OptionParser()
- parser.add_option(
- "-f", "--fun", "--function", dest="fun", help="The wheel function to execute"
- )
- parser.add_option(
- "-a",
- "--auth",
- dest="eauth",
- help="The external authentication mechanism to use",
- )
- options, args = parser.parse_args()
- cli = options.__dict__
- for arg in args:
- if "=" in arg:
- comps = arg.split("=")
- cli[comps[0]] = comps[1]
- return cli
- class Wheeler(object):
- """
- Set up communication with the wheel interface
- """
- def __init__(self, cli):
- self.opts = salt.config.master_config("/etc/salt")
- self.opts.update(cli)
- self.__eauth()
- self.wheel = salt.wheel.Wheel(self.opts)
- def __eauth(self):
- """
- Fill in the blanks for the eauth system
- """
- if self.opts["eauth"]:
- resolver = salt.auth.Resolver(self.opts)
- res = resolver.cli(self.opts["eauth"])
- self.opts.update(res)
- def run(self):
- """
- Execute the wheel call
- """
- return self.wheel.master_call(**self.opts)
- if __name__ == "__main__":
- wheeler = Wheeler(parse())
- pprint.pprint(wheeler.run())
|