def test_create_all(self): """ Basic test for all Credentials qualifiers """ creds = Credentials(['apic', 'mysql']) def return_empty_string(disp): """ Return an empty string """ return '' creds._get_from_user = return_empty_string creds._get_password = return_empty_string self.assertTrue(isinstance(creds, Credentials)) creds.get() creds.verify()
def main(): """ Main execution path when run from the command line """ # Get all the arguments description = "Search tool for APIC." creds = Credentials("apic", description) creds.add_argument( "-s", "--switch", type=str, default=None, help='Specify a particular switch id to perform search on, e.g. "102"' ) creds.add_argument("-f", "--find", type=str, help="search string") creds.add_argument("--force", action="store_true", default=False, help="Force a rebuild of the search index") args = creds.get() print args try: sdb = SearchDb.load_db(args) except (LoginError, Timeout, ConnectionError): print "%% Could not login to APIC" sys.exit(0) results = sdb.search(args.find) count = 0 for res in results: count += 1 print res
def main(): """ Main show Process routine :return: None """ description = 'Simple application that logs on to the APIC and check cluster information for a fabric' creds = Credentials('apic', description) args = creds.get() session = ACI.Session(args.url, args.login, args.password) resp = session.login() if not resp.ok: print '%% Could not login to APIC' sys.exit(0) cluster = ACI_PHYS.Cluster('Cluster') cluster_info = cluster.get(session) if (cluster.config_size != cluster.cluster_size): print("*******************************************************") print ("WARNING, configured cluster size "), cluster.config_size print (": not equal to the actual size "), cluster.cluster_size print "WARNING, desired stats collection might be lost" print("*******************************************************") print("APICs in the cluster"), cluster.name, (":") for apic in cluster.apics: print json.dumps(apic,indent=4, sort_keys = True) else: print("PASS")
def main(): """ Main show Process routine :return: None """ description = 'Simple application that logs on to the APIC and displays process information for a switch' creds = Credentials('apic', description) creds.add_argument('-s', '--switch', type=str, default=None, help='Specify a particular switch id, e.g. "102"') args = creds.get() session = ACI.Session(args.url, args.login, args.password) resp = session.login() if not resp.ok: print '%% Could not login to APIC' sys.exit(0) switches = ACI.Node.get(session, '1', args.switch) for switch in switches: if switch.role != 'controller': processes = ACI.Process.get(session, switch) tables = ACI.Process.get_table(processes, 'Process list for Switch ' + switch.name + '::') for table in tables: print table.get_text(tablefmt='fancy_grid') + '\n'
def main(): """ Main show Process routine :return: None """ description = 'Simple application that logs on to the APIC and check cluster information for a fabric' creds = Credentials('apic', description) args = creds.get() session = ACI.Session(args.url, args.login, args.password) resp = session.login() if not resp.ok: print '%% Could not login to APIC' sys.exit(0) cluster = ACI.Cluster('Cluster') configured_size = cluster.get_config_size(session) cluster_size = cluster.get_cluster_size(session) cluster_info = cluster.get_cluster_info(session) if configured_size != cluster_size: print("*******************************************************") sys.stdout.write("WARNING, configured cluster size ") sys.stdout.write(configured_size) sys.stdout.write(" :not equal to the actual size ") print cluster_size print "WARNING, desired stats collection might be lost" print("*******************************************************") print("APICs in the cluster are:") for apic in cluster_info: print json.dumps(apic['infraCont']['attributes']['dn'], indent=4, sort_keys=True) else: print("PASS")
def main(): """ Main execution path when run from the command line """ # Get all the arguments description = 'Search tool for APIC.' creds = Credentials('apic', description) creds.add_argument( '-s', '--switch', type=str, default=None, help='Specify a particular switch id to perform search on, e.g. "102"') creds.add_argument('-f', '--find', type=str, help='search string') creds.add_argument('--force', action="store_true", default=False, help='Force a rebuild of the search index') args = creds.get() print args sdb = SearchDb() sdb.set_login_credentials(args) try: sdb.load_db(args.force) except (LoginError, Timeout, ConnectionError): print '%% Could not login to APIC' sys.exit(0) results = sdb.search(args.find) count = 0 for res in results: count += 1 print 'score', res['pscore'], res['sscore'], res['terms'], res[ 'title'], res['path'] tables = res['primary'].get_table([ res['primary'], ]) for table in tables: if table.data: print table.get_text() if count > 10: print 'Showing 10 of', len(results), 'results' break
def main(): """ Main execution path when run from the command line """ # Get all the arguments description = 'Connection Search tool for APIC.' creds = Credentials('apic', description) creds.add_argument('-tenant', type=str, default='*', help='Tenant name (wildcards, "*", accepted), default "*"') creds.add_argument('-context', type=str, default='*', help='Tenant name (wildcards, "*", accepted), default "*"') creds.add_argument('-sip', type=str, default='0/0', help='Source IP or subnet - e.g. 1.2.3.4/24, default: "0/0"') creds.add_argument('-dip', type=str, default='0/0', help='Destination IP or subnet - e.g. 1.2.3.4/24, default: "0/0"') creds.add_argument('-dport', type=str, default='any', help='Destination L4 Port value or range, e.g. 20-25 or 80. Default: "any"') creds.add_argument('-sport', type=str, default='any', help='Source L4 Port value or range, e.g. 20-25 or 80. Default: "any"') creds.add_argument('-etherT', type=str, default='any', help='EtherType, e.g. "ip", "arp", "icmp". Default: "any"') creds.add_argument('-prot', type=str, default='any', help='Protocol, e.g. "tcp", "udp". Default: "any"') creds.add_argument('-arpOpc', type=str, default='any', help='ARP Opcode, e.g. "req", "ack". Default: "any"') creds.add_argument('-applyToFrag', type=str, default='any', help='Apply to fragment, e.g. "yes", "no". Default: "any"') creds.add_argument('-tcpRules', type=str, default='any', help='TCP rules, e.g. "syn", "fin". Default: "any"') args = creds.get() flow_spec = build_flow_spec_from_args(args) # todo: verify that a dash can be used in port range. # Login to APIC session = Session(args.url, args.login, args.password) resp = session.login() if not resp.ok: print '%% Could not login to APIC' sys.exit(0) sdb = SearchDb(session) sdb.build() results = sorted(sdb.search(flow_spec)) for result in results: print result
def main(): """ Main execution path when run from the command line """ # Get all the arguments description = 'Search tool for APIC.' creds = Credentials('apic', description) creds.add_argument('-s', '--switch', type=str, default=None, help='Specify a particular switch id to perform search on, e.g. "102"') creds.add_argument('-f', '--find', type=str, help='search string') creds.add_argument('--force', action="store_true", default=False, help='Force a rebuild of the search index') args = creds.get() print args sdb = SearchDb() sdb.set_login_credentials(args) try: sdb.load_db(args.force) except (LoginError, Timeout, ConnectionError): print '%% Could not login to APIC' sys.exit(0) results = sdb.search(args.find) count = 0 for res in results: count += 1 print 'score', res['pscore'], res['sscore'], res['terms'], res['title'], res['path'] tables = res['primary'].get_table([res['primary'], ]) for table in tables: if table.data != []: print table.get_text() if count > 10: print 'Showing 10 of', len(results), 'results' break
def main(): """ Main execution path when run from the command line """ # Get all the arguments description = 'Search tool for APIC.' creds = Credentials('apic', description) creds.add_argument('--force', action="store_true", default=False, help='Force a rebuild of the search index') args = creds.get() print(args) # load all objects session = SearchSession(args) try: fabric = Fabric.get(session.session)[0] except (LoginError, Timeout, ConnectionError): print('%% Could not login to APIC') sys.exit(0) fabric.populate_children(deep=True, include_concrete=True) index = SearchIndexLookup() store = SearchObjectStore() index.add_atk_objects(fabric) store.add_atk_objects(fabric) uids = index.search(args.find) result = store.get_by_uids_short(uids) count = 0 for res in result: count += 1 print(res)
def main(): """ Main execution path when run from the command line """ # Get all the arguments description = 'Search tool for APIC.' creds = Credentials('apic', description) creds.add_argument('--force', action="store_true", default=False, help='Force a rebuild of the search index') args = creds.get() print args # load all objects session = SearchSession(args) try: fabric = Fabric.get(session.session)[0] except (LoginError, Timeout, ConnectionError): print '%% Could not login to APIC' sys.exit(0) fabric.populate_children(deep=True, include_concrete=True) index = SearchIndexLookup() store = SearchObjectStore() index.add_atk_objects(fabric) store.add_atk_objects(fabric) uids = index.search(args.find) result = store.get_by_uids_short(uids) count = 0 for res in result: count += 1 print res
result = sdb.search(flow_spec) t2 = datetime.datetime.now() print "Search time:", t2 - t1 return jsonify(result=prep_results(result)) @app.route("/load_data") def load_data(): if BaseConnSearchView.load_db(): return jsonify(result='done') else: return jsonify(result='fail') # return redirect(url_for('credentialsview.index')) # return jsonify(result='done') def initialize_db(): sdb.build() if __name__ == '__main__': description = 'ACI Connection Search Tool.' creds = Credentials('server', description) args = creds.get() # Start app # app.run(debug=True, host=args.ip, port=int(args.port)) app.run(debug=True, use_reloader=False, host=args.ip, port=5001)
help='Show all detailed information') creds.add_argument('-basic', action="store_true", help='Show basic tenant info') creds.add_argument('-context', action="store_true", help='Show Context info') creds.add_argument('-bridgedomain', action="store_true", help='Show Bridge Domain info') creds.add_argument('-contract', action="store_true", help='Show Contract info') creds.add_argument('-taboo', action="store_true", help='Show Taboo (Deny) info') creds.add_argument('-filter', action="store_true", help='Show Filter info') creds.add_argument('-app_profile', action="store_true", help='Show Application Profile info') creds.add_argument('-epg', action="store_true", help='Show Endpoint Group info') # creds.add_argument('-svi', action="store_true", help='Show SVI info') # creds.add_argument('-accessrule', action="store_true", help='Show Access Rule and Filter info') creds.add_argument('-endpoint', action="store_true", help='Show End Point info') # creds.add_argument('-portchannel', action="store_true", help='Show Port Channel and Virtual Port Channel info') # creds.add_argument('-overlay', action="store_true", help='Show Overlay info') args = creds.get() # Login to APIC session = ACI.Session(args.url, args.login, args.password) resp = session.login() if not resp.ok: print '%% Could not login to APIC' sys.exit(0) def show_tenant_short(tenant_id): """ Setup template and display header information for summary version of tenant info :param tenant_id: Optional tenant name to select a specific tenant. If ommitted, will be all tenants. """