Compare commits
6 Commits
master
...
oidc_ifram
Author | SHA1 | Date | |
---|---|---|---|
d95fec7132 | |||
|
718cfe2b36 | ||
|
9b85645aab | ||
|
c7195d5bcb | ||
|
b18edc14c0 | ||
|
c5a20b98e4 |
@ -2,4 +2,4 @@
|
||||
host=review.opendev.org
|
||||
port=29418
|
||||
project=openstack/skyline-apiserver.git
|
||||
defaultbranch=master
|
||||
defaultbranch=stable/2024.1
|
||||
|
8
Makefile
8
Makefile
@ -17,7 +17,7 @@ GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
|
||||
GIT_COMMIT ?= $(shell git rev-parse --verify HEAD)
|
||||
|
||||
# URL for skyline-console packages
|
||||
SKYLINE_CONSOLE_PACKAGE_URL ?= "https://tarballs.opendev.org/openstack/skyline-console/skyline-console-master.tar.gz"
|
||||
SKYLINE_CONSOLE_PACKAGE_URL ?= "https://tarballs.opendev.org/openstack/skyline-console/skyline-console-stable-2024.1.tar.gz"
|
||||
|
||||
|
||||
.PHONY: help
|
||||
@ -81,7 +81,7 @@ BUILD_ENGINE ?= docker
|
||||
BUILD_CONTEXT ?= .
|
||||
DOCKER_FILE ?= container/Dockerfile
|
||||
IMAGE ?= skyline
|
||||
IMAGE_TAG ?= latest
|
||||
IMAGE_TAG ?= 2024.1
|
||||
ifeq ($(BUILD_ENGINE), docker)
|
||||
build_cmd = docker build
|
||||
else ifeq ($(BUILD_ENGINE), buildah)
|
||||
@ -91,14 +91,14 @@ else
|
||||
endif
|
||||
build: skyline_console/skyline_console.tar.gz skyline_console/commit_id
|
||||
$(build_cmd) --no-cache --pull --force-rm \
|
||||
--build-arg GIT_CONSOLE_COMMIT=$(file < skyline_console/commit_id) \
|
||||
--build-arg GIT_CONSOLE_COMMIT=$(shell cat skyline_console/commit_id) \
|
||||
--build-arg GIT_BRANCH=$(GIT_BRANCH) \
|
||||
--build-arg GIT_COMMIT=$(GIT_COMMIT) \
|
||||
--build-arg RELEASE_VERSION=$(RELEASE_VERSION) \
|
||||
$(BUILD_ARGS) -f $(DOCKER_FILE) -t $(IMAGE):$(IMAGE_TAG) $(BUILD_CONTEXT)
|
||||
devbuild: skyline_console/skyline_console.tar.gz skyline_console/commit_id
|
||||
$(build_cmd) \
|
||||
--build-arg GIT_CONSOLE_COMMIT=$(file < skyline_console/commit_id) \
|
||||
--build-arg GIT_CONSOLE_COMMIT=$(shell cat skyline_console/commit_id) \
|
||||
--build-arg GIT_BRANCH=devbuild \
|
||||
--build-arg GIT_COMMIT=devbuild \
|
||||
--build-arg RELEASE_VERSION=devbuild \
|
||||
|
@ -25,12 +25,12 @@ RUN pip install -U /opt/skyline_apiserver/skyline_console/skyline_console.tar.gz
|
||||
|
||||
COPY ./requirements.txt /opt/skyline_apiserver/requirements.txt
|
||||
|
||||
RUN pip install -r /opt/skyline_apiserver/requirements.txt -chttps://releases.openstack.org/constraints/upper/master
|
||||
RUN pip install -r /opt/skyline_apiserver/requirements.txt -chttps://releases.openstack.org/constraints/upper/2024.1
|
||||
|
||||
COPY ./ /opt/skyline_apiserver/
|
||||
|
||||
RUN git init /opt/skyline_apiserver \
|
||||
&& pip install /opt/skyline_apiserver -chttps://releases.openstack.org/constraints/upper/master \
|
||||
&& pip install /opt/skyline_apiserver -chttps://releases.openstack.org/constraints/upper/2024.1 \
|
||||
&& apt-get clean \
|
||||
&& rm -rf ~/.cache/pip \
|
||||
&& mkdir -p /etc/skyline /var/log/skyline /var/lib/skyline
|
||||
|
@ -1,6 +1,6 @@
|
||||
pbr>=5.8.0 # Apache-2.0
|
||||
fastapi<=0.58.1 # MIT
|
||||
pydantic<=1.8.2 # MIT
|
||||
pydantic<=1.10.0 # MIT
|
||||
uvicorn<=0.17.6 # BSD License (3 clause)
|
||||
gunicorn>=20.1.0 # MIT
|
||||
python-jose<=3.3.0 # MIT
|
||||
|
@ -19,6 +19,8 @@ classifier =
|
||||
Programming Language :: Python :: 3
|
||||
Programming Language :: Python :: 3.8
|
||||
Programming Language :: Python :: 3.9
|
||||
Programming Language :: Python :: 3.10
|
||||
Programming Language :: Python :: 3.11
|
||||
project_urls:
|
||||
Source=https://opendev.org/openstack/skyline-apiserver
|
||||
Tracker=https://bugs.launchpad.net/skyline-apiserver
|
||||
|
@ -165,7 +165,7 @@ async def list_servers(
|
||||
sort_dirs=[sort_dirs.value] if sort_dirs else None,
|
||||
)
|
||||
|
||||
result = []
|
||||
result: List = []
|
||||
server_ids = []
|
||||
image_ids = []
|
||||
root_device_ids = []
|
||||
@ -752,13 +752,13 @@ async def list_volume_snapshots(
|
||||
)
|
||||
except NotFound as ex:
|
||||
LOG.debug(f"Not found volume snapshot with id '{uuid}': {ex}")
|
||||
return schemas.VolumeSnapshotsResponse(**{"count": 0, "volume_snapshots": []})
|
||||
return schemas.VolumeSnapshotsResponse(count=0, volume_snapshots=[])
|
||||
if volume_snapshot.project_id != profile.project.id:
|
||||
LOG.debug(
|
||||
f"Volume snapshot with id '{uuid}' is in project "
|
||||
f"'{volume_snapshot.project_id}', not in '{profile.project.id}'"
|
||||
)
|
||||
return schemas.VolumeSnapshotsResponse(**{"count": 0, "volume_snapshots": []})
|
||||
return schemas.VolumeSnapshotsResponse(count=0, volume_snapshots=[])
|
||||
snapshot_session = get_system_session()
|
||||
search_opts["all_tenants"] = True
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import PurePath
|
||||
from typing import Any, List, Optional, Tuple, Union
|
||||
from typing import Any, Dict, List, Optional, Tuple, Union
|
||||
|
||||
from fastapi import APIRouter, Depends, Form, Header, HTTPException, Request, Response, status
|
||||
from fastapi.responses import RedirectResponse
|
||||
@ -218,12 +218,12 @@ async def login(
|
||||
response_description="OK",
|
||||
)
|
||||
async def get_sso(request: Request) -> schemas.SSO:
|
||||
sso = {
|
||||
sso: Dict = {
|
||||
"enable_sso": False,
|
||||
"protocols": [],
|
||||
}
|
||||
if CONF.openstack.sso_enabled:
|
||||
protocols = []
|
||||
protocols: List = []
|
||||
|
||||
ks_url = CONF.openstack.keystone_url.rstrip("/")
|
||||
url_scheme = "https" if CONF.default.ssl_enabled else "http"
|
||||
@ -300,8 +300,8 @@ async def websso(
|
||||
)
|
||||
else:
|
||||
response = RedirectResponse(url="/base/overview", status_code=status.HTTP_302_FOUND)
|
||||
response.set_cookie(CONF.default.session_name, profile.toJWTPayload())
|
||||
response.set_cookie(constants.TIME_EXPIRED_KEY, str(profile.exp))
|
||||
response.set_cookie(CONF.default.session_name, profile.toJWTPayload(),secure=True,samesite="None")
|
||||
response.set_cookie(constants.TIME_EXPIRED_KEY, str(profile.exp),secure=True,samesite="None")
|
||||
return response
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Dict
|
||||
from typing import Dict, List
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from keystoneauth1.exceptions.http import (
|
||||
@ -113,7 +113,7 @@ async def list_policies(
|
||||
LOG.debug("Keystone is not reachable. No privilege to access system scope.")
|
||||
target = _generate_target(profile)
|
||||
|
||||
results = []
|
||||
results: List = []
|
||||
services = constants.SUPPORTED_SERVICE_EPS.keys()
|
||||
for service in services:
|
||||
try:
|
||||
@ -176,7 +176,7 @@ async def check_policies(
|
||||
target = _generate_target(profile)
|
||||
target.update(policy_rules.target if policy_rules.target else {})
|
||||
try:
|
||||
result = []
|
||||
result: List = []
|
||||
for policy_rule in policy_rules.rules:
|
||||
service = policy_rule.split(":", 1)[0]
|
||||
rule = policy_rule.split(":", 1)[1]
|
||||
|
@ -42,7 +42,8 @@ async def on_startup() -> None:
|
||||
if CONF.default.cors_allow_origins:
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=[str(origin) for origin in CONF.default.cors_allow_origins],
|
||||
allow_origins=[
|
||||
str(origin) for origin in CONF.default.cors_allow_origins] + ['https://demo.felcloud.io', 'https://baha-dev.felcloud.io'],
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
|
@ -79,7 +79,7 @@ class TestOpt:
|
||||
{
|
||||
"name": FAKER.text.word(),
|
||||
"description": FAKER.text.word(),
|
||||
"schema": object,
|
||||
"schema": RuntimeError,
|
||||
},
|
||||
RuntimeError,
|
||||
),
|
||||
|
21
tox.ini
21
tox.ini
@ -2,22 +2,20 @@
|
||||
minversion = 3.18.0
|
||||
requires = virtualenv>=20.4.2
|
||||
skipsdist = True
|
||||
# python runtimes: https://governance.openstack.org/tc/reference/project-testing-interface.html#tested-runtimes
|
||||
envlist = pep8,py38,functional
|
||||
envlist = pep8,py3,functional
|
||||
# this allows tox to infer the base python from the environment name
|
||||
# and override any basepython configured in this file
|
||||
ignore_basepython_conflict=true
|
||||
|
||||
[testenv]
|
||||
basepython = python3
|
||||
setenv = VIRTUAL_ENV={envdir}
|
||||
PYTHONWARNINGS=default::DeprecationWarning
|
||||
OS_STDOUT_CAPTURE=1
|
||||
OS_STDERR_CAPTURE=1
|
||||
usedevelop = True
|
||||
usedevelop = true
|
||||
setenv =
|
||||
VIRTUAL_ENV={envdir}
|
||||
OS_STDOUT_CAPTURE=1
|
||||
OS_STDERR_CAPTURE=1
|
||||
|
||||
deps =
|
||||
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
||||
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.1}
|
||||
-r{toxinidir}/requirements.txt
|
||||
-r{toxinidir}/test-requirements.txt
|
||||
|
||||
@ -68,10 +66,9 @@ commands =
|
||||
black --check --diff --color skyline_apiserver --line-length 98
|
||||
flake8 {posargs} .
|
||||
|
||||
[testenv:py38]
|
||||
[testenv:py{3,38,39,310,311}]
|
||||
description =
|
||||
Run pytest.
|
||||
envdir = {toxworkdir}/shared
|
||||
deps =
|
||||
{[testenv]deps}
|
||||
extras =
|
||||
@ -80,7 +77,7 @@ commands =
|
||||
|
||||
[testenv:docs]
|
||||
deps =
|
||||
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
||||
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.1}
|
||||
-r{toxinidir}/requirements.txt
|
||||
-r{toxinidir}/doc/requirements.txt
|
||||
commands =
|
||||
|
Loading…
Reference in New Issue
Block a user