示例#1
0
 async def _retrieve_credentials_using(self, credential_process):
     # We're not using shell=True, so we need to pass the
     # command and all arguments as a list.
     process_list = compat_shell_split(credential_process)
     p = await self._popen(*process_list,
                           stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE)
     stdout, stderr = await p.communicate()
     if p.returncode != 0:
         raise CredentialRetrievalError(provider=self.METHOD,
                                        error_msg=stderr.decode('utf-8'))
     parsed = botocore.compat.json.loads(stdout.decode('utf-8'))
     version = parsed.get('Version', '<Version key not provided>')
     if version != 1:
         raise CredentialRetrievalError(
             provider=self.METHOD,
             error_msg=("Unsupported version '%s' for credential process "
                        "provider, supported versions: 1" % version))
     try:
         return {
             'access_key': parsed['AccessKeyId'],
             'secret_key': parsed['SecretAccessKey'],
             'token': parsed.get('SessionToken'),
             'expiry_time': parsed.get('Expiration'),
         }
     except KeyError as e:
         raise CredentialRetrievalError(
             provider=self.METHOD,
             error_msg="Missing required key in response: %s" % e)
示例#2
0
 def assert_raises(self, s, exception_cls, platform):
     with pytest.raises(exception_cls):
         compat_shell_split(s, platform)
示例#3
0
 def assert_equal(self, s, expected, platform):
     assert_equal(compat_shell_split(s, platform), expected)
示例#4
0
 def assert_equal(self, s, expected, platform):
     assert_equal(compat_shell_split(s, platform), expected)