def set_client_mode(drone_id): db_session = database_setup.get_session() drone = db_session.query(Drone).filter(Drone.id == drone_id).one() if drone is None or drone.discriminator != 'client': # meh, better way do do this? db_session.delete(drone) db_session.commit() client = Client(id=drone_id) client.ip_address = drone.ip_address db_session.add(client) db_session.commit() return '' else: return ''
def _config_client(self, drone, db_session, config): if drone.discriminator != 'client': # meh, better way do do this? # TODO: this cascade delete sessions, find a way to maintain sessions for deleted drones. ip_address = drone.ip_address drone_id = drone.id db_session.delete(drone) db_session.commit() drone = Client(id=drone_id) drone.ip_address = ip_address db_session.add(drone) db_session.commit() drone.bait_timings = json.dumps(config['bait_timings']) drone.name = config['name'] db_session.add(drone) db_session.commit() self._handle_command_drone_config_changed(drone.id)