Example #1
0
 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)
Example #2
0
 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)