def test_insert_row(self): """Testing method / function insert_row.""" # Add a language and pair_xlate_group entry to the database code = data.hashstring(str(random())) _translation = data.hashstring(str(random())) language.insert_row(code, _translation) idx_language = language.exists(code) pair_xlate_group.insert_row(_translation) idx_pair_xlate_group = pair_xlate_group.exists(_translation) # Make sure row does not exist translation = data.hashstring(str(random())) key = data.hashstring(str(random())) units = data.hashstring(str(random())) result = pair_xlate.pair_xlate_exists(idx_pair_xlate_group, idx_language, key) self.assertFalse(result) # Add an entry to the database pair_xlate.insert_row(key, translation, units, idx_language, idx_pair_xlate_group) # Test result = pair_xlate.pair_xlate_exists(idx_pair_xlate_group, idx_language, key) self.assertTrue(result)
def test_assign(self): """Testing method / function assign.""" # Add an entry to the database name = data.hashstring(str(random())) pair_xlate_group.insert_row(name) # Make sure it exists idx_pair_xlate_group = pair_xlate_group.exists(name) # Verify the index exists result = pair_xlate_group.idx_exists(idx_pair_xlate_group) self.assertTrue(result) # Prepare for adding an entry to the database agent_id = data.hashstring(str(random())) agent_target = data.hashstring(str(random())) agent_program = data.hashstring(str(random())) # Make sure it does not exist result = agent.exists(agent_id, agent_target) self.assertFalse(bool(result)) # Add an entry to the database agent.insert_row(agent_id, agent_target, agent_program) idx_agent = agent.exists(agent_id, agent_target) # Assign agent.assign(idx_agent, idx_pair_xlate_group) # Get assigned idx_pair_xlate_group for the agent group with db.db_query(20099) as session: result = session.query(Agent.idx_pair_xlate_group).filter( Agent.idx_agent == idx_agent).one() idx_new = result.idx_pair_xlate_group self.assertEqual(idx_pair_xlate_group, idx_new)
def setUpClass(self): """Setup tables in pattoo_unittest database""" # Setting up parsing for cli_set module subparser = self.parser.add_subparsers(dest='action') _Set(subparser) # Logger self.log_obj = log._GetLog() # Skips class setup if using travis-ci if not self.travis_ci: # Create test tables for Import test self.tables = [PairXlateGroup.__table__, Language.__table__] # Returns engine object self.engine = create_tables(self.tables) # Creating test data in Language and PairXlateGroup tables language.insert_row('en', 'English') pair_xlate_group.insert_row('Pattoo Default') # Getting number of entries in PairXlateGroup table self.idx_pair_xlate_group_count = 1 with db.db_query(30004) as session: result = session.query(PairXlateGroup) self.idx_pair_xlate_group_count += result.count()
def test_update_name(self): """Testing method / function update_name.""" # Add an entry to the database name = data.hashstring(str(random())) # Make sure it does not exist result = pair_xlate_group.exists(name) self.assertFalse(bool(result)) # Add row to database pair_xlate_group.insert_row(name) # Make sure it exists idx = pair_xlate_group.exists(name) # Get current name with db.db_query(20093) as session: result = session.query(PairXlateGroup.name).filter( PairXlateGroup.idx_pair_xlate_group == idx).one() # Test self.assertEqual(name, result.name.decode()) # Update the name new_name = data.hashstring(str(random())) pair_xlate_group.update_name(idx, new_name) # Get current name with db.db_query(20094) as session: result = session.query(PairXlateGroup.name).filter( PairXlateGroup.idx_pair_xlate_group == idx).one() # Test self.assertEqual(new_name, result.name.decode())
def test_assign(self): """Testing method / function assign.""" # Create a new PairXlateGroup entry name = data.hashstring(str(random())) pair_xlate_group.insert_row(name) idx_pair_xlate_group = pair_xlate_group.exists(name) # Add an entry to the database name = data.hashstring(str(random())) agent_group.insert_row(name) # Make sure it exists idx_agent_group = agent_group.exists(name) # Get current idx_pair_xlate_group for the agent group with db.db_query(20095) as session: result = session.query(AgentGroup.idx_pair_xlate_group).filter( AgentGroup.idx_agent_group == idx_agent_group).one() idx_original = result.idx_pair_xlate_group self.assertNotEqual(idx_pair_xlate_group, idx_original) # Assign agent_group.assign(idx_agent_group, idx_pair_xlate_group) # Get current idx_pair_xlate_group for the agent group with db.db_query(20098) as session: result = session.query(AgentGroup.idx_pair_xlate_group).filter( AgentGroup.idx_agent_group == idx_agent_group).one() idx_new = result.idx_pair_xlate_group self.assertEqual(idx_pair_xlate_group, idx_new)
def test_idx_pair_xlate_group(self): """Testing method / function idx_pair_xlate_group.""" # Create a new PairXlateGroup entry translation = data.hashstring(str(random())) pair_xlate_group.insert_row(translation) idx_pair_xlate_group = pair_xlate_group.exists(translation) # Add an entry to the database translation = data.hashstring(str(random())) agent_group.insert_row(translation) # Make sure it exists idx_agent_group = agent_group.exists(translation) # Assign AgentGroup agent_group.assign(idx_agent_group, idx_pair_xlate_group) # Add an entry to the database agent_id = data.hashstring(str(random())) agent_target = data.hashstring(str(random())) agent_program = data.hashstring(str(random())) agent.insert_row(agent_id, agent_target, agent_program) idx_agent = agent.exists(agent_id, agent_target) # Assign Agent got AgentGroup agent.assign(idx_agent, idx_agent_group) # Test result = agent.idx_pair_xlate_group(agent_id) self.assertEqual(result, idx_pair_xlate_group)
def test__process_pair_xlate_group(self): "Tests _process_pair_xlate_group" current_name = 'Process Xlate Test Entry' expected = {'name': 'Xlate Changed Entry', 'idx_pair_xlate_group': self.idx_pair_xlate_group_count} cmd_args = ['set', 'key_translation_group', '--idx_pair_xlate_group', str(expected['idx_pair_xlate_group']), '--name', expected['name']] self.idx_pair_xlate_group_count += 1 # Inserting test pair_xlate_group entry into PairXlateGroup table pair_xlate_group.insert_row(current_name) # Asserting that updates were made in the PairXlateGroup table self.set_fn(current_name, expected, cmd_args, PairXlateGroup, _process_pair_xlate_group, False) def log_test(idx_pair_xlate_group, expected_included_str, args_name=''): """Asserts that given log message is shown given a particular error Args: idx_pair_xlate_group: Index number to be quiered Return: None """ # Setting up args args = self.parser.parse_args([]) args.idx_pair_xlate_group = idx_pair_xlate_group args.name = args_name with self.assertLogs(self.log_obj.stdout(), level='INFO') as cm: print('Exception thrown testing test__process_language: ') with self.assertRaises(SystemExit): _process_pair_xlate_group(args) print(cm.output[0]) print('') self.assertIn(expected_included_str, cm.output[0]) # Testing for log message when translation group is not found mock_idx = self.idx_pair_xlate_group_count + 1 expected = 'Translation group "{}" not found'.format(mock_idx) log_test(mock_idx, expected) # Testiing for log message when translation group already exists mock_idx = 1 mock_name = 'Pattoo Default' expected= 'Translation group "{}" already exists'.format(mock_name) log_test(mock_idx, expected, mock_name) # Testiing for log message when translation group requested to bchanged # is the first element mock_idx = 1 mock_name = 'test_name_change' expected = 'Cannot change Translation group "1".' log_test(mock_idx, expected, mock_name)
def test_insert_row(self): """Testing method / function insert_row.""" # Add an entry to the database name = data.hashstring(str(random())) pair_xlate_group.insert_row(name) # Make sure it exists idx_pair_xlate_group = pair_xlate_group.exists(name) # Verify the index exists result = pair_xlate_group.idx_exists(idx_pair_xlate_group) self.assertTrue(result)
def test_cli_show_dump(self): """Testing method / function cli_show_dump.""" # Add an entry to the database translation = data.hashstring(str(random())) pair_xlate_group.insert_row(translation) # Make sure it exists idx_pair_xlate_group = pair_xlate_group.exists(translation) result = pair_xlate.cli_show_dump() for item in result: if item.idx_pair_xlate_group == idx_pair_xlate_group: self.assertEqual(item.name, translation) break
def test_exists(self): """Testing method / function exists.""" # Create a name name = data.hashstring(str(random())) # Make sure it does not exist result = pair_xlate_group.exists(name) self.assertFalse(bool(result)) # Add an entry to the database pair_xlate_group.insert_row(name) # Make sure it exists result = pair_xlate_group.exists(name) self.assertTrue(bool(result))
def test_update(self): """Testing method / function update.""" # Add a language and pair_xlate_group entry to the database code = data.hashstring(str(random())) _translation = data.hashstring(str(random())) language.insert_row(code, _translation) idx_language = language.exists(code) pair_xlate_group.insert_row(_translation) idx_pair_xlate_group = pair_xlate_group.exists(_translation) # Create data _data = [] for key in range(0, 10): _data.append( [code, str(key), '_{}_'.format(key), '0{}0'.format(key)]) _df0 = pd.DataFrame( _data, columns=['language', 'key', 'translation', 'units']) pair_xlate.update(_df0, idx_pair_xlate_group) # Update data _data = [] for key in range(0, 10): _data.append( [code, str(key), '|{}|'.format(key), '1{}1'.format(key)]) _df = pd.DataFrame(_data, columns=['language', 'key', 'translation', 'units']) pair_xlate.update(_df, idx_pair_xlate_group) # Test updated data for key in range(0, 10): with db.db_query(20125) as session: row = session.query(PairXlate).filter( and_( PairXlate.idx_pair_xlate_group == idx_pair_xlate_group, PairXlate.key == str(key).encode(), PairXlate.idx_language == idx_language)).one() self.assertEqual(row.translation.decode(), _df['translation'][key]) self.assertEqual(row.units.decode(), _df['units'][key]) # Old translations should not exist for translation in _df0['translation']: with db.db_query(20126) as session: row = session.query(PairXlate).filter( and_( PairXlate.idx_pair_xlate_group == idx_pair_xlate_group, PairXlate.translation == translation.encode(), PairXlate.idx_language == idx_language)) self.assertEqual(row.count(), 0)
def _process_pair_xlate_group(args): """Process pair_xlate_group cli arguments. Args: args: CLI argparse parser arguments Returns: None """ # Initialize key variables if bool(pair_xlate_group.exists(args.name)) is True: log_message = ('''\ Agent group name "{}" already exists.'''.format(args.name)) log.log2die(20057, log_message) else: pair_xlate_group.insert_row(args.name)
def setUpClass(self): """Setup tables in pattoo_unittest database""" # Setting up arpser to be able to parse import cli commands subparser = self.parser.add_subparsers(dest='action') _Create(subparser) # Skips class setup if using travis-ci if not self.travis_ci: # Create test tables for Import test self.tables = [PairXlateGroup.__table__, Language.__table__] # Returns engine object self.engine = create_tables(self.tables) # Inserting default entries language.insert_row('en', 'English') pair_xlate_group.insert_row('pair_1')
def test_process(self): """Test import argument process function""" # Testing for invalid args.qualifier args = self.parser.parse_args([]) args.qualifier = '' self.assertIsNone(process(args)) #################################################################### # # Testing for proper _process_language execution # #################################################################### current_name = 'Chinese' expected = {'code': 'fr', 'name': 'French'} cmd_args = ['set', 'language', '--code', expected['code'], '--name', expected['name']] # Inserting test language entry into Language table language.insert_row(expected['code'], current_name) # Asserting that updates were made in Language table self.set_fn(current_name, expected, cmd_args, Language, process, True) #################################################################### # # Testing for proper _process_pair_xlate_group execution # #################################################################### current_name = 'TEST GROUP' expected = {'name': 'TEST GROUP NAME CHANGE', 'idx_pair_xlate_group': self.idx_pair_xlate_group_count} cmd_args = ['set', 'key_translation_group', '--idx_pair_xlate_group', str(expected['idx_pair_xlate_group']), '--name', expected['name']] self.idx_pair_xlate_group_count += 1 # Inserting test pair_xlate_group entry into PairXlateGroup table pair_xlate_group.insert_row(current_name) # Asserting that updates were made in the PairXlateGroup table self.set_fn(current_name, expected, cmd_args, PairXlateGroup, process, True)
def test_update_row(self): """Testing method / function update_row.""" # Add a language and pair_xlate_group entry to the database code = data.hashstring(str(random())) _translation = data.hashstring(str(random())) language.insert_row(code, _translation) idx_language = language.exists(code) pair_xlate_group.insert_row(_translation) idx_pair_xlate_group = pair_xlate_group.exists(_translation) # Make sure row does not exist translation = data.hashstring(str(random())) key = data.hashstring(str(random())) units = data.hashstring(str(random())) result = pair_xlate.pair_xlate_exists(idx_pair_xlate_group, idx_language, key) self.assertFalse(result) # Add an entry to the database pair_xlate.insert_row(key, translation, units, idx_language, idx_pair_xlate_group) # Test existence result = pair_xlate.pair_xlate_exists(idx_pair_xlate_group, idx_language, key) self.assertTrue(result) # Test update new_translation = data.hashstring(str(random())) pair_xlate.update_row(key, new_translation, units, idx_language, idx_pair_xlate_group) with db.db_query(20071) as session: row = session.query(PairXlate).filter( and_(PairXlate.idx_pair_xlate_group == idx_pair_xlate_group, PairXlate.key == key.encode(), PairXlate.idx_language == idx_language)).one() self.assertEqual(row.translation.decode(), new_translation)
def _insert_pair_xlate_group(): """Insert starting default entries into the PairXlate table. Args: None Returns: None """ # Initialize key variables default_name = 'Pattoo Default' idx_pair_xlate_groups = {} language_dict = {} pair_xlate_data = [ ('OPC UA Agents', [('en', 'pattoo_agent_opcuad_opcua_server', 'OPC UA Server', '')]), ('IfMIB Agents', [('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.9', 'Interface Broadcast Packets (HC inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.8', 'Interface Multicast Packets (HC inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.6', 'Interface Traffic (HC inbound)', 'Bits / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.7', 'Interface Unicast Packets (inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.13', 'Interface Broadcast Packets (HC outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.12', 'Interface Multicast Packets (HC outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.10', 'Interface Traffic (HC outbound)', 'Bits / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.11', 'Interface Unicast Packets (HC outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.3', 'Interface Broadcast Packets (inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.2.2.1.13', 'Interface Discard Errors (inbound)', 'Errors / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.2.2.1.14', 'Interface Errors (inbound)', 'Errors / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.2', 'Interface Multicast Packets (inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.2.2.1.10', 'Interface Traffic (inbound)', 'Bits / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.2.2.1.11', 'Interface Traffic (inbound)', 'Bits / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.5', 'Interface Broadcast Packets (outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.2.2.1.19', 'Interface Discard Errors (outbound)', 'Errors / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.2.2.1.20', 'Interface Errors (outbound)', 'Errors / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.31.1.1.1.4', 'Interface Multicast Packets (outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.2.2.1.16', 'Interface Traffic (outbound)', 'Bits / Second'), ('en', 'pattoo_agent_snmpd_.1.3.6.1.2.1.2.2.1.17', 'Interface Unicast Packets (outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifalias', 'Interface Alias', ''), ('en', 'pattoo_agent_snmp_ifmibd_ifdescr', 'Interface Description', ''), ('en', 'pattoo_agent_snmp_ifmibd_ifhcinbroadcastpkts', 'Interface Broadcast Packets (HC inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifhcinmulticastpkts', 'Interface Multicast Packets (HC inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifhcinoctets', 'Interface Traffic (HC inbound)', 'Bits / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifhcinucastpkts', 'Interface Unicast Packets (HC inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifhcoutbroadcastpkts', 'Interface Broadcast Packets (HC outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifhcoutmulticastpkts', 'Interface Multicast Packets (HC outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifhcoutoctets', 'Interface Traffic (HC outbound)', 'Bits / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifhcoutucastpkts', 'Interface Unicast Packets (HC outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifinbroadcastpkts', 'Interface Broadcast Packets (inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifinmulticastpkts', 'Interface Multicast Packets (inbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifinoctets', 'Interface Traffic (inbound)', 'Bits / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifname', 'Interface Name', ''), ('en', 'pattoo_agent_snmp_ifmibd_ifoutbroadcastpkts', 'Interface Broadcast Packets (outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifoutmulticastpkts', 'Interface Multicast Packets (outbound)', 'Packets / Second'), ('en', 'pattoo_agent_snmp_ifmibd_ifoutoctets', 'Interface Traffic (outbound)', 'Bits / Second'), ('en', 'pattoo_agent_snmp_ifmibd_oid', 'SNMP OID', ''), ('en', 'pattoo_agent_snmpd_ifalias', 'Interface Alias', ''), ('en', 'pattoo_agent_snmpd_ifdescr', 'Interface Description', ''), ('en', 'pattoo_agent_snmpd_ifname', 'Interface Name', ''), ('en', 'pattoo_agent_snmpd_oid', 'SNMP OID', '')]), ('Linux Agents', [('en', 'pattoo_agent_linux_autonomousd_processor', 'Processor Type', ''), ('en', 'pattoo_agent_linux_autonomousd_release', 'OS Release', ''), ('en', 'pattoo_agent_linux_autonomousd_type', 'OS Type', ''), ('en', 'pattoo_agent_linux_autonomousd_version', 'OS Version', ''), ('en', 'pattoo_agent_linux_autonomousd_cpus', 'OS CPU Count', ''), ('en', 'pattoo_agent_linux_autonomousd_hostname', 'Hostname', ''), ('en', 'pattoo_agent_linux_autonomousd_disk_partition_device', 'Disk Partition', ''), ('en', 'pattoo_agent_linux_autonomousd_disk_partition_fstype', 'Filesystem Type', ''), ('en', 'pattoo_agent_linux_autonomousd_disk_partition_mountpoint', 'Mount Point', ''), ('en', 'pattoo_agent_linux_autonomousd_disk_partition_opts', 'Partition Options', ''), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_user', 'User (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_nice', 'Nice (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_system', 'System (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_idle', 'Idle (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_iowait', 'IO Wait (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_irq', 'IRQ (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_softirq', 'Soft IRQ (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_steal', 'Steal (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_guest', 'Guest (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_percent_guest_nice', 'Guest / Nice (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_user', 'User (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_nice', 'Nice (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_system', 'System (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_idle', 'Idle (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_iowait', 'IO Wait (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_irq', 'IRQ (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_softirq', 'Soft IRQ (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_steal', 'Steal (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_guest', 'Guest (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_times_guest_nice', 'Guest / Nice (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_cpu_stats_ctx_switches', 'CPU (Context Switches)', 'Events / Second'), ('en', 'pattoo_agent_linux_autonomousd_cpu_stats_interrupts', 'CPU (Context Switches)', 'Events / Second'), ('en', 'pattoo_agent_linux_autonomousd_cpu_stats_soft_interrupts', 'CPU (Soft Interrupts)', 'Events / Second'), ('en', 'pattoo_agent_linux_autonomousd_cpu_stats_syscalls', 'CPU (System Calls)', 'Events / Second'), ('en', 'pattoo_agent_linux_autonomousd_memory_total', 'Memory (Total)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_memory_available', 'Memory (Available)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_memory_percent', 'Memory (Percent)', 'Percentage Utilization'), ('en', 'pattoo_agent_linux_autonomousd_memory_used', 'Memory (Used)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_memory_free', 'Memory (Free)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_memory_active', 'Memory (Active)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_memory_inactive', 'Memory (Inactive)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_memory_buffers', 'Memory (Buffers)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_memory_cached', 'Memory (Cached)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_memory_shared', 'Memory (Shared)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_memory_slab', 'Memory (Slab)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_swap_memory_total', 'Swap Memory (Total)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_swap_memory_used', 'Swap Memory (Used)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_swap_memory_free', 'Swap Memory (Free)', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_swap_memory_percent', 'Swap Memory (Percent)', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_swap_memory_sin', 'Swap Memory (In)', 'Bytes / Second'), ('en', 'pattoo_agent_linux_autonomousd_swap_memory_sout', 'Swap Memory (Out)', 'Bytes / Second'), ('en', 'pattoo_agent_linux_autonomousd_disk_partition_disk_usage_total', 'Disk size', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_disk_partition_disk_usage_used', 'Disk Utilization', 'Percent'), ('en', 'pattoo_agent_linux_autonomousd_disk_partition_disk_usage_free', 'Disk Free', 'Bytes'), ('en', 'pattoo_agent_linux_autonomousd_disk_partition_disk_usage_percent', 'Disk Percentage Utilization', ''), ('en', 'pattoo_agent_linux_autonomousd_disk_io_read_count', 'Disk I/O (Read Count)', 'Reads / Second'), ('en', 'pattoo_agent_linux_autonomousd_disk_partition', 'Disk Partition', ''), ('en', 'pattoo_agent_linux_autonomousd_disk_io_write_count', 'Disk I/O (Write Count)', 'Writes / Second'), ('en', 'pattoo_agent_linux_autonomousd_disk_io_read_bytes', 'Disk I/O (Bytes Read)', 'Bytes / Second'), ('en', 'pattoo_agent_linux_autonomousd_disk_io_write_bytes', 'Disk I/O (Bytes Written)', 'Bytes / Second'), ('en', 'pattoo_agent_linux_autonomousd_disk_io_read_time', 'Disk I/O (Read Time)', ''), ('en', 'pattoo_agent_linux_autonomousd_disk_io_write_time', 'Disk I/O (Write Time)', ''), ('en', 'pattoo_agent_linux_autonomousd_disk_io_read_merged_count', 'Disk I/O (Read Merged Count)', 'Reads / Second'), ('en', 'pattoo_agent_linux_autonomousd_disk_io_write_merged_count', 'Disk I/O (Write Merged Count)', 'Writes / Second'), ('en', 'pattoo_agent_linux_autonomousd_disk_io_busy_time', 'Disk I/O (Busy Time)', ''), ('en', 'pattoo_agent_linux_autonomousd_network_io_bytes_sent', 'Network I/O (Bandwidth Inbound)', 'Bits / Second'), ('en', 'pattoo_agent_linux_autonomousd_network_io_interface', 'Network Interface', ''), ('en', 'pattoo_agent_linux_autonomousd_network_io_bytes_recv', 'Network I/O (Bandwidth Outbound)', 'Bits / Second'), ('en', 'pattoo_agent_linux_autonomousd_network_io_packets_sent', 'Network I/O (Packets Sent)', 'Packets / Second'), ('en', 'pattoo_agent_linux_autonomousd_network_io_packets_recv', 'Network I/O (Packets Received)', 'Packets / Second'), ('en', 'pattoo_agent_linux_autonomousd_network_io_errin', 'Network I/O (Errors Inbound)', 'Errors / Second'), ('en', 'pattoo_agent_linux_autonomousd_network_io_errout', 'Network I/O (Errors Outbound)', 'Errors / Second'), ('en', 'pattoo_agent_linux_autonomousd_network_io_dropin', 'Network I/O (Drops Inbound)', 'Drops / Second'), ('en', 'pattoo_agent_linux_autonomousd_network_io_dropout', 'Network I/O (Drops Outbound)', 'Drops / Second'), ('en', 'pattoo_agent_linux_autonomousd_cpu_frequency', 'CPU Frequency', 'Frequency'), ('en', 'pattoo_agent_linux_spoked_processor', 'Processor Type', ''), ('en', 'pattoo_agent_linux_spoked_release', 'OS Release', ''), ('en', 'pattoo_agent_linux_spoked_type', 'OS Type', ''), ('en', 'pattoo_agent_linux_spoked_version', 'OS Version', ''), ('en', 'pattoo_agent_linux_spoked_cpus', 'OS CPU Count', ''), ('en', 'pattoo_agent_linux_spoked_hostname', 'Hostname', ''), ('en', 'pattoo_agent_linux_spoked_disk_partition_device', 'Disk Partition', ''), ('en', 'pattoo_agent_linux_spoked_disk_partition_fstype', 'Filesystem Type', ''), ('en', 'pattoo_agent_linux_spoked_disk_partition_mountpoint', 'Mount Point', ''), ('en', 'pattoo_agent_linux_spoked_disk_partition_opts', 'Partition Options', ''), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_user', 'User (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_nice', 'Nice (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_system', 'System (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_idle', 'Idle (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_iowait', 'IO Wait (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_irq', 'IRQ (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_softirq', 'Soft IRQ (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_steal', 'Steal (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_guest', 'Guest (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_percent_guest_nice', 'Guest / Nice (Percent CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_user', 'User (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_nice', 'Nice (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_system', 'System (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_idle', 'Idle (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_iowait', 'IO Wait (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_irq', 'IRQ (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_softirq', 'Soft IRQ (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_steal', 'Steal (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_guest', 'Guest (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_times_guest_nice', 'Guest / Nice (CPU Usage)', 'Percent'), ('en', 'pattoo_agent_linux_spoked_cpu_stats_ctx_switches', 'CPU (Context Switches)', 'Events / Second'), ('en', 'pattoo_agent_linux_spoked_cpu_stats_interrupts', 'CPU (Context Switches)', 'Events / Second'), ('en', 'pattoo_agent_linux_spoked_cpu_stats_soft_interrupts', 'CPU (Soft Interrupts)', 'Events / Second'), ('en', 'pattoo_agent_linux_spoked_cpu_stats_syscalls', 'CPU (System Calls)', 'Events / Second'), ('en', 'pattoo_agent_linux_spoked_memory_total', 'Memory (Total)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_memory_available', 'Memory (Available)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_memory_percent', 'Memory (Percent)', ''), ('en', 'pattoo_agent_linux_spoked_memory_used', 'Memory (Used)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_memory_free', 'Memory (Free)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_memory_active', 'Memory (Active)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_memory_inactive', 'Memory (Inactive)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_memory_buffers', 'Memory (Buffers)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_memory_cached', 'Memory (Cached)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_memory_shared', 'Memory (Shared)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_memory_slab', 'Memory (Slab)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_swap_memory_total', 'Swap Memory (Total)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_swap_memory_used', 'Swap Memory (Used)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_swap_memory_free', 'Swap Memory (Free)', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_swap_memory_percent', 'Swap Memory (Percent)', ''), ('en', 'pattoo_agent_linux_spoked_swap_memory_sin', 'Swap Memory (In)', 'Bytes / Second'), ('en', 'pattoo_agent_linux_spoked_swap_memory_sout', 'Swap Memory (Out)', 'Bytes / Second'), ('en', 'pattoo_agent_linux_spoked_disk_partition_disk_usage_total', 'Disk size', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_disk_partition_disk_usage_used', 'Disk Utilization', 'Percent'), ('en', 'pattoo_agent_linux_spoked_disk_partition_disk_usage_free', 'Disk Free', 'Bytes'), ('en', 'pattoo_agent_linux_spoked_disk_partition_disk_usage_percent', 'Disk Percentage Utilization', ''), ('en', 'pattoo_agent_linux_spoked_disk_io_read_count', 'Disk I/O (Read Count)', 'Reads / Second'), ('en', 'pattoo_agent_linux_spoked_disk_partition', 'Disk Partition', ''), ('en', 'pattoo_agent_linux_spoked_disk_io_write_count', 'Disk I/O (Write Count)', 'Writes / Second'), ('en', 'pattoo_agent_linux_spoked_disk_io_read_bytes', 'Disk I/O (Bytes Read)', 'Bytes / Second'), ('en', 'pattoo_agent_linux_spoked_disk_io_write_bytes', 'Disk I/O (Bytes Written)', 'Bytes / Second'), ('en', 'pattoo_agent_linux_spoked_disk_io_read_time', 'Disk I/O (Read Time)', ''), ('en', 'pattoo_agent_linux_spoked_disk_io_write_time', 'Disk I/O (Write Time)', ''), ('en', 'pattoo_agent_linux_spoked_disk_io_read_merged_count', 'Disk I/O (Read Merged Count)', 'Reads / Second'), ('en', 'pattoo_agent_linux_spoked_disk_io_write_merged_count', 'Disk I/O (Write Merged Count)', 'Writes / Second'), ('en', 'pattoo_agent_linux_spoked_disk_io_busy_time', 'Disk I/O (Busy Time)', ''), ('en', 'pattoo_agent_linux_spoked_network_io_bytes_sent', 'Network I/O (Bandwidth Inbound)', 'Bits / Second'), ('en', 'pattoo_agent_linux_spoked_network_io_interface', 'Network Interface', ''), ('en', 'pattoo_agent_linux_spoked_network_io_bytes_recv', 'Network I/O (Bandwidth Outbound)', 'Bits / Second'), ('en', 'pattoo_agent_linux_spoked_network_io_packets_sent', 'Network I/O (Packets Sent)', 'Packets / Second'), ('en', 'pattoo_agent_linux_spoked_network_io_packets_recv', 'Network I/O (Packets Received)', 'Packets / Second'), ('en', 'pattoo_agent_linux_spoked_network_io_errin', 'Network I/O (Errors Inbound)', 'Errors / Second'), ('en', 'pattoo_agent_linux_spoked_network_io_errout', 'Network I/O (Errors Outbound)', 'Errors / Second'), ('en', 'pattoo_agent_linux_spoked_network_io_dropin', 'Network I/O (Drops Inbound)', 'Drops / Second'), ('en', 'pattoo_agent_linux_spoked_network_io_dropout', 'Network I/O (Drops Outbound)', 'Drops / Second'), ('en', 'pattoo_agent_linux_spoked_cpu_frequency', 'CPU Frequency', '')]) ] # Insert into PairXlateGroup if pair_xlate_group.idx_exists(1) is False: # Create the default PairXlateGroup pair_xlate_group.insert_row(default_name) # Create PairXlateGroup for some pattoo agents for name, rows in pair_xlate_data: # Get PairXlateGroup index value after creating an entry pair_xlate_group.insert_row(name) idx_pair_xlate_group = pair_xlate_group.exists(name) idx_pair_xlate_groups[name] = idx_pair_xlate_group # Insert values into the PairXlate table for PairXlateGroup for row in rows: if len(row) != 4: log_message = ( 'Translation line "{}" is invalid.'.format(row)) log.log2die_safe(20140, log_message) (code, _key, _value, _units) = row idx_language = language_dict.get(language) if bool(idx_language) is False: idx_language = language.exists(code) language_dict[code] = idx_language pair_xlate.insert_row(_key, _value, _units, idx_language, idx_pair_xlate_group)