Updated to have jail storage pool and activate pool after unlock
This commit is contained in:
@@ -266,6 +266,7 @@ def new_pool_details():
|
||||
break
|
||||
else:
|
||||
print("The pool encryption passphrases do not match, please try again.")
|
||||
|
||||
array = dict()
|
||||
array[pool_name] = dict()
|
||||
array[pool_name]["pool_passphrase"] = pool_passphrase
|
||||
@@ -356,9 +357,9 @@ if __name__ == '__main__':
|
||||
user_input = input("n/q> ")
|
||||
if user_input.casefold() == "n":
|
||||
config = dict()
|
||||
api_key = input("Please enter your API key: ")
|
||||
config['API Key'] = api_key
|
||||
config['API Key'] = input("Please enter your API key: ")
|
||||
config['Pools'] = new_pool_details()
|
||||
config['jailStoragePool'] = select_pool(config['Pools'], "select for jail storage")
|
||||
write_config_file(config, secrets_config_file)
|
||||
break
|
||||
elif user_input.casefold() == "q":
|
||||
@@ -371,20 +372,26 @@ if __name__ == '__main__':
|
||||
print(" ")
|
||||
for pool in config['Pools']:
|
||||
print(pool)
|
||||
print("Jail storage pool: {}".format(config['jailStoragePool']))
|
||||
print(" ")
|
||||
print("a) Edit API Key")
|
||||
print("e) Edit pool")
|
||||
print("j) Edit jail storage pool")
|
||||
print("n) New pool")
|
||||
print("d) Delete pool")
|
||||
print("q) Quit config")
|
||||
user_input = input("a/e/n/d/q> ")
|
||||
user_input = input("a/e/j/n/d/q> ")
|
||||
# Edit API Key
|
||||
if user_input.casefold() == "a":
|
||||
api_key = input("Please enter your API key: ")
|
||||
config['API Key'] = api_key
|
||||
config['API Key'] = input("Please enter your API key: ")
|
||||
write_config_file(config, secrets_config_file)
|
||||
# Editing an account
|
||||
elif user_input.casefold() == "e":
|
||||
config['jailStoragePool'] = select_pool(config['Pools'], "select for jail storage")
|
||||
write_config_file(config, secrets_config_file)
|
||||
break
|
||||
# Editing jail storage pool
|
||||
elif user_input.casefold() == "j":
|
||||
pool_to_edit = select_pool(config['Pools'])
|
||||
pool_details = edit_pool_details(config['Pools'], pool_to_edit)
|
||||
del config['Pools'][pool_to_edit]
|
||||
@@ -425,6 +432,7 @@ if __name__ == '__main__':
|
||||
# run the decryption of the keys and unlock the pool
|
||||
config = read_config_file(secrets_config_file)
|
||||
api_key = config['API Key']
|
||||
jail_storage_pool = config['jailStoragePool']
|
||||
API_POOLS = request('pool', api_key)['response']
|
||||
API_DATASETS = request('pool/dataset', api_key)['response']
|
||||
for pool_dataset_name in config['Pools']:
|
||||
@@ -465,20 +473,27 @@ if __name__ == '__main__':
|
||||
else:
|
||||
logger.info('Dataset {} is already unlocked'.format(dataset['name']))
|
||||
|
||||
# start any jails that are set to start on boot but are most likely on an encrypted pool
|
||||
API_JAILS = request('jail', api_key)['response']
|
||||
for jail in API_JAILS:
|
||||
if jail['boot'] == 1:
|
||||
logger.info('Jail {} is set to start on boot'.format(jail['id']))
|
||||
if jail['state'] == 'down':
|
||||
logger.info('Jail {} is stopped'.format(jail['id']))
|
||||
logger.info('Starting jail {}'.format(jail['id']))
|
||||
response = request('jail/start', api_key, 'POST', '{}'.format(jail['id']))
|
||||
if response['ok']:
|
||||
logger.info('Started jail {} successfully'.format(jail['id']))
|
||||
# make sure jail storage pool is set
|
||||
logger.info('Setting jail storage pool to {}'.format(jail_storage_pool))
|
||||
response = request('jail/activate', api_key, 'POST', '{}'.format(jail_storage_pool))
|
||||
if response['ok']:
|
||||
logger.info('Successfully set jail storage pool to {} successfully'.format(jail_storage_pool))
|
||||
# start any jails that are set to start on boot but are most likely on an encrypted pool
|
||||
API_JAILS = request('jail', api_key)['response']
|
||||
for jail in API_JAILS:
|
||||
if jail['boot'] == 1:
|
||||
logger.info('Jail {} is set to start on boot'.format(jail['id']))
|
||||
if jail['state'] == 'down':
|
||||
logger.info('Jail {} is stopped'.format(jail['id']))
|
||||
logger.info('Starting jail {}'.format(jail['id']))
|
||||
response = request('jail/start', api_key, 'POST', '{}'.format(jail['id']))
|
||||
if response['ok']:
|
||||
logger.info('Started jail {} successfully'.format(jail['id']))
|
||||
else:
|
||||
logger.error('Jail {} was NOT started successfully'.format(jail['id']))
|
||||
else:
|
||||
logger.error('Jail {} was NOT started successfully'.format(jail['id']))
|
||||
else:
|
||||
logger.info('Jail {} is already started'.format(jail['id']))
|
||||
logger.info('Jail {} is already started'.format(jail['id']))
|
||||
else:
|
||||
logger.error('Unable to set jail storage pool to {}'.format(jail_storage_pool))
|
||||
client.close()
|
||||
sys.exit(0)
|
||||
Reference in New Issue
Block a user