diff --git a/interfaces/cloudflared_route/interface/v0/schema.py b/interfaces/cloudflared_route/interface/v0/schema.py index dc195d9e8..3db153ef8 100644 --- a/interfaces/cloudflared_route/interface/v0/schema.py +++ b/interfaces/cloudflared_route/interface/v0/schema.py @@ -1,11 +1,9 @@ # Copyright 2024 Canonical # See LICENSE file for licensing details. """This file defines the schemas for the provider sides of the cloudflared_route interface. -It exposes the interfaces.schema_base.DataBagSchema subclasses called: -- ProviderSchema Examples: - ProviderSchema: + Provider: unit: app: { "tunnel_token_secret_id": "secret:csn5caau557j9bojn7rg", @@ -13,18 +11,16 @@ } """ -from interface_tester.schema_base import DataBagSchema from pydantic import BaseModel, IPvAnyAddress -class CloudflaredRouteProvider(BaseModel): +class ProviderAppData(BaseModel): """Provider application databag schema for cloudflared_route integration.""" tunnel_token_secret_id: str nameserver: IPvAnyAddress | None = None -class ProviderSchema(DataBagSchema): - """Provider schema for cloudflared_route integration.""" - - app: CloudflaredRouteProvider +ProviderUnitData = None +RequirerAppData = None +RequirerUnitData = None diff --git a/interfaces/dns_record/interface/v0/schema.py b/interfaces/dns_record/interface/v0/schema.py index b7b09f3d5..77ba3118d 100644 --- a/interfaces/dns_record/interface/v0/schema.py +++ b/interfaces/dns_record/interface/v0/schema.py @@ -1,12 +1,9 @@ # Copyright 2024 Canonical # See LICENSE file for licensing details. """This file defines the schemas for the provider and requirer sides of the dns_record interface. -It exposes two interfaces.schema_base.DataBagSchema subclasses called: -- ProviderSchema -- RequirerSchema Examples: - RequirerSchema: + Requirer: unit: app: { "dns_entries": [ @@ -28,7 +25,7 @@ ] } - ProviderSchema: + Provider: unit: app: { "dns_entries": [ @@ -49,7 +46,6 @@ from enum import Enum from uuid import UUID -from interface_tester.schema_base import DataBagSchema from pydantic import BaseModel, Field, IPvAnyAddress @@ -111,7 +107,7 @@ class DnsProviderData(BaseModel): ) -class DNSRecordProvider(BaseModel): +class ProviderAppData(BaseModel): """List statuses for the DNS records informed by the requirer.""" dns_entries: list[DnsProviderData] = Field( @@ -160,7 +156,7 @@ class RequirerEntries(BaseModel): ) -class DNSRecordRequirer(BaseModel): +class RequirerAppData(BaseModel): """List of domains for the provider to manage.""" dns_entries: list[RequirerEntries] = Field( @@ -168,13 +164,5 @@ class DNSRecordRequirer(BaseModel): ) -class ProviderSchema(DataBagSchema): - """Provider schema for dns_record.""" - - app: DNSRecordProvider - - -class RequirerSchema(DataBagSchema): - """Requirer schema for dns_record.""" - - app: DNSRecordRequirer +ProviderUnitData = None +RequirerUnitData = None diff --git a/interfaces/milter/interface/v0/schema.py b/interfaces/milter/interface/v0/schema.py index 2ffac3fda..d0157cce0 100644 --- a/interfaces/milter/interface/v0/schema.py +++ b/interfaces/milter/interface/v0/schema.py @@ -2,21 +2,17 @@ # See LICENSE file for licensing details. """This file defines the schema for the provider side of the milter interface. -It exposes one interfaces.schema_base.DataBagSchema subclass called: -- ProviderSchema - Examples: - ProviderSchema: + Provider: app: unit: port: 8892 """ -from interface_tester.schema_base import DataBagSchema from pydantic import BaseModel, Field -class MilterProviderData(BaseModel): +class ProviderUnitData(BaseModel): port: int = Field( ge=1, le=65536, @@ -26,11 +22,6 @@ class MilterProviderData(BaseModel): ) -class ProviderSchema(DataBagSchema): - """Provider schema for Milter.""" - - unit: MilterProviderData - - -class RequirerSchema(DataBagSchema): - """Requirer schema for Milter.""" +ProviderAppData = None +RequirerAppData = None +RequirerUnitData = None diff --git a/interfaces/nginx-route/interface/v0/schema.py b/interfaces/nginx-route/interface/v0/schema.py index 304c67a83..0d8014ac9 100644 --- a/interfaces/nginx-route/interface/v0/schema.py +++ b/interfaces/nginx-route/interface/v0/schema.py @@ -2,11 +2,10 @@ from typing import Optional -from interface_tester.schema_base import DataBagSchema from pydantic import BaseModel, Field -class NginxRouteRequirerSchema(BaseModel): +class RequirerAppData(BaseModel): service_hostname: str = Field( alias="service-hostname", description="The hostname of the service to create an ingress for.", @@ -140,11 +139,6 @@ class NginxRouteRequirerSchema(BaseModel): ) -class ProviderSchema(DataBagSchema): - """Provider schema for nginx_route.""" - - -class RequirerSchema(DataBagSchema): - """Requirer schema for nginx_route.""" - - app: NginxRouteRequirerSchema +ProviderAppData = None +ProviderUnitData = None +RequirerUnitData = None diff --git a/interfaces/opencti_connector/interface/v0/schema.py b/interfaces/opencti_connector/interface/v0/schema.py index 6f6f348ab..32fc03f1f 100644 --- a/interfaces/opencti_connector/interface/v0/schema.py +++ b/interfaces/opencti_connector/interface/v0/schema.py @@ -2,19 +2,15 @@ # See LICENSE file for licensing details. """This file defines the schemas for the provider and requirer sides of the opencti-connector interface. -It exposes two interfaces.schema_base.DataBagSchema subclasses called: -- ProviderSchema -- RequirerSchema - Examples: - ProviderSchema: + Provider: unit: app: { "connector_charm_name": "connector-charm-name", "connector_type": "connector-type", } - RequirerSchema: + Requirer: unit: app: { "opencti_url": "http://opencti-endpoints.stg-opencti.svc:8080", @@ -22,7 +18,6 @@ } """ -from interface_tester.schema_base import DataBagSchema from pydantic import AnyHttpUrl, BaseModel, Field @@ -45,12 +40,6 @@ class ProviderAppData(BaseModel): ) -class ProviderSchema(DataBagSchema): - """Provider schema for the opencti-connector interface.""" - - app: ProviderAppData - - class RequirerAppData(BaseModel): opencti_url: AnyHttpUrl = Field( description="URL to the OpenCTI instance.", @@ -64,7 +53,5 @@ class RequirerAppData(BaseModel): ) -class RequirerSchema(DataBagSchema): - """Requirer schema for the opencti-connector interface.""" - - app: RequirerAppData +ProviderUnitData = None +RequirerUnitData = None diff --git a/interfaces/saml/interface/v0/schema.py b/interfaces/saml/interface/v0/schema.py index 58b98f4df..f16677242 100644 --- a/interfaces/saml/interface/v0/schema.py +++ b/interfaces/saml/interface/v0/schema.py @@ -2,11 +2,8 @@ # See LICENSE file for licensing details. """This file defines the schema for the provider side of the saml interface. -It exposes one interfaces.schema_base.DataBagSchema subclass called: -- ProviderSchema - Examples: - ProviderSchema: + Provider: unit: app: {"saml": { @@ -38,11 +35,10 @@ } """ -from interface_tester.schema_base import DataBagSchema from pydantic import AnyHttpUrl, BaseModel, Field -class SamlProviderData(BaseModel): +class ProviderAppData(BaseModel): metadata_url: AnyHttpUrl | None = Field( description="URL to the IdP's metadata.", title="Metadata URL", @@ -124,11 +120,6 @@ class SamlProviderData(BaseModel): ) -class ProviderSchema(DataBagSchema): - """Provider schema for SAML.""" - - app: SamlProviderData - - -class RequirerSchema(DataBagSchema): - """Requirer schema for SAML.""" +ProviderUnitData = None +RequirerAppData = None +RequirerUnitData = None diff --git a/interfaces/saml/interface/v0/tests/.disable b/interfaces/saml/interface/v0/tests/.disable deleted file mode 100644 index e69de29bb..000000000 diff --git a/interfaces/saml/interface/v0/tests/test_provider.py b/interfaces/saml/interface/v0/tests/test_provider.py deleted file mode 100644 index 158074d3c..000000000 --- a/interfaces/saml/interface/v0/tests/test_provider.py +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright 2023 Canonical -# See LICENSE file for licensing details. -from interface_tester.interface_test import Tester -from scenario import Relation, State - - -def test_data_published_on_created(): - t = Tester( - State( - relations=[ - Relation( - endpoint="saml", - interface="saml", - ) - ], - ) - ) - t.run("saml-relation-created") - t.assert_schema_valid() diff --git a/interfaces/saml/ruff.toml b/interfaces/saml/ruff.toml index efbd8c5cc..79b043b3f 100644 --- a/interfaces/saml/ruff.toml +++ b/interfaces/saml/ruff.toml @@ -9,10 +9,3 @@ quote-style = "preserve" "D", # docs "E501", # line too long ] -"./interface/v*/tests/*.py" = [ - "CPY", # copyright - "D", # docs - "S", # security - "E501", # line too long - "F841", # assignment to unused variable -] diff --git a/interfaces/smtp/interface/v0/schema.py b/interfaces/smtp/interface/v0/schema.py index 6f139cb30..237749435 100644 --- a/interfaces/smtp/interface/v0/schema.py +++ b/interfaces/smtp/interface/v0/schema.py @@ -2,11 +2,10 @@ # See LICENSE file for licensing details. """This file defines the schema for the provider side of the smtp interface. -It exposes one interfaces.schema_base.DataBagSchema subclass called: -- ProviderSchema +It defines one model, `ProviderAppData`. Examples: - ProviderSchema: + Provider: unit: app: {"smtp": { @@ -23,7 +22,6 @@ from enum import Enum -from interface_tester.schema_base import DataBagSchema from pydantic import BaseModel, Field @@ -43,7 +41,7 @@ class AuthType(str, Enum): PLAIN = "plain" -class SmtpProviderData(BaseModel): +class ProviderAppData(BaseModel): host: str = Field( min_length=1, description="SMTP host.", @@ -89,11 +87,6 @@ class SmtpProviderData(BaseModel): ) -class ProviderSchema(DataBagSchema): - """Provider schema for SMTP.""" - - app: SmtpProviderData - - -class RequirerSchema(DataBagSchema): - """Requirer schema for SMTP.""" +ProviderUnitData = None +RequirerAppData = None +RequirerUnitData = None diff --git a/interfaces/smtp/interface/v0/tests/.disable b/interfaces/smtp/interface/v0/tests/.disable deleted file mode 100644 index e69de29bb..000000000 diff --git a/interfaces/smtp/interface/v0/tests/test_provider.py b/interfaces/smtp/interface/v0/tests/test_provider.py deleted file mode 100644 index 2dcbfc8bf..000000000 --- a/interfaces/smtp/interface/v0/tests/test_provider.py +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright 2023 Canonical -# See LICENSE file for licensing details. -from interface_tester.interface_test import Tester -from scenario import Relation, State - - -def test_data_published_on_created(): - t = Tester( - State( - relations=[ - Relation( - endpoint="smtp", - interface="smtp", - ) - ], - ) - ) - t.run("smtp-relation-created") - t.assert_schema_valid() diff --git a/interfaces/smtp/ruff.toml b/interfaces/smtp/ruff.toml index efbd8c5cc..79b043b3f 100644 --- a/interfaces/smtp/ruff.toml +++ b/interfaces/smtp/ruff.toml @@ -9,10 +9,3 @@ quote-style = "preserve" "D", # docs "E501", # line too long ] -"./interface/v*/tests/*.py" = [ - "CPY", # copyright - "D", # docs - "S", # security - "E501", # line too long - "F841", # assignment to unused variable -] diff --git a/interfaces/wazuh_api_client/interface/v0/schema.py b/interfaces/wazuh_api_client/interface/v0/schema.py index 351ff6ef6..a7df12048 100644 --- a/interfaces/wazuh_api_client/interface/v0/schema.py +++ b/interfaces/wazuh_api_client/interface/v0/schema.py @@ -2,11 +2,8 @@ # See LICENSE file for licensing details. """This file defines the schema for the provider side of the wazuh-api-client interface. -It exposes one interfaces.schema_base.DataBagSchema subclass called: -- ProviderSchema - Examples: - ProviderSchema: + Provider: unit: app: {"wazuh-api-client": { @@ -16,11 +13,10 @@ } """ -from interface_tester.schema_base import DataBagSchema from pydantic import AnyHttpUrl, BaseModel, Field -class WazuhApiclientProviderData(BaseModel): +class ProviderAppData(BaseModel): endpoint: AnyHttpUrl = Field( description="Endpoint used to connect to the API.", title="Endpoint", @@ -34,11 +30,6 @@ class WazuhApiclientProviderData(BaseModel): ) -class ProviderSchema(DataBagSchema): - """Provider schema for Wazuh API client.""" - - app: WazuhApiclientProviderData - - -class RequirerSchema(DataBagSchema): - """Requirer schema for Wazuh API client.""" +ProviderUnitData = None +RequirerAppData = None +RequirerUnitData = None