def sync(verbose=False): ignore_devices_on_servers_re = None if config.has_option('inventory', 'ignore_devices_on_servers_re'): ignore_devices_on_servers_re = config.get('inventory', 'ignore_devices_on_servers_re') from_inv = get_devices( config.get('inventory', 'url'), config.get('inventory', 'filter'), config.get('inventory', 'username'), config.get('inventory', 'password'), ignore_devices_on_servers_re, verbose=verbose) # dump the db second, since otherwise the mysql server can go away while # get_devices is still running, which is no fun from_db = data.dump_devices() for task in merge_devices(from_db, from_inv): if task[0] == 'insert': if verbose: print "insert device", task[1]['fqdn'] data.insert_device(task[1]) elif task[0] == 'delete': if verbose: print "delete device", task[2] data.delete_device(task[1]) elif task[0] == 'update': if verbose: print "update device", task[2] data.update_device(task[1], task[2]) else: raise AssertionError('%s is not a task' % task[0])
def testDumpBoards(self): self.assertEquals([ dict(id=1, name='device1', fqdn='device1', inventory_id=1, mac_address='000000000000', imaging_server='server1', relay_info='relay-1:bank1:relay1', state='offline'), ], data.dump_devices())
def GET(self): args, _ = templeton.handlers.get_request_parms() if 'details' in args: return dict(devices=data.dump_devices()) else: return data.list_devices()
def testDumpDevices(self): self.assertEquals(data.dump_devices(), [ dict(id=1, name='device1', fqdn='device1', inventory_id=1, mac_address='000000000000', imaging_server='server1', relay_info='relay-1:bank1:relay1', hardware_type='htyp', hardware_model='hmod'), ])