diff --git a/psst/psst.py b/psst/psst.py index 0487584..0e1d66d 100644 --- a/psst/psst.py +++ b/psst/psst.py @@ -48,6 +48,7 @@ def generate(secrets_list, name): for s in secrets: dict[s] = eval("psst.secrets." + secrets_list + "." + s + ".generate()") + click.echo(json.dumps(dict, indent=4)) @cli.group() @@ -65,31 +66,23 @@ def vault(): help="Set the compartment for the vault, key and secrets") @click.option('--region', help="Set the region, overriding the default cloud configuration value") -@click.option('-cm', '--cloud-manager', - default=False, - is_flag=True, - help="Set Cloud Manager Mode for passwords and length requirements") -def generate(type, name, compartment_id, region, cloud_manager): - """Generate a vault. Currently defaults a lot, including generated secrets...""" +@click.option('-l', '--secrets-list', + default="base", + show_default=True, + help="The secrets list to generate [base,pcm,oci]") +def generate(type, name, compartment_id, region, secrets_list): + """Generate a vault with generated secrets.""" if type == "oci": - # TODO this all needs error checking ocicfg = psst.vault.oci.config(region) - # TODO - generate dict - # TODO - rework this to work like `generate` with secrets-list + dict = {} - dict["db_user_pwd"] = psst.secrets.db_user_pwd.generate(cloud_manager) - dict["access_pwd"] = psst.secrets.access_pwd.generate(cloud_manager) - dict["es_admin_pwd"] = psst.secrets.es_admin_pwd.generate(cloud_manager) - dict["es_proxy_pwd"] = psst.secrets.es_proxy_pwd.generate(cloud_manager) - dict["wls_admin_user_pwd"] = psst.secrets.wls_admin_user_pwd.generate(cloud_manager) - if cloud_manager: - dict["db_admin_pwd"] = psst.secrets.db_admin_pwd.generate(cloud_manager) - dict["db_connect_pwd"] = psst.secrets.db_connect_pwd.generate(cloud_manager) - dict["pia_gateway_admin_pwd"] = psst.secrets.pia_gateway_admin_pwd.generate(cloud_manager) - dict["pia_webprofile_user_pwd"] = psst.secrets.pia_webprofile_user_pwd.generate(cloud_manager) - dict["domain_conn_pwd"] = psst.secrets.domain_conn_pwd.generate(cloud_manager) - dict["pskey_password"] = psst.secrets.pskey_password.generate(cloud_manager) - if cloud_manager: - dict["windows_password"] = psst.secrets.windows_password.generate(cloud_manager) - + secrets = [] + + list_module = eval("psst.secrets." + secrets_list ) + for module in getmembers(list_module, ismodule): + secrets.append(module[0]) + + for s in secrets: + dict[s] = eval("psst.secrets." + secrets_list + "." + s + ".generate()") + vault = psst.vault.oci.create(ocicfg, name, compartment_id, dict)