{"action":"created","issue":{"url":"https://api.github.com/repos/boto/botocore/issues/434","labels_url":"https://api.github.com/repos/boto/botocore/issues/434/labels{/name}","comments_url":"https://api.github.com/repos/boto/botocore/issues/434/comments","events_url":"https://api.github.com/repos/boto/botocore/issues/434/events","html_url":"https://github.com/boto/botocore/pull/434","id":54381147,"number":434,"title":"Fix canonical query string sorting for Signature Version 4","user":{"login":"jamesls","id":368057,"avatar_url":"https://avatars.githubusercontent.com/u/368057?v=3","gravatar_id":"","url":"https://api.github.com/users/jamesls","html_url":"https://github.com/jamesls","followers_url":"https://api.github.com/users/jamesls/followers","following_url":"https://api.github.com/users/jamesls/following{/other_user}","gists_url":"https://api.github.com/users/jamesls/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesls/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesls/subscriptions","organizations_url":"https://api.github.com/users/jamesls/orgs","repos_url":"https://api.github.com/users/jamesls/repos","events_url":"https://api.github.com/users/jamesls/events{/privacy}","received_events_url":"https://api.github.com/users/jamesls/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-01-14T21:44:29Z","updated_at":"2015-01-14T23:32:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/boto/botocore/pulls/434","html_url":"https://github.com/boto/botocore/pull/434","diff_url":"https://github.com/boto/botocore/pull/434.diff","patch_url":"https://github.com/boto/botocore/pull/434.patch"},"body":"We were previously sorting by first creating a list of strings\r\nof `'%s=%s' % (key, value)`.  But really we should be:\r\n\r\n1. Sorting by key names\r\n2. In the case of repeated keys, sort then by values.\r\n\r\nFixes aws/aws-cli#976\r\n\r\nAdded unit tests.  Also verified the previously failing CLI command now works:\r\n\r\n```\r\n$ aws cloudsearchdomain search --endpoint-url myendpoint --search-query 'George Lucas' --query-options '{\"defaultOperator\": \"and\", \"fields\":[\"directors^10\"]}' --query hits.hit[].fields.[title[0],rating[0]] --output table\r\n---------------------------------------------------------\r\n|                        Search                         |\r\n+------------------------------------------------+------+\r\n|  Star Wars                                     |  8.7 |\r\n|  Star Wars: Episode III - Revenge of the Sith  |  7.7 |\r\n|  Star Wars: Episode I - The Phantom Menace     |  6.5 |\r\n|  Star Wars: Episode II - Attack of the Clones  |  6.7 |\r\n|  American Graffiti                             |  7.5 |\r\n|  THX 1138                                      |  6.7 |\r\n+------------------------------------------------+------+\r\n```\r\n\r\ncc @kyleknap @danielgtaylor "},"comment":{"url":"https://api.github.com/repos/boto/botocore/issues/comments/70014283","html_url":"https://github.com/boto/botocore/pull/434#issuecomment-70014283","issue_url":"https://api.github.com/repos/boto/botocore/issues/434","id":70014283,"user":{"login":"kyleknap","id":4605355,"avatar_url":"https://avatars.githubusercontent.com/u/4605355?v=3","gravatar_id":"","url":"https://api.github.com/users/kyleknap","html_url":"https://github.com/kyleknap","followers_url":"https://api.github.com/users/kyleknap/followers","following_url":"https://api.github.com/users/kyleknap/following{/other_user}","gists_url":"https://api.github.com/users/kyleknap/gists{/gist_id}","starred_url":"https://api.github.com/users/kyleknap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyleknap/subscriptions","organizations_url":"https://api.github.com/users/kyleknap/orgs","repos_url":"https://api.github.com/users/kyleknap/repos","events_url":"https://api.github.com/users/kyleknap/events{/privacy}","received_events_url":"https://api.github.com/users/kyleknap/received_events","type":"User","site_admin":false},"created_at":"2015-01-14T23:32:51Z","updated_at":"2015-01-14T23:32:51Z","body":"Thanks! :ship:"}}