def handle_repository_uninstall( self, repository ): """Remove the dependency relationships for a repository that was just uninstalled.""" for tool_dependency in repository.tool_dependencies: tool_dependency_tup = tool_dependency_util.get_tool_dependency_tuple_for_installed_repository_manager( tool_dependency ) # Remove this tool_dependency from all values in # self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies altered_installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies = {} for td_tup, installed_runtime_dependent_tool_dependency_tups in \ self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies.items(): if tool_dependency_tup in installed_runtime_dependent_tool_dependency_tups: # Remove the tool_dependency from the list. installed_runtime_dependent_tool_dependency_tups.remove( tool_dependency_tup ) # Add the possibly altered list to the altered dictionary. altered_installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies[ td_tup ] = \ installed_runtime_dependent_tool_dependency_tups self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies = \ altered_installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies # Remove the entry for this tool_dependency from self.runtime_tool_dependencies_of_installed_tool_dependencies. self.remove_entry_from_runtime_tool_dependencies_of_installed_tool_dependencies( tool_dependency ) # Remove the entry for this tool_dependency from # self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies. self.remove_entry_from_installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies( tool_dependency ) # Remove this repository's entry from self.installed_tool_dependencies_of_installed_repositories. self.remove_entry_from_installed_tool_dependencies_of_installed_repositories( repository ) # Remove this repository's entry from self.tool_dependencies_of_installed_repositories self.remove_entry_from_tool_dependencies_of_installed_repositories( repository ) # Remove this repository's entry from self.installed_repository_dependencies_of_installed_repositories. self.remove_entry_from_installed_repository_dependencies_of_installed_repositories( repository ) # Remove this repository's entry from self.repository_dependencies_of_installed_repositories. self.remove_entry_from_repository_dependencies_of_installed_repositories( repository )
def remove_entry_from_runtime_tool_dependencies_of_installed_tool_dependencies( self, tool_dependency ): """Remove an entry from self.runtime_tool_dependencies_of_installed_tool_dependencies.""" tool_dependency_tup = tool_dependency_util.get_tool_dependency_tuple_for_installed_repository_manager( tool_dependency ) if tool_dependency_tup in self.runtime_tool_dependencies_of_installed_tool_dependencies: tool_shed_repository_id, name, version, type = tool_dependency_tup debug_msg = "Removing entry for version %s of %s %s from runtime_tool_dependencies_of_installed_tool_dependencies." % \ ( version, type, name ) log.debug( debug_msg ) del self.runtime_tool_dependencies_of_installed_tool_dependencies[ tool_dependency_tup ]
def add_entry_to_runtime_tool_dependencies_of_installed_tool_dependencies( self, tool_dependency ): """Add an entry to self.runtime_tool_dependencies_of_installed_tool_dependencies.""" tool_dependency_tup = tool_dependency_util.get_tool_dependency_tuple_for_installed_repository_manager( tool_dependency ) if tool_dependency_tup not in self.runtime_tool_dependencies_of_installed_tool_dependencies: tool_shed_repository_id, name, version, type = tool_dependency_tup debug_msg = "Adding an entry for version %s of %s %s " % ( version, type, name ) debug_msg += "to runtime_tool_dependencies_of_installed_tool_dependencies." log.debug( debug_msg ) runtime_dependent_tool_dependency_tups = \ tool_dependency_util.get_runtime_dependent_tool_dependency_tuples( self.app, tool_dependency, status=None ) self.runtime_tool_dependencies_of_installed_tool_dependencies[ tool_dependency_tup ] = \ runtime_dependent_tool_dependency_tups
def add_entry_to_installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies( self, tool_dependency ): """Add an entry to self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies.""" tool_dependency_tup = tool_dependency_util.get_tool_dependency_tuple_for_installed_repository_manager( tool_dependency ) if tool_dependency_tup not in self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies: tool_shed_repository_id, name, version, type = tool_dependency_tup debug_msg = "Adding an entry for version %s of %s %s " % ( version, type, name ) debug_msg += "to installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies." log.debug( debug_msg ) status = self.install_model.ToolDependency.installation_status.INSTALLED installed_runtime_dependent_tool_dependency_tups = \ tool_dependency_util.get_runtime_dependent_tool_dependency_tuples( self.app, tool_dependency, status=status ) self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies[ tool_dependency_tup ] = \ installed_runtime_dependent_tool_dependency_tups
def add_entry_to_tool_dependencies_of_installed_repositories( self, repository ): """Add an entry to self.tool_dependencies_of_installed_repositories.""" repository_tup = repository_dependency_util.get_repository_tuple_for_installed_repository_manager( repository ) if repository_tup not in self.tool_dependencies_of_installed_repositories: tool_shed, name, owner, installed_changeset_revision = repository_tup debug_msg = "Adding an entry for revision %s of repository %s owned by %s " % ( installed_changeset_revision, name, owner ) debug_msg += "to tool_dependencies_of_installed_repositories." log.debug( debug_msg ) tool_dependency_tups = [] for tool_dependency in repository.tool_dependencies: tool_dependency_tup = tool_dependency_util.get_tool_dependency_tuple_for_installed_repository_manager( tool_dependency ) tool_dependency_tups.append( tool_dependency_tup ) self.tool_dependencies_of_installed_repositories[ repository_tup ] = tool_dependency_tups
def handle_tool_dependency_install( self, repository, tool_dependency ): """Load the dependency relationships for a tool dependency that was just installed independently of its containing repository.""" # The received repository must have a status of 'Installed'. The value of tool_dependency.status will either be # 'Installed' or 'Error', but we only need to change the in-memory dictionaries if it is 'Installed'. if tool_dependency.is_installed: # Populate self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies. self.add_entry_to_installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies( tool_dependency ) # Populate self.installed_tool_dependencies_of_installed_repositories. repository_tup = repository_dependency_util.get_repository_tuple_for_installed_repository_manager( repository ) tool_dependency_tup = tool_dependency_util.get_tool_dependency_tuple_for_installed_repository_manager( tool_dependency ) if repository_tup in self.installed_tool_dependencies_of_installed_repositories: self.installed_tool_dependencies_of_installed_repositories[ repository_tup ].append( tool_dependency_tup ) else: self.installed_tool_dependencies_of_installed_repositories[ repository_tup ] = [ tool_dependency_tup ]
def add_entry_to_installed_tool_dependencies_of_installed_repositories( self, repository ): """Add an entry to self.installed_tool_dependencies_of_installed_repositories.""" repository_tup = repository_dependency_util.get_repository_tuple_for_installed_repository_manager( repository ) if repository_tup not in self.installed_tool_dependencies_of_installed_repositories: tool_shed, name, owner, installed_changeset_revision = repository_tup debug_msg = "Adding an entry for revision %s of repository %s owned by %s " % ( installed_changeset_revision, name, owner ) debug_msg += "to installed_tool_dependencies_of_installed_repositories." log.debug( debug_msg ) installed_tool_dependency_tups = [] for tool_dependency in repository.tool_dependencies: if tool_dependency.status == self.app.install_model.ToolDependency.installation_status.INSTALLED: tool_dependency_tup = tool_dependency_util.get_tool_dependency_tuple_for_installed_repository_manager( tool_dependency ) installed_tool_dependency_tups.append( tool_dependency_tup ) self.installed_tool_dependencies_of_installed_repositories[ repository_tup ] = installed_tool_dependency_tups