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)
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)
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
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
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)
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" )