Ejemplo n.º 1
0
    def parse(cls, id, data):
        token = Token()

        token.setId(id)

        data = data["token"]
        issued_at = None
        expires_at = None

        try:
            issued_at = datetime.strptime(data["issued_at"],
                                          "%Y-%m-%dT%H:%M:%S.%fZ")
        except Exception:
            issued_at = datetime.strptime(data["issued_at"],
                                          "%Y-%m-%dT%H:%M:%S.%f")

        try:
            expires_at = datetime.strptime(data["expires_at"],
                                           "%Y-%m-%dT%H:%M:%S.%fZ")
        except Exception:
            expires_at = datetime.strptime(data["expires_at"],
                                           "%Y-%m-%dT%H:%M:%S.%f")

        token.setCreation(issued_at)
        token.setExpiration(expires_at)

        project = Project()
        project.setId(data["project"]["id"])
        project.setName(data["project"]["name"])

        token.setProject(project)

        user = User()
        user.setId(data["user"]["id"])
        user.setName(data["user"]["name"])
        user.setProjectId(data["project"]["id"])

        token.setUser(user)

        if "extras" in data:
            token.getExtras().update(data["extras"])

        for info in data["roles"]:
            role = Role()
            role.setId(info["id"])
            role.setName(info["name"])

            token.getRoles().append(role)

        for service_info in data["catalog"]:
            service = Service()
            service.setId(service_info["id"])
            service.setType(service_info["type"])
            service.setName(service_info["name"])

            for endpoint_info in service_info["endpoints"]:
                endpoint = Endpoint()
                endpoint.setId(endpoint_info["id"])
                endpoint.setInterface(endpoint_info["interface"])
                endpoint.setRegion(endpoint_info["region"])
                endpoint.setRegionId(endpoint_info["region_id"])
                endpoint.setURL(endpoint_info["url"])

                service.getEndpoints().append(endpoint)

            token.getServices().append(service)

        return token
Ejemplo n.º 2
0
    def parse(cls, id, data):
        token = Token()

        token.setId(id)

        data = data["token"]
        issued_at = None
        expires_at = None

        try:
            issued_at = datetime.strptime(data["issued_at"],
                                          "%Y-%m-%dT%H:%M:%S.%fZ")
        except Exception:
            issued_at = datetime.strptime(data["issued_at"],
                                          "%Y-%m-%dT%H:%M:%S.%f")

        try:
            expires_at = datetime.strptime(data["expires_at"],
                                           "%Y-%m-%dT%H:%M:%S.%fZ")
        except Exception:
            expires_at = datetime.strptime(data["expires_at"],
                                           "%Y-%m-%dT%H:%M:%S.%f")

        token.setCreation(issued_at)
        token.setExpiration(expires_at)

        project = Project()
        project.setId(data["project"]["id"])
        project.setName(data["project"]["name"])

        token.setProject(project)

        user = User()
        user.setId(data["user"]["id"])
        user.setName(data["user"]["name"])
        user.setProjectId(data["project"]["id"])

        token.setUser(user)

        if "extras" in data:
            token.getExtras().update(data["extras"])

        for info in data["roles"]:
            role = Role()
            role.setId(info["id"])
            role.setName(info["name"])

            token.getRoles().append(role)

        for service_info in data["catalog"]:
            service = Service()
            service.setId(service_info["id"])
            service.setType(service_info["type"])
            service.setName(service_info["name"])

            for endpoint_info in service_info["endpoints"]:
                endpoint = Endpoint()
                endpoint.setId(endpoint_info["id"])
                endpoint.setInterface(endpoint_info["interface"])
                endpoint.setRegion(endpoint_info["region"])
                endpoint.setRegionId(endpoint_info["region_id"])
                endpoint.setURL(endpoint_info["url"])

                service.getEndpoints().append(endpoint)

            token.getServices().append(service)

        return token