def test_grab_latest_file( self ): """ Tests keys; no-errors; and success-message. """ p = Processor() data_dict = p.grab_latest_file( file_id=u'beth0282' ) self.assertEqual( [u'stderr', u'stdout', u'submitted_destination_path', u'submitted_file_id', u'submitted_vc_url'], sorted(data_dict.keys()) ) self.assertEqual( [], data_dict[u'stderr'] ) self.assertEqual( True, u'Export complete' in data_dict[u'stdout'][1] )
def test_grab_original_xml( self ): """ Tests for well-formed xml and type of returned string. TODO: update to check for _valid_ xml once I have access to a schema. """ p = Processor() grab_dict = p.grab_original_xml( file_id=u'beth0282' ) ## type check self.assertEqual( unicode, type(grab_dict[u'xml']) ) ## well-formedness check well_formedness_dict = common.check_xml_wellformedness( xml=grab_dict[u'xml'] ) self.assertEqual( True, well_formedness_dict[u'well_formed'] )
def test_init_methods(self): """Checks that the variables are correctly set""" # Processor class processor = Processor("x1", "x2") self.assertEquals("x1", processor.vendor_id) self.assertEquals("x2", processor.model_name) # CPU class cpu = CPU("Intel", "Xeon", "x86_64", "e6333", "2600Mhz", "yes", 2, "cache", "111") self.assertEquals("Intel", cpu.vendor_id) self.assertEquals("Xeon", cpu.model_name) self.assertEquals("x86_64", cpu.arch) self.assertEquals("2600Mhz", cpu.speed) self.assertEquals("yes", cpu.fpu) self.assertEquals(2, cpu.cores) self.assertEquals("cache", cpu.cache) self.assertEquals("111", cpu.flags) # GPU gpu = GPU("AMD", "Raedon") self.assertEquals("AMD", gpu.vendor_id) self.assertEquals("Raedon", gpu.model_name) self.assertEquals([], gpu.memory) # MCP mcp = MCP("Intel", "Phi") self.assertEquals("Intel", mcp.vendor_id) self.assertEquals("Phi", mcp.model_name) self.assertEquals([], mcp.memory)
def test_make_initial_solr_doc( self ): """ Tests for well-formed xml and type of returned string. TODO: update to check for _valid_ xml once I have access to a schema. """ p = Processor() grab_dict = p.grab_original_xml( file_id=u'beth0282' ) munger_dict = p.run_munger( source_xml=grab_dict[u'xml'] ) initial_doc_dict = p.make_initial_solr_doc( munger_dict[u'munged_xml'] ) ## type check self.assertEqual( unicode, type(initial_doc_dict[u'transformed_xml']) ) ## well-formedness check well_formedness_dict = common.check_xml_wellformedness( xml=initial_doc_dict[u'transformed_xml'] ) self.assertEqual( True, well_formedness_dict[u'well_formed'] )
def test_make_initial_solr_doc( self ): """ Tests for well-formed xml and type of returned string. TODO: update to check for _valid_ xml once I have access to a schema. Note: if test fails, could be due to wireless ip changing, causing authNZ to fail. """ p = Processor() grab_dict = p.grab_original_xml( file_id=u'beth0282' ) log.debug( 'grab_dict, ```%s```' % pprint.pformat(grab_dict) ) munger_dict = p.run_munger( source_xml=grab_dict[u'xml'] ) initial_doc_dict = p.make_initial_solr_doc( munger_dict[u'munged_xml'] ) ## type check self.assertEqual( unicode, type(initial_doc_dict[u'transformed_xml']) ) ## well-formedness check well_formedness_dict = common.check_xml_wellformedness( xml=initial_doc_dict[u'transformed_xml'] ) self.assertEqual( True, well_formedness_dict[u'well_formed'] )
def test_process_file( self ): """ Tests keys, and a before and after solr-query result. Similar to test_update_solr(). """ p = Processor() ( initial_solrdoc_dict, initial_id ) = self._grab_initial_data() result_dict = p.process_file( file_id=initial_id, grab_latest_file=True, display_status=u'to_approve' ) # print u'result_dict...'; pprint.pprint( result_dict ) ## test keys self.assertEqual( [u'a__grab_latest_file', u'b__grab_source_xml', u'c__run_munger', u'd__make_initial_solr_doc', u'e__update_display_facet', u'f__post_to_solr'], sorted(result_dict.keys()) ) ## test post-to-solr self.assertEqual( 200, result_dict[u'f__post_to_solr'][u'response_status_code'] ) ## test subsequent solr query after_document_dict = self._get_after_data( initial_id ) # down in test_update_solr() for ( key, initial_value ) in initial_solrdoc_dict.items(): after_value = after_document_dict[key] self.assertEqual( initial_value, after_value )
def _run_solr_steps( self, initial_id ): """ Takes initial_id string. Runs through processing steps including running update_solr(). Returns update_solr_dict. Called by test_update_solr(). """ p = Processor() grab_dict = p.grab_original_xml( file_id=initial_id ) munger_dict = p.run_munger( source_xml=grab_dict[u'xml'] ) initial_doc_dict = p.make_initial_solr_doc( munger_dict[u'munged_xml'] ) updated_disply_dict = p.update_display_facet( initial_solr_xml=initial_doc_dict[u'transformed_xml'], display_status=u'to_approve' ) update_solr_dict = p.update_solr( updated_disply_dict[u'updated_xml'] ) return update_solr_dict
"asset_tag": dmi.get("System")[0].get("UUID", "Unknown") } device_data["device_type"] = utils.goc_device_type( netbox, dmi.get("System")[0].get("Product Name", "Unknown"), device_data["manufacturer"]) # Get or Create device device = utils.goc_device(netbox, device_data) print(" => %s " % device.name) # All device get with dmidecode item_types = { "BIOS": lambda item_data: Bios(item_data), "Baseboard": lambda item_data: BaseBord(item_data), "Processor": lambda item_data: Processor(item_data), "Memory Device": lambda item_data: MemoryDevice(item_data), } for item_type, item_func in item_types.items(): print(item_type) for item in dmi.get(item_type): item_func(item).create(device, netbox) # Get disks lsblk_command = "lsblk -SJ -o KNAME,VENDOR,MODEL,SERIAL,REV,SIZE,STATE" proc = subprocess.Popen( ["ssh", os.environ.get("INVENTORY_HOST"), "sudo"] + lsblk_command.split(" "), stderr=subprocess.STDOUT, stdout=subprocess.PIPE) stdout, stderr = proc.communicate()