Reviewed: https://review.opendev.org/c/openstack/glance/+/819399 Committed: https://opendev.org/openstack/glance/commit/4e59a04d27175533d7ae91b9acd23ffe32a5917a Submitter: "Zuul (22348)" Branch: master
commit 4e59a04d27175533d7ae91b9acd23ffe32a5917a Author: Han Guangyu <hanguan...@uniontech.com> Date: Fri Nov 26 14:25:00 2021 +0800 Update exception for property protection file Non existing property protection file raises 500 Internal server error. If admin/operator specifies non existing property protection file in glance-api.conf. For example: [Default] property_protection_file = non_existing_file.yaml property_protection_rule_format = policies Then create or update image. The 500 Internal server error will be raised. But the expected result is 400 Bad Request. Add the except of InavlidPropertyProtectionConfiguration exception, and return 400 Bad Request. The previous code lacks the specific process of PropertyProtectionConfiguration exception, so it returned the common 500 error. Now, it returns 400 Bad Request. Closes-Bug: #1905672 Change-Id: Id77010aac04aa9a4961c5bcafbf12694a0fe17c6 ** Changed in: glance Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to Glance. https://bugs.launchpad.net/bugs/1905672 Title: Non existing property protection file raises 500 Internal server error Status in Glance: Fix Released Bug description: Non existing property protection file raises 500 Internal server error If admin/operator specifies non existing property protection file in glance-api.conf then create/update image call raises 500 Internal server error. Steps to reproduce: 1. Enable property protection in glance-api.conf and provide non existing file [Default] property_protection_file = non_existing_file.yaml property_protection_rule_format = policies 2. Restart glance-api service 3. Create image by specifiying additional property glance image-create-via-import --disk-format qcow2 --container-format bare --name conversion_test --import-method web-download --uri https://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img --property xyz=xyz Expected Result: API should return 400 Bad request Actual result: Returns 500 Internal server error Glance API Logs: Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.property_utils [None req-43d209a4-3143-4855-b843-2137a9cbb22b admin admin] Couldn't find property protection file /etc/glance/property.yaml: 'NoneType' object is not iterable. Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi [None req-43d209a4-3143-4855-b843-2137a9cbb22b admin admin] Caught error: Invalid configuration in property protection file.: glance.common.exception.InvalidPropertyProtectionConfiguration: Invalid configuration in property protection file. Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi Traceback (most recent call last): Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/property_utils.py", line 119, in _load_rules Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi CONFIG.read(conf_file) Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi File "/usr/lib/python3.6/configparser.py", line 694, in read Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi for filename in filenames: Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi TypeError: 'NoneType' object is not iterable Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi During handling of the above exception, another exception occurred: Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi Traceback (most recent call last): Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/wsgi.py", line 1348, in __call__ Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi request, **action_args) Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/wsgi.py", line 1391, in dispatch Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi return method(*args, **kwargs) Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/utils.py", line 416, in wrapped Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi return func(self, req, *args, **kwargs) Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/api/v2/images.py", line 74, in create Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi image_factory = self.gateway.get_image_factory(req.context) Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/gateway.py", line 50, in get_image_factory Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi property_rules = property_utils.PropertyRules(self.policy) Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/property_utils.py", line 114, in __init__ Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi self._load_rules() Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/property_utils.py", line 125, in _load_rules Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi raise InvalidPropProtectConf() Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi glance.common.exception.InvalidPropertyProtectionConfiguration: Invalid configuration in property protection file. Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: ERROR glance.common.wsgi Nov 26 06:49:54 akekane-wallaby-dev glance-api[15444]: INFO eventlet.wsgi.server [None req-43d209a4-3143-4855-b843-2137a9cbb22b admin admin] 10.0.79.216,10.0.79.216 - - [26/Nov/2020 06:49:54] "POST /v2/images HTTP/1.1" 500 454 0.053478 Nov 26 06:50:21 akekane-wallaby-dev glance-api[15444]: DEBUG glance.image_cache.prefetcher [-] Nothing to prefetch. {{(pid=15444) run /opt/stack/glance/glance/image_cache/prefetcher.py:76}} To manage notifications about this bug go to: https://bugs.launchpad.net/glance/+bug/1905672/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp