)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"e16640354982fc15524bab917459e273d8e62f42","unresolved":false,"context_lines":[{"line_number":14,"context_line":"version of the code."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This solution was suggested by Boris Pavlovic on IRC:"},{"line_number":17,"context_line":"    http://irclog.perlgeek.de/openstack-rally/2016-01-26\\#i_11940881"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I4fdf926d483d253831ba39400983b5138886fc32"},{"line_number":20,"context_line":"Closes-bug: #1538341"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a5de9d1_ef99d120","line":17,"updated":"2016-01-27 10:42:06.000000000","message":"Glad to see such links in commit msg its the best praсtice to link to discussion in the msg\u003d)","commit_id":"481783a8881ae6e46f6bafc371e88806f2ca79c7"}],"rally/task/validation.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f045eb7247ab8222318678f33e0fabd0deb5c4a3","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    try:"},{"line_number":256,"context_line":"        image_id \u003d types.ImageResourceType.transform("},{"line_number":257,"context_line":"            clients\u003dclients, resource_config\u003dimage_args)"},{"line_number":258,"context_line":"        image \u003d clients.glance().images.get(image\u003dimage_id).to_dict()"},{"line_number":259,"context_line":"        return (ValidationResult(True), image)"},{"line_number":260,"context_line":"    except (glance_exc.HTTPNotFound, exceptions.InvalidScenarioArgument):"},{"line_number":261,"context_line":"        message \u003d _(\"Image \u0027%s\u0027 not found\") % image_args"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_8f813dfe","line":258,"updated":"2016-01-27 10:40:12.000000000","message":"I think that other option to add default values if there is no such keys better to do in one place. Here.\nif \"min_ram\" not in image:\n  image[\"min_ram\"] \u003d 0\nAfter such lines seems like we could in lines 352,358,363 just remove \u0027or 0\u0027 and left image[\"..\"]","commit_id":"481783a8881ae6e46f6bafc371e88806f2ca79c7"},{"author":{"_account_id":20294,"name":"Kyle Jorgensen","email":"kyle.jorgensen@workday.com","username":"kyle.jorgensen"},"change_message_id":"d3778eed273dee69405a152201115d742d925100","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    try:"},{"line_number":256,"context_line":"        image_id \u003d types.ImageResourceType.transform("},{"line_number":257,"context_line":"            clients\u003dclients, resource_config\u003dimage_args)"},{"line_number":258,"context_line":"        image \u003d clients.glance().images.get(image\u003dimage_id).to_dict()"},{"line_number":259,"context_line":"        return (ValidationResult(True), image)"},{"line_number":260,"context_line":"    except (glance_exc.HTTPNotFound, exceptions.InvalidScenarioArgument):"},{"line_number":261,"context_line":"        message \u003d _(\"Image \u0027%s\u0027 not found\") % image_args"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_a452fa11","line":258,"in_reply_to":"7a5de9d1_2a6d7b04","updated":"2016-01-27 21:17:59.000000000","message":"I tested this locally and it resulted in a unit test error, see output here http://pastebin.com/qwPKxBra\n\nI would prefer not to affect the unit tests so I will try an alternate solution","commit_id":"481783a8881ae6e46f6bafc371e88806f2ca79c7"},{"author":{"_account_id":20294,"name":"Kyle Jorgensen","email":"kyle.jorgensen@workday.com","username":"kyle.jorgensen"},"change_message_id":"12db5c6b3aa43b54e2dfb7fc16cde8c64bcc2e72","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    try:"},{"line_number":256,"context_line":"        image_id \u003d types.ImageResourceType.transform("},{"line_number":257,"context_line":"            clients\u003dclients, resource_config\u003dimage_args)"},{"line_number":258,"context_line":"        image \u003d clients.glance().images.get(image\u003dimage_id).to_dict()"},{"line_number":259,"context_line":"        return (ValidationResult(True), image)"},{"line_number":260,"context_line":"    except (glance_exc.HTTPNotFound, exceptions.InvalidScenarioArgument):"},{"line_number":261,"context_line":"        message \u003d _(\"Image \u0027%s\u0027 not found\") % image_args"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_2a6d7b04","line":258,"in_reply_to":"7a5de9d1_8f813dfe","updated":"2016-01-27 19:16:19.000000000","message":"Thanks, I think that would be a good solution. Do you think any change would be required in lines 250, 251, 252?","commit_id":"481783a8881ae6e46f6bafc371e88806f2ca79c7"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"8605f6c4539408b20d11a252848f875454031ac8","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    try:"},{"line_number":256,"context_line":"        image_id \u003d types.ImageResourceType.transform("},{"line_number":257,"context_line":"            clients\u003dclients, resource_config\u003dimage_args)"},{"line_number":258,"context_line":"        image \u003d clients.glance().images.get(image\u003dimage_id).to_dict()"},{"line_number":259,"context_line":"        return (ValidationResult(True), image)"},{"line_number":260,"context_line":"    except (glance_exc.HTTPNotFound, exceptions.InvalidScenarioArgument):"},{"line_number":261,"context_line":"        message \u003d _(\"Image \u0027%s\u0027 not found\") % image_args"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_c7b0558e","line":258,"in_reply_to":"7a5de9d1_a452fa11","updated":"2016-01-27 23:56:05.000000000","message":"Of course you should change test. You must to write tests to you code, not code to the tests! And please change order of assertEqual args that you will change its wrong.","commit_id":"481783a8881ae6e46f6bafc371e88806f2ca79c7"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"133c40a1c9c7df14f726d029d3cdb79ae8aab616","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    if not valid_result.is_valid:"},{"line_number":350,"context_line":"        return valid_result"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    if flavor.ram \u003c (image.get(\"min_ram\", 0)):"},{"line_number":353,"context_line":"        message \u003d _(\"The memory size for flavor \u0027%s\u0027 is too small \""},{"line_number":354,"context_line":"                    \"for requested image \u0027%s\u0027\") % (flavor.id, image[\"id\"])"},{"line_number":355,"context_line":"        return ValidationResult(False, message)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_d42eafa4","line":352,"updated":"2016-01-27 04:10:03.000000000","message":"see http://logs.openstack.org/65/272865/1/check/gate-rally-python34/03625a2/testr_results.html.gz\n\nthe value of image[\"min_ram\"] is None here","commit_id":"481783a8881ae6e46f6bafc371e88806f2ca79c7"},{"author":{"_account_id":20294,"name":"Kyle Jorgensen","email":"kyle.jorgensen@workday.com","username":"kyle.jorgensen"},"change_message_id":"12db5c6b3aa43b54e2dfb7fc16cde8c64bcc2e72","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    if not valid_result.is_valid:"},{"line_number":350,"context_line":"        return valid_result"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    if flavor.ram \u003c (image.get(\"min_ram\", 0)):"},{"line_number":353,"context_line":"        message \u003d _(\"The memory size for flavor \u0027%s\u0027 is too small \""},{"line_number":354,"context_line":"                    \"for requested image \u0027%s\u0027\") % (flavor.id, image[\"id\"])"},{"line_number":355,"context_line":"        return ValidationResult(False, message)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_6a4a9385","line":352,"in_reply_to":"7a5de9d1_c02289b9","updated":"2016-01-27 19:16:19.000000000","message":"Got my answer here http://irclog.perlgeek.de/openstack-rally/2016-01-27#i_11949591","commit_id":"481783a8881ae6e46f6bafc371e88806f2ca79c7"},{"author":{"_account_id":20294,"name":"Kyle Jorgensen","email":"kyle.jorgensen@workday.com","username":"kyle.jorgensen"},"change_message_id":"573677bf4c756d310565e081cb9aad9d66fe778a","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    if not valid_result.is_valid:"},{"line_number":350,"context_line":"        return valid_result"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    if flavor.ram \u003c (image.get(\"min_ram\", 0)):"},{"line_number":353,"context_line":"        message \u003d _(\"The memory size for flavor \u0027%s\u0027 is too small \""},{"line_number":354,"context_line":"                    \"for requested image \u0027%s\u0027\") % (flavor.id, image[\"id\"])"},{"line_number":355,"context_line":"        return ValidationResult(False, message)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_c02289b9","line":352,"in_reply_to":"9a68dd71_6887e4d7","updated":"2016-01-27 18:58:35.000000000","message":"Can someone help me understand why that test failed? Shouldn\u0027t the second parameter, 0, provide the default value when image[\"min_ram\"] is None? \n\nhttps://docs.python.org/3/library/stdtypes.html#dict.get","commit_id":"481783a8881ae6e46f6bafc371e88806f2ca79c7"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"67141234aa660b0881542a3ec089bf3590293a8c","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    if not valid_result.is_valid:"},{"line_number":350,"context_line":"        return valid_result"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    if flavor.ram \u003c (image.get(\"min_ram\", 0)):"},{"line_number":353,"context_line":"        message \u003d _(\"The memory size for flavor \u0027%s\u0027 is too small \""},{"line_number":354,"context_line":"                    \"for requested image \u0027%s\u0027\") % (flavor.id, image[\"id\"])"},{"line_number":355,"context_line":"        return ValidationResult(False, message)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_6887e4d7","line":352,"in_reply_to":"9a68dd71_d42eafa4","updated":"2016-01-27 07:10:08.000000000","message":"So basically, \n\nimage.get(\"min_ram\", 0) or 0","commit_id":"481783a8881ae6e46f6bafc371e88806f2ca79c7"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"88c04c8f8918e003af0a40139c3edfc82ea4232a","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        image_id \u003d types.ImageResourceType.transform("},{"line_number":257,"context_line":"            clients\u003dclients, resource_config\u003dimage_args)"},{"line_number":258,"context_line":"        image \u003d clients.glance().images.get(image\u003dimage_id).to_dict()"},{"line_number":259,"context_line":"        # Ensure default values to prevent errors in image_valid_on_flavor"},{"line_number":260,"context_line":"        if \"size\" not in image:"},{"line_number":261,"context_line":"            image[\"size\"] \u003d 0"},{"line_number":262,"context_line":"        if \"min_ram\" not in image:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_a8fe1669","line":259,"updated":"2016-01-28 19:45:05.000000000","message":"This should be NOTE. But I prefer to remove it, its obvious comment. Better to remove it. Its nit.","commit_id":"b459d551d028c2f53bfc6a982fe957be792ff9cd"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"ff06d9af7810848dc57cc9c6fa528d4bb199020a","unresolved":false,"context_lines":[{"line_number":356,"context_line":"    if not valid_result.is_valid:"},{"line_number":357,"context_line":"        return valid_result"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    if flavor.ram \u003c (image[\"min_ram\"]):"},{"line_number":360,"context_line":"        message \u003d _(\"The memory size for flavor \u0027%s\u0027 is too small \""},{"line_number":361,"context_line":"                    \"for requested image \u0027%s\u0027\") % (flavor.id, image[\"id\"])"},{"line_number":362,"context_line":"        return ValidationResult(False, message)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_c6133eb7","line":359,"updated":"2016-01-28 21:38:00.000000000","message":"These parentheses are no longer necessary. Same below.","commit_id":"b459d551d028c2f53bfc6a982fe957be792ff9cd"},{"author":{"_account_id":20294,"name":"Kyle Jorgensen","email":"kyle.jorgensen@workday.com","username":"kyle.jorgensen"},"change_message_id":"fc151f6dfce52202eb51e3698ef05e4eee004747","unresolved":false,"context_lines":[{"line_number":356,"context_line":"    if not valid_result.is_valid:"},{"line_number":357,"context_line":"        return valid_result"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    if flavor.ram \u003c (image[\"min_ram\"]):"},{"line_number":360,"context_line":"        message \u003d _(\"The memory size for flavor \u0027%s\u0027 is too small \""},{"line_number":361,"context_line":"                    \"for requested image \u0027%s\u0027\") % (flavor.id, image[\"id\"])"},{"line_number":362,"context_line":"        return ValidationResult(False, message)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_86b78685","line":359,"in_reply_to":"7a5de9d1_c6133eb7","updated":"2016-01-28 22:09:59.000000000","message":"Thanks, I\u0027ll clean it up","commit_id":"b459d551d028c2f53bfc6a982fe957be792ff9cd"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"5617812e7dd090a99814ac8b539ffdba6fba4768","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        image_id \u003d types.ImageResourceType.transform("},{"line_number":257,"context_line":"            clients\u003dclients, resource_config\u003dimage_args)"},{"line_number":258,"context_line":"        image \u003d clients.glance().images.get(image\u003dimage_id).to_dict()"},{"line_number":259,"context_line":"        if \"size\" not in image:"},{"line_number":260,"context_line":"            image[\"size\"] \u003d 0"},{"line_number":261,"context_line":"        if \"min_ram\" not in image:"},{"line_number":262,"context_line":"            image[\"min_ram\"] \u003d 0"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_31803546","line":259,"range":{"start_line":259,"start_character":22,"end_line":259,"end_character":24},"updated":"2016-01-29 10:10:25.000000000","message":"This won\u0027t help in case when image \u003d {\"size\": None}\nIn such case None would be kept and in Line 358 again None is going to be compared with a number.\n\nProper solution would be \n\nif not image.get(\"size\"):\n    image[\"size\"] \u003d 0\n\n\nOr we can put line 358 as \n\nif flavor.ram \u003c image.get(\"min_ram\") or 0:\n ...\n\nI believe this variant was already considered and it does not really look pythonic, but at least it works.\n(PS I deliberately omitted \u00270\u0027 in image.get(...) cause if \u0027get\u0027 returns \u0027None\u0027 it will be \u0027ORed\u0027 and we get 0 anyway.","commit_id":"9ff2b4e2977c148fb8e84c3bf2511ad2a35b3ca8"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"433b7fa26bcb7c3e7ca3443fb96c126b8fde0a2a","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        image_id \u003d types.ImageResourceType.transform("},{"line_number":257,"context_line":"            clients\u003dclients, resource_config\u003dimage_args)"},{"line_number":258,"context_line":"        image \u003d clients.glance().images.get(image\u003dimage_id).to_dict()"},{"line_number":259,"context_line":"        if \"size\" not in image:"},{"line_number":260,"context_line":"            image[\"size\"] \u003d 0"},{"line_number":261,"context_line":"        if \"min_ram\" not in image:"},{"line_number":262,"context_line":"            image[\"min_ram\"] \u003d 0"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_a4292539","line":259,"range":{"start_line":259,"start_character":22,"end_line":259,"end_character":24},"in_reply_to":"7a5de9d1_31803546","updated":"2016-01-29 20:24:36.000000000","message":"As I understand it can\u0027t None. https://github.com/openstack/glance/blob/master/glance/db/sqlalchemy/models.py#L128 https://github.com/openstack/glance/blob/master/glance/db/sqlalchemy/api.py#L304","commit_id":"9ff2b4e2977c148fb8e84c3bf2511ad2a35b3ca8"},{"author":{"_account_id":20294,"name":"Kyle Jorgensen","email":"kyle.jorgensen@workday.com","username":"kyle.jorgensen"},"change_message_id":"e89e9b32c6fcf45a3692dcfebc6053b365914fc8","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        image_id \u003d types.ImageResourceType.transform("},{"line_number":257,"context_line":"            clients\u003dclients, resource_config\u003dimage_args)"},{"line_number":258,"context_line":"        image \u003d clients.glance().images.get(image\u003dimage_id).to_dict()"},{"line_number":259,"context_line":"        if \"size\" not in image:"},{"line_number":260,"context_line":"            image[\"size\"] \u003d 0"},{"line_number":261,"context_line":"        if \"min_ram\" not in image:"},{"line_number":262,"context_line":"            image[\"min_ram\"] \u003d 0"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_0de1479a","line":259,"range":{"start_line":259,"start_character":22,"end_line":259,"end_character":24},"in_reply_to":"7a5de9d1_31803546","updated":"2016-01-29 17:11:09.000000000","message":"Good catch. I\u0027ll go with your \"proper solution\"","commit_id":"9ff2b4e2977c148fb8e84c3bf2511ad2a35b3ca8"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"eede53322104e19403e5b66b8f9b7408825be53b","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        image_id \u003d types.ImageResourceType.transform("},{"line_number":257,"context_line":"            clients\u003dclients, resource_config\u003dimage_args)"},{"line_number":258,"context_line":"        image \u003d clients.glance().images.get(image\u003dimage_id).to_dict()"},{"line_number":259,"context_line":"        if not image.get(\"size\"):"},{"line_number":260,"context_line":"            image[\"size\"] \u003d 0"},{"line_number":261,"context_line":"        if not image.get(\"min_ram\"):"},{"line_number":262,"context_line":"            image[\"min_ram\"] \u003d 0"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_b26b35f1","line":259,"updated":"2016-02-02 13:35:42.000000000","message":"I would recommend using setdefault() for such operations\n\nref. https://docs.python.org/2/library/stdtypes.html#dict.setdefault","commit_id":"11e584b12fa16c739a03a0f4c39f942a01f50e90"}],"tests/unit/task/test_validation.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"88c04c8f8918e003af0a40139c3edfc82ea4232a","unresolved":false,"context_lines":[{"line_number":265,"context_line":"                                                 clients, \"a\")"},{"line_number":266,"context_line":"        self.assertTrue(result[0].is_valid, result[0].msg)"},{"line_number":267,"context_line":"        self.assertEqual(result[1], {\"image\": \"image_id\", \"min_disk\": 0,"},{"line_number":268,"context_line":"                                     \"min_ram\": 0, \"size\": 0})"},{"line_number":269,"context_line":"        mock_image_resource_type_transform.assert_called_once_with("},{"line_number":270,"context_line":"            clients\u003dclients, resource_config\u003d\"test\")"},{"line_number":271,"context_line":"        clients.glance().images.get.assert_called_with(image\u003d\"image_id\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_c80fd286","line":268,"updated":"2016-01-28 19:45:05.000000000","message":"Please change order. Its wrong here. \nself.assertEqual({\"image\": \"image_id\", \"min_disk\": 0,\"min_ram\": 0, \"size\": 0}, result[1])","commit_id":"b459d551d028c2f53bfc6a982fe957be792ff9cd"},{"author":{"_account_id":20294,"name":"Kyle Jorgensen","email":"kyle.jorgensen@workday.com","username":"kyle.jorgensen"},"change_message_id":"fc151f6dfce52202eb51e3698ef05e4eee004747","unresolved":false,"context_lines":[{"line_number":265,"context_line":"                                                 clients, \"a\")"},{"line_number":266,"context_line":"        self.assertTrue(result[0].is_valid, result[0].msg)"},{"line_number":267,"context_line":"        self.assertEqual(result[1], {\"image\": \"image_id\", \"min_disk\": 0,"},{"line_number":268,"context_line":"                                     \"min_ram\": 0, \"size\": 0})"},{"line_number":269,"context_line":"        mock_image_resource_type_transform.assert_called_once_with("},{"line_number":270,"context_line":"            clients\u003dclients, resource_config\u003d\"test\")"},{"line_number":271,"context_line":"        clients.glance().images.get.assert_called_with(image\u003d\"image_id\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_067956f6","line":268,"in_reply_to":"7a5de9d1_c80fd286","updated":"2016-01-28 22:09:59.000000000","message":"Ah I see now, I was confused at first about what you meant about the ordering. I will fix it.","commit_id":"b459d551d028c2f53bfc6a982fe957be792ff9cd"},{"author":{"_account_id":20294,"name":"Kyle Jorgensen","email":"kyle.jorgensen@workday.com","username":"kyle.jorgensen"},"change_message_id":"fc151f6dfce52202eb51e3698ef05e4eee004747","unresolved":false,"context_lines":[{"line_number":476,"context_line":"        }"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        # test ram"},{"line_number":479,"context_line":"        image[\"min_ram\"] \u003d None"},{"line_number":480,"context_line":"        result \u003d validator(config, clients, None)"},{"line_number":481,"context_line":"        self.assertTrue(result.is_valid, result.msg)"},{"line_number":482,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_8113f065","line":479,"updated":"2016-01-28 22:09:59.000000000","message":"Roman, this line is causing a failure in the unit tests, since I took the \u0027or 0\u0027 out of the code. Should this be left to explicitly test image[\"min_ram\"] \u003d None? Or perhaps should it be set to image[\"min_ram\"] \u003d 0?","commit_id":"b459d551d028c2f53bfc6a982fe957be792ff9cd"},{"author":{"_account_id":20294,"name":"Kyle Jorgensen","email":"kyle.jorgensen@workday.com","username":"kyle.jorgensen"},"change_message_id":"982573821ef1cc3a3764c41ae7dd0ffcb1953e7b","unresolved":false,"context_lines":[{"line_number":428,"context_line":"        # test ram"},{"line_number":429,"context_line":"        flavor.disk \u003d None"},{"line_number":430,"context_line":"        flavor.ram \u003d 2"},{"line_number":431,"context_line":"        image[\"min_ram\"] \u003d None"},{"line_number":432,"context_line":"        result \u003d validator(None, None, None)"},{"line_number":433,"context_line":"        self.assertTrue(result.is_valid, result.msg)"},{"line_number":434,"context_line":"        image[\"min_ram\"] \u003d 4"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_128bcdc4","line":431,"updated":"2016-01-29 00:40:31.000000000","message":"Seem to have missed another instance where image[\"min_ram\"] \u003d None. I will remove, because after Roman\u0027s suggestion, it can\u0027t be \u0027None\u0027 any more.","commit_id":"bc51d0f6180ff22d0d327a74c49a2d52554c64fa"}]}
