Improve registry validation (#1429)
* Allow that a provider can upload its function without a registry * Simplified mock setting
This commit is contained in:
parent
0a0b645683
commit
65cda73b6a
|
@ -45,7 +45,6 @@ services:
|
|||
- DJANGO_SUPERUSER_EMAIL=admin@noemail.com
|
||||
- SITE_HOST=http://gateway:8000
|
||||
- SETTINGS_AUTH_MECHANISM=mock_token
|
||||
- SETTINGS_AUTH_MOCKPROVIDER_REGISTRY=test
|
||||
- DATABASE_HOST=postgres
|
||||
- DATABASE_PORT=5432
|
||||
- DATABASE_NAME=serverlessdb
|
||||
|
|
|
@ -39,7 +39,6 @@ services:
|
|||
- DJANGO_SUPERUSER_EMAIL=admin@noemail.com
|
||||
- SITE_HOST=http://gateway:8000
|
||||
- SETTINGS_AUTH_MECHANISM=mock_token
|
||||
- SETTINGS_AUTH_MOCKPROVIDER_REGISTRY=test
|
||||
- DATABASE_HOST=postgres
|
||||
- DATABASE_PORT=5432
|
||||
- DATABASE_NAME=serverlessdb
|
||||
|
|
|
@ -42,15 +42,18 @@ class UploadProgramSerializer(serializers.UploadProgramSerializer):
|
|||
raise ValidationError(
|
||||
"At least one of attributes (entrypoint, image) is required."
|
||||
)
|
||||
|
||||
title = attrs.get("title")
|
||||
provider = attrs.get("provider", None)
|
||||
if provider and "/" in title:
|
||||
raise ValidationError("Provider defined in title and in provider fields.")
|
||||
|
||||
title_split = title.split("/")
|
||||
if len(title_split) > 2:
|
||||
raise ValidationError(
|
||||
"Qiskit Function title is malformed. It can only contain one slash."
|
||||
)
|
||||
|
||||
if image is not None:
|
||||
if provider is None and len(title_split) != 2:
|
||||
raise ValidationError(
|
||||
|
@ -60,10 +63,8 @@ class UploadProgramSerializer(serializers.UploadProgramSerializer):
|
|||
provider = title_split[0]
|
||||
provider_instance = Provider.objects.filter(name=provider).first()
|
||||
if provider_instance is None:
|
||||
raise ValidationError(
|
||||
"Custom images are only available a valid provider."
|
||||
)
|
||||
if not provider_instance.registry or not image.startswith(
|
||||
raise ValidationError(f"{provider} is not valid provider.")
|
||||
if provider_instance.registry and not image.startswith(
|
||||
provider_instance.registry
|
||||
):
|
||||
raise ValidationError(
|
||||
|
|
|
@ -232,7 +232,7 @@ DJR_DEFAULT_AUTHENTICATION_CLASSES = ALL_AUTH_CLASSES_CONFIGURATION.get(
|
|||
# mock token value
|
||||
SETTINGS_AUTH_MOCK_TOKEN = os.environ.get("SETTINGS_AUTH_MOCK_TOKEN", "awesome_token")
|
||||
SETTINGS_AUTH_MOCKPROVIDER_REGISTRY = os.environ.get(
|
||||
"SETTINGS_AUTH_MOCKPROVIDER_REGISTRY", "icr.io"
|
||||
"SETTINGS_AUTH_MOCKPROVIDER_REGISTRY", None
|
||||
)
|
||||
# =============
|
||||
|
||||
|
|
Loading…
Reference in New Issue