)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"450930988837ed5c56d907d2117149e9df784405","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Nova server to ref cloud-config resources in user_data"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"With this change is is now possible to do boot-time cloud-init configuration using"},{"line_number":10,"context_line":"some combination of OS::Heat::MultipartMime, OS::Heat::CloudConfig or"},{"line_number":11,"context_line":"OS::Heat::SoftwareConfig."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F93Lc%3D","line":9,"updated":"2014-02-03 07:05:46.000000000","message":"Obviously not a blocking problem,  but I think it\u0027s suppose to be \"it is\" instead of \"is is\".\n\nIf you end up doing another patchset then you can fix the commit message. Other then that awesome, nice and detailed and as someone new to the project greatly explained. I\u0027m relatively new to openstack development, and may use your commit messages as a guide in the future.","commit_id":"83b1e039f34205c20188bcf37faa34c30cc5350e"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"33342b0fa38819ef68e17b86edf41bce19b71220","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Nova server to ref cloud-config resources in user_data"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"With this change is is now possible to do boot-time cloud-init configuration using"},{"line_number":10,"context_line":"some combination of OS::Heat::MultipartMime, OS::Heat::CloudConfig or"},{"line_number":11,"context_line":"OS::Heat::SoftwareConfig."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F9r4g%3D","line":9,"in_reply_to":"AAAAUH%2F93Lc%3D","updated":"2014-02-05 00:29:19.000000000","message":"Done","commit_id":"83b1e039f34205c20188bcf37faa34c30cc5350e"}],"heat/engine/resources/server.py":[{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"8b09e85ad057c835412461821effb1983c684eea","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        user_data_format \u003d self.properties.get(self.USER_DATA_FORMAT)"},{"line_number":290,"context_line":"        ud_content \u003d self.properties.get(self.USER_DATA, \u0027\u0027)"},{"line_number":291,"context_line":"        if self.is_user_data_raw and uuidutils.is_uuid_like(ud_content):"},{"line_number":292,"context_line":"            # attempt to load the userdata from software config"},{"line_number":293,"context_line":"            try:"},{"line_number":294,"context_line":"                ud_content \u003d sc.SoftwareConfig.get_software_config("}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2Fjpg%3D","line":291,"updated":"2014-02-12 11:27:59.000000000","message":"nit, but changing the property name to user_data_is_raw would read a little better.","commit_id":"faafadba4a36e4a821bb682418184db4bb8c4340"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"af6134944f563529e7cdad885a50758fb67323d8","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        user_data_format \u003d self.properties.get(self.USER_DATA_FORMAT)"},{"line_number":290,"context_line":"        ud_content \u003d self.properties.get(self.USER_DATA, \u0027\u0027)"},{"line_number":291,"context_line":"        if self.is_user_data_raw and uuidutils.is_uuid_like(ud_content):"},{"line_number":292,"context_line":"            # attempt to load the userdata from software config"},{"line_number":293,"context_line":"            try:"},{"line_number":294,"context_line":"                ud_content \u003d sc.SoftwareConfig.get_software_config("}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2B90o%3D","line":291,"in_reply_to":"AAAAUX%2F%2Fjpg%3D","updated":"2014-02-17 23:13:51.000000000","message":"Done","commit_id":"faafadba4a36e4a821bb682418184db4bb8c4340"},{"author":{"_account_id":7395,"name":"Andrew Plunk","email":"andrew.plunk@rackspace.com","username":"aplunk"},"change_message_id":"f4153c16606b5d423da6a690bbb961500e52e5c8","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        return self.properties.get(self.KEY_NAME)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    @property"},{"line_number":290,"context_line":"    def user_data_raw(self):"},{"line_number":291,"context_line":"        return self.properties.get(self.USER_DATA_FORMAT) \u003d\u003d \u0027RAW\u0027"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def handle_create(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2BgwA%3D","line":290,"updated":"2014-02-20 19:31:35.000000000","message":"This seems unusual because I would expect an @property to expose a piece of system data, rather than to test equality of that piece of data.","commit_id":"e8f454ed4bd99e1e7ea0f6a41c271e190041fe76"},{"author":{"_account_id":7395,"name":"Andrew Plunk","email":"andrew.plunk@rackspace.com","username":"aplunk"},"change_message_id":"f4153c16606b5d423da6a690bbb961500e52e5c8","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    @property"},{"line_number":290,"context_line":"    def user_data_raw(self):"},{"line_number":291,"context_line":"        return self.properties.get(self.USER_DATA_FORMAT) \u003d\u003d \u0027RAW\u0027"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def handle_create(self):"},{"line_number":294,"context_line":"        security_groups \u003d self.properties.get(self.SECURITY_GROUPS)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2Bgvo%3D","line":291,"updated":"2014-02-20 19:31:35.000000000","message":"The hard coded string \u0027RAW\u0027 here needs to be made into a constant.","commit_id":"e8f454ed4bd99e1e7ea0f6a41c271e190041fe76"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"f21941a4d5d38df3061f50f7fb87a66f8af33a35","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        security_groups \u003d self.properties.get(self.SECURITY_GROUPS)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        user_data_format \u003d self.properties.get(self.USER_DATA_FORMAT)"},{"line_number":297,"context_line":"        ud_content \u003d self.properties.get(self.USER_DATA, \u0027\u0027)"},{"line_number":298,"context_line":"        if self.user_data_raw and uuidutils.is_uuid_like(ud_content):"},{"line_number":299,"context_line":"            # attempt to load the userdata from software config"},{"line_number":300,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2Bu8Y%3D","line":297,"updated":"2014-02-19 13:35:16.000000000","message":"Please don\u0027t pass a default to get, as it\u0027s ignored and can be confusing.","commit_id":"e8f454ed4bd99e1e7ea0f6a41c271e190041fe76"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"3e27890b94dbcec74a30cf1e04b3d2b92a31077d","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        # This method is overridden by the derived CloudServer resource"},{"line_number":309,"context_line":"        return self.properties.get(self.KEY_NAME)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    def user_data_raw(self):"},{"line_number":312,"context_line":"        return self.properties.get(self.USER_DATA_FORMAT) \u003d\u003d \u0027RAW\u0027"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    def handle_create(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAVn%2F%2Fngg%3D","line":311,"updated":"2014-03-05 01:52:25.000000000","message":"should probably be called \"is_user_data_raw\"","commit_id":"15fc2af0aee403cd5a541d6d1d219d6daa5d0339"}],"heat/tests/test_server.py":[{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"8b09e85ad057c835412461821effb1983c684eea","unresolved":false,"context_lines":[{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        server.t \u003d server.stack.resolve_runtime_data(server.t)"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"        self.m.StubOutWithMock(self.fc.servers, \u0027create\u0027)"},{"line_number":473,"context_line":"        self.fc.servers.create("},{"line_number":474,"context_line":"            image\u003d744, flavor\u003d3, key_name\u003d\u0027test\u0027,"},{"line_number":475,"context_line":"            name\u003dutils.PhysName(stack_name, server.name),"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2Fjos%3D","line":472,"updated":"2014-02-12 11:27:59.000000000","message":"Not a big deal but if there are more test_*_userdata tests coming, we might want to refactor the stubbing into a common function to reduce duplication?","commit_id":"faafadba4a36e4a821bb682418184db4bb8c4340"},{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"7913ce26bfd807f525874aa99e060f4921727f48","unresolved":false,"context_lines":[{"line_number":358,"context_line":"            userdata\u003d\u0027wordpress\u0027, scheduler_hints\u003dNone,"},{"line_number":359,"context_line":"            meta\u003dNone, nics\u003dNone, availability_zone\u003dNone,"},{"line_number":360,"context_line":"            block_device_mapping\u003dNone, config_drive\u003dNone,"},{"line_number":361,"context_line":"            disk_config\u003dNone, reservation_id\u003dNone, files\u003d{}).AndReturn("},{"line_number":362,"context_line":"                return_server)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"        self.m.ReplayAll()"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAVn%2F%2FwX4%3D","line":361,"updated":"2014-03-04 09:12:11.000000000","message":"I think this test case needs to pass an admin_test now because of commit 1a642b67","commit_id":"b103f5acb8a6370d87580eff453e55db2c2f14de"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"d70ba471d7163ad18b7088d0fa4f94ecedb4b57f","unresolved":false,"context_lines":[{"line_number":358,"context_line":"            userdata\u003d\u0027wordpress\u0027, scheduler_hints\u003dNone,"},{"line_number":359,"context_line":"            meta\u003dNone, nics\u003dNone, availability_zone\u003dNone,"},{"line_number":360,"context_line":"            block_device_mapping\u003dNone, config_drive\u003dNone,"},{"line_number":361,"context_line":"            disk_config\u003dNone, reservation_id\u003dNone, files\u003d{}).AndReturn("},{"line_number":362,"context_line":"                return_server)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"        self.m.ReplayAll()"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAVn%2F%2FqlI%3D","line":361,"in_reply_to":"AAAAVn%2F%2FwX4%3D","updated":"2014-03-04 19:19:55.000000000","message":"ugh, rebase fail","commit_id":"b103f5acb8a6370d87580eff453e55db2c2f14de"}]}
