)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"9e42f19935cfc8602167577321ef42f6300be60f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"test_admin_actions as their corresponding features are separated"},{"line_number":17,"context_line":"from the admin_actions extension can continue to share code."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Partially implements v3-admin-actions-split"},{"line_number":20,"context_line":"DocImpact"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: Ie4b6e856c2f5c33de5575aa8666e0b2784b58d05"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2Bbk8%3D","line":19,"updated":"2013-11-26 06:28:01.000000000","message":"Partially implements bp v3-admin-actions-split","commit_id":"8dff50635f7af8f80b89041ae5f7e63b7ab91bf6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":11,"context_line":"blueprint v3-api-admin-actions-split allows more selective enablement of"},{"line_number":12,"context_line":"features contained in the admin actions extension."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Some setup work is done in the tests directory with an"},{"line_number":15,"context_line":"admin_only_action_common.py file so tests which are split out from"},{"line_number":16,"context_line":"test_admin_actions as their corresponding features are separated"},{"line_number":17,"context_line":"from the admin_actions extension can continue to share code."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAAUH%2F%2BRYM%3D","line":14,"updated":"2014-01-28 15:25:23.000000000","message":"Not sure i have any suggestions but I had to read this paragraph a few times, I think I get the gist of what it\u0027s saying, but it\u0027s kind of hard to follow.  Maybe break it up into a few sentences?","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from the admin_actions extension can continue to share code."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Partially implements bp v3-api-admin-actions-split"},{"line_number":20,"context_line":"DocImpact"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: Ie4b6e856c2f5c33de5575aa8666e0b2784b58d05"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAAUH%2F%2BRXY%3D","line":20,"updated":"2014-01-28 15:25:23.000000000","message":"What is the doc impact for the doc writers?  By definition this tag should have a summary of what the doc writers will need to change.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9cc6de5a2bda76f7dd104478f866308cfe97e0e8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"blueprint v3-api-admin-actions-split allows more selective enablement of"},{"line_number":12,"context_line":"features contained in the admin actions extension."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Some setup work is done in the tests directory with an"},{"line_number":15,"context_line":"admin_only_action_common.py file. This allows tests which are"},{"line_number":16,"context_line":"split out from test_admin_actions (as their corresponding features"},{"line_number":17,"context_line":"are separated from the admin_actions extension) can continue to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"AAAAUH%2F%2BM78%3D","line":14,"updated":"2014-01-29 04:35:20.000000000","message":"Much nicer, thanks.","commit_id":"2d2da7afb3946aaff929c672e187ec7a49c5874f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9cc6de5a2bda76f7dd104478f866308cfe97e0e8","unresolved":false,"context_lines":[{"line_number":21,"context_line":"bp remove-v3-xml-api has been approved."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Partially implements bp v3-api-admin-actions-split"},{"line_number":24,"context_line":"DocImpact: Adds os-lock-server extension and moves lock/unlock"},{"line_number":25,"context_line":"functionality out of os-admin-actions into this new extension"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: Ie4b6e856c2f5c33de5575aa8666e0b2784b58d05"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"AAAAUH%2F%2BM70%3D","line":24,"updated":"2014-01-29 04:35:20.000000000","message":"Nice summary.","commit_id":"2d2da7afb3946aaff929c672e187ec7a49c5874f"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0360019c0a0b31abd463bb18f5a9edf883a33b64","unresolved":false,"context_lines":[{"line_number":18,"context_line":"share code."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Note that XML api samples are no longer generated because"},{"line_number":21,"context_line":"bp remove-v3-xml-api has been approved."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Partially implements bp v3-api-admin-actions-split"},{"line_number":24,"context_line":"DocImpact: Adds os-lock-server extension and moves lock/unlock"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"AAAAUH%2F%2BHA8%3D","line":21,"updated":"2014-01-30 02:19:43.000000000","message":"Ie2c280d5ea1e6b8756535deb05982a92561552db has been merged.\nso will this patch fail when merging?","commit_id":"237e990926a3d85325dbe35b0011e3459b30e035"}],"doc/v3/api_samples/os-lock-server/server-post-req.xml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e"},{"line_number":2,"context_line":"\u003cserver xmlns\u003d\"http://docs.openstack.org/compute/api/v1.1\" image_ref\u003d\"http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b\" flavor_ref\u003d\"http://openstack.example.com/flavors/1\" name\u003d\"new-server-test\"\u003e"},{"line_number":3,"context_line":"  \u003cmetadata\u003e"},{"line_number":4,"context_line":"    \u003cmeta key\u003d\"My Server Name\"\u003eApache1\u003c/meta\u003e"}],"source_content_type":"application/xml","patch_set":10,"id":"AAAAUH%2F%2BRU0%3D","line":1,"updated":"2014-01-28 15:25:23.000000000","message":"Since the blueprint remove-v3-xml-api is approved, do we even need to bother with the xml support here?","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"9e17289298616b158d616b2fd1369e2a75aa722a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e"},{"line_number":2,"context_line":"\u003cserver xmlns\u003d\"http://docs.openstack.org/compute/api/v1.1\" image_ref\u003d\"http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b\" flavor_ref\u003d\"http://openstack.example.com/flavors/1\" name\u003d\"new-server-test\"\u003e"},{"line_number":3,"context_line":"  \u003cmetadata\u003e"},{"line_number":4,"context_line":"    \u003cmeta key\u003d\"My Server Name\"\u003eApache1\u003c/meta\u003e"}],"source_content_type":"application/xml","patch_set":10,"id":"AAAAUH%2F%2BNT4%3D","line":1,"in_reply_to":"AAAAUH%2F%2BRU0%3D","updated":"2014-01-29 02:41:26.000000000","message":"yea I\u0027ll strip out the xml api sample and tests now","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"}],"etc/nova/policy.json":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"68d763b8c52fbf5cb179b3d70cf9ff73487eac03","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \"compute_extension:admin_actions:unpause\": \"rule:admin_or_owner\","},{"line_number":30,"context_line":"    \"compute_extension:admin_actions:suspend\": \"rule:admin_or_owner\","},{"line_number":31,"context_line":"    \"compute_extension:admin_actions:resume\": \"rule:admin_or_owner\","},{"line_number":32,"context_line":"    \"compute_extension:admin_actions:lock\": \"rule:admin_or_owner\","},{"line_number":33,"context_line":"    \"compute_extension:admin_actions:unlock\": \"rule:admin_or_owner\","},{"line_number":34,"context_line":"    \"compute_extension:admin_actions:resetNetwork\": \"rule:admin_api\","},{"line_number":35,"context_line":"    \"compute_extension:admin_actions:injectNetworkInfo\": \"rule:admin_api\","}],"source_content_type":"application/json","patch_set":2,"id":"AAAATn%2F%2Bb2k%3D","line":32,"updated":"2013-11-26 07:57:22.000000000","message":"This can be deleted","commit_id":"8dff50635f7af8f80b89041ae5f7e63b7ab91bf6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    \"compute_extension:v3:keypairs:show\": \"\","},{"line_number":176,"context_line":"    \"compute_extension:v3:keypairs:create\": \"\","},{"line_number":177,"context_line":"    \"compute_extension:v3:keypairs:delete\": \"\","},{"line_number":178,"context_line":"    \"compute_extension:v3:os-lock-server:discoverable\": \"\","},{"line_number":179,"context_line":"    \"compute_extension:v3:os-lock-server:lock\": \"rule:admin_or_owner\","},{"line_number":180,"context_line":"    \"compute_extension:v3:os-lock-server:unlock\": \"rule:admin_or_owner\","},{"line_number":181,"context_line":"    \"compute_extension:multinic\": \"\","}],"source_content_type":"application/json","patch_set":10,"id":"AAAAUH%2F%2BQ7s%3D","line":178,"updated":"2014-01-28 15:25:23.000000000","message":"Where is this used/tested?","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"9e17289298616b158d616b2fd1369e2a75aa722a","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    \"compute_extension:v3:keypairs:show\": \"\","},{"line_number":176,"context_line":"    \"compute_extension:v3:keypairs:create\": \"\","},{"line_number":177,"context_line":"    \"compute_extension:v3:keypairs:delete\": \"\","},{"line_number":178,"context_line":"    \"compute_extension:v3:os-lock-server:discoverable\": \"\","},{"line_number":179,"context_line":"    \"compute_extension:v3:os-lock-server:lock\": \"rule:admin_or_owner\","},{"line_number":180,"context_line":"    \"compute_extension:v3:os-lock-server:unlock\": \"rule:admin_or_owner\","},{"line_number":181,"context_line":"    \"compute_extension:multinic\": \"\","}],"source_content_type":"application/json","patch_set":10,"id":"AAAAUH%2F%2BNn0%3D","line":178,"in_reply_to":"AAAAUH%2F%2BQ7s%3D","updated":"2014-01-29 02:41:26.000000000","message":"discoverable is a general policy that all extensions need to declare. It\u0027s used by the extension_info extension to decide whether or not to list the extension if it is loaded. There is a unittest for this type of functionality in test_extension_info (generically, not for all extensions)","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"}],"nova/api/openstack/compute/plugins/v3/lock_server.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7b21d36f8eefd2d402d4a948c9eb88ae638b4745","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from nova.openstack.common import log as logging"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":"ALIAS \u003d \"os-lock-server\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def authorize(context, action_name):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BDJ0%3D","line":26,"updated":"2013-12-03 02:58:45.000000000","message":"How about \"os-lock\"? too common?\n\nThere are some APIs for handling a server(shelve, rescue, evacuate) and these ALIASs are \"os-\u003caction\u003e\" without \"-server\".\n\nIf this is acceptable, it is better to remove \"server\" from the file name and controller name also.","commit_id":"4d5d7c27c239a3fc4b33fdebbd46192fb88c02ff"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"73be1a1ee422926c8bc9fac9635fd8b9287a7852","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from nova.openstack.common import log as logging"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":"ALIAS \u003d \"os-lock-server\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def authorize(context, action_name):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9YDM%3D","line":26,"in_reply_to":"AAAATn%2F%2BDJ0%3D","updated":"2013-12-12 04:18:36.000000000","message":"So my preference would be to keep os-lock-server because otherwise it could be a bit ambiguous. shelve, rescue, evacuate are not so ambiguous, but if anything I\u0027d probably prefer they\u0027d have -server as a suffix too to reduce the chance for confusion. That being said, if everyone else thinks it should be named differently I\u0027ll change it :-)\n\nFor the action names I don\u0027t think its an issue - we just use \"lock\" or \"unlock\" because when its called there is sufficient context - eg its an action on a server.","commit_id":"4d5d7c27c239a3fc4b33fdebbd46192fb88c02ff"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"960ac1197f2e67a659e75dc6346d57f2e089562d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from nova.openstack.common import log as logging"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":"ALIAS \u003d \"os-lock-server\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def authorize(context, action_name):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9YBA%3D","line":26,"in_reply_to":"AAAATn%2F9YDM%3D","updated":"2013-12-12 04:51:52.000000000","message":"I see, thanks for your explanation.\n\nThis point is from the viewpoint of internal implementation only, not API usability.\nThrough Nova v3 API development, internal implementation become clean now. Each controller classes are named specific class name, remove API inconsistencies, so on.\nThis name is a little different from other things as you said, but I agree that it is an issue.","commit_id":"4d5d7c27c239a3fc4b33fdebbd46192fb88c02ff"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4538d947f1d435e0c91b1dceb53e0da83b8f6b54","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2Fgcc%3D","line":1,"updated":"2014-01-13 07:43:47.000000000","message":"not sure what the policy is regarding this line","commit_id":"da66db92bd14a49e40e6dfde3945d65b4c873ba7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BRT4%3D","line":1,"updated":"2014-01-28 15:25:23.000000000","message":"Remove the vim header, we\u0027ve seen other global vim header removals going through oslo-incubator and synced into nova.\n\nAnd we have bug 1229324.","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BRUQ%3D","line":2,"updated":"2014-01-28 15:25:23.000000000","message":"2014?","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"9e17289298616b158d616b2fd1369e2a75aa722a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BNnQ%3D","line":2,"in_reply_to":"AAAAUH%2F%2BRUQ%3D","updated":"2014-01-29 02:41:26.000000000","message":"started this work in 2013 :-)","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9cc6de5a2bda76f7dd104478f866308cfe97e0e8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013-2014 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2BM7c%3D","line":1,"updated":"2014-01-29 04:35:20.000000000","message":"Hmm, I think it\u0027s just supposed to be a single date isn\u0027t it?  I\u0027m not really sure honestly, but I don\u0027t think I\u0027ve seen one like this with a dash, usually it\u0027s a comma if there is an initial and current date, but thought we did away with that and did just the last major change if it\u0027s a new file or \u003e 5% of the code.  I know there are a few ML threads and/or wikis around this topic somewhere.","commit_id":"2d2da7afb3946aaff929c672e187ec7a49c5874f"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"e4e0cf101d9519463d33f9cac43ab79f445e681d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013-2014 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2BH3g%3D","line":1,"in_reply_to":"AAAAUH%2F%2BKrY%3D","updated":"2014-01-29 22:47:22.000000000","message":"Done","commit_id":"2d2da7afb3946aaff929c672e187ec7a49c5874f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0453a5dd3a4ef6f12c9632ce85a96fdc76f55214","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013-2014 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2BKrY%3D","line":1,"in_reply_to":"AAAAUH%2F%2BM7c%3D","updated":"2014-01-29 14:35:25.000000000","message":"After talking with some people, it sounds like you should just leave it as 2013:\n\n(8:07:18 AM) krtaylor: mrburke, mriedem - I *believe* that it would be the dat it was pushed into the community, so it was made public in 2013 even though it wasnt merged, I\u0027d go with that\n\n(8:08:02 AM) krtaylor: honestly, I\u0027m not sure it matters much with the CLA and Apache anyway\n\n(8:08:33 AM) krtaylor: all IMO, take it for what it is worth\n\n(8:09:10 AM) mrburke: mriedem: I agree with krtaylor in that the date is the creation date which would correlate to when it was pushed to the community","commit_id":"2d2da7afb3946aaff929c672e187ec7a49c5874f"}],"nova/tests/api/openstack/compute/plugins/v3/admin_only_action_common.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"68d763b8c52fbf5cb179b3d70cf9ff73487eac03","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.mox.UnsetStubs()"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"class CommonTests(CommonMixin, test.NoDBTestCase):"},{"line_number":95,"context_line":"    def _test_actions(self, actions, method_translations\u003d{}):"},{"line_number":96,"context_line":"        for action in actions:"},{"line_number":97,"context_line":"            method \u003d method_translations.get(action)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Bbbs%3D","line":94,"updated":"2013-11-26 07:57:22.000000000","message":"Why we need two classes? Can we merge CommonTests and CommonMixin?","commit_id":"8dff50635f7af8f80b89041ae5f7e63b7ab91bf6"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4538d947f1d435e0c91b1dceb53e0da83b8f6b54","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2FgcY%3D","line":1,"updated":"2014-01-13 07:43:47.000000000","message":"ditto","commit_id":"da66db92bd14a49e40e6dfde3945d65b4c873ba7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BRRg%3D","line":1,"updated":"2014-01-28 15:25:23.000000000","message":"remove vim header","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BRRc%3D","line":2,"updated":"2014-01-28 15:25:23.000000000","message":"2014?","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        req.content_type \u003d \u0027application/json\u0027"},{"line_number":40,"context_line":"        return req.get_response(self.app)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def _stub_instance_get(self, uuid\u003dNone):"},{"line_number":43,"context_line":"        if uuid is None:"},{"line_number":44,"context_line":"            uuid \u003d uuidutils.generate_uuid()"},{"line_number":45,"context_line":"        instance \u003d fake_instance.fake_db_instance("}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BQ%2Bo%3D","line":42,"updated":"2014-01-28 15:25:23.000000000","message":"Not sure if we should be using nova.tests.api.openstack.fakes.stub_instance in the api tests or if fake_instance is OK, I sort of hate the duplication, but I prefer nova.tests.fake_instance and it appears to work.","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def _stub_instance_get(self, uuid\u003dNone):"},{"line_number":43,"context_line":"        if uuid is None:"},{"line_number":44,"context_line":"            uuid \u003d uuidutils.generate_uuid()"},{"line_number":45,"context_line":"        instance \u003d fake_instance.fake_db_instance("},{"line_number":46,"context_line":"                id\u003d1, uuid\u003duuid, vm_state\u003dvm_states.ACTIVE,"},{"line_number":47,"context_line":"                task_state\u003dNone, launched_at\u003dtimeutils.utcnow())"},{"line_number":48,"context_line":"        instance \u003d instance_obj.Instance._from_db_object("}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BQ%2BA%3D","line":45,"updated":"2014-01-28 15:25:23.000000000","message":"Just use fake_instance.fake_instance_obj since that calls fake_db_instance and then converts it to an object for you.","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"9e17289298616b158d616b2fd1369e2a75aa722a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def _stub_instance_get(self, uuid\u003dNone):"},{"line_number":43,"context_line":"        if uuid is None:"},{"line_number":44,"context_line":"            uuid \u003d uuidutils.generate_uuid()"},{"line_number":45,"context_line":"        instance \u003d fake_instance.fake_db_instance("},{"line_number":46,"context_line":"                id\u003d1, uuid\u003duuid, vm_state\u003dvm_states.ACTIVE,"},{"line_number":47,"context_line":"                task_state\u003dNone, launched_at\u003dtimeutils.utcnow())"},{"line_number":48,"context_line":"        instance \u003d instance_obj.Instance._from_db_object("}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BNVo%3D","line":45,"in_reply_to":"AAAAUH%2F%2BQ%2BA%3D","updated":"2014-01-29 02:41:26.000000000","message":"Done","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.mox.UnsetStubs()"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"class CommonTests(CommonMixin, test.NoDBTestCase):"},{"line_number":95,"context_line":"    def _test_actions(self, actions, method_translations\u003d{}):"},{"line_number":96,"context_line":"        for action in actions:"},{"line_number":97,"context_line":"            method \u003d method_translations.get(action)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BRMQ%3D","line":94,"updated":"2014-01-28 15:25:23.000000000","message":"Would be nice to see us using mock instead of mox now but this is basically a semi-advanced refactor of the existing code so I\u0027d be OK with not bending over backwards to convert the mox to mock here, at least not in this patch series.","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"9e17289298616b158d616b2fd1369e2a75aa722a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.mox.UnsetStubs()"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"class CommonTests(CommonMixin, test.NoDBTestCase):"},{"line_number":95,"context_line":"    def _test_actions(self, actions, method_translations\u003d{}):"},{"line_number":96,"context_line":"        for action in actions:"},{"line_number":97,"context_line":"            method \u003d method_translations.get(action)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BNmw%3D","line":94,"in_reply_to":"AAAAUH%2F%2BRMQ%3D","updated":"2014-01-29 02:41:26.000000000","message":"yea I\u0027d rather any conversion like this to be done in a separate patch. This series is really a minimalistic code refactor","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8c1f0b07bc1c831884eaac1602a1db33e81cc429","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013-2014 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUH%2F%2BH2k%3D","line":1,"updated":"2014-01-29 22:50:37.000000000","message":"fix?","commit_id":"074466e238ab55ebe9dceac56aea8b097547eaa2"}],"nova/tests/api/openstack/compute/plugins/v3/test_admin_actions.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"68d763b8c52fbf5cb179b3d70cf9ff73487eac03","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from nova.tests import fake_instance"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class CommonMixin(object):"},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(CommonMixin, self).setUp()"},{"line_number":34,"context_line":"        self.controller \u003d admin_actions.AdminActionsController()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Bbc0%3D","line":31,"updated":"2013-11-26 07:57:22.000000000","message":"This can be deleted. you have already moved it to admin_only_action_common.py","commit_id":"8dff50635f7af8f80b89041ae5f7e63b7ab91bf6"}],"nova/tests/api/openstack/compute/plugins/v3/test_lock_server.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4538d947f1d435e0c91b1dceb53e0da83b8f6b54","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2FgcM%3D","line":1,"updated":"2014-01-13 07:43:47.000000000","message":"ditto","commit_id":"da66db92bd14a49e40e6dfde3945d65b4c873ba7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BRDI%3D","line":1,"updated":"2014-01-28 15:25:23.000000000","message":"remove vim header","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BRDE%3D","line":2,"updated":"2014-01-28 15:25:23.000000000","message":"2014?","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        self.mox.ReplayAll()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        res \u003d self._make_request(\u0027/servers/%s/action\u0027 % instance[\u0027uuid\u0027],"},{"line_number":56,"context_line":"                                 {\u0027unlock\u0027: None})"},{"line_number":57,"context_line":"        self.assertEqual(403, res.status_int)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BQ9M%3D","line":55,"updated":"2014-01-28 15:25:23.000000000","message":"Treat instance like an object, which it is, so instance.uuid.  That will enforce the object usage.","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"9e17289298616b158d616b2fd1369e2a75aa722a","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        self.mox.ReplayAll()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        res \u003d self._make_request(\u0027/servers/%s/action\u0027 % instance[\u0027uuid\u0027],"},{"line_number":56,"context_line":"                                 {\u0027unlock\u0027: None})"},{"line_number":57,"context_line":"        self.assertEqual(403, res.status_int)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BNVY%3D","line":55,"in_reply_to":"AAAAUH%2F%2BQ9M%3D","updated":"2014-01-29 02:41:26.000000000","message":"Done","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"}],"nova/tests/fake_policy.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"68d763b8c52fbf5cb179b3d70cf9ff73487eac03","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    \"compute_extension:admin_actions:unpause\": \"\","},{"line_number":109,"context_line":"    \"compute_extension:admin_actions:suspend\": \"\","},{"line_number":110,"context_line":"    \"compute_extension:admin_actions:resume\": \"\","},{"line_number":111,"context_line":"    \"compute_extension:admin_actions:lock\": \"\","},{"line_number":112,"context_line":"    \"compute_extension:admin_actions:unlock\": \"\","},{"line_number":113,"context_line":"    \"compute_extension:admin_actions:resetNetwork\": \"\","},{"line_number":114,"context_line":"    \"compute_extension:admin_actions:injectNetworkInfo\": \"\","}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Bb2Y%3D","line":111,"updated":"2013-11-26 07:57:22.000000000","message":"this can be deleted","commit_id":"8dff50635f7af8f80b89041ae5f7e63b7ab91bf6"}],"nova/tests/integrated/v3/test_lock_server.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4538d947f1d435e0c91b1dceb53e0da83b8f6b54","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2Fgb8%3D","line":1,"updated":"2014-01-13 07:43:47.000000000","message":"ditto","commit_id":"da66db92bd14a49e40e6dfde3945d65b4c873ba7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BQ7Q%3D","line":1,"updated":"2014-01-28 15:25:23.000000000","message":"remove vim header","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9788ba9c8a8847de957599100c02b0fb32fea8cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2BQ7M%3D","line":2,"updated":"2014-01-28 15:25:23.000000000","message":"2014","commit_id":"b770b1ed9116bfdbe79f4efbf74dbc8f7914f6f0"}]}
