Пример #1
0
    def get_keystone_token(self):
        token_file = self.get_data_file_path("keystone-token")
        with open(token_file, 'r') as tfile:
            token_json = json.load(tfile)

        token_id = 'fake-token-id'
        region_name = 'RegionOne'
        return Token(token_json, token_id, region_name)
Пример #2
0
    def get_keystone_token(self):
        token_file = os.path.join(os.path.dirname(__file__), "data", "keystone-token")
        with open(token_file, 'r') as tfile:
            token_json = json.load(tfile)

        token_id = 'fake-token-id'
        region_name = 'RegionOne'
        return Token(token_json, token_id, region_name)
Пример #3
0
 def _get_token(self, expires_at):
     token_data = {
         'token': {
             'expires_at': expires_at,
         }
     }
     token_id = 'fake-token-id'
     region_name = 'RegionOne'
     return Token(token_data, token_id, region_name)
Пример #4
0
def _get_token(auth_url, auth_project, username, password, user_domain,
               project_domain, region_name):
    """
    Ask OpenStack Keystone for a token
    Returns: token object or None on failure
    """
    try:
        url = auth_url + "/v3/auth/tokens"
        request_info = Request(url)
        request_info.add_header("Content-type", "application/json")
        request_info.add_header("Accept", "application/json")
        payload = json.dumps({
            "auth": {
                "identity": {
                    "methods": ["password"],
                    "password": {
                        "user": {
                            "name": username,
                            "password": password,
                            "domain": {
                                "name": user_domain
                            }
                        }
                    }
                },
                "scope": {
                    "project": {
                        "name": auth_project,
                        "domain": {
                            "name": project_domain
                        }
                    }
                }
            }
        })

        request_info.add_data(payload)

        request = urlopen(request_info)
        # Identity API v3 returns token id in X-Subject-Token
        # response header.
        token_id = request.info().getheader('X-Subject-Token')
        response = json.loads(request.read())
        request.close()
        # save the region name for service url lookup
        return Token(response, token_id, region_name)

    except HTTPError as e:
        LOG.error("%s, %s" % (e.code, e.read()))
        return None

    except URLError as e:
        LOG.error(e)
        return None