)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19912,"name":"Xuanzhou Perry Dong","email":"oss_xzdong@163.com","username":"oss_xzdong"},"change_message_id":"e252f3b975b8a164c58d61e868a9c3ec95e06aaf","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Return HTTP 400 for invalid server-group uuid"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova API checks that the value of the group scheduler hint"},{"line_number":10,"context_line":"shall be a valid server-group uuid, however it was not done by custom"},{"line_number":11,"context_line":"code not jsonschema. Moreover the exception was not handled by the API"},{"line_number":12,"context_line":"so it caused that HTTP 500 is returned if the group hint wasn\u0027t a valid"},{"line_number":13,"context_line":"uuid of an existing server group."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a5de9d1_efb15f90","line":10,"range":{"start_line":10,"start_character":36,"end_line":10,"end_character":68},"updated":"2016-01-29 07:07:21.000000000","message":"Should it be changed to the following: however it was done by custom....","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Return HTTP 400 for invalid server-group uuid"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova API checks that the value of the group scheduler hint"},{"line_number":10,"context_line":"shall be a valid server-group uuid, however it was not done by custom"},{"line_number":11,"context_line":"code not jsonschema. Moreover the exception was not handled by the API"},{"line_number":12,"context_line":"so it caused that HTTP 500 is returned if the group hint wasn\u0027t a valid"},{"line_number":13,"context_line":"uuid of an existing server group."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a5de9d1_5103d50d","line":10,"range":{"start_line":10,"start_character":36,"end_line":10,"end_character":68},"in_reply_to":"7a5de9d1_efb15f90","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6883ab2df6854f826ccbccc96bb060c5af38d213","unresolved":false,"context_lines":[{"line_number":12,"context_line":"so it caused that HTTP 500 is returned if the group hint wasn\u0027t a valid"},{"line_number":13,"context_line":"uuid of an existing server group."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This patch move the checks to jsonschema and adds proper exception"},{"line_number":16,"context_line":"handling."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Closes-bug: #1535759"},{"line_number":19,"context_line":"Change-Id: I38d98c74f6cceed5b4becf9ed67f7189cba479fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a5de9d1_a89608ee","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":9},"updated":"2016-01-29 01:48:40.000000000","message":"hi Balazs, I think you will say you have add a new exception exception.InstanceGroupNotFound handler in REST API layer.","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":12,"context_line":"so it caused that HTTP 500 is returned if the group hint wasn\u0027t a valid"},{"line_number":13,"context_line":"uuid of an existing server group."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This patch move the checks to jsonschema and adds proper exception"},{"line_number":16,"context_line":"handling."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Closes-bug: #1535759"},{"line_number":19,"context_line":"Change-Id: I38d98c74f6cceed5b4becf9ed67f7189cba479fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a5de9d1_f1076116","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":9},"in_reply_to":"7a5de9d1_a89608ee","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"}],"nova/api/openstack/compute/legacy_v2/servers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"19e30e71ca7a86373dd2656de144eafe71bdd927","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    exception.InstanceExists: exc.HTTPConflict,"},{"line_number":85,"context_line":"    exception.NoUniqueMatch: exc.HTTPConflict,"},{"line_number":86,"context_line":"    exception.Invalid: exc.HTTPBadRequest,"},{"line_number":87,"context_line":"    exception.InvalidInput: exc.HTTPBadRequest,"},{"line_number":88,"context_line":"}"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"CREATE_EXCEPTIONS_MSGS \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_55dfdc0c","line":87,"range":{"start_line":87,"start_character":46,"end_line":87,"end_character":47},"updated":"2016-02-05 01:27:52.000000000","message":"InvalidInput is already taken care by L86.\n\nIn previoud comment i meant to add InstanceGroupNotFound here.\n\nSorry for not clear about comment.","commit_id":"2cf6f9e473109447d4c5d20d539ff6672c66bf99"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"824ee74bbeaf453aa8572adf152378d6cccdfa6a","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    exception.InstanceExists: exc.HTTPConflict,"},{"line_number":85,"context_line":"    exception.NoUniqueMatch: exc.HTTPConflict,"},{"line_number":86,"context_line":"    exception.Invalid: exc.HTTPBadRequest,"},{"line_number":87,"context_line":"    exception.InvalidInput: exc.HTTPBadRequest,"},{"line_number":88,"context_line":"}"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"CREATE_EXCEPTIONS_MSGS \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_973eaf8a","line":87,"range":{"start_line":87,"start_character":46,"end_line":87,"end_character":47},"in_reply_to":"5a5ae5dd_55dfdc0c","updated":"2016-02-05 09:02:20.000000000","message":"Done","commit_id":"2cf6f9e473109447d4c5d20d539ff6672c66bf99"}],"nova/api/openstack/compute/schemas/scheduler_hints.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"261b335208c6ece12888fc149e606d02cd27ea89","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        \u0027group\u0027: {"},{"line_number":22,"context_line":"            # NOTE: The value of \u0027group\u0027 is stored to value which is"},{"line_number":23,"context_line":"            # defined as varchar(255) in instance_system_metadata table."},{"line_number":24,"context_line":"            \u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 255,"},{"line_number":25,"context_line":"            \u0027format\u0027: \u0027uuid\u0027"},{"line_number":26,"context_line":"        },"},{"line_number":27,"context_line":"        \u0027different_host\u0027: {"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_9a685289","line":24,"range":{"start_line":24,"start_character":30,"end_line":24,"end_character":47},"updated":"2016-01-28 15:28:13.000000000","message":"\u0027format\u0027: \u0027uuid\u0027 will ensure the maxLength. so this is useless also.","commit_id":"428a1361b1c33b1eb8d3fffb001e5fc1a150dc02"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"261b335208c6ece12888fc149e606d02cd27ea89","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            # NOTE: The value of \u0027group\u0027 is stored to value which is"},{"line_number":23,"context_line":"            # defined as varchar(255) in instance_system_metadata table."},{"line_number":24,"context_line":"            \u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 255,"},{"line_number":25,"context_line":"            \u0027format\u0027: \u0027uuid\u0027"},{"line_number":26,"context_line":"        },"},{"line_number":27,"context_line":"        \u0027different_host\u0027: {"},{"line_number":28,"context_line":"            # NOTE: The value of \u0027different_host\u0027 is the set of server"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_1a7222ae","line":25,"range":{"start_line":25,"start_character":12,"end_line":25,"end_character":28},"updated":"2016-01-28 15:28:13.000000000","message":"if we check this in the schema, then check at here https://github.com/openstack/nova/blob/master/nova/compute/api.py#L1034 is useless anymore","commit_id":"428a1361b1c33b1eb8d3fffb001e5fc1a150dc02"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e4cdaecc912c4372757cfef5b5161c553391c8c0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"            # NOTE: The value of \u0027group\u0027 is stored to value which is"},{"line_number":23,"context_line":"            # defined as varchar(255) in instance_system_metadata table."},{"line_number":24,"context_line":"            \u0027type\u0027: \u0027string\u0027, \u0027maxLength\u0027: 255,"},{"line_number":25,"context_line":"            \u0027format\u0027: \u0027uuid\u0027"},{"line_number":26,"context_line":"        },"},{"line_number":27,"context_line":"        \u0027different_host\u0027: {"},{"line_number":28,"context_line":"            # NOTE: The value of \u0027different_host\u0027 is the set of server"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_e8e640b3","line":25,"range":{"start_line":25,"start_character":12,"end_line":25,"end_character":28},"in_reply_to":"7a5de9d1_1a7222ae","updated":"2016-01-29 02:56:50.000000000","message":"For v2.1 yes, but we have to keep that for legacy v2. Once we will remove legacy code there will lot of cleanup like this.","commit_id":"428a1361b1c33b1eb8d3fffb001e5fc1a150dc02"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"814cdc3c362a2df187da63db45b7cba0523efe44","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    \u0027properties\u0027: {"},{"line_number":21,"context_line":"        \u0027group\u0027: {"},{"line_number":22,"context_line":"            # NOTE: The value of \u0027group\u0027 is stored to value which is"},{"line_number":23,"context_line":"            # defined as varchar(255) in instance_system_metadata table."},{"line_number":24,"context_line":"            \u0027format\u0027: \u0027uuid\u0027"},{"line_number":25,"context_line":"        },"},{"line_number":26,"context_line":"        \u0027different_host\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_feb59a30","line":23,"range":{"start_line":23,"start_character":71,"end_line":23,"end_character":72},"updated":"2016-01-29 02:56:12.000000000","message":"This comment can be modified or removed now","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    \u0027properties\u0027: {"},{"line_number":21,"context_line":"        \u0027group\u0027: {"},{"line_number":22,"context_line":"            # NOTE: The value of \u0027group\u0027 is stored to value which is"},{"line_number":23,"context_line":"            # defined as varchar(255) in instance_system_metadata table."},{"line_number":24,"context_line":"            \u0027format\u0027: \u0027uuid\u0027"},{"line_number":25,"context_line":"        },"},{"line_number":26,"context_line":"        \u0027different_host\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_8101093c","line":23,"range":{"start_line":23,"start_character":71,"end_line":23,"end_character":72},"in_reply_to":"7a5de9d1_feb59a30","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"814cdc3c362a2df187da63db45b7cba0523efe44","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        \u0027group\u0027: {"},{"line_number":22,"context_line":"            # NOTE: The value of \u0027group\u0027 is stored to value which is"},{"line_number":23,"context_line":"            # defined as varchar(255) in instance_system_metadata table."},{"line_number":24,"context_line":"            \u0027format\u0027: \u0027uuid\u0027"},{"line_number":25,"context_line":"        },"},{"line_number":26,"context_line":"        \u0027different_host\u0027: {"},{"line_number":27,"context_line":"            # NOTE: The value of \u0027different_host\u0027 is the set of server"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_72d561b7","line":24,"range":{"start_line":24,"start_character":27,"end_line":24,"end_character":28},"updated":"2016-01-29 02:56:12.000000000","message":"Need type also here - \n \u0027type\u0027: \u0027string\u0027,\n \u0027format\u0027: \u0027uuid\u0027\n\nonly format works as we have customized formatChecker for UUID and oslo does return false in case of non string.\nBut as per json schema if format does not understand type it will validate success. SO in case we start using json schema formatChecker then it might be issue.","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        \u0027group\u0027: {"},{"line_number":22,"context_line":"            # NOTE: The value of \u0027group\u0027 is stored to value which is"},{"line_number":23,"context_line":"            # defined as varchar(255) in instance_system_metadata table."},{"line_number":24,"context_line":"            \u0027format\u0027: \u0027uuid\u0027"},{"line_number":25,"context_line":"        },"},{"line_number":26,"context_line":"        \u0027different_host\u0027: {"},{"line_number":27,"context_line":"            # NOTE: The value of \u0027different_host\u0027 is the set of server"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_a1fe8536","line":24,"range":{"start_line":24,"start_character":27,"end_line":24,"end_character":28},"in_reply_to":"7a5de9d1_72d561b7","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"261b335208c6ece12888fc149e606d02cd27ea89","unresolved":false,"context_lines":[{"line_number":658,"context_line":"                exception.FixedIpNotFoundForAddress,"},{"line_number":659,"context_line":"                exception.FlavorDiskTooSmall,"},{"line_number":660,"context_line":"                exception.FlavorMemoryTooSmall,"},{"line_number":661,"context_line":"                exception.InvalidInput,"},{"line_number":662,"context_line":"                exception.InvalidMetadata,"},{"line_number":663,"context_line":"                exception.InvalidRequest,"},{"line_number":664,"context_line":"                exception.InvalidVolume,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_daab2ad5","line":661,"range":{"start_line":661,"start_character":16,"end_line":661,"end_character":39},"updated":"2016-01-28 15:28:13.000000000","message":"after we remove the https://github.com/openstack/nova/blob/master/nova/compute/api.py#L1034  this is useless also.","commit_id":"428a1361b1c33b1eb8d3fffb001e5fc1a150dc02"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"814cdc3c362a2df187da63db45b7cba0523efe44","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                exception.ImageNUMATopologyCPUDuplicates,"},{"line_number":690,"context_line":"                exception.ImageNUMATopologyCPUsUnassigned,"},{"line_number":691,"context_line":"                exception.ImageNUMATopologyMemoryOutOfRange,"},{"line_number":692,"context_line":"                exception.InstanceGroupNotFound) as error:"},{"line_number":693,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.format_message())"},{"line_number":694,"context_line":"        except (exception.PortInUse,"},{"line_number":695,"context_line":"                exception.InstanceExists,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_de78def4","line":692,"range":{"start_line":692,"start_character":57,"end_line":692,"end_character":58},"updated":"2016-01-29 02:56:12.000000000","message":"Nice catch. We have same issue of InstanceGroupNotFound in v2 also.\n\nplease this in for v2 code too and its unit tests.\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/legacy_v2/servers.py#L86","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                exception.ImageNUMATopologyCPUDuplicates,"},{"line_number":690,"context_line":"                exception.ImageNUMATopologyCPUsUnassigned,"},{"line_number":691,"context_line":"                exception.ImageNUMATopologyMemoryOutOfRange,"},{"line_number":692,"context_line":"                exception.InstanceGroupNotFound) as error:"},{"line_number":693,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.format_message())"},{"line_number":694,"context_line":"        except (exception.PortInUse,"},{"line_number":695,"context_line":"                exception.InstanceExists,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_cea96592","line":692,"range":{"start_line":692,"start_character":57,"end_line":692,"end_character":58},"in_reply_to":"7a5de9d1_de78def4","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"}],"nova/compute/api.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"814cdc3c362a2df187da63db45b7cba0523efe44","unresolved":false,"context_lines":[{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"        if not uuidutils.is_uuid_like(group_hint):"},{"line_number":1024,"context_line":"            msg \u003d _(\u0027Server group scheduler hint must be a UUID.\u0027)"},{"line_number":1025,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"        return objects.InstanceGroup.get_by_uuid(context, group_hint)"},{"line_number":1028,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_d2abf51b","side":"PARENT","line":1025,"range":{"start_line":1025,"start_character":51,"end_line":1025,"end_character":52},"updated":"2016-01-29 02:56:12.000000000","message":"Actually this is needed for legacy v2 API. There is no schema validation so till we support legacy v2 we need to keep this.","commit_id":"440f2a834fd41a6c6c2419bc4501fef6bc7dd226"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"        if not uuidutils.is_uuid_like(group_hint):"},{"line_number":1024,"context_line":"            msg \u003d _(\u0027Server group scheduler hint must be a UUID.\u0027)"},{"line_number":1025,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":"        return objects.InstanceGroup.get_by_uuid(context, group_hint)"},{"line_number":1028,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_fc2426b3","side":"PARENT","line":1025,"range":{"start_line":1025,"start_character":51,"end_line":1025,"end_character":52},"in_reply_to":"7a5de9d1_d2abf51b","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"440f2a834fd41a6c6c2419bc4501fef6bc7dd226"}],"nova/tests/unit/api/openstack/compute/test_scheduler_hints.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"814cdc3c362a2df187da63db45b7cba0523efe44","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        self.assertEqual(202, res.status_int)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def test_create_server_with_group_hint(self):"},{"line_number":101,"context_line":"        self._test_create_server_with_hint({\u0027group\u0027: UUID})"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def test_create_server_with_different_host_hint(self):"},{"line_number":104,"context_line":"        self._test_create_server_with_hint("}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_52138566","line":101,"range":{"start_line":101,"start_character":57,"end_line":101,"end_character":59},"updated":"2016-01-29 02:56:12.000000000","message":"We can add new tests for non UUID group-\n\ndef test_create_server_with_non_uuid_group_hint(self):         \n self._create_server_with_scheduler_hints_bad_request({\u0027group\u0027: UUID})\n\nWhich should run for both v2 and v21. v21 tests can run as it written above but for v2, you need to mock create and raise InvalidInput as it will try to fetch the images etc before that uuid check.","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        self.assertEqual(202, res.status_int)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def test_create_server_with_group_hint(self):"},{"line_number":101,"context_line":"        self._test_create_server_with_hint({\u0027group\u0027: UUID})"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def test_create_server_with_different_host_hint(self):"},{"line_number":104,"context_line":"        self._test_create_server_with_hint("}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_63c08a2b","line":101,"range":{"start_line":101,"start_character":57,"end_line":101,"end_character":59},"in_reply_to":"7a5de9d1_52138566","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b0e14210dd5ec444044675a80a805f336c83ec68","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_create_server_with_non_uuid_group_hint(self):"},{"line_number":105,"context_line":"        self._create_server_with_scheduler_hints_bad_request("},{"line_number":106,"context_line":"                {\u0027group\u0027: \u0027group-name\u0027})"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def test_create_server_with_different_host_hint(self):"},{"line_number":109,"context_line":"        self._test_create_server_with_hint("}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_3f118904","line":106,"range":{"start_line":106,"start_character":27,"end_line":106,"end_character":37},"updated":"2016-02-08 08:39:07.000000000","message":"How about \u0027non-uuid\u0027 instead of \u0027group-name\u0027 for easy understanding ?","commit_id":"dce29810b2bb2a336f31a06800fe3dfee4e83c28"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e62fc5e302804efdc76fcedd0b7e05097d8ef928","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_create_server_with_non_uuid_group_hint(self):"},{"line_number":105,"context_line":"        self._create_server_with_scheduler_hints_bad_request("},{"line_number":106,"context_line":"                {\u0027group\u0027: \u0027group-name\u0027})"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def test_create_server_with_different_host_hint(self):"},{"line_number":109,"context_line":"        self._test_create_server_with_hint("}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_046d54cb","line":106,"range":{"start_line":106,"start_character":27,"end_line":106,"end_character":37},"in_reply_to":"5a5ae5dd_3f118904","updated":"2016-02-08 13:12:05.000000000","message":"Done","commit_id":"dce29810b2bb2a336f31a06800fe3dfee4e83c28"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b0e14210dd5ec444044675a80a805f336c83ec68","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    def test_create_server_with_non_uuid_group_hint(self, mock_create):"},{"line_number":172,"context_line":"        mock_create.side_effect \u003d exception.InvalidInput(reason\u003d\u0027\u0027)"},{"line_number":173,"context_line":"        self._create_server_with_scheduler_hints_bad_request("},{"line_number":174,"context_line":"                {\u0027group\u0027: \u0027group-name\u0027})"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"class ServersControllerCreateTestV21(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_9f02fdb2","line":174,"range":{"start_line":174,"start_character":26,"end_line":174,"end_character":38},"updated":"2016-02-08 08:39:07.000000000","message":"ditto","commit_id":"dce29810b2bb2a336f31a06800fe3dfee4e83c28"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e62fc5e302804efdc76fcedd0b7e05097d8ef928","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    def test_create_server_with_non_uuid_group_hint(self, mock_create):"},{"line_number":172,"context_line":"        mock_create.side_effect \u003d exception.InvalidInput(reason\u003d\u0027\u0027)"},{"line_number":173,"context_line":"        self._create_server_with_scheduler_hints_bad_request("},{"line_number":174,"context_line":"                {\u0027group\u0027: \u0027group-name\u0027})"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"class ServersControllerCreateTestV21(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_846144d5","line":174,"range":{"start_line":174,"start_character":26,"end_line":174,"end_character":38},"in_reply_to":"5a5ae5dd_9f02fdb2","updated":"2016-02-08 13:12:05.000000000","message":"Done","commit_id":"dce29810b2bb2a336f31a06800fe3dfee4e83c28"}],"nova/tests/unit/api/openstack/compute/test_serversV21.py":[{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6883ab2df6854f826ccbccc96bb060c5af38d213","unresolved":false,"context_lines":[{"line_number":3121,"context_line":"        def fake_instance_destroy(context, uuid, constraint):"},{"line_number":3122,"context_line":"            return fakes.stub_instance(1)"},{"line_number":3123,"context_line":""},{"line_number":3124,"context_line":"        self.stubs.Set(db, \u0027instance_destroy\u0027, fake_instance_destroy)"},{"line_number":3125,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3126,"context_line":"            \u0027group\u0027: \u00275b674f73-c8cf-40ef-9965-3b6fe4b304b1\u0027}"},{"line_number":3127,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_c8cb441d","line":3124,"range":{"start_line":3124,"start_character":0,"end_line":3124,"end_character":69},"updated":"2016-01-29 01:48:40.000000000","message":"I think we should mock instead of stubs, there is a blue print to address already, we should not involve more mox stuff, https://blueprints.launchpad.net/openstack/?searchtext\u003dremove-mox","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":3121,"context_line":"        def fake_instance_destroy(context, uuid, constraint):"},{"line_number":3122,"context_line":"            return fakes.stub_instance(1)"},{"line_number":3123,"context_line":""},{"line_number":3124,"context_line":"        self.stubs.Set(db, \u0027instance_destroy\u0027, fake_instance_destroy)"},{"line_number":3125,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3126,"context_line":"            \u0027group\u0027: \u00275b674f73-c8cf-40ef-9965-3b6fe4b304b1\u0027}"},{"line_number":3127,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_a373e2e6","line":3124,"range":{"start_line":3124,"start_character":0,"end_line":3124,"end_character":69},"in_reply_to":"7a5de9d1_c8cb441d","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"814cdc3c362a2df187da63db45b7cba0523efe44","unresolved":false,"context_lines":[{"line_number":3125,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3126,"context_line":"            \u0027group\u0027: \u00275b674f73-c8cf-40ef-9965-3b6fe4b304b1\u0027}"},{"line_number":3127,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3128,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":3129,"context_line":"                          self.controller.create, self.req, body\u003dself.body)"},{"line_number":3130,"context_line":""},{"line_number":3131,"context_line":"    def test_create_instance_with_group_hint_wrong_uuid_format(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_7eb8cae5","line":3128,"range":{"start_line":3128,"start_character":50,"end_line":3128,"end_character":51},"updated":"2016-01-29 02:56:12.000000000","message":"This bad request is from somewhere else.\n\nYou should mock db-\u003einstance_group_get and raise exception.InstanceGroupNotFound","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":3125,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3126,"context_line":"            \u0027group\u0027: \u00275b674f73-c8cf-40ef-9965-3b6fe4b304b1\u0027}"},{"line_number":3127,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3128,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":3129,"context_line":"                          self.controller.create, self.req, body\u003dself.body)"},{"line_number":3130,"context_line":""},{"line_number":3131,"context_line":"    def test_create_instance_with_group_hint_wrong_uuid_format(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_4e6b3586","line":3128,"range":{"start_line":3128,"start_character":50,"end_line":3128,"end_character":51},"in_reply_to":"7a5de9d1_7eb8cae5","updated":"2016-02-02 15:58:58.000000000","message":"I think it shall throw HTTPBadRequest as the test calls self.controller.create which translates the exception (added in this patch).","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6883ab2df6854f826ccbccc96bb060c5af38d213","unresolved":false,"context_lines":[{"line_number":3132,"context_line":"        def fake_instance_destroy(context, uuid, constraint):"},{"line_number":3133,"context_line":"            return fakes.stub_instance(1)"},{"line_number":3134,"context_line":""},{"line_number":3135,"context_line":"        self.stubs.Set(db, \u0027instance_destroy\u0027, fake_instance_destroy)"},{"line_number":3136,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3137,"context_line":"            \u0027group\u0027: \u0027my-group\u0027}"},{"line_number":3138,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_68d250d4","line":3135,"range":{"start_line":3135,"start_character":0,"end_line":3135,"end_character":69},"updated":"2016-01-29 01:48:40.000000000","message":"ditto","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":3132,"context_line":"        def fake_instance_destroy(context, uuid, constraint):"},{"line_number":3133,"context_line":"            return fakes.stub_instance(1)"},{"line_number":3134,"context_line":""},{"line_number":3135,"context_line":"        self.stubs.Set(db, \u0027instance_destroy\u0027, fake_instance_destroy)"},{"line_number":3136,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3137,"context_line":"            \u0027group\u0027: \u0027my-group\u0027}"},{"line_number":3138,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_c3337e61","line":3135,"range":{"start_line":3135,"start_character":0,"end_line":3135,"end_character":69},"in_reply_to":"7a5de9d1_00fb70c2","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"814cdc3c362a2df187da63db45b7cba0523efe44","unresolved":false,"context_lines":[{"line_number":3132,"context_line":"        def fake_instance_destroy(context, uuid, constraint):"},{"line_number":3133,"context_line":"            return fakes.stub_instance(1)"},{"line_number":3134,"context_line":""},{"line_number":3135,"context_line":"        self.stubs.Set(db, \u0027instance_destroy\u0027, fake_instance_destroy)"},{"line_number":3136,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3137,"context_line":"            \u0027group\u0027: \u0027my-group\u0027}"},{"line_number":3138,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_de045ec1","line":3135,"range":{"start_line":3135,"start_character":0,"end_line":3135,"end_character":69},"in_reply_to":"7a5de9d1_68d250d4","updated":"2016-01-29 02:56:12.000000000","message":"I do not think we need mock or stub here as schema will raise error before going into db layer","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"f9582699fdbfa4e1334de981cb2347b37986c10d","unresolved":false,"context_lines":[{"line_number":3132,"context_line":"        def fake_instance_destroy(context, uuid, constraint):"},{"line_number":3133,"context_line":"            return fakes.stub_instance(1)"},{"line_number":3134,"context_line":""},{"line_number":3135,"context_line":"        self.stubs.Set(db, \u0027instance_destroy\u0027, fake_instance_destroy)"},{"line_number":3136,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3137,"context_line":"            \u0027group\u0027: \u0027my-group\u0027}"},{"line_number":3138,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_00fb70c2","line":3135,"range":{"start_line":3135,"start_character":0,"end_line":3135,"end_character":69},"in_reply_to":"7a5de9d1_de045ec1","updated":"2016-01-29 03:17:25.000000000","message":"+1, @gmann you are right ,we don\u0027t need the mock here.","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"19e30e71ca7a86373dd2656de144eafe71bdd927","unresolved":false,"context_lines":[{"line_number":3128,"context_line":"                          self.controller.create, self.req, body\u003dself.body)"},{"line_number":3129,"context_line":""},{"line_number":3130,"context_line":"    def test_create_instance_with_group_hint_wrong_uuid_format(self):"},{"line_number":3131,"context_line":"        def fake_instance_destroy(context, uuid, constraint):"},{"line_number":3132,"context_line":"            return fakes.stub_instance(1)"},{"line_number":3133,"context_line":""},{"line_number":3134,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3135,"context_line":"            \u0027group\u0027: \u0027my-group\u0027}"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_95b79439","line":3132,"range":{"start_line":3131,"start_character":0,"end_line":3132,"end_character":41},"updated":"2016-02-05 01:27:52.000000000","message":"This can be removed","commit_id":"2cf6f9e473109447d4c5d20d539ff6672c66bf99"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"824ee74bbeaf453aa8572adf152378d6cccdfa6a","unresolved":false,"context_lines":[{"line_number":3128,"context_line":"                          self.controller.create, self.req, body\u003dself.body)"},{"line_number":3129,"context_line":""},{"line_number":3130,"context_line":"    def test_create_instance_with_group_hint_wrong_uuid_format(self):"},{"line_number":3131,"context_line":"        def fake_instance_destroy(context, uuid, constraint):"},{"line_number":3132,"context_line":"            return fakes.stub_instance(1)"},{"line_number":3133,"context_line":""},{"line_number":3134,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3135,"context_line":"            \u0027group\u0027: \u0027my-group\u0027}"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_370d7be8","line":3132,"range":{"start_line":3131,"start_character":0,"end_line":3132,"end_character":41},"in_reply_to":"5a5ae5dd_95b79439","updated":"2016-02-05 09:02:20.000000000","message":"Done","commit_id":"2cf6f9e473109447d4c5d20d539ff6672c66bf99"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b0e14210dd5ec444044675a80a805f336c83ec68","unresolved":false,"context_lines":[{"line_number":3129,"context_line":""},{"line_number":3130,"context_line":"    def test_create_instance_with_group_hint_wrong_uuid_format(self):"},{"line_number":3131,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3132,"context_line":"            \u0027group\u0027: \u0027my-group\u0027}"},{"line_number":3133,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3134,"context_line":"        self.assertRaises(exception.ValidationError,"},{"line_number":3135,"context_line":"                          self.controller.create, self.req, body\u003dself.body)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_df239554","line":3132,"range":{"start_line":3132,"start_character":21,"end_line":3132,"end_character":31},"updated":"2016-02-08 08:39:07.000000000","message":"ditto","commit_id":"dce29810b2bb2a336f31a06800fe3dfee4e83c28"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e62fc5e302804efdc76fcedd0b7e05097d8ef928","unresolved":false,"context_lines":[{"line_number":3129,"context_line":""},{"line_number":3130,"context_line":"    def test_create_instance_with_group_hint_wrong_uuid_format(self):"},{"line_number":3131,"context_line":"        self.body[\u0027os:scheduler_hints\u0027] \u003d {"},{"line_number":3132,"context_line":"            \u0027group\u0027: \u0027my-group\u0027}"},{"line_number":3133,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3134,"context_line":"        self.assertRaises(exception.ValidationError,"},{"line_number":3135,"context_line":"                          self.controller.create, self.req, body\u003dself.body)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_44610ca8","line":3132,"range":{"start_line":3132,"start_character":21,"end_line":3132,"end_character":31},"in_reply_to":"5a5ae5dd_df239554","updated":"2016-02-08 13:12:05.000000000","message":"Done","commit_id":"dce29810b2bb2a336f31a06800fe3dfee4e83c28"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"814cdc3c362a2df187da63db45b7cba0523efe44","unresolved":false,"context_lines":[{"line_number":7836,"context_line":"                self.context,"},{"line_number":7837,"context_line":"                inst_type,"},{"line_number":7838,"context_line":"                self.fake_image[\u0027id\u0027],"},{"line_number":7839,"context_line":"                scheduler_hints\u003d{\u0027group\u0027: \u0027groupname\u0027})"},{"line_number":7840,"context_line":""},{"line_number":7841,"context_line":"    def test_destroy_instance_disassociates_security_groups(self):"},{"line_number":7842,"context_line":"        # Make sure destroying disassociates security groups."}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_7ee1aafd","line":7839,"range":{"start_line":7839,"start_character":52,"end_line":7839,"end_character":55},"updated":"2016-01-29 02:56:12.000000000","message":"as we need to keep python validation code in api.py I feel we should keep the original tests and add new one for InstanceGroupNotFound","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9e7eb3905146687cc53a0b5a5a9f67267fcf4099","unresolved":false,"context_lines":[{"line_number":7836,"context_line":"                self.context,"},{"line_number":7837,"context_line":"                inst_type,"},{"line_number":7838,"context_line":"                self.fake_image[\u0027id\u0027],"},{"line_number":7839,"context_line":"                scheduler_hints\u003d{\u0027group\u0027: \u0027groupname\u0027})"},{"line_number":7840,"context_line":""},{"line_number":7841,"context_line":"    def test_destroy_instance_disassociates_security_groups(self):"},{"line_number":7842,"context_line":"        # Make sure destroying disassociates security groups."}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_a992e39d","line":7839,"range":{"start_line":7839,"start_character":52,"end_line":7839,"end_character":55},"in_reply_to":"7a5de9d1_7ee1aafd","updated":"2016-02-02 15:58:58.000000000","message":"Done","commit_id":"b806107ebc2f9e1a53d86a578196a7eaad3ddcf6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"19e30e71ca7a86373dd2656de144eafe71bdd927","unresolved":false,"context_lines":[{"line_number":7840,"context_line":"                scheduler_hints\u003d{\u0027group\u0027: \u0027groupname\u0027})"},{"line_number":7841,"context_line":""},{"line_number":7842,"context_line":"    def test_instance_create_with_group_uuid_fails_group_not_exist(self):"},{"line_number":7843,"context_line":"        self.stubs.Set(fake_image._FakeImageService, \u0027show\u0027, self.fake_show)"},{"line_number":7844,"context_line":""},{"line_number":7845,"context_line":"        inst_type \u003d flavors.get_default_flavor()"},{"line_number":7846,"context_line":"        self.assertRaises("}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_9518f41f","line":7843,"range":{"start_line":7843,"start_character":75,"end_line":7843,"end_character":76},"updated":"2016-02-05 01:27:52.000000000","message":"As you need to re spin, We should use mock instead of stub as we are changing all those. For new tests we should use mock","commit_id":"2cf6f9e473109447d4c5d20d539ff6672c66bf99"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"824ee74bbeaf453aa8572adf152378d6cccdfa6a","unresolved":false,"context_lines":[{"line_number":7840,"context_line":"                scheduler_hints\u003d{\u0027group\u0027: \u0027groupname\u0027})"},{"line_number":7841,"context_line":""},{"line_number":7842,"context_line":"    def test_instance_create_with_group_uuid_fails_group_not_exist(self):"},{"line_number":7843,"context_line":"        self.stubs.Set(fake_image._FakeImageService, \u0027show\u0027, self.fake_show)"},{"line_number":7844,"context_line":""},{"line_number":7845,"context_line":"        inst_type \u003d flavors.get_default_flavor()"},{"line_number":7846,"context_line":"        self.assertRaises("}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_4de504da","line":7843,"range":{"start_line":7843,"start_character":75,"end_line":7843,"end_character":76},"in_reply_to":"5a5ae5dd_9518f41f","updated":"2016-02-05 09:02:20.000000000","message":"Done","commit_id":"2cf6f9e473109447d4c5d20d539ff6672c66bf99"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b0e14210dd5ec444044675a80a805f336c83ec68","unresolved":false,"context_lines":[{"line_number":7837,"context_line":"                self.context,"},{"line_number":7838,"context_line":"                inst_type,"},{"line_number":7839,"context_line":"                self.fake_image[\u0027id\u0027],"},{"line_number":7840,"context_line":"                scheduler_hints\u003d{\u0027group\u0027: \u0027groupname\u0027})"},{"line_number":7841,"context_line":""},{"line_number":7842,"context_line":"    def test_instance_create_with_group_uuid_fails_group_not_exist(self):"},{"line_number":7843,"context_line":"        self.stub_out(\u0027nova.tests.unit.image.fake._FakeImageService.show\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_5fd6c528","line":7840,"range":{"start_line":7840,"start_character":42,"end_line":7840,"end_character":53},"updated":"2016-02-08 08:39:07.000000000","message":"ditto","commit_id":"dce29810b2bb2a336f31a06800fe3dfee4e83c28"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e62fc5e302804efdc76fcedd0b7e05097d8ef928","unresolved":false,"context_lines":[{"line_number":7837,"context_line":"                self.context,"},{"line_number":7838,"context_line":"                inst_type,"},{"line_number":7839,"context_line":"                self.fake_image[\u0027id\u0027],"},{"line_number":7840,"context_line":"                scheduler_hints\u003d{\u0027group\u0027: \u0027groupname\u0027})"},{"line_number":7841,"context_line":""},{"line_number":7842,"context_line":"    def test_instance_create_with_group_uuid_fails_group_not_exist(self):"},{"line_number":7843,"context_line":"        self.stub_out(\u0027nova.tests.unit.image.fake._FakeImageService.show\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_0425545a","line":7840,"range":{"start_line":7840,"start_character":42,"end_line":7840,"end_character":53},"in_reply_to":"5a5ae5dd_5fd6c528","updated":"2016-02-08 13:12:05.000000000","message":"Done","commit_id":"dce29810b2bb2a336f31a06800fe3dfee4e83c28"}]}
