I created connection like that https://docs.openstack.org/openstacksdk/latest/user/guides/connect.html
def create_connection(project_id=None) -> Optional[Connection]:
"""
Create connection to Client's Project in Openstack
:param project_id:
:return: Connection
"""
os_project_id = project_id or settings.OPENSTACK.get("PROJECT_ID")
return openstack.connect(
auth_url=settings.OPENSTACK.get("AUTH_URL"),
project_id=os_project_id,
username=settings.OPENSTACK.get("USERNAME"),
password=settings.OPENSTACK.get("PASSWORD"),
user_domain_name=settings.OPENSTACK.get("USER_DOMAIN_NAME"),
project_domain_name=settings.OPENSTACK.get("PROJECT_DOMAIN_NAME"),
app_name="default",
app_version="1.0",
)
# call function create connection
conn = create_connection(project_id)
# get project
project = conn.identity.get_project(project_id)
# conn2 with project id of client
conn2 = conn.connect_as_project(project)
I succeeded get project and created conn2 in first time, but in the second, i couldn't get connection and created conn2. It was raise exception
HttpException: No Project found for 40e090c7ee32405dae3d2814cce73094: Client Error for url: https://{BASE_URL}:5000/v3/projects/40e090c7ee32405dae3d2814cce73094, You are not authorized to perform the requested action: identity:get_project.
I thought it cached session and used conn like conn2 created