def reload_yaml(self): config = ConfigManager() config.reload_yaml() db_handle = self.client['esp8266_workshop'] # update all groups mac address and degrees groups_collection = db_handle['groups'] for group in range(1, self._number_of_groups + 1): group_query = {'number': group} groups = [] for g in groups_collection.find(group_query, {'_id': 0}): groups.append(g) if len(groups) > 0: new_values = { '$set': { 'mac': config.get_group_mac_address(group), 'degrees': config.get_group_degrees(group) } } groups_collection.update_one(group_query, new_values) db_handle.drop_collection('config') config_collection = db_handle['config'] for config_item in self._config: new_config = { 'name': config_item, 'value': config.get_item(config_item) } config_collection.insert_one(new_config) db_handle.drop_collection('devices_ip') devices_ip_collection = db_handle['devices_ip'] devices_ip_list = [] for group in range(1, self._number_of_groups + 1): devices_ip_list.append({ 'mac': config.get_group_mac_address(group), 'ip': '' }) devices_ip_collection.insert_many(devices_ip_list)