def run(self): rpms = [] while not self.host_queue.empty(): host = self.host_queue.get() self.host_queue.task_done() try: rpms = HostRpmBuilder( thread_name=self.name, hostname=host, revision=self.revision, work_dir=self.work_dir, svn_service_queue=self.svn_service_queue, error_logging_handler=self.error_logging_handler).build() for rpm in rpms: self.rpm_queue.put(rpm) except BaseConfigRpmMakerException as e: self.notify_that_host_failed(host, str(e)) except Exception: self.notify_that_host_failed(host, traceback.format_exc()) count_of_rpms = len(rpms) if count_of_rpms > 0: LOGGER.debug('%s: finished and built %s rpm(s).', self.name, count_of_rpms) else: LOGGER.debug('%s: finished without building any rpm!', self.name)
def test_should_raise_CouldNotBuildRpmException(self): svn_service_queue = self.create_svn_service_queue() host_rpm_builder = HostRpmBuilder(thread_name="Thread-0", hostname=" --help", revision='1', work_dir=self.temporary_directory, svn_service_queue=svn_service_queue) self.assertRaises(CouldNotBuildRpmException, host_rpm_builder.build)
def test_should_remove_variables_directory_after_build_finished(self): svn_service_queue = self.create_svn_service_queue() host_rpm_builder = HostRpmBuilder(thread_name="Thread-0", hostname="berweb01", revision='1', work_dir=self.temporary_directory, svn_service_queue=svn_service_queue) host_rpm_builder.build() self.assert_path_does_not_exist( join(self.temporary_directory, 'VARIABLES.berweb01'))
def test_should_raise_ConfigDirAlreadyExistsException(self): fake_host_directory = join(self.temporary_directory, 'yadt-config-fakehost') if not exists(fake_host_directory): makedirs(fake_host_directory) host_rpm_builder = HostRpmBuilder(thread_name="Thread-0", hostname="fakehost", revision='123', work_dir=self.temporary_directory, svn_service_queue={}) self.assertRaises(ConfigDirAlreadyExistsException, host_rpm_builder.build)
def test_should_write_revision_file(self): svn_service_queue = self.create_svn_service_queue() host_rpm_builder = HostRpmBuilder(thread_name="Thread-0", revision='1', hostname="berweb01", work_dir=self.temporary_directory, svn_service_queue=svn_service_queue) host_rpm_builder.build() host_directory = build_config_viewer_host_directory("berweb01", revision='1') revision_file_path = join(host_directory, 'berweb01.rev') self.assert_path_exists(revision_file_path) self.assert_file_content(revision_file_path, '1')