The switch from gflags broke multistring parsing. There are two issues:
a) default values are not overridden
b) any value specified in a flagfile is appended multiple times (it appears to be each time the flags are reparsed)
for example, specifying --osapi_extension=extensions.admin.Admin leads to:
2011-11-14 23:45:12,183 DEBUG nova [-] osapi_extension : ['nova.api.openstack.contrib.standard_extensions', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admi
n.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extension
s.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'ext
ensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin'
, 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.
Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.
admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'exten
sions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin',
'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Ad
min', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.ad
min.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensi
ons.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'e
xtensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admi
n', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admi
n.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin', 'extension
s.admin.Admin', 'extensions.admin.Admin', 'extensions.admin.Admin'] from (pid=11909) wait /opt/stack/nova/nova/service.py:383
expected output:
2011-11-14 23:45:12,183 DEBUG nova [-] osapi_extension : ['extensions.admin.Admin'] from (pid=11909) wait /opt/stack/nova/nova/service.py:383
(i.e. you should have to reiterate the default value for it to load)
Proposed fixes:
https:/ /review. openstack. org/#change, 1605 /review. openstack. org/#change, 1606
https:/