)]}'
{"id":"openstack%2Fpython-swiftclient~20029","triplet_id":"openstack%2Fpython-swiftclient~master~I1260055f9c2e83cdabfeb51aed11b3899bed4d55","project":"openstack/python-swiftclient","branch":"master","topic":"bp/ssl-compression","hashtags":[],"change_id":"I1260055f9c2e83cdabfeb51aed11b3899bed4d55","subject":"Add option to disable SSL compression","status":"MERGED","created":"2013-01-18 15:14:42.000000000","updated":"2013-06-11 17:51:31.000000000","submitted":"2013-06-11 17:51:30.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":6,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"84213926fae2fb5eb0cdd971bd3e4087f18ca4a3","_number":20029,"virtual_id_number":20029,"owner":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},{"value":0,"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":0,"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},{"value":0,"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},{"value":0,"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},{"value":0,"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"value":0,"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},{"value":2,"date":"2013-06-11 17:51:30.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"all":[{"value":2,"date":"2013-06-11 16:55:28.000000000","_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},{"value":0,"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":2,"date":"2013-06-04 19:41:12.000000000","_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},{"value":0,"date":"2013-06-04 21:08:04.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},{"value":0,"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},{"value":0,"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"value":0,"date":"2013-06-11 17:50:26.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"all":[{"value":1,"date":"2013-06-11 16:55:53.000000000","_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},{"value":0,"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":0,"date":"2013-06-04 19:41:12.000000000","_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},{"value":0,"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},{"value":0,"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},{"value":0,"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"value":0,"date":"2013-06-11 17:50:26.000000000","_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2013-05-17 14:55:22.000000000","updated_by":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"reviewer":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"state":"REVIEWER"},{"updated":"2013-05-17 15:19:59.000000000","updated_by":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"reviewer":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"state":"REVIEWER"},{"updated":"2013-05-29 18:11:44.000000000","updated_by":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"reviewer":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"state":"REVIEWER"},{"updated":"2013-06-04 19:41:12.000000000","updated_by":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"reviewer":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"state":"REVIEWER"},{"updated":"2013-06-11 16:55:53.000000000","updated_by":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"reviewer":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"state":"REVIEWER"},{"updated":"2013-06-11 17:50:26.000000000","updated_by":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"reviewer":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"state":"REVIEWER"},{"updated":"2013-06-11 17:51:30.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"3a4d13908faa7c1e97faaac4a2a475fc915e40f7","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-01-24 13:00:11.000000000","message":"Patch Set 1:\n\nrecheck","accounts_in_message":[],"_revision_number":1},{"id":"2241462015be362c9ecaf77e15e7303e2cfc24f7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-01-24 13:02:10.000000000","message":"Patch Set 1: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/20029/1/check/gate-python-swiftclient-docs/130 : SUCCESS\n- http://logs.openstack.org/20029/1/check/gate-python-swiftclient-pep8/179 : SUCCESS\n- http://logs.openstack.org/20029/1/check/gate-python-swiftclient-python26/178 : SUCCESS\n- http://logs.openstack.org/20029/1/check/gate-python-swiftclient-python27/178 : SUCCESS\n","accounts_in_message":[],"_revision_number":1},{"id":"6d67d1a97d79360fef2dec3083d3b0e2737d6766","author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"date":"2013-02-02 07:56:46.000000000","message":"Patch Set 1: I would prefer that you didn\u0027t merge this\n\nI like this feature but I am not sure we want to depend python-swiftclient on pyopenssl which is a platform dependent library (i.e: you need to compile it to use it) and may make the installation much harder on some platform (i.e: non linux).","accounts_in_message":[],"_revision_number":1},{"id":"e681f0d3879626bfe94911d670963624a749e007","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2013-02-10 06:03:03.000000000","message":"Patch Set 1:\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":1},{"id":"157ff6c4bc257bef3ebb0489820497f78704760a","author":{"_account_id":9,"name":"LaunchpadSync","username":"launchpadsync"},"date":"2013-02-10 06:03:03.000000000","message":"Patch Set 1: Abandoned\n\ncode review expired after 1 week of no activity after a negative review, it can be restored using the `Restore Change` button under the Patch Set on the web interface","accounts_in_message":[],"_revision_number":1},{"id":"675e5b9d394645e9eddc207d4a34683856acfbab","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-17 13:41:16.000000000","message":"Patch Set 1: Restored\n\nRestoring -- new patch set coming.","accounts_in_message":[],"_revision_number":1},{"id":"c4ba5e5a10be34fab4e617c4cfde089efc3acaea","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-17 13:41:29.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"9cbfebdf25d833f9d6f40cab94550948d862044e","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-05-17 13:42:30.000000000","message":"Patch Set 2: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGithub#Test_Failures\n\n- http://logs.openstack.org/20029/2/check/gate-python-swiftclient-pep8/281 : FAILURE in 33s\n- http://docs-draft.openstack.org/20029/2/check/gate-python-swiftclient-docs/231/doc/build/html/ : SUCCESS in 41s\n- http://logs.openstack.org/20029/2/check/gate-python-swiftclient-python26/279 : SUCCESS in 46s\n- http://logs.openstack.org/20029/2/check/gate-python-swiftclient-python27/279 : SUCCESS in 37s\n","accounts_in_message":[],"_revision_number":2},{"id":"8389f10b46201814f1301acef58061d278152511","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-17 13:43:51.000000000","message":"Patch Set 2:\n\nThis no longer requires python-openssl to be installed. If it is installed the \u0027do not compress\u0027 functionality will opportunistically be enabled.\n\nHere is an example performance difference (using HP\u0027s public cloud) of a 400 Meg download:\n\n$ swift --os-auth-url\u003dhttps://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0 --no-ssl-compression download tmp dd.out -o /dev/null\ndd.out [headers 0.195s, total 4.026s, 104.183s MB/s]\n\n$ swift --os-auth-url\u003dhttps://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0 download tmp dd.out -o /dev/null\ndd.out [headers 0.236s, total 23.577s, 17.790s MB/s]","accounts_in_message":[],"_revision_number":2},{"id":"6a883b7429231598a964ed2389acf91840ff5972","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-17 14:00:07.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"7692029070cdaf48b47f74407a367abde5d2c7bc","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-05-17 14:00:57.000000000","message":"Patch Set 3: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/20029/3/check/gate-python-swiftclient-pep8/282 : SUCCESS in 33s\n- http://docs-draft.openstack.org/20029/3/check/gate-python-swiftclient-docs/232/doc/build/html/ : SUCCESS in 35s\n- http://logs.openstack.org/20029/3/check/gate-python-swiftclient-python26/280 : SUCCESS in 39s\n- http://logs.openstack.org/20029/3/check/gate-python-swiftclient-python27/280 : SUCCESS in 35s\n","accounts_in_message":[],"_revision_number":3},{"id":"8f7d2dd5d59ff3087bb8249b63dd533e13693ae9","author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"date":"2013-05-17 15:19:59.000000000","message":"Patch Set 3: Looks good to me, but someone else must approve\n\n(1 inline comment)\n\nReally clean code, Stuart, and much needed improvements for Glance -\u003e Swift + SSL environments.\n\nOne small question inline that I was curious about.","accounts_in_message":[],"_revision_number":3},{"id":"d2f6d3695228deb8973d55e2014474823baa9a7d","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-17 15:28:50.000000000","message":"Patch Set 3: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":3},{"id":"f5f28930175d494a522805cdba48bb92af768056","author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"date":"2013-05-17 15:30:46.000000000","message":"Patch Set 3:\n\nAh, gotcha, thx for the clarification.","accounts_in_message":[],"_revision_number":3},{"id":"fd9e88ef1ef4a9c68b1b5a180ee16acd549b85dd","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-17 15:32:26.000000000","message":"Patch Set 3:\n\nnp, many thanks for reviewing.","accounts_in_message":[],"_revision_number":3},{"id":"f091b709460710c0736cbd5e51d64a8ecbf0e5f8","author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"date":"2013-05-17 22:40:17.000000000","message":"Patch Set 3: (4 inline comments)\n\nLooks good!  A few nitpicks inline.\n\nI still need to functionally test it, but thanks for making the OpenSSL dependency optional.","accounts_in_message":[],"_revision_number":3},{"id":"f31b95b93dee230a6ce417ede11cb4c6127756f6","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-20 14:08:52.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"0609040dc688db1ba1e7accb8aec152053458d1e","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-05-20 14:09:54.000000000","message":"Patch Set 4: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/20029/4/check/gate-python-swiftclient-pep8/283 : SUCCESS in 39s\n- http://docs-draft.openstack.org/20029/4/check/gate-python-swiftclient-docs/233/doc/build/html/ : SUCCESS in 45s\n- http://logs.openstack.org/20029/4/check/gate-python-swiftclient-python26/281 : SUCCESS in 51s\n- http://logs.openstack.org/20029/4/check/gate-python-swiftclient-python27/281 : SUCCESS in 43s\n","accounts_in_message":[],"_revision_number":4},{"id":"88335ca316a039bb5faf4d4ee37c1b0dd254e72b","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-20 14:13:24.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"1fe8e504e8bdb650fde4eebbaeae2418193dc5f7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-05-20 14:14:23.000000000","message":"Patch Set 5: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/20029/5/check/gate-python-swiftclient-pep8/284 : SUCCESS in 32s\n- http://docs-draft.openstack.org/20029/5/check/gate-python-swiftclient-docs/234/doc/build/html/ : SUCCESS in 36s\n- http://logs.openstack.org/20029/5/check/gate-python-swiftclient-python26/282 : SUCCESS in 39s\n- http://logs.openstack.org/20029/5/check/gate-python-swiftclient-python27/282 : SUCCESS in 33s\n","accounts_in_message":[],"_revision_number":5},{"id":"4aa1b15ff4cdaaf9462178ed3bc1f4e2ce7561cf","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-20 14:15:39.000000000","message":"Patch Set 5:\n\nDarrell,\n\nThanks for your comments -- all addressed in latest patch set.","accounts_in_message":[],"_revision_number":5},{"id":"235119573ee7c90d27a45cff970957e006639afd","author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"date":"2013-05-21 19:12:54.000000000","message":"Patch Set 5:\n\nIn my testing, I\u0027m not seeing much difference in CPU time or transmitted-bytes-to-SSL-terminating-proxy.  Should I use larger files?  Could my pound be configured to not perform TLS compression (I don\u0027t see anything in the config file that looks relevant).\n\nMy setup is this patch python-swiftclient \"swift\" tool on my Mac with two all-in-one proxy nodes in two VMs on my mac, with a LVS-load-balanced VIP for the two-node cluster.  LVS just load-balances TCP port 443 and a pound instance on each node terminates SSL and reverse proxies to a local proxy-server process bound to 127.0.0.1:8080.\n\nTo track bytes to/from pound, I ran\n\n  run_on_nodes \u0027sudo tcpdump -i eth1 port 443 -s 0 -w /tmp/pound_traffic.dmp\u0027\n\nOn both nodes, and then counted total packet payload bytes with this\n\n  run_on_nodes \u0027sudo tcpdump -r /tmp/pound_traffic.dmp\u0027 | perl -ne \u0027$c +\u003d $1 if /, length (\\d+)/; END { print \"total bytes: $c\\n\" }\u0027\n\n  $ ls -l\n  -rw-r--r--   1 darrell  staff  20971520 May 21 11:33 random1\n  ...\n  -rw-r--r--   1 darrell  staff  20971520 Apr 30 12:12 zeroes1\n  ...\n\nI confirmed that the contents of zeroes{1,2,3,4} were null bytes and random{1,2,3,4} were random bytes.\n\n  3 Runs of uploading 4 20MB /dev/urandom files without no-ssl-compression flag (with compression):\n  total bytes (seen by pound on both proxies on port 443): 181154368\n        6.29 real         1.11 user         0.20 sys\n        5.80 real         1.11 user         0.18 sys\n        6.28 real         1.13 user         0.19 sys\n\n  3 Runs of uploading 4 20 MB /dev/urandom files WITH no-ssl-compression flag (without compression):\n  total bytes (seen by pound on both proxies on port 443): 195286257  (is indeed larger w/o compression)\n        6.50 real         1.11 user         0.19 sys\n        7.59 real         1.13 user         0.21 sys\n        7.47 real         1.15 user         0.18 sys\n\n\n\n  3 Runs of uploading 4 20MB /dev/zero files without no-ssl-compression flag (with compression):\n  total bytes (seen by pound on both proxies on port 443): 206851653\n  CPU times for 3 runs:\n        7.93 real         1.15 user         0.23 sys\n        6.87 real         1.14 user         0.21 sys\n        6.96 real         1.17 user         0.24 sys\n\n 3 Runs of uploading 4 20 MB /dev/urandom files WITH no-ssl-compression flag (no compression):\n total bytes (seen by pound on both proxies on port 443): 225431362  (larger w/o compression, but not by expected margin?)\n CPU times for 3 runs:\n        6.06 real         1.11 user         0.20 sys\n        8.30 real         1.19 user         0.25 sys\n        6.84 real         1.17 user         0.20 sys","accounts_in_message":[],"_revision_number":5},{"id":"d365963a8f1fb3970553fa32436244089b4b6901","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-22 09:31:30.000000000","message":"Patch Set 5:\n\nHi Darrell,\n\nSo, like you, I think this is probably the server not supporting compression. We can\nverify by watching the compression part of the ssl handshake.\n\nThe following is what I\u0027ve been doing to monitor what\u0027s been happening w.r.t compression during the client/server ssl handshake. It should tell us if the client no longer advertises compression when the --no-ssl-compression flag is used.\n\nI use \u0027tshark\u0027 to monitor the port in question, so for example:\n\nIn one terminal start tshark:\n\n$ tshark -i eth0 -R \"ssl\" -d tcp.port\u003d\u003d443,ssl -V \u003e /tmp/out.with.comp.txt\n\nIn another terminal do a swift stat (you don\u0027t need a hp cloud account for this -- the swift command will return an error because you didn\u0027t authenticate, but that happens after the ssl handshake so its ok for our purposes):\n\n $ swift --os-auth-token XXX --os-storage-url https://region-b.geo-1.objects.hpcloudsvc.com:443 stat\n\nNow vi or grep the tshark output to see what happened w.r.t compression.\n\n $ grep -i compr /tmp/out.with.comp.txt\n            Compression Methods Length: 2\n            Compression Methods (2 methods)\n                Compression Method: DEFLATE (1) \u003c\u003c\u003c client is telling server it supports compresssion\n                Compression Method: null (0)\n                    EC point format: uncompressed (0)\n                    EC point format: ansiX962_compressed_prime (1)\n                    EC point format: ansiX962_compressed_char2 (2)\n            Compression Method: DEFLATE (1) \u003c\u003c\u003c client/server agree to use compression (DEFLATE is the same algorithm used by gzip)\n\nIf your client isn\u0027t using compression (perhaps due to a system wide setting) you will see that \u0027Compression Method: Null\u0027 was negotiated.\n\n**********\n\nNow repeat, but this time using the --no-ssl-compression flag:\n\n $ swift --os-auth-token XXX --os-storage-url https://region-b.geo-1.objects.hpcloudsvc.com:443 --no-ssl-compression stat\n\nThis time around you should see that the client does not advertise compression:\n\n $ grep -i compr /tmp/out.no.comp.txt\n            Compression Methods Length: 1\n            Compression Methods (1 method)\n                Compression Method: null (0) \u003c\u003c\u003c client is telling server it only supports the \u0027null\u0027 compression algorithm, ie that it doesn\u0027t support compression\n                    EC point format: uncompressed (0)\n                    EC point format: ansiX962_compressed_prime (1)\n                    EC point format: ansiX962_compressed_char2 (2)\n            Compression Method: null (0) \u003c\u003c\u003c client/server agree to *not* use compression\n\nLet me know how you get on.","accounts_in_message":[],"_revision_number":5},{"id":"a810319aed617ac3725dbfd0144fb2d21c4945c6","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-22 11:05:06.000000000","message":"Patch Set 5:\n\nAlternatively, if your client always uses compression, even when the --no-ssl-compression flag is used, it probably means its not able to find pyOpenSSL. You can check this by putting a print statement in https_connection.py just before this line:\n\nself.context.set_options(0x20000)\n\nto check whether you are going through that code path or not.","accounts_in_message":[],"_revision_number":5},{"id":"85b38df76df4e394d9143589767fdbee359ec9d4","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-22 12:53:24.000000000","message":"Patch Set 5:\n\nOh, and I could see a difference with a 20 MB object (about 2x), but with a 200MB object the difference was much greater (about 4x).","accounts_in_message":[],"_revision_number":5},{"id":"4f5e04a53cacf519f65116fb5f8b2427f3b05387","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2013-05-29 18:11:44.000000000","message":"Patch Set 5:\n\nI get a unit test failure. Am I doing something wrong?\n\n_StringException: Traceback (most recent call last):\n  File \"/home/swift/python-swiftclient/tests/test_swiftclient.py\", line 185, in test_http_connection\n    self.assertTrue(isinstance(conn, c.HTTPSConnectionNoSSLComp))\nAssertionError: False is not true","accounts_in_message":[],"_revision_number":5},{"id":"bdee6e2df776d8e268e1f104e430ae51105b98d6","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-31 14:57:13.000000000","message":"Patch Set 5:\n\nHi John, just spotted your comment now. I\u0027ll need to check but perhaps if you don\u0027t have pyopenssl installed you may hit that. I\u0027ll take a look...","accounts_in_message":[],"_revision_number":5},{"id":"c2a460e14ce3b96596210b2df90b15855837a6ee","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-05-31 15:05:55.000000000","message":"Patch Set 5:\n\nJohn, I tried running with/without python-openssl installed but couldn\u0027t reproduce.\n\nWould you be able to print out conn.__class__ so we can tell what it got instantiated as? Thanks.","accounts_in_message":[],"_revision_number":5},{"id":"10fda6ba2fb416f71a64c7f99c3ef04b94eba4e5","author":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"date":"2013-05-31 18:12:23.000000000","message":"Patch Set 5: I would prefer that you didn\u0027t merge this\n\nI get the same unittest failure as john with my saio","accounts_in_message":[],"_revision_number":5},{"id":"053619cd6c2d81e8ecb7562019f589697eb03c4f","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-06-03 14:46:15.000000000","message":"Patch Set 5:\n\nHi Chunk,\n\nThanks for the additional info.\n\nAny chance you\u0027d be able to print out what the value of conn.__class__ is -- to help get a handle on what\u0027s going on?\n\nOr alternatively/additionally some more details on your setup? (I\u0027m having trouble reproducing this on devstack.)\n\nThanks.","accounts_in_message":[],"_revision_number":5},{"id":"5966c5276c7a59a7a719f8c9598b8268c901eddc","author":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"date":"2013-06-03 15:35:42.000000000","message":"Patch Set 5:\n\nHey Stuart,\n\nI\u0027m running a fairly standard SAIO following these directions:\n\nhttp://docs.openstack.org/developer/swift/development_saio.html\n\nFull output is:\n\n$ nosetests test_swiftclient.py:TestHttpHelpers.test_http_connection\nF\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nFAIL: tests.test_swiftclient.TestHttpHelpers.test_http_connection\n----------------------------------------------------------------------\n_StringException: Traceback (most recent call last):\n  File \"/home/cthier/python-swiftclient/tests/test_swiftclient.py\", line 185, in test_http_connection\n    self.assertTrue(isinstance(conn, c.HTTPSConnectionNoSSLComp))\nAssertionError: False is not true\n\n\n----------------------------------------------------------------------\nRan 1 test in 0.002s\n\nFAILED (failures\u003d1)\n\nI added a print conn.__class__ in that test right before the failure, and it printed:\n\nhttplib.HTTPSConnection","accounts_in_message":[],"_revision_number":5},{"id":"d4153cd09d37663b52c7faa74e3ffcb83d8afbfe","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-06-04 12:27:04.000000000","message":"Patch Set 5:\n\nChuck -- thanks, very helpful.\n\nI should be able to push up another patch v. soon.","accounts_in_message":[],"_revision_number":5},{"id":"9240e3a724490f50c08ad09dc75c80946b249bba","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-06-04 16:33:21.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"bea21771afa6f61a9e88ef7d1aaa8a5985f835f5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-04 16:34:40.000000000","message":"Patch Set 6: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/20029/6/check/gate-python-swiftclient-pep8/308 : SUCCESS in 38s\n- http://docs-draft.openstack.org/20029/6/check/gate-python-swiftclient-docs/258/doc/build/html/ : SUCCESS in 47s\n- http://logs.openstack.org/20029/6/check/gate-python-swiftclient-python26/306 : SUCCESS in 1m 00s\n- http://logs.openstack.org/20029/6/check/gate-python-swiftclient-python27/306 : SUCCESS in 43s\n","accounts_in_message":[],"_revision_number":6},{"id":"2af5fda15df25f9cb61814c9a2d8dac7f733a5c6","author":{"_account_id":917,"name":"Chuck Thier","email":"cthier@gmail.com","username":"cthier"},"date":"2013-06-04 19:41:12.000000000","message":"Patch Set 6: Looks good to me (core reviewer)\n\nEverything passes now, and I was able to successfully use it.  Interestingly I couldn\u0027t find a performance difference one way or another.","accounts_in_message":[],"_revision_number":6},{"id":"6c93fbb215337d871ef95eb5270d51b26cee4bf4","author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"date":"2013-06-04 21:08:04.000000000","message":"Patch Set 6:\n\nThat\u0027s great Chuck -- many thanks.\n\nYou may not see a performance difference for a few reasons:\n\n1) ssl compression may already not have been being negotiated between the client/server on your system before this patch (if you\u0027re interested the tshark instructions above will tell you if this is the case.)\n\n2) depending on whether you have python-openssl installed the new --no-ssl-compression flag may actually do nothing (try putting in a print statement to verify it hits the all important self.context.set_options(0x20000) line in https_connection.py)\n\n3) vm network -- if you\u0027re running in a vm your network bandwidth may be limited, if so this may mask any improvement\n\n(also -- obviously this patch only affects https and not http!)","accounts_in_message":[],"_revision_number":6},{"id":"6e9fa7c8bfd66f97c12686b4793f41b170ce319b","author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"date":"2013-06-11 16:36:59.000000000","message":"Patch Set 6: Looks good to me, but someone else must approve\n\nSo I instrumented:\n\n  --- a/swiftclient/https_connection.py\n  +++ b/swiftclient/https_connection.py\n  @@ -56,6 +56,7 @@ class HTTPSConnectionNoSSLComp(HTTPSConnection):\n           \"\"\"\n           self.context \u003d OpenSSL.SSL.Context(OpenSSL.SSL.SSLv23_METHOD)\n           # Disable SSL layer compression.\n  +        import sys; print \u003e\u003esys.stderr, \u0027 **** Setting SSL_OP_NO_COMPRESSION ***** \u0027\n           self.context.set_options(0x20000)  # SSL_OP_NO_COMPRESSION\n   \n       def connect(self):\n\nAnd then ran like so:\n\n  $ PYTHONPATH\u003d. bin/swift -A https://192.168.22.100/auth/v1.0 -U dev -K admin stat --no-ssl-compression\n   **** Setting SSL_OP_NO_COMPRESSION *****\n     Account: AUTH_dev\n  Containers: 5\n     Objects: 42\n       Bytes: 943808872\n  Accept-Ranges: bytes\n  X-Timestamp: 1370871013.20094\n  X-Trans-Id: txccf8309916014fc682478-0051b7506b\n  Content-Type: text/plain; charset\u003dutf-8\n\nAnd got this from tshark:\n\n            Compression Methods Length: 2\n            Compression Methods (2 methods)\n                Compression Method: DEFLATE (1)\n                Compression Method: null (0)\n                    EC point format: uncompressed (0)\n                    EC point format: ansiX962_compressed_prime (1)\n                    EC point format: ansiX962_compressed_char2 (2)\n            Compression Method: DEFLATE (1)\n            Compression Methods Length: 1\n            Compression Methods (1 method)\n                Compression Method: null (0)\n                    EC point format: uncompressed (0)\n                    EC point format: ansiX962_compressed_prime (1)\n                    EC point format: ansiX962_compressed_char2 (2)\n            Compression Method: null (0)\n\nSo is that one handshake for Auth which is not using the \"no ssl\" flag (i.e. is using DEFLATE)?  And then a handshake for data which is correctly not using compression?  If so, would it be easy to make Auth have the same behavior (i.e. a tshark with my test setup would show two connections not using DEFLATE)?\n\nAdding only a +1 as I want to take another look at the patch now that I\u0027m confident it succeeds at what it tries to do :)","accounts_in_message":[],"_revision_number":6},{"id":"91f7338b60d47d46706c92fccda33abc14b3ab7f","author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"date":"2013-06-11 16:42:58.000000000","message":"Patch Set 6:\n\nMore good news.  Quite noticeable difference in client CPU consumption uploading very compressible files (all zero bytes).  With compression, much less CPU is used because so many fewer bytes are transferred by the client.\n\nWITH compression (no flag):\n\n  real    0m15.939s\n  user    0m2.320s\n  sys     0m0.828s\n  ...\n  real    0m15.449s\n  user    0m2.512s\n  sys     0m0.756s\n\nWITHOUT compression (with flag).  I still had my instrumentation in and did see one \"**** Setting SSL_OP_NO_COMPRESSION *****\" per each of the 4 files uploaded.\n\n  real    0m23.939s\n  user    0m5.100s\n  sys     0m1.648s\n  ...\n  real    0m25.448s\n  user    0m5.072s\n  sys     0m1.732s","accounts_in_message":[],"_revision_number":6},{"id":"c53cb58c6f79d8c0026bbb1cc93c223eacbeb23d","author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"date":"2013-06-11 16:55:28.000000000","message":"Patch Set 6: Looks good to me (core reviewer)\n\nlgtm; I feel the unit test coverage is a little weak, but I can\u0027t think of how to improve it.  The conditional import business makes it tough to test.  A manual functional test worked great, though.","accounts_in_message":[],"_revision_number":6},{"id":"6a9f21c4b45961d7cb8e6dbb5613aa605c721e39","author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"date":"2013-06-11 16:55:53.000000000","message":"Patch Set 6: Approved\n\nBelatedly noticed I\u0027m the second +2...","accounts_in_message":[],"_revision_number":6},{"id":"c7345e1ff873015e4fc3e0b8db1fb7167357353b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-11 16:55:54.000000000","message":"Patch Set 6: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":6},{"id":"960f26ad1efdf1a0223b1eeb3dc77299b3e44f7d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-11 16:56:31.000000000","message":"Patch Set 6: Fails\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGithub#Test_Failures\n\n- http://logs.openstack.org/20029/6/gate/gate-python-swiftclient-docs/269 : FAILURE in 13s\n- http://logs.openstack.org/20029/6/gate/gate-python-swiftclient-pep8/319 : FAILURE in 10s\n- http://logs.openstack.org/20029/6/gate/gate-python-swiftclient-python26/317 : FAILURE in 28s\n- http://logs.openstack.org/20029/6/gate/gate-python-swiftclient-python27/317 : FAILURE in 13s\n","accounts_in_message":[],"_revision_number":6},{"id":"4ad378456e1feabeedc5a6136ce433b00a8d6ac5","author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"date":"2013-06-11 17:48:15.000000000","message":"Patch Set 6:\n\nwtf jenkins?\n\nreverify no bug","accounts_in_message":[],"_revision_number":6},{"id":"3ba4a301c4abc6f90e1e5df8949ebb43d0028ea5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-11 17:48:16.000000000","message":"Patch Set 6: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":6},{"id":"23d8662e518ba85d37506b8489364c81526da2b6","author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"date":"2013-06-11 17:50:26.000000000","message":"Patch Set 6:\n\nI think pbr had some issues lately (cf: ml)","accounts_in_message":[],"_revision_number":6},{"id":"6c535e306125bea4f656ece711e370b949878316","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-11 17:51:30.000000000","message":"Patch Set 6: Verified\n\nBuild succeeded.\n\n- http://docs-draft.openstack.org/20029/6/gate/gate-python-swiftclient-docs/270/doc/build/html/ : SUCCESS in 47s\n- http://logs.openstack.org/20029/6/gate/gate-python-swiftclient-pep8/320 : SUCCESS in 44s\n- http://logs.openstack.org/20029/6/gate/gate-python-swiftclient-python26/318 : SUCCESS in 57s\n- http://logs.openstack.org/20029/6/gate/gate-python-swiftclient-python27/318 : SUCCESS in 52s\n","accounts_in_message":[],"_revision_number":6},{"id":"4bf21eb2be7f164cbffba864e43b544463ea82cd","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-11 17:51:31.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"790f087a67fcc0cc7730cedd1a225d58a82ddf5d","revisions":{"e36f65bc16d6818c6be934e1de3ad8d21800bfc7":{"kind":"REWORK","_number":1,"created":"2013-01-18 15:14:42.000000000","uploader":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"ref":"refs/changes/29/20029/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/29/20029/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/1"}}},"commit":{"parents":[{"commit":"3d04363ba4b5955236c7067f14d9844cbabc248b","subject":"Merge \"Add env[SWIFTCLIENT_INSECURE]\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/3d04363ba4b5955236c7067f14d9844cbabc248b"}]}],"author":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-01-18 14:17:21.000000000","tz":0},"committer":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-01-18 14:37:06.000000000","tz":0},"subject":"Add option to disable SSL compression","message":"Add option to disable SSL compression\n\nAllows optionally disabling SSL compression. This can significantly\nimprove HTTPS upload/download performance in some cases -- in particular\nwhen the object is not compressible and you have very high network\nbandwidth.\n\nImplements blueprint ssl-compression.\n\nChange-Id: I1260055f9c2e83cdabfeb51aed11b3899bed4d55\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e36f65bc16d6818c6be934e1de3ad8d21800bfc7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/e36f65bc16d6818c6be934e1de3ad8d21800bfc7"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"3d04363ba4b5955236c7067f14d9844cbabc248b","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"c600cbc2971ec9ada8fe9edbf9b9419748869107":{"kind":"REWORK","_number":2,"created":"2013-05-17 13:41:29.000000000","uploader":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"ref":"refs/changes/29/20029/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/29/20029/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/2"}}},"commit":{"parents":[{"commit":"3196daf9929eef25d69d47592beef4cd31573b80","subject":"Eradicate eventlet and fix bug lp:959221","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/3196daf9929eef25d69d47592beef4cd31573b80"}]}],"author":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-01-18 14:17:21.000000000","tz":0},"committer":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-05-17 13:40:37.000000000","tz":0},"subject":"Add option to disable SSL compression","message":"Add option to disable SSL compression\n\nAllows optionally disabling SSL compression. This can significantly\nimprove HTTPS upload/download performance in some cases -- in particular\nwhen the object is not compressible and you have very high network\nbandwidth.\n\nImplements blueprint ssl-compression.\n\nChange-Id: I1260055f9c2e83cdabfeb51aed11b3899bed4d55\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/c600cbc2971ec9ada8fe9edbf9b9419748869107"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/c600cbc2971ec9ada8fe9edbf9b9419748869107"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"3196daf9929eef25d69d47592beef4cd31573b80","is_merged_in_target_branch":true,"change_id":"I1eb932779d4171598b3efaa043f817b9c6c995c4","change_number":28862,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"},"a674ae79bef751a9812eeccb35e2ebce75d546e1":{"kind":"REWORK","_number":3,"created":"2013-05-17 14:00:07.000000000","uploader":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"ref":"refs/changes/29/20029/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/29/20029/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/3"}}},"commit":{"parents":[{"commit":"3196daf9929eef25d69d47592beef4cd31573b80","subject":"Eradicate eventlet and fix bug lp:959221","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/3196daf9929eef25d69d47592beef4cd31573b80"}]}],"author":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-01-18 14:17:21.000000000","tz":0},"committer":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-05-17 13:54:08.000000000","tz":0},"subject":"Add option to disable SSL compression","message":"Add option to disable SSL compression\n\nAllows optionally disabling SSL compression. This can significantly\nimprove HTTPS upload/download performance in some cases -- in particular\nwhen the object is not compressible and you have very high network\nbandwidth.\n\nImplements blueprint ssl-compression.\n\nChange-Id: I1260055f9c2e83cdabfeb51aed11b3899bed4d55\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a674ae79bef751a9812eeccb35e2ebce75d546e1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/a674ae79bef751a9812eeccb35e2ebce75d546e1"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"3196daf9929eef25d69d47592beef4cd31573b80","is_merged_in_target_branch":true,"change_id":"I1eb932779d4171598b3efaa043f817b9c6c995c4","change_number":28862,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"},"3298c2359e2be3937831190599d29129b424f9c2":{"kind":"REWORK","_number":4,"created":"2013-05-20 14:08:52.000000000","uploader":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"ref":"refs/changes/29/20029/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/29/20029/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/4"}}},"commit":{"parents":[{"commit":"3196daf9929eef25d69d47592beef4cd31573b80","subject":"Eradicate eventlet and fix bug lp:959221","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/3196daf9929eef25d69d47592beef4cd31573b80"}]}],"author":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-01-18 14:17:21.000000000","tz":0},"committer":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-05-20 13:13:05.000000000","tz":0},"subject":"Add option to disable SSL compression","message":"Add option to disable SSL compression\n\nAllows optionally disabling SSL compression. This can significantly\nimprove HTTPS upload/download performance in some cases -- in particular\nwhen the object is not compressible and you have very high network\nbandwidth.\n\nImplements blueprint ssl-compression.\n\nChange-Id: I1260055f9c2e83cdabfeb51aed11b3899bed4d55\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/3298c2359e2be3937831190599d29129b424f9c2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/3298c2359e2be3937831190599d29129b424f9c2"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"3196daf9929eef25d69d47592beef4cd31573b80","is_merged_in_target_branch":true,"change_id":"I1eb932779d4171598b3efaa043f817b9c6c995c4","change_number":28862,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"},"55353da4c2796bcabf1b8a9102561f0052b8d6a8":{"kind":"REWORK","_number":5,"created":"2013-05-20 14:13:24.000000000","uploader":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"ref":"refs/changes/29/20029/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/29/20029/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/5"}}},"commit":{"parents":[{"commit":"3196daf9929eef25d69d47592beef4cd31573b80","subject":"Eradicate eventlet and fix bug lp:959221","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/3196daf9929eef25d69d47592beef4cd31573b80"}]}],"author":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-01-18 14:17:21.000000000","tz":0},"committer":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-05-20 14:13:14.000000000","tz":0},"subject":"Add option to disable SSL compression","message":"Add option to disable SSL compression\n\nAllows optionally disabling SSL compression. This can significantly\nimprove HTTPS upload/download performance in some cases -- in particular\nwhen the object is not compressible and you have very high network\nbandwidth.\n\nImplements blueprint ssl-compression.\n\nChange-Id: I1260055f9c2e83cdabfeb51aed11b3899bed4d55\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/55353da4c2796bcabf1b8a9102561f0052b8d6a8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/55353da4c2796bcabf1b8a9102561f0052b8d6a8"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"3196daf9929eef25d69d47592beef4cd31573b80","is_merged_in_target_branch":true,"change_id":"I1eb932779d4171598b3efaa043f817b9c6c995c4","change_number":28862,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"},"790f087a67fcc0cc7730cedd1a225d58a82ddf5d":{"kind":"REWORK","_number":6,"created":"2013-06-04 16:33:21.000000000","uploader":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"ref":"refs/changes/29/20029/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/29/20029/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/29/20029/6"}}},"commit":{"parents":[{"commit":"2d12f09c66e0221ba7f43cc64677c05486a42ea6","subject":"Rename requires files to standard names.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/2d12f09c66e0221ba7f43cc64677c05486a42ea6"}]}],"author":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-01-18 14:17:21.000000000","tz":0},"committer":{"name":"Stuart McLaren","email":"stuart.mclaren@hp.com","date":"2013-06-04 16:33:18.000000000","tz":0},"subject":"Add option to disable SSL compression","message":"Add option to disable SSL compression\n\nAllows optionally disabling SSL compression. This can significantly\nimprove HTTPS upload/download performance in some cases -- in particular\nwhen the object is not compressible and you have very high network\nbandwidth.\n\nImplements blueprint ssl-compression.\n\nChange-Id: I1260055f9c2e83cdabfeb51aed11b3899bed4d55\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/790f087a67fcc0cc7730cedd1a225d58a82ddf5d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/790f087a67fcc0cc7730cedd1a225d58a82ddf5d"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"2d12f09c66e0221ba7f43cc64677c05486a42ea6","is_merged_in_target_branch":true,"change_id":"I9c1356f22f6527be44b4b3f6a77012156ff1637b","change_number":30889,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
