Files
deb-python-fuelclient/fuelclient/main.py
Vladimir Sharshov (warpc) 6deb1c7daf Fuel version as full action instead of option
Implementation for both cases:

- as action for fuel v1;
- as command for fuel v2.

Add deprecation message for --fuel-version
in 7.0 release.

Also solved several problems:

- support custom credential;
- support interective mode;
- support unified scheme of api queries.

Change-Id: I915d3b5ff265883883fbf92786c3cbc860ec4128
Closes-Bug: #1474767
Closes-Bug: #1399608
DocImpact
2015-07-22 18:28:06 +03:00

78 lines
2.9 KiB
Python

# Copyright 2015 Mirantis, Inc.
#
# 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 logging
import sys
from cliff import app
from cliff.commandmanager import CommandManager
from fuelclient.actions import fuel_version
from fuelclient.cli.error import exceptions_decorator
LOG = logging.getLogger(__name__)
class FuelClient(app.App):
"""Main cliff application class.
Performs initialization of the command manager and
configuration of basic engines.
"""
def build_option_parser(self, description, version, argparse_kwargs=None):
"""Overrides default options for backwards compatibility."""
p_inst = super(FuelClient, self)
parser = p_inst.build_option_parser(description=description,
version=version,
argparse_kwargs=argparse_kwargs)
parser.add_argument(
'--fuel-version',
action=fuel_version.FuelVersionAction,
help=("show Fuel server's version number and exit. "
"WARNING: deprecated since 7.0 release. "
"Please use fuel-version command instead"))
return parser
def configure_logging(self):
super(FuelClient, self).configure_logging()
# there is issue with management url processing by keystone client
# code in our workflow, so we have to mute appropriate keystone
# loggers in order to get rid from unprocessable errors
logging.getLogger('keystoneclient.httpclient').setLevel(logging.ERROR)
# increase level of loggin for urllib3 to avoid of displaying
# of useless messages. List of logger names is needed for
# consistency on different execution environments that could have
# installed requests packages (which is used urllib3) of different
# versions in turn
for logger_name in ('requests.packages.urllib3.connectionpool',
'urllib3.connectionpool'):
logging.getLogger(logger_name).setLevel(logging.WARNING)
@exceptions_decorator
def main(argv=sys.argv[1:]):
fuelclient_app = FuelClient(
description='Command line interface and Python API wrapper for Fuel.',
version='7.0.0',
command_manager=CommandManager('fuelclient', convert_underscores=True)
)
return fuelclient_app.run(argv)