def __pull_descriptor(self, journal, backup_tool, backup_tree, lm_session, references): journal.stage('Pulling descriptor for {0}'.format( self.source_config.name)) descriptor_name = descriptors.descriptor_named( descriptors.TYPE_DESCRIPTOR_TYPE, self.source_config.full_name, self.source_config.version) descriptor_driver = lm_session.descriptor_driver journal.event('Pulling descriptor {0} from LM ({1})'.format( descriptor_name, lm_session.env.address)) try: raw_descriptor = descriptor_driver.get_descriptor(descriptor_name) descriptor = descriptors.DescriptorParser().read_from_str( raw_descriptor) except lm_drivers.NotFoundException: msg = 'Descriptor {0} not found'.format(descriptor_name) journal.error_event(msg) return descriptor_path = self.tree.descriptor_file_path if os.path.exists(descriptor_path): self.__backup_descriptor(journal, backup_tool, backup_tree, descriptor_path) journal.event( 'Saving pulled descriptor to {0}'.format(descriptor_path)) descriptor = descriptor_mutations.DescriptorPullMutator( references, journal).apply(descriptor) descriptors.DescriptorParser().write_to_file(descriptor, descriptor_path)
def __pull_behaviour(self, journal, backup_tool, backup_tree, lm_session, references): journal.stage('Pulling service behaviour for {0}'.format( self.source_config.name)) project_id = descriptors.descriptor_named( descriptors.TYPE_DESCRIPTOR_TYPE, self.source_config.full_name, self.source_config.version) behaviour_driver = lm_session.behaviour_driver try: behaviour_driver.get_project(project_id) except lm_drivers.NotFoundException: journal.event( 'No Service Behaviour project with name {0} found in LM {1}, skipping pull' .format(project_id, lm_session.env.address)) return discovered_configurations_by_id = self.__pull_assembly_configurations( journal, backup_tool, backup_tree, lm_session, project_id, references) self.__pull_scenarios(journal, backup_tool, backup_tree, lm_session, project_id, discovered_configurations_by_id, references)