def __init__(self, principal, **kwargs): with tempfile.NamedTemporaryFile() as fd: keytab_filename = fd.name add_principal_to_keytab(principal, keytab_filename) # noinspection PyTypeChecker with open(keytab_filename, 'rb') as fd: keytab_content = bytes(fd.read()) os.remove(keytab_filename) super(KeytabResponse, self).__init__(content=keytab_content, content_type='application/keytab', **kwargs)
def handle(self, *args, **options): name = '%s@%s' % (options['principal'], settings.PENATES_REALM) add_principal(name) keytab_filename = options['keytab'] if not keytab_filename: return try: exists = os.path.exists(keytab_filename) with open(keytab_filename, 'ab') as fd: fd.write(b'') if not exists: os.remove(keytab_filename) elif keytab_has_principal(name, keytab_filename): return except OSError as e: self.stdout.write(self.style.ERROR('Unable to write file: %s' % keytab_filename)) raise e except ValueError as e: self.stdout.write(self.style.ERROR('Invalid keytab file %s' % keytab_filename)) raise e add_principal_to_keytab(name, keytab_filename)
def handle(self, *args, **options): name = '%s@%s' % (options['principal'], settings.PENATES_REALM) add_principal(name) keytab_filename = options['keytab'] if not keytab_filename: return try: exists = os.path.exists(keytab_filename) with open(keytab_filename, 'ab') as fd: fd.write(b'') if not exists: os.remove(keytab_filename) elif keytab_has_principal(name, keytab_filename): return except OSError as e: self.stdout.write( self.style.ERROR('Unable to write file: %s' % keytab_filename)) raise e except ValueError as e: self.stdout.write( self.style.ERROR('Invalid keytab file %s' % keytab_filename)) raise e add_principal_to_keytab(name, keytab_filename)