diff --git a/slapos/recipe/davstorage/__init__.py b/slapos/recipe/davstorage/__init__.py index e66bb4a12b7965b3e24e46ea0882bdafd3813d9d..041d492aab519cc97adc5d70d6dc295b13d31975 100644 --- a/slapos/recipe/davstorage/__init__.py +++ b/slapos/recipe/davstorage/__init__.py @@ -110,17 +110,21 @@ class Recipe(BaseSlapRecipe): def createCertificate(self, size=1024, subject='/C=FR/L=Marcq-en-Baroeul/O=Nexedi'): key_file = os.path.join(self.etc_directory, 'httpd.key') - self.path_list.append(key_file) - certificate_file = os.path.join(self.etc_directory, 'httpd.crt') - self.path_list.append(certificate_file) - subprocess.check_call([self.options['openssl_binary'], - 'req', '-x509', '-nodes', - '-newkey', 'rsa:%s' % size, - '-subj', str(subject), - '-out', certificate_file, - '-keyout', key_file - ]) + files = [key_file, certificate_file, ] + if not all([os.path.exists(f) for f in files]): + for f in files: + if os.path.exists(f): + os.unlink(f) + + subprocess.check_call([self.options['openssl_binary'], + 'req', '-x509', '-nodes', + '-newkey', 'rsa:%s' % size, + '-subj', str(subject), + '-out', certificate_file, + '-keyout', key_file + ]) + return dict(key=key_file, certificate=certificate_file)