def setUp(self): if not os.path.isdir(DHCPBUILD['stage_dir']): os.makedirs(DHCPBUILD['stage_dir']) if not os.path.isdir(DHCPBUILD['prod_dir']): os.makedirs(DHCPBUILD['prod_dir']) remove_dir_contents(DHCPBUILD['prod_dir']) if not os.path.isdir(PROD_ORIGIN_DIR): os.makedirs(PROD_ORIGIN_DIR) remove_dir_contents(PROD_ORIGIN_DIR) mgr = GitRepoManager(config={ 'user.name': 'test', 'user.email': 'test', }) mgr.init(PROD_ORIGIN_DIR, bare=True) mgr.clone(PROD_ORIGIN_DIR, DHCPBUILD['prod_dir']) self.builder = DHCPBuilder(verbose=False, debug=False, **DHCPBUILD) self.builder.repo.commit_and_push(empty=True, message='Initial commit') copy_tree('cyder/cydhcp/build/tests/files/', DHCPBUILD['stage_dir']) super(DHCPBuildTest, self).setUp()
def setUp(self): if not os.path.isdir(DHCPBUILD['stage_dir']): os.makedirs(DHCPBUILD['stage_dir']) if not os.path.isdir(DHCPBUILD['prod_dir']): os.makedirs(DHCPBUILD['prod_dir']) remove_dir_contents(DHCPBUILD['prod_dir']) if not os.path.isdir(PROD_ORIGIN_DIR): os.makedirs(PROD_ORIGIN_DIR) remove_dir_contents(PROD_ORIGIN_DIR) mgr = GitRepoManager(debug=False, log_syslog=False, config={ 'user.name': 'test', 'user.email': 'test', }) mgr.init(PROD_ORIGIN_DIR, bare=True) mgr.clone(PROD_ORIGIN_DIR, DHCPBUILD['prod_dir']) self.builder = DHCPBuilder(verbose=False, debug=False, **DHCPBUILD) self.builder.repo.commit_and_push( empty=True, message='Initial commit') copy_tree('cyder/cydhcp/build/tests/files/', DHCPBUILD['stage_dir']) super(DHCPBuildTest, self).setUp()
def build(self, force=False): try: with open(self.stop_file) as stop_fd: now = time.time() contents = stop_fd.read() last = os.path.getmtime(self.stop_file) msg = ("The stop file ({0}) exists. Build canceled.\n" "Reason for skipped build:\n" "{1}".format(self.stop_file, contents)) self.log_notice(msg) if (self.stop_file_email_interval is not None and now - last > self.stop_file_email_interval): os.utime(self.stop_file, (now, now)) fail_mail(msg, subject="DNS builds have stopped") raise Exception(msg) except IOError as e: if e.errno != 2: # IOError: [Errno 2] No such file or directory raise self.log_info('Building...') try: remove_dir_contents(self.stage_dir) self.dns_tasks = self.get_scheduled() if not self.dns_tasks and not force: self.log_info('Nothing to do!') return # zone files soa_pks_to_rebuild = set(int(t.task) for t in self.dns_tasks) self.build_config_files(self.build_zone_files(soa_pks_to_rebuild, force=force)) self.log_info('DNS build successful') except Exception as e: self.log(syslog.LOG_ERR, 'DNS build failed.\nOriginal exception: ' + e.message) raise
def build(self, force=False): try: with open(self.stop_file) as stop_fd: now = time.time() contents = stop_fd.read() last = os.path.getmtime(self.stop_file) msg = ("The stop file ({0}) exists. Build canceled.\n" "Reason for skipped build:\n" "{1}".format(self.stop_file, contents)) self.log_notice(msg) if (self.stop_file_email_interval is not None and now - last > self.stop_file_email_interval): os.utime(self.stop_file, (now, now)) fail_mail(msg, subject="DNS builds have stopped") raise Exception(msg) except IOError as e: if e.errno != errno.ENOENT: # IOError: [Errno 2] No such file or directory raise self.log_info('Building...') try: remove_dir_contents(self.stage_dir) self.dns_tasks = self.get_scheduled() if not self.dns_tasks and not force: self.log_info('Nothing to do!') return # zone files soa_pks_to_rebuild = set(int(t.task) for t in self.dns_tasks) self.build_config_files( self.build_zone_files(soa_pks_to_rebuild, force=force)) self.log_info('DNS build successful') except Exception as e: self.log(syslog.LOG_ERR, 'DNS build failed.\nOriginal exception: ' + e.message) raise
def setUp(self): if not os.path.isdir(BINDBUILD['stage_dir']): os.makedirs(BINDBUILD['stage_dir']) if not os.path.isdir(BINDBUILD['prod_dir']): os.makedirs(BINDBUILD['prod_dir']) remove_dir_contents(BINDBUILD['prod_dir']) if not os.path.isdir(PROD_ORIGIN_DIR): os.makedirs(PROD_ORIGIN_DIR) remove_dir_contents(PROD_ORIGIN_DIR) mgr = GitRepoManager(debug=False, log_syslog=False, config={ 'user.name': 'test', 'user.email': 'test', }) mgr.init(PROD_ORIGIN_DIR, bare=True) mgr.clone(PROD_ORIGIN_DIR, BINDBUILD['prod_dir']) self.builder = DNSBuilder(verbose=False, debug=False, **BINDBUILD) self.builder.repo.commit_and_push(empty=True, message='Initial commit') super(DNSBuildTest, self).setUp()
def setUp(self): if not os.path.isdir(BINDBUILD['stage_dir']): os.makedirs(BINDBUILD['stage_dir']) if not os.path.isdir(BINDBUILD['prod_dir']): os.makedirs(BINDBUILD['prod_dir']) remove_dir_contents(BINDBUILD['prod_dir']) if not os.path.isdir(PROD_ORIGIN_DIR): os.makedirs(PROD_ORIGIN_DIR) remove_dir_contents(PROD_ORIGIN_DIR) mgr = GitRepoManager(config={ 'user.name': 'test', 'user.email': 'test', }) mgr.init(PROD_ORIGIN_DIR, bare=True) mgr.clone(PROD_ORIGIN_DIR, BINDBUILD['prod_dir']) self.builder = DNSBuilder(verbose=False, debug=False, **BINDBUILD) self.builder.repo.commit_and_push(empty=True, message='Initial commit') super(DNSBuildTest, self).setUp()