zuul-operator/zuul_operator/cmd.py

52 lines
1.7 KiB
Python

# Copyright 2021 Acme Gating, LLC
#
# 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.
import argparse
from kopf.engines import loggers
from zuul_operator import ZuulOperator
class ZuulOperatorCommand:
def __init__(self):
self.op = ZuulOperator()
def _get_version(self):
from zuul_operator.version import version_info as version_info
return "Zuul Operator version: %s" % version_info.release_string()
def run(self):
parser = argparse.ArgumentParser(
description='Zuul Operator',
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('--version', dest='version', action='version',
version=self._get_version())
parser.add_argument('-d', dest='debug', action='store_true',
help='enable debug log')
args = parser.parse_args()
# Use kopf's loggers since they carry object data
loggers.configure(debug=False, verbose=args.debug,
quiet=False,
log_format=loggers.LogFormat['FULL'],
log_refkey=None, log_prefix=None)
self.op.run()
def main():
zo = ZuulOperatorCommand()
zo.run()