Metadata-Version: 1.1
Name: amoshell
Version: 0.1
Summary: Python interface to Ericsson's amos/moshell programs
Home-page: https://github.com/jeffleary00/amoshell
Author: Jeff Leary
Author-email: sillymonkeysoftware@gmail.com
License: UNKNOWN
Download-URL: https://github.com/jeffleary00/amoshell/tarball/0.1
Description: AMOSHELL
        =============
        Python convenience class to interface with Ericsson's amos/moshell commands.
        
        
        Install
        =======
        ::
        
            pip install amoshell
        
        
        Synopsis
        ========
        ::
        
            import amoshell
            mo = amoshell.Amos()
            rval, out, err = mo.moshell('RBS003', 'lt all; alt')
            if rval:
                print err
            else:
                print out
        
        
        API
        ===
        - Amos(*kwargs*)
            - *bin_path*: keyword-arg to set a non-standard path where the moshell binaries may be installed (optional).
            - *parallel*: keyword-arg to set max number of parallel sessions that mobatch may run (defaults to 10).
            
        - Amos.moshell(*name, command, kwargs*)
        
            Run a moshell command on a node.
        
            - *name*: recognized node name or node ip address.
            - *command*: command string. multiple commands are delimited with semicolon.
            - *kwargs*: any valid options that are normally set with the '-v' on the moshell command line can be entered here. See Ericsson AMOS user guide for more.
        
            Return value is a tuple, containing:
                - *exit code*: 0 = ok, non-zero = a failure.
                - *stdout text*:
                - *stderr text*:
            
        - Amos.mobatch(*nodes, command, kwargs*)
        
            Run mobatch commands against many nodes simultaneously.
            
            - *nodes*: a list of node names (or ip addresses), or a string pointing to an existing sitefile.
            - *command*: command string, or a string identifying the path to an existing moshell command file.
            - *kwargs*: any valid options that are normally set with the '-v' on the moshell command line can be entered here. See Ericsson AMOS user guide for more.
        
            Return value is a list of tuples. Each 3 element tuple contains:
                - *node name*: node this tuple's info relates to.
                - *exit code*: 0 = ok, non-zero = a failure.
                - *path to log*: path to the file containing the moshell results for this node.
        
        Examples
        ========
        ::
        
            import amoshell
            mo = amoshell.Amos()
            
            # moshell example
            rval, out, err = mo.moshell('RBS003', 'lt all; alt')
            
            # mobatch example
            results = mo.mobatch(['ERBS001', 'ERBS002'], 'lt all; get security', 
                                                            ip_database=/tmp/ipdb.dat,
                                                            corba_class=5 )
            for r in results:
                node, rval, logfile = r
                if not rval:
                    print "node %s results found in log %s" % (node, logfile)      
        
        
        Known Issues
        ============
        *Node Passwords*: Some commands in moshell require a password. This tool is not
        designed to have an interactive shell, and a password request will cause this
        to hang indefinitely.
        
        To prevent this, you should use a custom ip_database file containing nodes and their passwords.
        The file is then referenced with the "ip_database" optional arg.
        
        ::
        
            Amos.moshell(node, command, ip_database='/path/to/file')
            
        
        See Ericsson documentation for more information about these ip_database files.
        
        
        To Do
        =====
        
          
        Author
        ======
        Jeff Leary (sillymonkeysoftware -at- gmail -dot- com)
        
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
