Dynamically Pull Out Option Sections
Previously in the generation of the opts.py file, the option groups were hard coded. Now, they are pulled out as the lines are parsed. If a group doesn't already exist in the dictionary it gets added and then the options are added to the section. If the group already exists, the options are added to the proper section as you would expect, and if the options being registered don't have a group, they are added to the default section. This patch also moves the check for a non-zero exit code from oslo-config-generator to the right location in the file. This logic had been put too late in the file and was not catching oslo-config-generator failures as it should have been. Change-Id: I59c8067e8091d8bb212e3609f3a174ddc287707e
This commit is contained in:
parent
03363ae6dd
commit
63600a34fb
@ -114,13 +114,7 @@ if __name__ == "__main__":
|
||||
|
||||
flag = False
|
||||
|
||||
registered_opts_dict = {'fc-zone-manager': [],
|
||||
'keymgr': [],
|
||||
'BRCD_FABRIC_EXAMPLE': [],
|
||||
'CISCO_FABRIC_EXAMPLE': [],
|
||||
'profiler': [],
|
||||
'backend': [],
|
||||
'DEFAULT': [], }
|
||||
registered_opts_dict = {'DEFAULT': [], }
|
||||
|
||||
def _write_item(opts):
|
||||
list_name = opts[-3:]
|
||||
@ -177,113 +171,36 @@ if __name__ == "__main__":
|
||||
if (exists != -1) or (key == 'cinder_volume_configuration'):
|
||||
continue
|
||||
|
||||
if aline.find("fc-zone-manager") != -1:
|
||||
fc_zm_list = _retrieve_name(aline)
|
||||
replace_string = ", group='fc-zone-manager')"
|
||||
fc_zm_list = fc_zm_list.replace(replace_string, '')
|
||||
fc_zm_list = fc_zm_list.strip()
|
||||
line = key + "." + fc_zm_list
|
||||
registered_opts_dict['fc-zone-manager'].append(line)
|
||||
elif aline.find("keymgr") != -1:
|
||||
keymgr_list = _retrieve_name(aline)
|
||||
keymgr_list = keymgr_list.replace(", group='keymgr')", '')
|
||||
keymgr_list = keymgr_list.strip()
|
||||
line = key + "." + keymgr_list
|
||||
registered_opts_dict['keymgr'].append(line)
|
||||
elif aline.find("BRCD_FABRIC_EXAMPLE") != -1:
|
||||
brcd_list = _retrieve_name(aline)
|
||||
replace_string = ", group='BRCD_FABRIC_EXAMPLE')"
|
||||
brcd_list = brcd_list.replace(replace_string, '')
|
||||
brcd_list = brcd_list.strip()
|
||||
line = key + "." + brcd_list
|
||||
registered_opts_dict['BRCD_FABRIC_EXAMPLE'].append(line)
|
||||
elif aline.find("CISCO_FABRIC_EXAMPLE") != -1:
|
||||
cisco_list = _retrieve_name(aline)
|
||||
replace_string = ", group='CISCO_FABRIC_EXAMPLE')"
|
||||
cisco_list = cisco_list.replace(replace_string, '')
|
||||
cisco_list = cisco_list.strip()
|
||||
line = key + "." + cisco_list
|
||||
registered_opts_dict['CISCO_FABRIC_EXAMPLE'].append(line)
|
||||
elif aline.find("profiler") != -1:
|
||||
profiler_list = _retrieve_name(aline)
|
||||
replace_string = ', group="profiler")'
|
||||
profiler_list = profiler_list.replace(replace_string, '')
|
||||
profiler_list = profiler_list.strip()
|
||||
line = key + "." + profiler_list
|
||||
registered_opts_dict['profiler'].append(line)
|
||||
elif aline.find("backend") != -1:
|
||||
backend_list = _retrieve_name(aline)
|
||||
replace_string = ', group=backend)'
|
||||
backend_list = backend_list.replace(replace_string, '')
|
||||
backend_list = backend_list.strip()
|
||||
line = key + "." + backend_list
|
||||
registered_opts_dict['backend'].append(line)
|
||||
group_exists = aline.find(', group=')
|
||||
formatted_opt = _retrieve_name(aline[: group_exists])
|
||||
formatted_opt = formatted_opt.replace(')', '').strip()
|
||||
if group_exists != -1:
|
||||
group_name = aline[group_exists:-1].replace(', group=\"\'', '').\
|
||||
replace(', group=', '').strip("\'\")").upper()
|
||||
if group_name in registered_opts_dict:
|
||||
line = key + "." + formatted_opt
|
||||
registered_opts_dict[group_name].append(line)
|
||||
else:
|
||||
default_list = _retrieve_name(aline)
|
||||
default_list = default_list.replace(')', '').strip()
|
||||
line = key + "." + default_list
|
||||
line = key + "." + formatted_opt
|
||||
registered_opts_dict[group_name] = [line]
|
||||
else:
|
||||
line = key + "." + formatted_opt
|
||||
registered_opts_dict['DEFAULT'].append(line)
|
||||
opt_dict[key] = registered_opts_dict
|
||||
|
||||
list_str = ("\n\n"
|
||||
setup_str = ("\n\n"
|
||||
"def list_opts():\n"
|
||||
" return [\n"
|
||||
" ('DEFAULT',\n"
|
||||
" return [\n")
|
||||
opt_file.write(setup_str)
|
||||
|
||||
for key in registered_opts_dict:
|
||||
section_start_str = (" ('" + key + "',\n"
|
||||
" itertools.chain(\n")
|
||||
opt_file.write(list_str)
|
||||
|
||||
for item in registered_opts_dict["DEFAULT"]:
|
||||
opt_file.write(section_start_str)
|
||||
for item in registered_opts_dict[key]:
|
||||
_write_item(item)
|
||||
section_end_str = " )),\n"
|
||||
opt_file.write(section_end_str)
|
||||
|
||||
profiler_str = (" )),\n"
|
||||
" ('profiler',\n"
|
||||
" itertools.chain(\n")
|
||||
opt_file.write(profiler_str)
|
||||
|
||||
for item in registered_opts_dict["profiler"]:
|
||||
_write_item(item)
|
||||
|
||||
backend_str = (" )),\n"
|
||||
" ('backend',\n"
|
||||
" itertools.chain(\n")
|
||||
opt_file.write(backend_str)
|
||||
|
||||
for item in registered_opts_dict["backend"]:
|
||||
_write_item(item)
|
||||
|
||||
cisco_str = (" )),\n"
|
||||
" ('CISCO_FABRIC_EXAMPLE',\n"
|
||||
" itertools.chain(\n")
|
||||
opt_file.write(cisco_str)
|
||||
|
||||
for item in registered_opts_dict["CISCO_FABRIC_EXAMPLE"]:
|
||||
_write_item(item)
|
||||
|
||||
brcd_str = (" )),\n"
|
||||
" ('BRCD_FABRIC_EXAMPLE',\n"
|
||||
" itertools.chain(\n")
|
||||
opt_file.write(brcd_str)
|
||||
|
||||
for item in registered_opts_dict["BRCD_FABRIC_EXAMPLE"]:
|
||||
_write_item(item)
|
||||
|
||||
keymgr_str = (" )),\n"
|
||||
" ('keymgr',\n"
|
||||
" itertools.chain(\n")
|
||||
opt_file.write(keymgr_str)
|
||||
|
||||
for item in registered_opts_dict["keymgr"]:
|
||||
_write_item(item)
|
||||
|
||||
fczm_str = (" )),\n"
|
||||
" ('fc-zone-manager',\n"
|
||||
" itertools.chain(\n")
|
||||
opt_file.write(fczm_str)
|
||||
|
||||
for item in registered_opts_dict["fc-zone-manager"]:
|
||||
_write_item(item)
|
||||
|
||||
closing_str = (" )),\n"
|
||||
" ]\n")
|
||||
closing_str = (" ]\n")
|
||||
opt_file.write(closing_str)
|
||||
opt_file.close()
|
||||
|
@ -169,6 +169,18 @@ from cinder.zonemanager import fc_zone_manager as \
|
||||
|
||||
def list_opts():
|
||||
return [
|
||||
('FC-ZONE-MANAGER',
|
||||
itertools.chain(
|
||||
cinder_zonemanager_fczonemanager.zone_manager_opts,
|
||||
cinder_zonemanager_drivers_brocade_brcdfczonedriver.brcd_opts,
|
||||
cinder_zonemanager_drivers_cisco_ciscofczonedriver.cisco_opts,
|
||||
)),
|
||||
('KEYMGR',
|
||||
itertools.chain(
|
||||
cinder_keymgr_keymgr.encryption_opts,
|
||||
cinder.keymgr.keymgr_opts,
|
||||
cinder_keymgr_confkeymgr.key_mgr_opts,
|
||||
)),
|
||||
('DEFAULT',
|
||||
itertools.chain(
|
||||
cinder_backup_driver.service_opts,
|
||||
@ -305,15 +317,10 @@ def list_opts():
|
||||
cinder_volume_drivers_vzstorage.vzstorage_opts,
|
||||
cinder_volume_drivers_nfs.nfs_opts,
|
||||
)),
|
||||
('profiler',
|
||||
('PROFILER',
|
||||
itertools.chain(
|
||||
cinder_service.profiler_opts,
|
||||
)),
|
||||
('backend',
|
||||
itertools.chain(
|
||||
[cinder_cmd_volume.host_opt],
|
||||
[cinder_cmd_all.volume_cmd.host_opt],
|
||||
)),
|
||||
('CISCO_FABRIC_EXAMPLE',
|
||||
itertools.chain(
|
||||
cinder_zonemanager_drivers_cisco_ciscofabricopts.
|
||||
@ -324,16 +331,9 @@ def list_opts():
|
||||
cinder_zonemanager_drivers_brocade_brcdfabricopts.
|
||||
brcd_zone_opts,
|
||||
)),
|
||||
('keymgr',
|
||||
('BACKEND',
|
||||
itertools.chain(
|
||||
cinder_keymgr_keymgr.encryption_opts,
|
||||
cinder.keymgr.keymgr_opts,
|
||||
cinder_keymgr_confkeymgr.key_mgr_opts,
|
||||
)),
|
||||
('fc-zone-manager',
|
||||
itertools.chain(
|
||||
cinder_zonemanager_fczonemanager.zone_manager_opts,
|
||||
cinder_zonemanager_drivers_brocade_brcdfczonedriver.brcd_opts,
|
||||
cinder_zonemanager_drivers_cisco_ciscofczonedriver.cisco_opts,
|
||||
[cinder_cmd_volume.host_opt],
|
||||
[cinder_cmd_all.volume_cmd.host_opt],
|
||||
)),
|
||||
]
|
||||
|
@ -76,20 +76,23 @@ fi
|
||||
if [ $NOSAMPLE -eq 0 ] ; then
|
||||
oslo-config-generator --config-file=cinder/config/cinder-config-generator.conf
|
||||
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo -en "\n\n#################################################"
|
||||
echo -en "\nERROR: Non-zero exit from oslo-config-generator."
|
||||
echo -en "\n See output above for details.\n"
|
||||
echo -en "#################################################\n"
|
||||
mv $TARGETDIR/opts.py.bak $TARGETDIR/opts.py
|
||||
exit 1
|
||||
fi
|
||||
|
||||
diff $TARGETDIR/opts.py $TARGETDIR/opts.py.bak &> /dev/null
|
||||
|
||||
if [ $? -ne 0 ] ; then
|
||||
mv $TARGETDIR/opts.py.bak $TARGETDIR/opts.py
|
||||
else
|
||||
rm -f $TARGETDIR/opts.py.bak
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo -en "\n\n#################################################"
|
||||
echo -en "\nERROR: Non-zero exit from oslo-config-generator."
|
||||
echo -en "\n See output above for details.\n"
|
||||
echo -en "#################################################\n"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -s ./etc/cinder/cinder.conf.sample ] ; then
|
||||
echo -en "\n\n#########################################################"
|
||||
echo -en "\nERROR: etc/cinder/cinder.sample.conf not created properly."
|
||||
|
Loading…
Reference in New Issue
Block a user