)]}'
{"cinder/backup/drivers/google.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"8b937f6f1aad2e6b3ac9aadd1805c959fd1d1fdf","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    def get_gcs_proxy_info(self):"},{"line_number":151,"context_line":"        if CONF.backup_gcs_proxy_url:"},{"line_number":152,"context_line":"            return httplib2.proxy_info_from_url(CONF.backup_gcs_proxy_url)"},{"line_number":153,"context_line":"        else:"},{"line_number":154,"context_line":"            return httplib2.proxy_info_from_environment()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def check_gcs_options(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_0f94bc40","line":153,"updated":"2016-07-21 11:13:34.000000000","message":"IMO, we should environment variable should override config","commit_id":"530dbac64f40412bd8d2a226ddd29a6b5b8d30b7"},{"author":{"_account_id":1773,"name":"oliver-leahy-l","email":"oliver.leahy@hpe.com","username":"oliver-leahy-l"},"change_message_id":"e15db244bb4e403c64f2d58e61fd9906f273c869","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    def get_gcs_proxy_info(self):"},{"line_number":151,"context_line":"        if CONF.backup_gcs_proxy_url:"},{"line_number":152,"context_line":"            return httplib2.proxy_info_from_url(CONF.backup_gcs_proxy_url)"},{"line_number":153,"context_line":"        else:"},{"line_number":154,"context_line":"            return httplib2.proxy_info_from_environment()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def check_gcs_options(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_a9a12796","line":153,"in_reply_to":"dada55a8_0f94bc40","updated":"2016-07-21 13:08:19.000000000","message":"I don\u0027t agree. Often the environment variable will be specified system wide, and we will need to override the default for this specific application.","commit_id":"530dbac64f40412bd8d2a226ddd29a6b5b8d30b7"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"b905e725edc9251555574222a82c3447e0991283","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                     \u0027progress notifications to Ceilometer when backing \u0027"},{"line_number":92,"context_line":"                     \u0027up the volume to the GCS backend storage. The \u0027"},{"line_number":93,"context_line":"                     \u0027default value is True to enable the timer.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027backup_gcs_proxy_url\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027URL for http proxy access.\u0027),"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_b06695b8","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":14},"updated":"2016-07-21 20:03:50.000000000","message":"Use URIOpt","commit_id":"03f8395a71c0c8c556b4ad7f8d45ab882278fd7e"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"912d117bae61713a0110f0c07f7510ae6e65f409","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                     \u0027progress notifications to Ceilometer when backing \u0027"},{"line_number":92,"context_line":"                     \u0027up the volume to the GCS backend storage. The \u0027"},{"line_number":93,"context_line":"                     \u0027default value is True to enable the timer.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027backup_gcs_proxy_url\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027URL for http proxy access.\u0027),"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_4b3fa7b3","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":14},"in_reply_to":"dada55a8_4b11685c","updated":"2016-07-21 20:41:05.000000000","message":"I see that it\u0027s an option in oslo.config, but I can\u0027t find any instances of an openstack project using it at first glance","commit_id":"03f8395a71c0c8c556b4ad7f8d45ab882278fd7e"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"fea0455e2b2371cbe70554d58541f536234b0b61","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                     \u0027progress notifications to Ceilometer when backing \u0027"},{"line_number":92,"context_line":"                     \u0027up the volume to the GCS backend storage. The \u0027"},{"line_number":93,"context_line":"                     \u0027default value is True to enable the timer.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027backup_gcs_proxy_url\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027URL for http proxy access.\u0027),"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_4be5e706","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":14},"in_reply_to":"dada55a8_4b3fa7b3","updated":"2016-07-21 20:49:24.000000000","message":"Should work. Verify that in your environment you have oslo.config \u003e\u003d 3.12","commit_id":"03f8395a71c0c8c556b4ad7f8d45ab882278fd7e"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"9ebded2369b451a5e6c0282c31f5b44fd0f1dcf8","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                     \u0027progress notifications to Ceilometer when backing \u0027"},{"line_number":92,"context_line":"                     \u0027up the volume to the GCS backend storage. The \u0027"},{"line_number":93,"context_line":"                     \u0027default value is True to enable the timer.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027backup_gcs_proxy_url\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027URL for http proxy access.\u0027),"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_4b11685c","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":14},"in_reply_to":"dada55a8_b06695b8","updated":"2016-07-21 20:38:47.000000000","message":"When I change this option to URI opt it\u0027s throwing an error - AttributeError: \u0027module\u0027 object has no attribute \u0027URIOpt\u0027 when the tests try to import this class. Is there something else that would need to be changed?","commit_id":"03f8395a71c0c8c556b4ad7f8d45ab882278fd7e"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"b905e725edc9251555574222a82c3447e0991283","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                     \u0027up the volume to the GCS backend storage. The \u0027"},{"line_number":93,"context_line":"                     \u0027default value is True to enable the timer.\u0027),"},{"line_number":94,"context_line":"    cfg.StrOpt(\u0027backup_gcs_proxy_url\u0027,"},{"line_number":95,"context_line":"               default\u003dNone,"},{"line_number":96,"context_line":"               help\u003d\u0027URL for http proxy access.\u0027),"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_f00acdd0","line":95,"updated":"2016-07-21 20:03:50.000000000","message":"This line is redundant since default is always None","commit_id":"03f8395a71c0c8c556b4ad7f8d45ab882278fd7e"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2ad02c82edddf18f11cc67b6a0e72f2d27129069","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                     \u0027up the volume to the GCS backend storage. The \u0027"},{"line_number":93,"context_line":"                     \u0027default value is True to enable the timer.\u0027),"},{"line_number":94,"context_line":"    cfg.URIOpt(\u0027backup_gcs_proxy_url\u0027,"},{"line_number":95,"context_line":"               help\u003d\u0027URL for http proxy access.\u0027),"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_a7690828","line":95,"updated":"2016-08-02 22:04:08.000000000","message":"Is this URI likely to contain a username:password component?\n\nI\u0027m wondering if the option needs to be marked secret here.","commit_id":"39deda50614a8adc6ccc49a72f40daeb2128b932"}],"cinder/tests/unit/backup/drivers/test_backup_google.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"fcae62a2e3a7dbb05777c36a9e318ec100e66701","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    @mock.patch(\u0027httplib2.proxy_info_from_url\u0027)"},{"line_number":209,"context_line":"    def test_backup_proxy_configured(self, mock_proxy_info):"},{"line_number":210,"context_line":"        google_dr.CONF.set_override(\"backup_gcs_proxy_url\","},{"line_number":211,"context_line":"                                    \"http://myproxy.test.com\")"},{"line_number":212,"context_line":"        service \u003d google_dr.GoogleBackupDriver(self.ctxt)"},{"line_number":213,"context_line":"        mock_proxy_info.assert_called_with(\"http://myproxy.test.com\")"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_645c954b","line":211,"updated":"2016-07-12 16:59:52.000000000","message":"Please use example.com, which is a safe reserved name, instead of test.com.  (RFC 2606 for info.)","commit_id":"7b6979df5d35203d02e1ade908527371c7552ebe"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"2f1f74630c2afeb78fae10f698df228e08515d6f","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    @mock.patch(\u0027httplib2.proxy_info_from_url\u0027)"},{"line_number":209,"context_line":"    def test_backup_proxy_configured(self, mock_proxy_info):"},{"line_number":210,"context_line":"        google_dr.CONF.set_override(\"backup_gcs_proxy_url\","},{"line_number":211,"context_line":"                                    \"http://myproxy.test.com\")"},{"line_number":212,"context_line":"        service \u003d google_dr.GoogleBackupDriver(self.ctxt)"},{"line_number":213,"context_line":"        mock_proxy_info.assert_called_with(\"http://myproxy.test.com\")"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_c403c90e","line":211,"in_reply_to":"1aa78d24_645c954b","updated":"2016-07-12 17:00:46.000000000","message":"Done","commit_id":"7b6979df5d35203d02e1ade908527371c7552ebe"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"8b937f6f1aad2e6b3ac9aadd1805c959fd1d1fdf","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        google_dr.CONF.set_override(\"backup_gcs_proxy_url\","},{"line_number":211,"context_line":"                                    \"http://myproxy.example.com\")"},{"line_number":212,"context_line":"        google_dr.GoogleBackupDriver(self.ctxt)"},{"line_number":213,"context_line":"        mock_proxy_info.assert_called_with(\"http://myproxy.example.com\")"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    @gcs_client"},{"line_number":216,"context_line":"    @mock.patch(\u0027cinder.backup.drivers.google.GoogleBackupDriver.\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_4f719443","line":213,"updated":"2016-07-21 11:13:34.000000000","message":"Please, add test to check that we can pass proxy_url from the environment variable","commit_id":"530dbac64f40412bd8d2a226ddd29a6b5b8d30b7"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"92e2db2136ad461d983f150fb9a3398b85943d34","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        google_dr.CONF.set_override(\"backup_gcs_proxy_url\","},{"line_number":211,"context_line":"                                    \"http://myproxy.example.com\")"},{"line_number":212,"context_line":"        google_dr.GoogleBackupDriver(self.ctxt)"},{"line_number":213,"context_line":"        mock_proxy_info.assert_called_with(\"http://myproxy.example.com\")"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    @gcs_client"},{"line_number":216,"context_line":"    @mock.patch(\u0027cinder.backup.drivers.google.GoogleBackupDriver.\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_acfc87b8","line":213,"in_reply_to":"dada55a8_4f719443","updated":"2016-07-21 16:57:53.000000000","message":"Done","commit_id":"530dbac64f40412bd8d2a226ddd29a6b5b8d30b7"}]}
