Liam Young 5164ada2fd Fix base class for ovn charms
The charm classes were reworked to support k8s and machine charms
as part of this OSBaseOperatorCharm no longer contains k8s
components. However the k8s ovn charms have their own charm class
OSBaseOVNOperatorCharm which is for ovn k8s services so should
be based in OSBaseOperatorCharmk8s

Change-Id: Ieb43eb22c8c91c7b6776b3d309e244578d4d7c13
2023-04-03 06:02:29 +00:00

44 lines
1.6 KiB
Python

# Copyright 2022 Canonical Ltd.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Base classes for defining an OVN charm using the Operator framework."""
from typing import (
List,
)
from .. import charm as sunbeam_charm
from .. import relation_handlers as sunbeam_rhandlers
from . import relation_handlers as ovn_relation_handlers
class OSBaseOVNOperatorCharm(sunbeam_charm.OSBaseOperatorCharmK8S):
"""Base charms for OpenStack operators."""
def get_relation_handlers(
self, handlers: List[sunbeam_rhandlers.RelationHandler] = None
) -> List[sunbeam_rhandlers.RelationHandler]:
"""Relation handlers for the service."""
handlers = handlers or []
if self.can_add_handler("ovsdb-cms", handlers):
self.ovsdb_cms = ovn_relation_handlers.OVSDBCMSRequiresHandler(
self,
"ovsdb-cms",
self.configure_charm,
"ovsdb-cms" in self.mandatory_relations,
)
handlers.append(self.ovsdb_cms)
handlers = super().get_relation_handlers(handlers)
return handlers