def uninstall_extension(self, extension_name): """Uninstall the extension with name extension_name""" self.logger.log("Request to remove extension with name %s" % extension_name, level=2) # Find the subdirectory containing this extension's installer extension_installer_dir = os.path.join(self.root_dict['EXT_ROOT'], extension_name) # Retrieve it _, installer = weecfg.get_extension_installer(extension_installer_dir) # Remove any files that were added: self.uninstall_files(installer) save_config = False # Remove any services we added for service_group in all_service_groups: if service_group in installer: new_list = filter(lambda x : x not in installer[service_group], self.config_dict['Engine']['Services'][service_group]) if not self.dry_run: self.config_dict['Engine']['Services'][service_group] = new_list save_config = True # Remove any sections we added if 'config' in installer and not self.dry_run: weecfg.remove_and_prune(self.config_dict, installer['config']) save_config = True if not self.dry_run: # Finally, remove the extension's installer subdirectory: shutil.rmtree(extension_installer_dir) if save_config: weecfg.save_with_backup(self.config_dict, self.config_path)
def uninstall_extension(self, extension_name): """Uninstall the extension with name extension_name""" self.logger.log("Request to remove extension '%s'" % extension_name) # Find the subdirectory containing this extension's installer extension_installer_dir = os.path.join(self.root_dict['EXT_ROOT'], extension_name) try: # Retrieve it _, installer = weecfg.get_extension_installer( extension_installer_dir) except weecfg.ExtensionError: sys.exit("Unable to find extension %s" % extension_name) # Remove any files that were added: self.uninstall_files(installer) save_config = False # Remove any services we added for service_group in all_service_groups: if service_group in installer: new_list = filter( lambda x: x not in installer[service_group], self.config_dict['Engine']['Services'][service_group]) if not self.dry_run: self.config_dict['Engine']['Services'][ service_group] = new_list save_config = True # Remove any sections we added if 'config' in installer and not self.dry_run: weecfg.remove_and_prune(self.config_dict, installer['config']) save_config = True if not self.dry_run: # Finally, remove the extension's installer subdirectory: shutil.rmtree(extension_installer_dir) if save_config: weecfg.save_with_backup(self.config_dict, self.config_path) self.logger.log("Finished removing extension '%s'" % extension_name)
def uninstall_extension(self, extension_name): """Uninstall the extension with name extension_name""" self.logger.log("Request to remove extension '%s'" % extension_name) # Find the subdirectory containing this extension's installer extension_installer_dir = os.path.join(self.root_dict["EXT_ROOT"], extension_name) try: # Retrieve it _, installer = weecfg.get_extension_installer(extension_installer_dir) except weecfg.ExtensionError: sys.exit("Unable to find extension %s" % extension_name) # Remove any files that were added: self.uninstall_files(installer) save_config = False # Remove any services we added for service_group in all_service_groups: if service_group in installer: new_list = filter( lambda x: x not in installer[service_group], self.config_dict["Engine"]["Services"][service_group] ) if not self.dry_run: self.config_dict["Engine"]["Services"][service_group] = new_list save_config = True # Remove any sections we added if "config" in installer and not self.dry_run: weecfg.remove_and_prune(self.config_dict, installer["config"]) save_config = True if not self.dry_run: # Finally, remove the extension's installer subdirectory: shutil.rmtree(extension_installer_dir) if save_config: weecfg.save_with_backup(self.config_dict, self.config_path) self.logger.log("Finished removing extension '%s'" % extension_name)