def remove_entry_from_installed_repository_dependencies_of_installed_repositories( self, repository ): """ Remove an entry from self.installed_repository_dependencies_of_installed_repositories. A side-effect of this method is removal of appropriate value items from self.installed_dependent_repositories_of_installed_repositories. """ # Remove tuples defining this repository from value lists in self.installed_dependent_repositories_of_installed_repositories. repository_tup = repository_dependency_util.get_repository_tuple_for_installed_repository_manager( repository ) tool_shed, name, owner, installed_changeset_revision = repository_tup altered_installed_dependent_repositories_of_installed_repositories = {} for r_tup, v_tups in self.installed_dependent_repositories_of_installed_repositories.items(): if repository_tup in v_tups: debug_msg = "Removing entry for revision %s of repository %s owned by %s " % \ ( installed_changeset_revision, name, owner ) r_tool_shed, r_name, r_owner, r_installed_changeset_revision = r_tup debug_msg += "from the dependent list for revision %s of repository %s owned by %s " % \ ( r_installed_changeset_revision, r_name, r_owner ) debug_msg += "in installed_repository_dependencies_of_installed_repositories." log.debug( debug_msg ) v_tups.remove( repository_tup ) altered_installed_dependent_repositories_of_installed_repositories[ r_tup ] = v_tups self.installed_dependent_repositories_of_installed_repositories = \ altered_installed_dependent_repositories_of_installed_repositories # Remove this repository's entry from self.installed_repository_dependencies_of_installed_repositories. if repository_tup in self.installed_repository_dependencies_of_installed_repositories: debug_msg = "Removing entry for revision %s of repository %s owned by %s " % ( installed_changeset_revision, name, owner ) debug_msg += "from installed_repository_dependencies_of_installed_repositories." log.debug( debug_msg ) del self.installed_repository_dependencies_of_installed_repositories[ repository_tup ]
def add_entry_to_installed_repository_dependencies_of_installed_repositories( self, repository ): """ Add an entry to self.installed_repository_dependencies_of_installed_repositories. A side-effect of this method is the population of self.installed_dependent_repositories_of_installed_repositories. Since this method discovers all repositories required by the received repository, it can use the list to add entries to the reverse dictionary. """ repository_tup = repository_dependency_util.get_repository_tuple_for_installed_repository_manager( repository ) tool_shed, name, owner, installed_changeset_revision = repository_tup # Get the list of repository dependencies for this repository. status = self.install_model.ToolShedRepository.installation_status.INSTALLED repository_dependency_tups = \ repository_dependency_util.get_repository_dependency_tups_for_installed_repository( self.app, repository, status=status ) # Add an entry to self.installed_repository_dependencies_of_installed_repositories. if repository_tup not in self.installed_repository_dependencies_of_installed_repositories: debug_msg = "Adding an entry for revision %s of repository %s owned by %s " % ( installed_changeset_revision, name, owner ) debug_msg += "to installed_repository_dependencies_of_installed_repositories." log.debug( debug_msg ) self.installed_repository_dependencies_of_installed_repositories[ repository_tup ] = repository_dependency_tups # Use the repository_dependency_tups to add entries to the reverse dictionary # self.installed_dependent_repositories_of_installed_repositories. for required_repository_tup in repository_dependency_tups: debug_msg = "Appending revision %s of repository %s owned by %s " % ( installed_changeset_revision, name, owner ) debug_msg += "to all dependent repositories in installed_dependent_repositories_of_installed_repositories." log.debug( debug_msg ) if required_repository_tup in self.installed_dependent_repositories_of_installed_repositories: self.installed_dependent_repositories_of_installed_repositories[ required_repository_tup ].append( repository_tup ) else: self.installed_dependent_repositories_of_installed_repositories[ required_repository_tup ] = [ repository_tup ]
def remove_entry_from_tool_dependencies_of_installed_repositories( self, repository ): """Remove an entry from self.tool_dependencies_of_installed_repositories.""" repository_tup = repository_dependency_util.get_repository_tuple_for_installed_repository_manager( repository ) if repository_tup in self.tool_dependencies_of_installed_repositories: tool_shed, name, owner, installed_changeset_revision = repository_tup debug_msg = "Removing entry for revision %s of repository %s owned by %s from tool_dependencies_of_installed_repositories." % \ ( installed_changeset_revision, name, owner ) log.debug( debug_msg ) del self.tool_dependencies_of_installed_repositories[ repository_tup ]
def add_entry_to_repository_dependencies_of_installed_repositories( self, repository ): """Add an entry to self.repository_dependencies_of_installed_repositories.""" repository_tup = repository_dependency_util.get_repository_tuple_for_installed_repository_manager( repository ) if repository_tup not in self.repository_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 repository_dependencies_of_installed_repositories." log.debug( debug_msg ) repository_dependency_tups = \ repository_dependency_util.get_repository_dependency_tups_for_installed_repository( self.app, repository, status=None ) self.repository_dependencies_of_installed_repositories[ repository_tup ] = repository_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