
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
44 lines
1.6 KiB
Python
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
|