apache-ignite
56 строк · 1.7 Кб
1# Licensed to the Apache Software Foundation (ASF) under one or more
2# contributor license agreements. See the NOTICE file distributed with
3# this work for additional information regarding copyright ownership.
4# The ASF licenses this file to You under the Apache License, Version 2.0
5# (the "License"); you may not use this file except in compliance with
6# the License. You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16"""
17Base service for all services.
18"""
19
20from abc import ABCMeta21
22from ducktape.services.service import Service23
24
25class DucktestsService(Service, metaclass=ABCMeta):26"""DucktestsService provides common semantic for all services."""27
28def __init__(self, context, num_nodes=None, cluster_spec=None, **kwargs):29super().__init__(context, num_nodes, cluster_spec, **kwargs)30
31self.stopped = False32
33def start(self, **kwargs):34self.stopped = False35
36super().start(**kwargs)37
38def stop(self, force_stop=False, **kwargs):39if self.stopped:40return41
42self.stopped = True43
44super().stop(force_stop=force_stop, **kwargs)45
46def stop_node(self, node, force_stop=False, **kwargs):47super().stop_node(node, force_stop=force_stop, **kwargs)48
49def kill(self):50"""51Kills the service.
52"""
53self.stop(force_stop=True)54
55def clean_node(self, node, **kwargs):56pass57