def parse_args(self): """ Eg. python log.py --analytics-api-ip 127.0.0.1 --analytics-api-port 8081 --source 127.0.0.1 --node-type Control --module bgp | cfgm | vnswad --instance-id 0 --message-type UveVirtualMachineConfigTrace --category xmpp --level SYS_INFO | SYS_ERROR --object-type virtual-network | virtual-machine --object-id name --object-select-field ObjectLog | SystemLog --reverse --verbose --raw --trace BgpPeerTraceBuf [--start-time now-10m --end-time now] | --last 10m --send-syslog --syslog-server 127.0.0.1 --syslog-port 514 --keywords comma,seperated,list """ defaults = { 'analytics_api_ip': '127.0.0.1', 'analytics_api_port': '8081', } parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.set_defaults(**defaults) parser.add_argument("--analytics-api-ip", help="IP address of Analytics API Server") parser.add_argument("--analytics-api-port", help="Port of Analytics API Server") parser.add_argument("--start-time", help="Logs start time (format now-10m, now-1h)") parser.add_argument("--end-time", help="Logs end time") parser.add_argument("--last", help="Logs from last time period (format 10m, 1d)") parser.add_argument("--source", help="Logs from source address") parser.add_argument("--node-type", help="Logs from node type", choices=NodeTypeNames.values()) parser.add_argument("--module", help="Logs from module", choices=ModuleNames.values()) parser.add_argument("--instance-id", help="Logs from module instance") parser.add_argument("--category", help="Logs of category") parser.add_argument("--level", help="Logs of level") parser.add_argument("--message-type", help="Logs of message type") parser.add_argument("--reverse", action="store_true", help="Show logs in reverse chronological order") parser.add_argument("--verbose", action="store_true", help="Show internal information") parser.add_argument("--all", action="store_true", help="Show all logs") parser.add_argument("--raw", action="store_true", help="Show raw XML messages") parser.add_argument("--object-type", help="Logs of object type", choices=OBJECT_TYPE_LIST) parser.add_argument("--object-values", action="store_true", help="Display list of object names") parser.add_argument("--object-id", help="Logs of object name") parser.add_argument( "--object-select-field", help="Select field to filter the log", choices=[VizConstants.OBJECT_LOG, VizConstants.SYSTEM_LOG]) parser.add_argument("--trace", help="Dump trace buffer") parser.add_argument("--limit", help="Limit the number of messages") parser.add_argument("--send-syslog", action="store_true", help="Send syslog to specified server and port") parser.add_argument("--syslog-server", help="IP address of syslog server", default='localhost') parser.add_argument("--syslog-port", help="Port to send syslog to", type=int, default=514) parser.add_argument("--f", help="Tail logs from now", action="store_true") parser.add_argument("--keywords", help="comma seperated list of keywords") self._args = parser.parse_args() return 0
def parse_args(self): """ Eg. python log.py --analytics-api-ip 127.0.0.1 --analytics-api-port 8081 --source 127.0.0.1 --node-type Control --module bgp | cfgm | vnswad --instance-id 0 --message-type UveVirtualMachineConfigTrace --category xmpp --level SYS_INFO | SYS_ERROR --object-type virtual-network | virtual-machine --object-id name --object-select-field ObjectLog | SystemLog --reverse --verbose --raw --trace BgpPeerTraceBuf [--start-time now-10m --end-time now] | --last 10m --send-syslog --syslog-server 127.0.0.1 --syslog-port 514 --keywords comma,seperated,list """ defaults = { 'analytics_api_ip': '127.0.0.1', 'analytics_api_port': '8081', } parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.set_defaults(**defaults) parser.add_argument("--analytics-api-ip", help="IP address of Analytics API Server") parser.add_argument("--analytics-api-port", help="Port of Analytics API Server") parser.add_argument( "--start-time", help="Logs start time (format now-10m, now-1h)") parser.add_argument("--end-time", help="Logs end time") parser.add_argument( "--last", help="Logs from last time period (format 10m, 1d)") parser.add_argument("--source", help="Logs from source address") parser.add_argument("--node-type", help="Logs from node type", choices=NodeTypeNames.values()) parser.add_argument( "--module", help="Logs from module", choices=ModuleNames.values()) parser.add_argument("--instance-id", help="Logs from module instance") parser.add_argument("--category", help="Logs of category") parser.add_argument("--level", help="Logs of level") parser.add_argument("--message-type", help="Logs of message type") parser.add_argument("--reverse", action="store_true", help="Show logs in reverse chronological order") parser.add_argument( "--verbose", action="store_true", help="Show internal information") parser.add_argument( "--raw", action="store_true", help="Show raw XML messages") parser.add_argument( "--object-type", help="Logs of object type", choices=OBJECT_TYPE_LIST) parser.add_argument("--object-values", action="store_true", help="Display list of object names") parser.add_argument("--object-id", help="Logs of object name") parser.add_argument( "--object-select-field", help="Select field to filter the log", choices=[VizConstants.OBJECT_LOG, VizConstants.SYSTEM_LOG]) parser.add_argument("--trace", help="Dump trace buffer") parser.add_argument("--limit", help="Limit the number of messages") parser.add_argument("--send-syslog", action="store_true", help="Send syslog to specified server and port") parser.add_argument("--syslog-server", help="IP address of syslog server", default='localhost') parser.add_argument("--syslog-port", help="Port to send syslog to", type=int, default=514) parser.add_argument("--tail","-f", help="Tail logs from now", action="store_true") parser.add_argument("--keywords", help="comma seperated list of keywords") parser.add_argument("--message-types", \ help="Display list of message type", action="store_true") parser.add_argument("--output-file", "-o", help="redirect output to file") parser.add_argument("--json", help="Dump output as json", action="store_true") parser.add_argument("--all", action="store_true", help=argparse.SUPPRESS) self._args = parser.parse_args() return 0
def parse_args(self): """ Eg. python log.py --opserver-ip 127.0.0.1 --opserver-port 8081 --source 127.0.0.1 --module bgp | cfgm | vnswad --message-type UveVirtualMachineConfigTrace --category xmpp --level SYS_INFO | SYS_ERROR --object vn | vm --object-id name --object-select-field ObjectLog | SystemLog --reverse --verbose --raw --trace BgpPeerTraceBuf [--start-time now-10m --end-time now] | --last 10m """ defaults = { 'opserver_ip': '127.0.0.1', 'opserver_port': '8081', 'start_time': 'now-10m', 'end_time': 'now', } parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.set_defaults(**defaults) parser.add_argument("--opserver-ip", help="IP address of OpServer") parser.add_argument("--opserver-port", help="Port of OpServer") parser.add_argument( "--start-time", help="Logs start time (format now-10m, now-1h)") parser.add_argument("--end-time", help="Logs end time") parser.add_argument( "--last", help="Logs from last time period (format 10m, 1d)") parser.add_argument("--source", help="Logs from source address") parser.add_argument( "--module", help="Logs from module", choices=ModuleNames.values()) parser.add_argument("--category", help="Logs of category") parser.add_argument("--level", help="Logs of level") parser.add_argument("--message-type", help="Logs of message type") parser.add_argument("--reverse", action="store_true", help="Show logs in reverse chronological order") parser.add_argument( "--verbose", action="store_true", help="Show internal information") parser.add_argument( "--all", action="store_true", help="Show all logs") parser.add_argument( "--raw", action="store_true", help="Show raw XML messages") parser.add_argument( "--object", help="Logs of object type", choices=OBJECT_TABLE_LIST) parser.add_argument("--object-id", help="Logs of object name") parser.add_argument( "--object-select-field", help="Select field to filter the log", choices=[VizConstants.OBJECT_LOG, VizConstants.SYSTEM_LOG]) parser.add_argument("--trace", help="Dump trace buffer") parser.add_argument("--limit", help="Limit the number of messages") self._args = parser.parse_args() if self._args.last is not None: self._args.last = '-' + self._args.last self._start_time = OpServerUtils.convert_to_utc_timestamp_usec( self._args.last) self._end_time = OpServerUtils.convert_to_utc_timestamp_usec('now') else: try: if (self._args.start_time.isdigit() and self._args.end_time.isdigit()): self._start_time = int(self._args.start_time) self._end_time = int(self._args.end_time) else: self._start_time =\ OpServerUtils.convert_to_utc_timestamp_usec( self._args.start_time) self._end_time =\ OpServerUtils.convert_to_utc_timestamp_usec( self._args.end_time) except: print 'Incorrect start-time (%s) or end-time (%s) format' %\ (self._args.start_time, self._args.end_time) return -1 return 0
def parse_args(self): """ Eg. python log.py --analytics-api-ip 127.0.0.1 --analytics-api-port 8181 --source 127.0.0.1 --node-type Control --module bgp | cfgm | vnswad --instance-id 0 --message-type UveVirtualMachineConfigTrace --category xmpp --level SYS_INFO | SYS_ERROR --object-type virtual-network | virtual-machine --object-id name --object-select-field ObjectLog | SystemLog --reverse --verbose --raw --trace BgpPeerTraceBuf [--start-time now-10m --end-time now] | --last 10m --send-syslog --syslog-server 127.0.0.1 --syslog-port 514 --keywords comma,seperated,list """ defaults = { 'analytics_api_ip': '127.0.0.1', 'analytics_api_port': '8181', 'admin_user': '******', 'admin_password': '******', 'conf_file': '/etc/contrail/contrail-keystone-auth.conf', } conf_parser = argparse.ArgumentParser(add_help=False) conf_parser.add_argument("--admin-user", help="Name of admin user") conf_parser.add_argument("--admin-password", help="Password of admin user") conf_parser.add_argument("--conf-file", help="Configuration file") conf_parser.add_argument("--analytics-api-ip", help="IP address of Analytics API Server") conf_parser.add_argument("--analytics-api-port", help="Port of Analytics API Server") args, remaining_argv = conf_parser.parse_known_args() configfile = defaults['conf_file'] if args.conf_file: configfile = args.conf_file config = ConfigParser.SafeConfigParser() config.read(configfile) if 'KEYSTONE' in config.sections(): if args.admin_user == None: args.admin_user = config.get('KEYSTONE', 'admin_user') if args.admin_password == None: args.admin_password = config.get('KEYSTONE', 'admin_password') if args.admin_user == None: args.admin_user = defaults['admin_user'] if args.admin_password == None: args.admin_password = defaults['admin_password'] if args.analytics_api_ip == None: args.analytics_api_ip = defaults['analytics_api_ip'] if args.analytics_api_port == None: args.analytics_api_port = defaults['analytics_api_port'] tab_url = "http://" + args.analytics_api_ip + ":" +\ args.analytics_api_port + "/analytics/tables" tables = OpServerUtils.get_url_http(tab_url, args.admin_user, args.admin_password) if tables != {}: if tables.status_code == 200: table_list = json.loads(tables.text) for table in table_list: if table['type'] == 'OBJECT': # append to OBJECT_TYPE_LIST only if not existing if table['name'] not in OBJECT_TABLE_MAP.values(): OBJECT_TYPE_LIST.append(str(table['name'])) # For object table the mapping between the actual table # name and the table name used in help msg are the same OBJECT_TABLE_MAP[table['name']] = table['name'] parser = argparse.ArgumentParser( # Inherit options from config_parser parents=[conf_parser], # print script description with -h/--help description=__doc__, formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.set_defaults(**defaults) parser.add_argument("--start-time", help="Logs start time (format now-10m, now-1h)") parser.add_argument("--end-time", help="Logs end time") parser.add_argument("--last", help="Logs from last time period (format 10m, 1d)") parser.add_argument("--source", nargs="*", help="list of sources separated by space") parser.add_argument("--node-type", help="Logs from node type", choices=NodeTypeNames.values()) parser.add_argument("--module", nargs="*", help="list of modules separated by space", choices=ModuleNames.values()) parser.add_argument("--instance-id", help="Logs from module instance") parser.add_argument("--category", help="Logs of category") parser.add_argument("--level", help="Logs of level") parser.add_argument("--message-type", nargs="*", help="list of message types separated by space") parser.add_argument("--reverse", action="store_true", help="Show logs in reverse chronological order") parser.add_argument("--verbose", action="store_true", help="Show internal information") parser.add_argument("--raw", action="store_true", help="Show raw XML messages") parser.add_argument("--object-type", help="Logs of object type", choices=OBJECT_TYPE_LIST) parser.add_argument("--object-values", action="store_true", help="Display list of object names") parser.add_argument("--object-id", help="Logs of object name") parser.add_argument( "--object-select-field", help="Select field to filter the log", choices=[VizConstants.OBJECT_LOG, VizConstants.SYSTEM_LOG]) parser.add_argument("--trace", help="Dump trace buffer") parser.add_argument("--limit", help="Limit the number of messages") parser.add_argument("--send-syslog", action="store_true", help="Send syslog to specified server and port") parser.add_argument("--syslog-server", help="IP address of syslog server", default='localhost') parser.add_argument("--syslog-port", help="Port to send syslog to", type=int, default=514) parser.add_argument("--tail", "-f", help="Tail logs from now", action="store_true") parser.add_argument("--keywords", help="comma seperated list of keywords") parser.add_argument("--message-types", \ help="Display list of message type", action="store_true") parser.add_argument("--output-file", "-o", help="redirect output to file") parser.add_argument("--json", help="Dump output as json", action="store_true") parser.add_argument("--all", action="store_true", help=argparse.SUPPRESS) self._args = parser.parse_args(remaining_argv) self._args.admin_user = args.admin_user self._args.admin_password = args.admin_password self._args.analytics_api_ip = args.analytics_api_ip self._args.analytics_api_port = args.analytics_api_port return 0
def parse_args(self): """ Eg. python log.py --analytics-api-ip 127.0.0.1 --analytics-api-port 8181 --source 127.0.0.1 --node-type Control --module bgp | cfgm | vnswad --instance-id 0 --message-type UveVirtualMachineConfigTrace --category xmpp --level SYS_INFO | SYS_ERROR --object-type virtual-network | virtual-machine --object-id name --object-select-field ObjectLog | SystemLog --reverse --verbose --raw --trace BgpPeerTraceBuf [--start-time now-10m --end-time now] | --last 10m --send-syslog --syslog-server 127.0.0.1 --syslog-port 514 --keywords comma,seperated,list """ defaults = { 'analytics_api_ip': '127.0.0.1', 'analytics_api_port': '8181', 'admin_user': '******', 'admin_password': '******', 'conf_file': '/etc/contrail/contrail-keystone-auth.conf', } conf_parser = argparse.ArgumentParser(add_help=False) conf_parser.add_argument("--admin-user", help="Name of admin user") conf_parser.add_argument("--admin-password", help="Password of admin user") conf_parser.add_argument("--conf-file", help="Configuration file") conf_parser.add_argument("--analytics-api-ip", help="IP address of Analytics API Server") conf_parser.add_argument("--analytics-api-port", help="Port of Analytics API Server") args, remaining_argv = conf_parser.parse_known_args(); configfile = defaults['conf_file'] if args.conf_file: configfile = args.conf_file config = ConfigParser.SafeConfigParser() config.read(configfile) if 'KEYSTONE' in config.sections(): if args.admin_user == None: args.admin_user = config.get('KEYSTONE', 'admin_user') if args.admin_password == None: args.admin_password = config.get('KEYSTONE','admin_password') if args.admin_user == None: args.admin_user = defaults['admin_user'] if args.admin_password == None: args.admin_password = defaults['admin_password'] if args.analytics_api_ip == None: args.analytics_api_ip = defaults['analytics_api_ip'] if args.analytics_api_port == None: args.analytics_api_port = defaults['analytics_api_port'] tab_url = "http://" + args.analytics_api_ip + ":" +\ args.analytics_api_port + "/analytics/tables" tables = OpServerUtils.get_url_http(tab_url, args.admin_user, args.admin_password) if tables != {}: if tables.status_code == 200: table_list = json.loads(tables.text) for table in table_list: if table['type'] == 'OBJECT': # append to OBJECT_TYPE_LIST only if not existing if table['name'] not in OBJECT_TABLE_MAP.values(): OBJECT_TYPE_LIST.append(str(table['name'])) # For object table the mapping between the actual table # name and the table name used in help msg are the same OBJECT_TABLE_MAP[table['name']]=table['name'] parser = argparse.ArgumentParser( # Inherit options from config_parser parents=[conf_parser], # print script description with -h/--help description=__doc__, formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.set_defaults(**defaults) parser.add_argument( "--start-time", help="Logs start time (format now-10m, now-1h)") parser.add_argument("--end-time", help="Logs end time") parser.add_argument( "--last", help="Logs from last time period (format 10m, 1d)") parser.add_argument("--source", nargs="*", help="list of sources separated by space") parser.add_argument("--node-type", help="Logs from node type", choices=NodeTypeNames.values()) parser.add_argument("--module", nargs="*", help="list of modules separated by space", choices=ModuleNames.values()) parser.add_argument("--instance-id", help="Logs from module instance") parser.add_argument("--category", help="Logs of category") parser.add_argument("--level", help="Logs of level") parser.add_argument("--message-type", nargs="*", help="list of message types separated by space") parser.add_argument("--reverse", action="store_true", help="Show logs in reverse chronological order") parser.add_argument( "--verbose", action="store_true", help="Show internal information") parser.add_argument( "--raw", action="store_true", help="Show raw XML messages") parser.add_argument( "--object-type", help="Logs of object type", choices=OBJECT_TYPE_LIST) parser.add_argument("--object-values", action="store_true", help="Display list of object names") parser.add_argument("--object-id", help="Logs of object name") parser.add_argument( "--object-select-field", help="Select field to filter the log", choices=[VizConstants.OBJECT_LOG, VizConstants.SYSTEM_LOG]) parser.add_argument("--trace", help="Dump trace buffer") parser.add_argument("--limit", help="Limit the number of messages") parser.add_argument("--send-syslog", action="store_true", help="Send syslog to specified server and port") parser.add_argument("--syslog-server", help="IP address of syslog server", default='localhost') parser.add_argument("--syslog-port", help="Port to send syslog to", type=int, default=514) parser.add_argument("--tail","-f", help="Tail logs from now", action="store_true") parser.add_argument("--keywords", help="comma seperated list of keywords") parser.add_argument("--message-types", \ help="Display list of message type", action="store_true") parser.add_argument("--output-file", "-o", help="redirect output to file") parser.add_argument("--json", help="Dump output as json", action="store_true") parser.add_argument("--all", action="store_true", help=argparse.SUPPRESS) self._args = parser.parse_args(remaining_argv) self._args.admin_user = args.admin_user self._args.admin_password = args.admin_password self._args.analytics_api_ip = args.analytics_api_ip self._args.analytics_api_port = args.analytics_api_port return 0
def parse_args(self): """ Eg. python log.py --opserver-ip 127.0.0.1 --opserver-port 8081 --source 127.0.0.1 --node-type Control --module bgp | cfgm | vnswad --instance-id 0 --message-type UveVirtualMachineConfigTrace --category xmpp --level SYS_INFO | SYS_ERROR --object-type virtual-network | virtual-machine --object-id name --object-select-field ObjectLog | SystemLog --reverse --verbose --raw --trace BgpPeerTraceBuf [--start-time now-10m --end-time now] | --last 10m --send-syslog --syslog-server 127.0.0.1 --syslog-port 514 """ defaults = {"opserver_ip": "127.0.0.1", "opserver_port": "8081", "start_time": "now-10m", "end_time": "now"} parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.set_defaults(**defaults) parser.add_argument("--opserver-ip", help="IP address of OpServer") parser.add_argument("--opserver-port", help="Port of OpServer") parser.add_argument("--start-time", help="Logs start time (format now-10m, now-1h)") parser.add_argument("--end-time", help="Logs end time") parser.add_argument("--last", help="Logs from last time period (format 10m, 1d)") parser.add_argument("--source", help="Logs from source address") parser.add_argument("--node-type", help="Logs from node type", choices=NodeTypeNames.values()) parser.add_argument("--module", help="Logs from module", choices=ModuleNames.values()) parser.add_argument("--instance-id", help="Logs from module instance") parser.add_argument("--category", help="Logs of category") parser.add_argument("--level", help="Logs of level") parser.add_argument("--message-type", help="Logs of message type") parser.add_argument("--reverse", action="store_true", help="Show logs in reverse chronological order") parser.add_argument("--verbose", action="store_true", help="Show internal information") parser.add_argument("--all", action="store_true", help="Show all logs") parser.add_argument("--raw", action="store_true", help="Show raw XML messages") parser.add_argument("--object-type", help="Logs of object type", choices=OBJECT_TYPE_LIST) parser.add_argument("--object-values", action="store_true", help="Display list of object names") parser.add_argument("--object-id", help="Logs of object name") parser.add_argument( "--object-select-field", help="Select field to filter the log", choices=[VizConstants.OBJECT_LOG, VizConstants.SYSTEM_LOG], ) parser.add_argument("--trace", help="Dump trace buffer") parser.add_argument("--limit", help="Limit the number of messages") parser.add_argument("--send-syslog", action="store_true", help="Send syslog to specified server and port") parser.add_argument("--syslog-server", help="IP address of syslog server", default="localhost") parser.add_argument("--syslog-port", help="Port to send syslog to", type=int, default=514) self._args = parser.parse_args() try: self._start_time, self._end_time = OpServerUtils.parse_start_end_time( start_time=self._args.start_time, end_time=self._args.end_time, last=self._args.last ) except: return -1 return 0
def parse_args(self): """ Eg. python log.py --opserver-ip 127.0.0.1 --opserver-port 8081 --source 127.0.0.1 --node-type Control --module bgp | cfgm | vnswad --instance-id 0 --message-type UveVirtualMachineConfigTrace --category xmpp --level SYS_INFO | SYS_ERROR --object vn | vm --object-id name --object-select-field ObjectLog | SystemLog --reverse --verbose --raw --trace BgpPeerTraceBuf [--start-time now-10m --end-time now] | --last 10m """ defaults = { 'opserver_ip': '127.0.0.1', 'opserver_port': '8081', 'start_time': 'now-10m', 'end_time': 'now', } parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.set_defaults(**defaults) parser.add_argument("--opserver-ip", help="IP address of OpServer") parser.add_argument("--opserver-port", help="Port of OpServer") parser.add_argument("--start-time", help="Logs start time (format now-10m, now-1h)") parser.add_argument("--end-time", help="Logs end time") parser.add_argument("--last", help="Logs from last time period (format 10m, 1d)") parser.add_argument("--source", help="Logs from source address") parser.add_argument("--node-type", help="Logs from node type", choices=NodeTypeNames.values()) parser.add_argument("--module", help="Logs from module", choices=ModuleNames.values()) parser.add_argument("--instance-id", help="Logs from module instance") parser.add_argument("--category", help="Logs of category") parser.add_argument("--level", help="Logs of level") parser.add_argument("--message-type", help="Logs of message type") parser.add_argument("--reverse", action="store_true", help="Show logs in reverse chronological order") parser.add_argument("--verbose", action="store_true", help="Show internal information") parser.add_argument("--all", action="store_true", help="Show all logs") parser.add_argument("--raw", action="store_true", help="Show raw XML messages") parser.add_argument("--object", help="Logs of object type", choices=OBJECT_TABLE_LIST) parser.add_argument("--object-id", help="Logs of object name") parser.add_argument( "--object-select-field", help="Select field to filter the log", choices=[VizConstants.OBJECT_LOG, VizConstants.SYSTEM_LOG]) parser.add_argument("--trace", help="Dump trace buffer") parser.add_argument("--limit", help="Limit the number of messages") self._args = parser.parse_args() if self._args.last is not None: self._args.last = '-' + self._args.last self._start_time = OpServerUtils.convert_to_utc_timestamp_usec( self._args.last) self._end_time = OpServerUtils.convert_to_utc_timestamp_usec('now') else: try: if (self._args.start_time.isdigit() and self._args.end_time.isdigit()): self._start_time = int(self._args.start_time) self._end_time = int(self._args.end_time) else: self._start_time =\ OpServerUtils.convert_to_utc_timestamp_usec( self._args.start_time) self._end_time =\ OpServerUtils.convert_to_utc_timestamp_usec( self._args.end_time) except: print 'Incorrect start-time (%s) or end-time (%s) format' %\ (self._args.start_time, self._args.end_time) return -1 return 0