diff --git a/base/server/python/pki/server/__init__.py b/base/server/python/pki/server/__init__.py index 265933ee823..c870b808dcd 100644 --- a/base/server/python/pki/server/__init__.py +++ b/base/server/python/pki/server/__init__.py @@ -666,9 +666,13 @@ def symlink(self, source, dest, exist_ok=False): gid=self.gid, exist_ok=exist_ok) - def copy(self, source, dest, force=False): + def copy(self, source, dest, exist_ok=False, force=False): - logger.info('Creating %s', dest) + if os.path.exists(dest) and exist_ok: + logger.info('Reusing %s', dest) + return + + logger.info('Copying %s to %s', source, dest) pki.util.copy( source, @@ -727,7 +731,11 @@ def create(self, force=False): self.makedirs(self.certs_dir, exist_ok=True) catalina_policy = os.path.join(Tomcat.CONF_DIR, 'catalina.policy') - self.copy(catalina_policy, self.catalina_policy, force=force) + self.copy( + catalina_policy, + self.catalina_policy, + exist_ok=True, + force=force) catalina_properties = os.path.join( PKIServer.SHARE_DIR, 'server', 'conf', 'catalina.properties') @@ -740,7 +748,11 @@ def create(self, force=False): self.create_server_xml() # copy /etc/tomcat/tomcat.conf - self.copy(Tomcat.TOMCAT_CONF, self.tomcat_conf, force=force) + self.copy( + Tomcat.TOMCAT_CONF, + self.tomcat_conf, + exist_ok=True, + force=force) tomcat_conf = pki.PropertyFile(self.tomcat_conf, quote='"') tomcat_conf.read() @@ -780,7 +792,11 @@ def create(self, force=False): self.symlink(target, link, exist_ok=True) service_conf = os.path.join(SYSCONFIG_DIR, 'tomcat') - self.copy(service_conf, self.service_conf, force=force) + self.copy( + service_conf, + self.service_conf, + exist_ok=True, + force=force) with open(self.service_conf, 'a', encoding='utf-8') as f: print('CATALINA_BASE="%s"' % self.base_dir, file=f) @@ -818,17 +834,18 @@ def create_logs_dir(self, exist_ok=False): def create_logging_properties(self, force=False): logging_properties = os.path.join(Tomcat.CONF_DIR, 'logging.properties') - self.copy(logging_properties, self.logging_properties, force=force) + self.copy( + logging_properties, + self.logging_properties, + exist_ok=True, + force=force) def create_server_xml(self): - if os.path.exists(self.server_xml): - logger.info('Updating %s', self.server_xml) - else: - logger.info('Creating %s', self.server_xml) - self.copy( - pki.server.Tomcat.SERVER_XML, - self.server_xml) + self.copy( + pki.server.Tomcat.SERVER_XML, + self.server_xml, + exist_ok=True) server_config = self.get_server_config() diff --git a/base/server/python/pki/server/cli/acme.py b/base/server/python/pki/server/cli/acme.py index 3e9aa4dbbaf..a082df73e3f 100644 --- a/base/server/python/pki/server/cli/acme.py +++ b/base/server/python/pki/server/cli/acme.py @@ -137,15 +137,27 @@ def execute(self, argv): database_template = os.path.join(acme_share_dir, 'conf', 'database.conf') database_conf = os.path.join(acme_conf_dir, 'database.conf') - instance.copy(database_template, database_conf, force=force) + instance.copy( + database_template, + database_conf, + exist_ok=True, + force=force) issuer_template = os.path.join(acme_share_dir, 'conf', 'issuer.conf') issuer_conf = os.path.join(acme_conf_dir, 'issuer.conf') - instance.copy(issuer_template, issuer_conf, force=force) + instance.copy( + issuer_template, + issuer_conf, + exist_ok=True, + force=force) realm_template = os.path.join(acme_share_dir, 'conf', 'realm.conf') realm_conf = os.path.join(acme_conf_dir, 'realm.conf') - instance.copy(realm_template, realm_conf, force=force) + instance.copy( + realm_template, + realm_conf, + exist_ok=True, + force=force) class ACMERemoveCLI(pki.cli.CLI): diff --git a/base/server/python/pki/server/deployment/__init__.py b/base/server/python/pki/server/deployment/__init__.py index ab4b36275cb..9428bca1989 100644 --- a/base/server/python/pki/server/deployment/__init__.py +++ b/base/server/python/pki/server/deployment/__init__.py @@ -261,13 +261,10 @@ def flatten_master_dict(self): def configure_server_xml(self): - if os.path.exists(self.instance.server_xml): - logger.info('Updating %s', self.instance.server_xml) - else: - logger.info('Creating %s', self.instance.server_xml) - self.instance.copy( - pki.server.Tomcat.SERVER_XML, - self.instance.server_xml) + self.instance.copy( + pki.server.Tomcat.SERVER_XML, + self.instance.server_xml, + exist_ok=True) server_config = self.instance.get_server_config() diff --git a/base/server/python/pki/server/deployment/scriptlets/subsystem_layout.py b/base/server/python/pki/server/deployment/scriptlets/subsystem_layout.py index 8165352aa40..5d9570b90dd 100644 --- a/base/server/python/pki/server/deployment/scriptlets/subsystem_layout.py +++ b/base/server/python/pki/server/deployment/scriptlets/subsystem_layout.py @@ -91,7 +91,8 @@ def spawn(self, deployer): instance.copy( pki_source_registry_cfg, - pki_target_registry_cfg) + pki_target_registry_cfg, + exist_ok=True) if deployer.subsystem_type == "CA": @@ -103,9 +104,12 @@ def spawn(self, deployer): subsystem_name, 'emails') + pki_dest_emails = os.path.join(subsystem.conf_dir, 'emails') + instance.copy( pki_source_emails, - subsystem.conf_dir + '/emails') + pki_dest_emails, + exist_ok=True) # Link /var/lib/pki//ca/emails # to /var/lib/pki//conf/ca/emails @@ -122,9 +126,12 @@ def spawn(self, deployer): subsystem_name, 'profiles') + pki_dest_profiles = os.path.join(subsystem.conf_dir, 'profiles') + instance.copy( pki_source_profiles, - subsystem.conf_dir + '/profiles') + pki_dest_profiles, + exist_ok=True) # Link /var/lib/pki//ca/profiles # to /var/lib/pki//conf/ca/profiles @@ -147,7 +154,8 @@ def spawn(self, deployer): instance.copy( pki_source_flatfile_txt, - pki_target_flatfile_txt) + pki_target_flatfile_txt, + exist_ok=True) # Copy /usr/share/pki//conf/AdminCert.profile # to /var/lib/pki//conf//adminCert.profile @@ -166,7 +174,8 @@ def spawn(self, deployer): instance.copy( pki_source_admincert_profile, - pki_target_admincert_profile) + pki_target_admincert_profile, + exist_ok=True) # Copy /usr/share/pki//conf/caAuditSigningCert.profile # to /var/lib/pki//conf//caAuditSigningCert.profile @@ -183,7 +192,8 @@ def spawn(self, deployer): instance.copy( pki_source_caauditsigningcert_profile, - pki_target_caauditsigningcert_profile) + pki_target_caauditsigningcert_profile, + exist_ok=True) # Copy /usr/share/pki//conf/caCert.profile # to /var/lib/pki//conf//caCert.profile @@ -200,7 +210,8 @@ def spawn(self, deployer): instance.copy( pki_source_cacert_profile, - pki_target_cacert_profile) + pki_target_cacert_profile, + exist_ok=True) # Copy /usr/share/pki//conf/caOCSPCert.profile # to /var/lib/pki//conf//caOCSPCert.profile @@ -217,7 +228,8 @@ def spawn(self, deployer): instance.copy( pki_source_caocspcert_profile, - pki_target_caocspcert_profile) + pki_target_caocspcert_profile, + exist_ok=True) # Copy /usr/share/pki//conf/ServerCert.profile # to /var/lib/pki//conf//serverCert.profile @@ -236,7 +248,8 @@ def spawn(self, deployer): instance.copy( pki_source_servercert_profile, - pki_target_servercert_profile) + pki_target_servercert_profile, + exist_ok=True) # Copy /usr/share/pki//conf/SubsystemCert.profile # to /var/lib/pki//conf//subsystemCert.profile @@ -255,7 +268,8 @@ def spawn(self, deployer): instance.copy( pki_source_subsystemcert_profile, - pki_target_subsystemcert_profile) + pki_target_subsystemcert_profile, + exist_ok=True) # Copy /usr/share/pki//conf/proxy.conf # to /var/lib/pki//conf//proxy.conf diff --git a/base/server/python/pki/server/instance.py b/base/server/python/pki/server/instance.py index 721a3d7ec4b..528a452e1a5 100644 --- a/base/server/python/pki/server/instance.py +++ b/base/server/python/pki/server/instance.py @@ -325,7 +325,7 @@ def create_libs(self, force=False): dest = os.path.join(self.common_lib_dir, filename) logger.info('Copying %s to %s', source, dest) - self.copy(source, dest, force=force) + self.copy(source, dest, exist_ok=True, force=force) common_lib_dir = os.path.join(pki.server.PKIServer.SHARE_DIR, 'server', 'common', 'lib') diff --git a/base/server/python/pki/server/subsystem.py b/base/server/python/pki/server/subsystem.py index a1841155171..7784ca4e5b5 100644 --- a/base/server/python/pki/server/subsystem.py +++ b/base/server/python/pki/server/subsystem.py @@ -209,7 +209,10 @@ def create_conf(self, exist_ok=False): 'conf', 'registry.cfg') - self.instance.copy(registry_conf, self.registry_conf) + self.instance.copy( + registry_conf, + self.registry_conf, + exist_ok=True) def create_logs(self, exist_ok=False): @@ -247,7 +250,10 @@ def create_registry(self, exist_ok=False): 'etc', 'default.cfg') - self.instance.copy(default_cfg, self.default_cfg) + self.instance.copy( + default_cfg, + self.default_cfg, + exist_ok=True) def load(self):