Пример #1
0
 def take_action(self, parsed_args):
     environment = self.app.options.environment
     e = SecretsEnvironment(environment)
     if parsed_args.tmpdir:
         if not e.environment_exists() and not parsed_args.create:
             return (f"[-] environment '{str(e)}' does not exist; "
                     "use '--create' to create it")
         tmpdir = e.get_tmpdir_path(create_path=parsed_args.create)
         self._print(tmpdir, parsed_args.json)
     else:
         base_path = e.get_environment_path()
         subdir = parsed_args.subdir
         full_path = base_path if subdir is None \
             else os.path.join(base_path, *subdir)
         if not os.path.exists(full_path) and parsed_args.create:
             mode = 0o700
             os.makedirs(full_path, mode)
             if self.app_args.verbose_level > 1:
                 self.logger.info("[+] created %s", full_path)
         if parsed_args.exists:
             # Just check existance and return result
             exists = os.path.exists(full_path)
             if self.app_args.verbose_level > 1:
                 status = "exists" if exists else "does not exist"
                 self.logger.info("[+] environment path '%s' %s", full_path,
                                  status)
             return 0 if exists else 1
         else:
             self._print(full_path, parsed_args.json)
Пример #2
0
 def take_action(self, parsed_args):
     secrets_basedir = self.app.secrets_basedir
     if parsed_args.alias is not None:
         if len(parsed_args.env) != 1:
             raise RuntimeError(
                 '[-] --alias requires one source environment')
         se = SecretsEnvironment(
             environment=parsed_args.alias,
             secrets_basedir=secrets_basedir,
             create_root=parsed_args.force,
         )
         se.environment_create(
             source=parsed_args.env[0],
             alias=True
         )
         if se.environment_exists():
             self.logger.info(
                 "[+] environment '%s' aliased to '%s'",
                 parsed_args.alias,
                 parsed_args.env[0]
             )
         else:
             raise RuntimeError('[-] creating environment failed')
     else:
         # Default to app environment identifier
         if len(parsed_args.env) == 0:
             parsed_args.env = list(self.app.environment)
         for environment in parsed_args.env:
             se = SecretsEnvironment(
                 environment=environment,
                 secrets_basedir=secrets_basedir,
                 create_root=True,
             )
             se.environment_create(source=parsed_args.clone_from)
             self.logger.info(
                 "[+] environment '%s' (%s) created",
                 environment,
                 se.get_environment_path()
             )
             if parsed_args.clone_from:
                 se.read_secrets(from_descriptions=True)
                 se.write_secrets()