)]}'
{"nova/api/openstack/compute/schemas/user_data.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c365aa1759a9c015b25985e095b09ed665c77b4","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    \u0027user_data\u0027: {"},{"line_number":17,"context_line":"        \u0027oneOf\u0027: ["},{"line_number":18,"context_line":"            {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027base64\u0027},"},{"line_number":19,"context_line":"            {\u0027type\u0027: \u0027null\u0027},"},{"line_number":20,"context_line":"        ],"},{"line_number":21,"context_line":"    },"},{"line_number":22,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_4a5a9b50","line":19,"range":{"start_line":19,"start_character":12,"end_line":19,"end_character":29},"updated":"2016-05-19 13:48:21.000000000","message":"Can we add a note that this is only for v2.0 compat and we should microversion this out at some point.","commit_id":"8042d194cf5440b12fb51976804cc3c24d79a978"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01c5652a5780cc04e3c412586bba5150df191fc2","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    \u0027user_data\u0027: {"},{"line_number":17,"context_line":"        \u0027oneOf\u0027: ["},{"line_number":18,"context_line":"            {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027base64\u0027},"},{"line_number":19,"context_line":"            {\u0027type\u0027: \u0027null\u0027},"},{"line_number":20,"context_line":"        ],"},{"line_number":21,"context_line":"    },"},{"line_number":22,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_6d869966","line":19,"range":{"start_line":19,"start_character":12,"end_line":19,"end_character":29},"in_reply_to":"bab6814e_4a5a9b50","updated":"2016-05-19 13:50:29.000000000","message":"aren\u0027t we saying here that we will just allow null for everyone?\n\nas its loosing a restriction, that seems fine.","commit_id":"8042d194cf5440b12fb51976804cc3c24d79a978"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"a6af01812cf827ba916cb2f014a31bb9c80f09ca","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    \u0027user_data\u0027: {"},{"line_number":17,"context_line":"        \u0027oneOf\u0027: ["},{"line_number":18,"context_line":"            {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027base64\u0027},"},{"line_number":19,"context_line":"            {\u0027type\u0027: \u0027null\u0027},"},{"line_number":20,"context_line":"        ],"},{"line_number":21,"context_line":"    },"},{"line_number":22,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_d58ba6c1","line":19,"range":{"start_line":19,"start_character":12,"end_line":19,"end_character":29},"in_reply_to":"bab6814e_5a14059f","updated":"2016-05-20 02:50:18.000000000","message":"From my/operators\u0027 perspective, this is reasonable.  When filing the bug, I had no expectation that the v2.1 behavior should be changed.","commit_id":"8042d194cf5440b12fb51976804cc3c24d79a978"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"528e4b7450e937d07878f8715d4334dfc348096a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    \u0027user_data\u0027: {"},{"line_number":17,"context_line":"        \u0027oneOf\u0027: ["},{"line_number":18,"context_line":"            {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027base64\u0027},"},{"line_number":19,"context_line":"            {\u0027type\u0027: \u0027null\u0027},"},{"line_number":20,"context_line":"        ],"},{"line_number":21,"context_line":"    },"},{"line_number":22,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_769dba58","line":19,"range":{"start_line":19,"start_character":12,"end_line":19,"end_character":29},"in_reply_to":"bab6814e_6d869966","updated":"2016-05-19 17:12:19.000000000","message":"Yeah, if specified, the value is either None, or a base64 string. The None thing is for v2.0 compat and we should microversion that out at some point (we have other cases like this in the schema for v2.1 where we have a TODO to do a microversion later to make the schema more restrictive, we just can\u0027t on v2.1 because of v2.0 compat).","commit_id":"8042d194cf5440b12fb51976804cc3c24d79a978"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e50374426649275cad609bc0a555ac4647ae82fb","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    \u0027user_data\u0027: {"},{"line_number":17,"context_line":"        \u0027oneOf\u0027: ["},{"line_number":18,"context_line":"            {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027base64\u0027},"},{"line_number":19,"context_line":"            {\u0027type\u0027: \u0027null\u0027},"},{"line_number":20,"context_line":"        ],"},{"line_number":21,"context_line":"    },"},{"line_number":22,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_5a14059f","line":19,"range":{"start_line":19,"start_character":12,"end_line":19,"end_character":29},"in_reply_to":"bab6814e_769dba58","updated":"2016-05-20 02:11:59.000000000","message":"yea, if \u0027null\u0027 value isn\u0027t very critical for any use-case, i\u0027m ok with this fix only for v2.0 compat. And I will doc it in the api-ref, to note this is a little bit v2.1 not compat with legacy v2.","commit_id":"8042d194cf5440b12fb51976804cc3c24d79a978"}],"nova/tests/unit/api/openstack/compute/test_user_data.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c365aa1759a9c015b25985e095b09ed665c77b4","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertIsNone(kwargs[\u0027user_data\u0027])"},{"line_number":196,"context_line":"            return old_create(*args, **kwargs)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        self.stubs.Set(compute_api.API, \u0027create\u0027, create)"},{"line_number":199,"context_line":"        params \u003d {user_data.ATTRIBUTE_NAME: None}"},{"line_number":200,"context_line":"        self._test_create_extra(params)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_0d154d3f","line":198,"range":{"start_line":198,"start_character":8,"end_line":198,"end_character":22},"updated":"2016-05-19 13:48:21.000000000","message":"Can we use mock of self.stubout or whatever it\u0027s called that doesn\u0027t use mox?","commit_id":"8042d194cf5440b12fb51976804cc3c24d79a978"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01c5652a5780cc04e3c412586bba5150df191fc2","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertIsNone(kwargs[\u0027user_data\u0027])"},{"line_number":196,"context_line":"            return old_create(*args, **kwargs)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        self.stubs.Set(compute_api.API, \u0027create\u0027, create)"},{"line_number":199,"context_line":"        params \u003d {user_data.ATTRIBUTE_NAME: None}"},{"line_number":200,"context_line":"        self._test_create_extra(params)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_6d9fb9b4","line":198,"range":{"start_line":198,"start_character":8,"end_line":198,"end_character":22},"in_reply_to":"bab6814e_0d154d3f","updated":"2016-05-19 13:50:29.000000000","message":"+1","commit_id":"8042d194cf5440b12fb51976804cc3c24d79a978"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e50374426649275cad609bc0a555ac4647ae82fb","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertIsNone(kwargs[\u0027user_data\u0027])"},{"line_number":196,"context_line":"            return old_create(*args, **kwargs)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        self.stubs.Set(compute_api.API, \u0027create\u0027, create)"},{"line_number":199,"context_line":"        params \u003d {user_data.ATTRIBUTE_NAME: None}"},{"line_number":200,"context_line":"        self._test_create_extra(params)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_1a19dd22","line":198,"range":{"start_line":198,"start_character":8,"end_line":198,"end_character":22},"in_reply_to":"bab6814e_6d9fb9b4","updated":"2016-05-20 02:11:59.000000000","message":"Done","commit_id":"8042d194cf5440b12fb51976804cc3c24d79a978"}]}
