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)