Add log translation hints for Heat¶
https://blueprints.launchpad.net/Heat/+spec/log-translation-hints
To update Heat log messages to take advantage of oslo’s new feature of supporting translating log messages using different translation domains.
Problem description¶
Current oslo libraries support translating log messages using different translation domains and oslo would like to see hints in all of our code by the end of juno. So Heat should handle the changes out over the release.
Proposed change¶
Since there are too many files need to change, so divide this bp into dozens of patches according to Heat directories(which need applying this change).
For each directory’s files, we change all the log messages as follows.
Change “LOG.error(_(” to “LOG.error(_LE”.
Change “LOG.warn(_(” to “LOG.warn(_LW(“.
Change “LOG.info(_(” to “LOG.info(_LI(“.
Change “LOG.critical(_(” to “LOG.critical(_LC(“.
Note that this spec and associated blueprint are not to address the problem of removing translation of debug messages.
Alternatives¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
liusheng<liusheng@huawei.com>
Milestones¶
- Target Milestone for completion:
Juno-3
Work Items¶
For each directory’s files, we change all the log messages as follows.
Change “LOG.error(_(” to “LOG.error(_LE”.
Change “LOG.warn(_(” to “LOG.warn(_LW(“.
Change “LOG.info(_(” to “LOG.info(_LI(“.
Change “LOG.critical(_(” to “LOG.critical(_LC(“.
We handle these changes in the following order:
├── contrib #TODO1
├── heat
│ ├── api #TODO2
│ ├── cloudinit #TODO3
│ ├── cmd
│ ├── common #TODO4
│ ├── db #TODO5
│ ├── doc
│ ├── engine #TODO6
│ ├── locale
│ ├── openstack #TODO7
│ ├── rpc #TODO8
│ ├── scaling #TODO9
│ ├── tests #TODO10
Add a HACKING check rule to ensure that log messages to relative domain. Using regular expression to check whether log messages with relative _L* function.
log_translation_domain_info =re.compile(
r"(.)*LOG\.info\(\s*_LI\(('|\")")
log_translation_domain_warning = re.compile(
r"(.)*LOG\.(warn|warning)\(\s*_LW\(('|\")")
log_translation_domain_error = re.compile(
r"(.)*LOG\.error\(\s*_LE\(('|\")")
log_translation_domain_critical = re.compile(
r"(.)*LOG\.critical\(\s*_LC\(('|\")")
Dependencies¶
[1]https://blueprints.launchpad.net/oslo/+spec/log-messages-translation-domain-rollout
[2]https://wiki.openstack.org/wiki/LoggingStandards