# Path: poni/config.py
# class RenderContext(object):
# class Manager(object):
# class OrderedSet(OrderedDict):
# class Edge(dict):
# class PlugIn(object):
#     def __init__(self, entry, target):
#     def __enter__(self):
#     def __exit__(self, ex_type, ex_value, tb):
#     def __init__(self, confman):
#     def reset(self):
#     def get_bucket(self, name):
#     def emit_error(self, node, source_path, error):
#     def copy_tree(self, source_path, dest_path, remote, path_prefix="", verbose=False):
#         def progress(copied, total, ctx=None):
#     def verify(self, show=False, deploy=False, audit=False, show_diff=False,
#                verbose=False, callback=None, path_prefix="", raw=False,
#                access_method=None, color="auto", config_patterns=None, tag=None):
#     def deploy_file(self, remote, entry, dest_path, output, active_text,
#                     verbose=False, mode=None, owner=None, group=None):
#     def audit_output(self, entry, dest_path, active_text, active_time,
#                      output, show_diff=False, color="auto",
#                      verbose=False):
#     def add_file(self, tags=None, **kw):
# def control(provides=None, requires=None, optional_requires=None, auto_enable=True):
#     def wrap(method):
#     def add(self, elem):
#     def append(self, elem):
#     def __hash__(self):
#     def __init__(self, manager, config, node, top_config):
#     def add_actions(self):
#     def remote_execute(self, arg, script_path):
#     def remote_gen_execute(self, arg, script_path, yield_stdout=False):
#     def add_argh_control(self, handler, provides=None, requires=None,
#                          optional_requires=None):
#         def handle_control(control_name, args, **kwargs):
#     def add_all_controls(self):
#     def add_controls(self):
#     def iter_control_operations(self, node, config):
#     def handle_argh_control(self, handler, control_name, args, verbose=False,
#                             quiet=False, output_dir=None, color="auto",
#                             method=None, send_output=None, node=None):
#     def get_override_config_path(self, filename):
#     def add_file(self, source_path, dest_path=None, source_text=None,
#                  dest_bucket=None, owner=None, group=None,
#                  render=None, report=False, post_process=None, mode=None,
#                  auto_override=False, tags=None):
#     def add_dir(self, source_path, dest_path, render=None, tags=None):
#     def get_one(self, name, nodes=True, systems=False):
#     def get_system(self, name):
#     def render_text(self, source_path, dest_path, source_text=None):
#     def add_edge(self, bucket_name, dest_node, dest_config, **kwargs):
#     def add_record(self, bucket_name, **kwargs):
#     def get_names(self):
#     def cached_template(self, key, renderer):
#     def render_name(self, name, names=None):
#     def render_name_template(self, source_path, dest_path, source_text=None):
#     def render_cheetah(self, source_path, dest_path, source_text=None):
#     def render_mako(self, source_path, dest_path, source_text=None):
#     def render_genshi_xml(self, source_path, dest_path, source_text=None):
#     def _render(self, renderer, source_text, source_path):
#     SORT_FIELDS = set([
#         "source_node", "source_config", "dest_node", "dest_config", "action", "protocol",
#         "port"])
# 
# Path: poni/errors.py
# class Error(Exception):
# class InvalidProperty(Error):
# class MissingProperty(Error):
# class UserError(Error):
# class InvalidRange(Error):
# class SettingsError(Error):
# class VerifyError(Error):
# class TemplateError(Error):
# class CloudError(Error):
# class RemoteError(Error):
# class RemoteFileDoesNotExist(RemoteError):
# class RepoError(Error):
# class ImporterError(Error):
# class MissingLibraryError(Error):
# class RequirementError(Error):
# class ControlError(Error):
# class OperationError(Error):


import argh
from poni import config
from poni import errors

INST_MASTER_SH = "/root/inst-puppet-master.sh"

class PlugIn(config.PlugIn):
    @argh.arg("-x", "--extra", help="extra info")
    def install(self, arg):
        self.log.info("%s/%s install: verbose=%r, extra=%r",

# Path: poni/config.py
# class RenderContext(object):
# class Manager(object):
# class OrderedSet(OrderedDict):
# class Edge(dict):
# class PlugIn(object):
#     def __init__(self, entry, target):
#     def __enter__(self):
#     def __exit__(self, ex_type, ex_value, tb):
#     def __init__(self, confman):
#     def reset(self):
#     def get_bucket(self, name):
#     def emit_error(self, node, source_path, error):
#     def copy_tree(self, source_path, dest_path, remote, path_prefix="", verbose=False):
#         def progress(copied, total, ctx=None):
#     def verify(self, show=False, deploy=False, audit=False, show_diff=False,
#                verbose=False, callback=None, path_prefix="", raw=False,
#                access_method=None, color="auto", config_patterns=None, tag=None):
#     def deploy_file(self, remote, entry, dest_path, output, active_text,
#                     verbose=False, mode=None, owner=None, group=None):
#     def audit_output(self, entry, dest_path, active_text, active_time,
#                      output, show_diff=False, color="auto",
#                      verbose=False):
#     def add_file(self, tags=None, **kw):
# def control(provides=None, requires=None, optional_requires=None, auto_enable=True):
#     def wrap(method):
#     def add(self, elem):
#     def append(self, elem):
#     def __hash__(self):
#     def __init__(self, manager, config, node, top_config):
#     def add_actions(self):
#     def remote_execute(self, arg, script_path):
#     def remote_gen_execute(self, arg, script_path, yield_stdout=False):
#     def add_argh_control(self, handler, provides=None, requires=None,
#                          optional_requires=None):
#         def handle_control(control_name, args, **kwargs):
#     def add_all_controls(self):
#     def add_controls(self):
#     def iter_control_operations(self, node, config):
#     def handle_argh_control(self, handler, control_name, args, verbose=False,
#                             quiet=False, output_dir=None, color="auto",
#                             method=None, send_output=None, node=None):
#     def get_override_config_path(self, filename):
#     def add_file(self, source_path, dest_path=None, source_text=None,
#                  dest_bucket=None, owner=None, group=None,
#                  render=None, report=False, post_process=None, mode=None,
#                  auto_override=False, tags=None):
#     def add_dir(self, source_path, dest_path, render=None, tags=None):
#     def get_one(self, name, nodes=True, systems=False):
#     def get_system(self, name):
#     def render_text(self, source_path, dest_path, source_text=None):
#     def add_edge(self, bucket_name, dest_node, dest_config, **kwargs):
#     def add_record(self, bucket_name, **kwargs):
#     def get_names(self):
#     def cached_template(self, key, renderer):
#     def render_name(self, name, names=None):
#     def render_name_template(self, source_path, dest_path, source_text=None):
#     def render_cheetah(self, source_path, dest_path, source_text=None):
#     def render_mako(self, source_path, dest_path, source_text=None):
#     def render_genshi_xml(self, source_path, dest_path, source_text=None):
#     def _render(self, renderer, source_text, source_path):
#     SORT_FIELDS = set([
#         "source_node", "source_config", "dest_node", "dest_config", "action", "protocol",
#         "port"])
# 
# Path: poni/errors.py
# class Error(Exception):
# class InvalidProperty(Error):
# class MissingProperty(Error):
# class UserError(Error):
# class InvalidRange(Error):
# class SettingsError(Error):
# class VerifyError(Error):
# class TemplateError(Error):
# class CloudError(Error):
# class RemoteError(Error):
# class RemoteFileDoesNotExist(RemoteError):
# class RepoError(Error):
# class ImporterError(Error):
# class MissingLibraryError(Error):
# class RequirementError(Error):
# class ControlError(Error):
# class OperationError(Error):


# Path: examples/puppet/puppet-master/plugin.py
import argh
from poni import config
from poni import errors


INST_MASTER_SH = "/root/inst-puppet-master.sh"

class PlugIn(config.PlugIn):
    @argh.arg("-x", "--extra", help="extra info")
    def install(self, arg):
        self.log.info("%s/%s install: verbose=%r, extra=%r",

                      self.node.name, self.config.name, arg.verbose,