1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 21:06:19 +00:00
This commit is contained in:
Paulus Schoutsen
2019-07-31 12:25:30 -07:00
parent da05dfe708
commit 4de97abc3a
2676 changed files with 163166 additions and 140084 deletions

View File

@@ -7,25 +7,28 @@ from homeassistant.util.yaml import _SECRET_NAMESPACE
# mypy: allow-untyped-defs
REQUIREMENTS = ['credstash==1.15.0']
REQUIREMENTS = ["credstash==1.15.0"]
def run(args):
"""Handle credstash script."""
parser = argparse.ArgumentParser(
description=("Modify Home Assistant secrets in credstash."
"Use the secrets in configuration files with: "
"!secret <name>"))
description=(
"Modify Home Assistant secrets in credstash."
"Use the secrets in configuration files with: "
"!secret <name>"
)
)
parser.add_argument("--script", choices=["credstash"])
parser.add_argument(
'--script', choices=['credstash'])
"action",
choices=["get", "put", "del", "list"],
help="Get, put or delete a secret, or list all available secrets",
)
parser.add_argument("name", help="Name of the secret", nargs="?", default=None)
parser.add_argument(
'action', choices=['get', 'put', 'del', 'list'],
help="Get, put or delete a secret, or list all available secrets")
parser.add_argument(
'name', help="Name of the secret", nargs='?', default=None)
parser.add_argument(
'value', help="The value to save when putting a secret",
nargs='?', default=None)
"value", help="The value to save when putting a secret", nargs="?", default=None
)
# pylint: disable=import-error, no-member
import credstash
@@ -38,11 +41,11 @@ def run(args):
except Exception: # pylint: disable=broad-except
credstash.createDdbTable(table=table)
if args.action == 'list':
secrets = [i['name'] for i in credstash.listSecrets(table=table)]
if args.action == "list":
secrets = [i["name"] for i in credstash.listSecrets(table=table)]
deduped_secrets = sorted(set(secrets))
print('Saved secrets:')
print("Saved secrets:")
for secret in deduped_secrets:
print(secret)
return 0
@@ -51,24 +54,24 @@ def run(args):
parser.print_help()
return 1
if args.action == 'put':
if args.action == "put":
if args.value:
the_secret = args.value
else:
the_secret = getpass.getpass('Please enter the secret for {}: '
.format(args.name))
the_secret = getpass.getpass(
"Please enter the secret for {}: ".format(args.name)
)
current_version = credstash.getHighestVersion(args.name, table=table)
credstash.putSecret(args.name,
the_secret,
version=int(current_version) + 1,
table=table)
print('Secret {} put successfully'.format(args.name))
elif args.action == 'get':
credstash.putSecret(
args.name, the_secret, version=int(current_version) + 1, table=table
)
print("Secret {} put successfully".format(args.name))
elif args.action == "get":
the_secret = credstash.getSecret(args.name, table=table)
if the_secret is None:
print('Secret {} not found'.format(args.name))
print("Secret {} not found".format(args.name))
else:
print('Secret {}={}'.format(args.name, the_secret))
elif args.action == 'del':
print("Secret {}={}".format(args.name, the_secret))
elif args.action == "del":
credstash.deleteSecrets(args.name, table=table)
print('Deleted secret {}'.format(args.name))
print("Deleted secret {}".format(args.name))