Ejemplo n.º 1
0
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])
Ejemplo n.º 2
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())
Ejemplo n.º 3
0
 def GET(self):
     args, _ = templeton.handlers.get_request_parms()
     if 'details' in args:
         return dict(devices=data.dump_devices())
     else:
         return data.list_devices()
Ejemplo n.º 4
0
 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'),
         ])
Ejemplo n.º 5
0
 def GET(self):
     args, _ = templeton.handlers.get_request_parms()
     if 'details' in args:
         return dict(devices=data.dump_devices())
     else:
         return data.list_devices()