tobiko/tobiko/openstack/glance/config.py

80 lines
2.6 KiB
Python

# Copyright 2019 Red Hat
#
# 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.
from __future__ import absolute_import
import itertools
from oslo_config import cfg
GROUP_NAME = 'glance'
OPTIONS = [
cfg.StrOpt('image_dir',
default='~/.tobiko/cache/glance/images',
help=("Default directory where to look for image "
"files")),
]
GLANCE_IMAGE_NAMES = ['centos',
'centos7',
'cirros',
'fedora',
'rhel',
'ubuntu']
def register_tobiko_options(conf):
conf.register_opts(group=cfg.OptGroup(GROUP_NAME), opts=OPTIONS)
for image_options in get_images_options():
conf.register_opts(group=image_options[0], opts=image_options[1])
def get_images_options():
options = []
for name in GLANCE_IMAGE_NAMES:
group_name = name.lower()
options += [(
group_name,
[cfg.StrOpt('image_name',
help="Default " + name + " image name"),
cfg.StrOpt('image_url',
help="Default " + name + " image URL"),
cfg.StrOpt('image_file',
help="Default " + name + " image filename"),
cfg.StrOpt('container_format',
help="Default " + name + " container format"),
cfg.StrOpt('disk_format',
help="Default " + name + " disk format"),
cfg.StrOpt('username',
help="Default " + name + " username"),
cfg.StrOpt('password',
help="Default " + name + " password"),
cfg.FloatOpt('connection_timeout',
default=None,
help=("Default " + name +
" SSH connection timeout (seconds)")), ]
)]
return options
def list_options():
options = [(GROUP_NAME, itertools.chain(OPTIONS))]
for image_options in get_images_options():
options += [
(image_options[0], itertools.chain(image_options[1]))]
return options