)]}'
{"stack.sh":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"4de85c78496a2b5497751f1aaf0c26226d6b809c","unresolved":false,"context_lines":[{"line_number":1105,"context_line":"#  * **precise**: http://uec-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64.tar.gz"},{"line_number":1106,"context_line":""},{"line_number":1107,"context_line":"if is_service_enabled g-reg; then"},{"line_number":1108,"context_line":"    eval $(openstack token create -c id -f shell)"},{"line_number":1109,"context_line":"    TOKEN\u003d$id"},{"line_number":1110,"context_line":"    die_if_not_set $LINENO TOKEN \"Keystone fail to get token\""},{"line_number":1111,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAWH%2F%2FXRA%3D","line":1108,"updated":"2014-03-18 11:11:04.000000000","message":"I\u0027m actually pretty concerned about evals everywhere in the code, as this is going to make figuring out where variables come from really hard over time.\n\nIs there some better way we can handle this?","commit_id":"8a79b114456c431e4e7cb052d5f347a12dfddf54"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"50018556e31c5d906527533df3803668fdbe3688","unresolved":false,"context_lines":[{"line_number":1105,"context_line":"#  * **precise**: http://uec-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64.tar.gz"},{"line_number":1106,"context_line":""},{"line_number":1107,"context_line":"if is_service_enabled g-reg; then"},{"line_number":1108,"context_line":"    eval $(openstack token create -c id -f shell)"},{"line_number":1109,"context_line":"    TOKEN\u003d$id"},{"line_number":1110,"context_line":"    die_if_not_set $LINENO TOKEN \"Keystone fail to get token\""},{"line_number":1111,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAWH%2F%2B598%3D","line":1108,"in_reply_to":"AAAAWH%2F%2B8dY%3D","updated":"2014-03-21 21:27:20.000000000","message":"In an eval, \u0027--prefix xyz_\u0027 should be used then to give the variables some uniqueness.  Terry\u0027s cliff patch (https://review.openstack.org/#/c/80614/) to just emit raw single vars is the right long-term solution, then $(openstack ... ) output can be used directly.\n\nIf this needs to happen before a cliff release, sed is a decent compromise until we can assume the new cliff feature is available, although the whole point of machine-readable output was to eliminate that sort of thing.\n\nJust for grins, this almost works too, save for the quotes:\n\n  $ $(openstack flavor show n1.small -f shell -c id --prefix \"export flavor_\")\n  $ echo $flavor_id\n  \"n1.small\"","commit_id":"8a79b114456c431e4e7cb052d5f347a12dfddf54"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"c788279570830a768ff726b9700e8eff375bff11","unresolved":false,"context_lines":[{"line_number":1105,"context_line":"#  * **precise**: http://uec-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64.tar.gz"},{"line_number":1106,"context_line":""},{"line_number":1107,"context_line":"if is_service_enabled g-reg; then"},{"line_number":1108,"context_line":"    eval $(openstack token create -c id -f shell)"},{"line_number":1109,"context_line":"    TOKEN\u003d$id"},{"line_number":1110,"context_line":"    die_if_not_set $LINENO TOKEN \"Keystone fail to get token\""},{"line_number":1111,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAWH%2F%2B8dY%3D","line":1108,"in_reply_to":"AAAAWH%2F%2B9Kk%3D","updated":"2014-03-21 13:55:55.000000000","message":"One alternative is:\n\n   TOKEN\u003d$(openstack token create -c id -f shell | sed -e \u0027s/id\u003d//\u0027)\n\nDoes that work for you Sean?","commit_id":"8a79b114456c431e4e7cb052d5f347a12dfddf54"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"fd56f28861566ccf119b13a7da91032db9260eb6","unresolved":false,"context_lines":[{"line_number":1105,"context_line":"#  * **precise**: http://uec-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64.tar.gz"},{"line_number":1106,"context_line":""},{"line_number":1107,"context_line":"if is_service_enabled g-reg; then"},{"line_number":1108,"context_line":"    eval $(openstack token create -c id -f shell)"},{"line_number":1109,"context_line":"    TOKEN\u003d$id"},{"line_number":1110,"context_line":"    die_if_not_set $LINENO TOKEN \"Keystone fail to get token\""},{"line_number":1111,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAWH%2F%2B9Kk%3D","line":1108,"in_reply_to":"AAAAWH%2F%2FWGk%3D","updated":"2014-03-21 12:01:05.000000000","message":"I get that they are powerful, the problem is we\u0027re in a non scoped language, so you are writing globals, which take no account of everything else, and could be a beast to debug.\n\nThis is about long term maintainability of the code. And I think eval goes in the wrong direction.","commit_id":"8a79b114456c431e4e7cb052d5f347a12dfddf54"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"867aba7c3a85723c846894f417b1a594e05d4b00","unresolved":false,"context_lines":[{"line_number":1105,"context_line":"#  * **precise**: http://uec-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64.tar.gz"},{"line_number":1106,"context_line":""},{"line_number":1107,"context_line":"if is_service_enabled g-reg; then"},{"line_number":1108,"context_line":"    eval $(openstack token create -c id -f shell)"},{"line_number":1109,"context_line":"    TOKEN\u003d$id"},{"line_number":1110,"context_line":"    die_if_not_set $LINENO TOKEN \"Keystone fail to get token\""},{"line_number":1111,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAWH%2F%2FWGk%3D","line":1108,"in_reply_to":"AAAAWH%2F%2FXRA%3D","updated":"2014-03-18 13:43:34.000000000","message":"I\u0027ve submitted this to cliff which would address your concerns:\n\nhttps://review.openstack.org/#/c/80614/\n\nThe evals are a bit strange, but once you get used to the pattern, I think they make sense.  They are a lot more powerful if you are trying to capture all the values of an object.","commit_id":"8a79b114456c431e4e7cb052d5f347a12dfddf54"}],"tools/upload_image.sh":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"86ac6c1823915c865525b9dc66f7a22b5bb24c21","unresolved":false,"context_lines":[{"line_number":32,"context_line":"fi"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# Get a token to authenticate to glance"},{"line_number":35,"context_line":"TOKEN\u003d$(openstack token create | grep \u0027 id \u0027 | get_field 2)"},{"line_number":36,"context_line":"die_if_not_set $LINENO TOKEN \"Keystone fail to get token\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# Glance connection info.  Note the port must be specified."}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAWH%2F%2Fqyo%3D","line":35,"updated":"2014-03-14 15:42:22.000000000","message":"Seems like these might be a little less fragile if some cliff features where used\n\neval $(openstack token create -c id -f shell)\nTOKEN\u003d$id\n\nMaybe it would be useful if cliff had a -f value option that would only print out the values so you could do stuff like this:\n\nTOKEN\u003d$(openstack token create -c id -f value)","commit_id":"afc87e697788471e43ef80a7fcc03f00b65f9b55"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"923921a5b1de0d7aef6f783269cae22bad23faa4","unresolved":false,"context_lines":[{"line_number":32,"context_line":"fi"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# Get a token to authenticate to glance"},{"line_number":35,"context_line":"TOKEN\u003d$(openstack token create | grep \u0027 id \u0027 | get_field 2)"},{"line_number":36,"context_line":"die_if_not_set $LINENO TOKEN \"Keystone fail to get token\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# Glance connection info.  Note the port must be specified."}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAWH%2F%2Fd5Y%3D","line":35,"in_reply_to":"AAAAWH%2F%2FqZ8%3D","updated":"2014-03-17 18:19:26.000000000","message":"Thanks for the suggestion Terry! I like it.","commit_id":"afc87e697788471e43ef80a7fcc03f00b65f9b55"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"96167894e96b2988c9c80bf40b2c9bcfba1be829","unresolved":false,"context_lines":[{"line_number":32,"context_line":"fi"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# Get a token to authenticate to glance"},{"line_number":35,"context_line":"TOKEN\u003d$(openstack token create | grep \u0027 id \u0027 | get_field 2)"},{"line_number":36,"context_line":"die_if_not_set $LINENO TOKEN \"Keystone fail to get token\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# Glance connection info.  Note the port must be specified."}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAWH%2F%2FqZ8%3D","line":35,"in_reply_to":"AAAAWH%2F%2Fqyo%3D","updated":"2014-03-14 16:29:59.000000000","message":"I submitted this about this issue:\n\nhttps://review.openstack.org/#/c/80614/","commit_id":"afc87e697788471e43ef80a7fcc03f00b65f9b55"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"9630c7c4cf6912b153e1847dfaaa91f225c02383","unresolved":false,"context_lines":[{"line_number":32,"context_line":"fi"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# Get a token to authenticate to glance"},{"line_number":35,"context_line":"eval $(openstack token create -c id -f shell) TOKEN\u003d$id"},{"line_number":36,"context_line":"die_if_not_set $LINENO TOKEN \"Keystone fail to get token\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# Glance connection info.  Note the port must be specified."}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAWH%2F%2Fdos%3D","line":35,"updated":"2014-03-17 18:56:55.000000000","message":"I think the TOKEN\u003d$id needs to be on the next line or it will assign TOKEN before it sets id.  I think it reformatted my comment thinking the two lines were in a paragraph.  Sorry about that.","commit_id":"5a6cd9ba1f1bcd597e276caa8021c0e0f4988cfb"}]}
