Esempio n. 1
0
def main():
    parser = ArgumentParser('Generate cobra SDK code from APIC')
    parser.add_argument('-a', '--apic', help='Target APIC', required=True)
    parser.add_argument('-p', '--port', help='APIC Port', default=80)
    parser.add_argument('-u', '--user', help='APIC Username', default='admin')
    parser.add_argument('-pw',
                        '--password',
                        help='APIC Password',
                        required=True)
    parser.add_argument('-d', '--dn', help='DN to query', required=True)
    args = parser.parse_args()

    ep = cobra.mit.access.EndPoint(args.apic,
                                   secure=False if args.port == 80 else True,
                                   port=args.port)
    ls = cobra.mit.session.LoginSession(args.user, args.password)
    md = cobra.mit.access.MoDirectory(ep, ls)
    md.login()

    mo = lookupSubtreeByDn(md, args.dn)
    if mo:
        xmlstr = toXMLStr(mo)
        print arya().getpython(xmlstr=xmlstr,
                               apicip=args.apic,
                               apicuser=args.user,
                               apicpassword=args.password)
    else:
        print 'Nothing found for DN {0}'.format(args.dn)
Esempio n. 2
0
def main():
    parser = ArgumentParser('Generate cobra SDK code from APIC')
    parser.add_argument('-a', '--apic', help='Target APIC', required=True)
    parser.add_argument('-e',
                        '--endpoint',
                        help='Use old EndPoint object',
                        default=False)
    parser.add_argument('-p', '--port', help='APIC Port', default=80)
    parser.add_argument('-u', '--user', help='APIC Username', default='admin')
    parser.add_argument('-s',
                        '--secure',
                        help='Verify certificate',
                        default=False)
    parser.add_argument('-pw',
                        '--password',
                        help='APIC Password',
                        required=True)
    parser.add_argument('-d', '--dn', help='DN to query', required=True)
    parser.add_argument('-v',
                        '--verbose',
                        help='Enable debugging',
                        default=False)
    args = parser.parse_args()

    if args.verbose:
        httplib.HTTPConnection.debuglevel = 1
        logging.basicConfig(level=logging.DEBUG)

    if args.endpoint:
        ep = cobra.mit.access.EndPoint(
            args.apic,
            secure=False if args.port == 80 else True,
            port=args.port)
        ls = cobra.mit.session.LoginSession(args.user, args.password)
        md = cobra.mit.access.MoDirectory(ep, ls)
    else:
        if args.apic.startswith(('http://', 'https://')):
            if args.apic.endswith('/'):
                args.apic = args.apic[:-1]
            args.apic = str(args.apic) + ":" + str(args.port) + "/"
            ls = cobra.mit.session.LoginSession(args.apic,
                                                args.user,
                                                args.password,
                                                secure=args.secure)
            md = cobra.mit.access.MoDirectory(ls)
    md.login()

    mo = lookupSubtreeByDn(md, args.dn)
    if mo:
        xmlstr = toXMLStr(mo, includeAllProps=True)
        print arya().getpython(xmlstr=xmlstr,
                               apicip=args.apic,
                               apicuser=args.user,
                               apicpassword=args.password)
    else:
        print 'Nothing found for DN {0}'.format(args.dn)
Esempio n. 3
0
    def test_generate_from_apic(self, moDir, dn, codec):
        mo = lookupSubtreeByDn(moDir, dn)
        assert mo
        if codec == 'xml':
            instr = toXMLStr(mo, includeAllProps=True)
            print instr
            pycode = arya.arya().getpython(xmlstr=instr)
        elif codec == 'json':
            instr = toJSONStr(mo, includeAllProps=True)
            print instr
            pycode = arya.arya().getpython(jsonstr=instr)

        assert pycode
Esempio n. 4
0
def process_post(url, payload):
    """Process a post request log message."""
    purl = apic_rest_urlparse(url)
    qstring = parse_apic_options_string(purl.query)
    arya_inst = arya()
    cobra_str = arya_inst.getpython(jsonstr=payload, brief=True)
    cobra_str2 = ""
    for line in cobra_str.split("\n"):
        cobra_str2 += "    {0}\n".format(line)
    return cobra_str2
Esempio n. 5
0
def main():
    parser = ArgumentParser('Generate cobra SDK code from APIC')
    parser.add_argument('-a', '--apic', help='Target APIC', required=True)
    parser.add_argument('-p', '--port', help='APIC Port', default=80)
    parser.add_argument('-u', '--user', help='APIC Username', default='admin')
    parser.add_argument('-pw', '--password', help='APIC Password', required=True)
    parser.add_argument('-d', '--dn', help='DN to query', required=True)
    args = parser.parse_args()

    ep = cobra.mit.access.EndPoint(args.apic, secure=False if args.port == 80 else True, port=args.port)
    ls = cobra.mit.session.LoginSession(args.user, args.password)
    md = cobra.mit.access.MoDirectory(ep, ls)
    md.login()

    mo = lookupSubtreeByDn(md, args.dn)
    if mo:
        xmlstr = toXMLStr(mo)
        print arya().getpython(xmlstr=xmlstr, apicip=args.apic, apicuser=args.user, apicpassword=args.password)
    else:
        print 'Nothing found for DN {0}'.format(args.dn)
Esempio n. 6
0
def main():
    parser = ArgumentParser('Generate cobra SDK code from APIC')
    parser.add_argument('-a', '--apic', help='Target APIC', required=True)
    parser.add_argument('-e', '--endpoint', help='Use old EndPoint object',
                        default=False)
    parser.add_argument('-p', '--port', help='APIC Port', default=80)
    parser.add_argument('-u', '--user', help='APIC Username', default='admin')
    parser.add_argument(
        '-s', '--secure', help='Verify certificate', default=False)
    parser.add_argument(
        '-pw', '--password', help='APIC Password', required=True)
    parser.add_argument('-d', '--dn', help='DN to query', required=True)
    parser.add_argument(
        '-v', '--verbose', help='Enable debugging', default=False)
    args = parser.parse_args()

    if args.verbose:
        httplib.HTTPConnection.debuglevel = 1
        logging.basicConfig(level=logging.DEBUG)

    if args.endpoint:
        ep = cobra.mit.access.EndPoint(
            args.apic, secure=False if args.port == 80 else True, port=args.port)
        ls = cobra.mit.session.LoginSession(args.user, args.password)
        md = cobra.mit.access.MoDirectory(ep, ls)
    else:
        if args.apic.startswith(('http://', 'https://')):
            if args.apic.endswith('/'):
                args.apic = args.apic[:-1]
            args.apic = str(args.apic) + ":" + str(args.port) + "/"
            ls = cobra.mit.session.LoginSession(
                args.apic, args.user, args.password, secure=args.secure)
            md = cobra.mit.access.MoDirectory(ls)
    md.login()

    mo = lookupSubtreeByDn(md, args.dn)
    if mo:
        xmlstr = toXMLStr(mo, includeAllProps=True, prettyPrint=True)
        print arya().getpython(xmlstr=xmlstr, apicip=args.apic, apicuser=args.user, apicpassword=args.password)
    else:
        print 'Nothing found for DN {0}'.format(args.dn)
Esempio n. 7
0
def post_action(string):
    """
    function ran with input from POST
    :param string: string of xml or json data
    :return: string of cobra python code
    """
    fmt = arya.isxmlorjson(string)
    wa = arya.arya()

    if fmt == "xml":
        return wa.getpython(xmlstr=string)
    elif fmt == "json":
        return wa.getpython(jsonstr=string)
    else:
        raise IOError(
            "Unsupported format passed as input. Please check "
            + "that input is formatted correctly in JSON or XML syntax"
        )