add dry-run

This commit is contained in:
Snowyo 2018-08-05 01:05:20 +02:00
parent 3cb95ccf5f
commit 6c64962026

View File

@ -81,7 +81,8 @@ def restartContainerWithDomains(domains):
restartDomains = str.split(c.labels["com.github.SnowMB.traefik-certificate-extractor.restart_domain"], ',') restartDomains = str.split(c.labels["com.github.SnowMB.traefik-certificate-extractor.restart_domain"], ',')
if not set(domains).isdisjoint(restartDomains): if not set(domains).isdisjoint(restartDomains):
print('restarting container ' + c.id) print('restarting container ' + c.id)
c.restart() if not args.dry:
c.restart()
def createCerts(args): def createCerts(args):
@ -122,45 +123,46 @@ def createCerts(args):
cert = fullchain[0:start] cert = fullchain[0:start]
chain = fullchain[start:] chain = fullchain[start:]
# Create domain directory if it doesn't exist if not args.dry:
directory = Path(args.directory) # Create domain directory if it doesn't exist
if not directory.exists(): directory = Path(args.directory)
directory.mkdir()
if args.flat:
# Write private key, certificate and chain to flat files
with (directory / name + '.key').open('w') as f:
f.write(privatekey)
with (directory / name + '.crt').open('w') as f:
f.write(fullchain)
with (directory / name + '.chain.pem').open('w') as f:
f.write(chain)
if sans:
for name in sans:
with (directory / name + '.key').open('w') as f:
f.write(privatekey)
with (directory / name + '.crt').open('w') as f:
f.write(fullchain)
with (directory / name + '.chain.pem').open('w') as f:
f.write(chain)
else:
directory = directory / name
if not directory.exists(): if not directory.exists():
directory.mkdir() directory.mkdir()
# Write private key, certificate and chain to file if args.flat:
with (directory / 'privkey.pem').open('w') as f: # Write private key, certificate and chain to flat files
f.write(privatekey) with (directory / name + '.key').open('w') as f:
f.write(privatekey)
with (directory / name + '.crt').open('w') as f:
f.write(fullchain)
with (directory / name + '.chain.pem').open('w') as f:
f.write(chain)
with (directory / 'cert.pem').open('w') as f: if sans:
f.write(cert) for name in sans:
with (directory / name + '.key').open('w') as f:
f.write(privatekey)
with (directory / name + '.crt').open('w') as f:
f.write(fullchain)
with (directory / name + '.chain.pem').open('w') as f:
f.write(chain)
else:
directory = directory / name
if not directory.exists():
directory.mkdir()
with (directory / 'chain.pem').open('w') as f: # Write private key, certificate and chain to file
f.write(chain) with (directory / 'privkey.pem').open('w') as f:
f.write(privatekey)
with (directory / 'fullchain.pem').open('w') as f: with (directory / 'cert.pem').open('w') as f:
f.write(fullchain) f.write(cert)
with (directory / 'chain.pem').open('w') as f:
f.write(chain)
with (directory / 'fullchain.pem').open('w') as f:
f.write(fullchain)
print('Extracted certificate for: ' + name + print('Extracted certificate for: ' + name +
(', ' + ', '.join(sans) if sans else '')) (', ' + ', '.join(sans) if sans else ''))
@ -215,6 +217,8 @@ if __name__ == "__main__":
help='outputs all certificates into one folder') help='outputs all certificates into one folder')
parser.add_argument('-r', '--restart_container', action='store_true', parser.add_argument('-r', '--restart_container', action='store_true',
help='uses the docker API to restart containers that are labeled accordingly') help='uses the docker API to restart containers that are labeled accordingly')
parser.add_argument('--dry-run', action='store_true', dest='dry',
help="Don't write files and do not start docker containers.")
group = parser.add_mutually_exclusive_group() group = parser.add_mutually_exclusive_group()
group.add_argument('--include', nargs='*') group.add_argument('--include', nargs='*')
group.add_argument('--exclude', nargs='*') group.add_argument('--exclude', nargs='*')