In bootstrap mode /usr/bin/provision depends on locale
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fuel for OpenStack |
Fix Released
|
High
|
Kamil Sambor |
Bug Description
{
"build_id": "2014-12-
"ostf_sha": "a9afb68710d809
"build_number": "58",
"auth_
"api": "1.0",
"nailgun_sha": "5f91157daa6798
"production": "docker",
"fuelmain_sha": "81d38d6f2903b5
"astute_sha": "16b252d93be6aa
"feature_
"mirantis",
],
"release": "6.0",
"release_
],
}
}
},
"fuellib_sha": "fde8ba5e11a1ac
}
/usr/bin/provision failed because of locale en_US.UTF-8
2015-04-03 14:06:41.678 11311 DEBUG fuel_agent.
2015-04-03 14:06:41.686 11311 CRITICAL fuel-agent [-] ValueError: invalid literal for float(): 51200,00
2015-04-03 14:06:41.686 11311 TRACE fuel-agent Traceback (most recent call last):
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/bin/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent sys.exit(
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/lib/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent main(['
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/lib/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent getattr(mgr, action)()
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/lib/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent self.do_
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/lib/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent lu.lvremove_all()
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/lib/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent for lv in lvdisplay():
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/lib/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent return lvdisplay_
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/lib/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent 'size': utils.parse_
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/lib/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent flt = locale.
2015-04-03 14:06:41.686 11311 TRACE fuel-agent File "/usr/lib64/
2015-04-03 14:06:41.686 11311 TRACE fuel-agent return func(string)
2015-04-03 14:06:41.686 11311 TRACE fuel-agent ValueError: invalid literal for float(): 51200,00
2015-04-03 14:06:41.686 11311 TRACE fuel-agent
lvdisplay use commas instead of dots in locale en_US.UTF-8
[root@bootstrap ~]# lvdisplay -C --noheading --units m --options lv_name,
root;
swap;
root@bootstrap ~]# export LC_ALL=C
[root@bootstrap ~]# lvdisplay -C --noheading --units m --options lv_name,
root;
swap;
Changed in fuel: | |
importance: | Undecided → High |
assignee: | nobody → Fuel provisioning team (fuel-provisioning) |
Changed in fuel: | |
status: | New → Confirmed |
milestone: | none → 6.1 |
tags: | added: feature-image-based |
Changed in fuel: | |
milestone: | 6.1 → 7.0 |
milestone: | 7.0 → 6.1 |
assignee: | Fuel provisioning team (fuel-provisioning) → Vladimir Kozhukalov (kozhukalov) |
Changed in fuel: | |
assignee: | Vladimir Kozhukalov (kozhukalov) → Kamil Sambor (ksambor) |
Changed in fuel: | |
status: | Confirmed → In Progress |
I'd rather add something like
os.environ[ 'LC_ALL' ] = os.environ['LANG'] = os.environ[ 'LANGUAGE' ] = 'C'
right into utils.execute()
The reason is simple, there are few places where fuel-agent hardly relies on stdout/stderr messages and expects specific strings in those messages.
Bug is not only about fractial delimiter, but about locale.
Log messages could be localized, but the output of cli utils which fuel-agent executes shouldn't be localized at all.
So I think there's no reason to enforce locale enviroment variables for the whole fuel-agent execution at astute side.