)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4b0b3e053321a5c3b3de321b74500b037ecde647","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Priority is added to pick smaller flavors, m1.nano and m1.micro, for novaclient"},{"line_number":10,"context_line":"functional tests. Functional tests rely on devstack, which should use smaller"},{"line_number":11,"context_line":"flavors when available."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Iac75141a3d65b26a3093188ead1b7ed7c65514ad"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9ad45d7e_45297489","line":12,"updated":"2016-08-11 15:16:07.000000000","message":"Add this on it\u0027s own line:\n\nCloses-Bug: #1611985\n\nThat will link this fix to the launchpad bug and close it when this is approved.","commit_id":"86b646f11d089bff8f46104ef1f2e9219e0eb7f6"}],"novaclient/tests/functional/base.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"67dbaad9fcda6498a33f0536d1b88d24b450d83c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"# image / flavor list so that they can be used in standard testing."},{"line_number":52,"context_line":"def pick_flavor(flavors):"},{"line_number":53,"context_line":"    \"\"\"Given a flavor list pick a reasonable one.\"\"\""},{"line_number":54,"context_line":"    for flavor in flavors:"},{"line_number":55,"context_line":"        if flavor.name \u003d\u003d \u0027m1.nano\u0027:"},{"line_number":56,"context_line":"            return flavor"},{"line_number":57,"context_line":"    for flavor in flavors:"},{"line_number":58,"context_line":"        if flavor.name \u003d\u003d \u0027m1.micro\u0027:"},{"line_number":59,"context_line":"            return flavor"},{"line_number":60,"context_line":"    for flavor in flavors:"},{"line_number":61,"context_line":"        if flavor.name \u003d\u003d \u0027m1.tiny\u0027:"},{"line_number":62,"context_line":"            return flavor"},{"line_number":63,"context_line":"    for flavor in flavors:"},{"line_number":64,"context_line":"        if flavor.name \u003d\u003d \u0027m1.small\u0027:"},{"line_number":65,"context_line":"            return flavor"},{"line_number":66,"context_line":"    raise NoFlavorException()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_e55ce81a","line":65,"range":{"start_line":54,"start_character":4,"end_line":65,"end_character":25},"updated":"2016-08-11 15:17:16.000000000","message":"So while we\u0027re doing this, we could make this more DRY, like loop over the flavors and then have an inner loop over the flavor names in priority order, once we find a match we return.","commit_id":"86b646f11d089bff8f46104ef1f2e9219e0eb7f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c9521b9a43e9fe1523d9a18d5cd9f957647017d2","unresolved":false,"context_lines":[{"line_number":51,"context_line":"# image / flavor list so that they can be used in standard testing."},{"line_number":52,"context_line":"def pick_flavor(flavors):"},{"line_number":53,"context_line":"    \"\"\"Given a flavor list pick a reasonable one.\"\"\""},{"line_number":54,"context_line":"    for flavor in flavors:"},{"line_number":55,"context_line":"        if flavor.name \u003d\u003d \u0027m1.nano\u0027:"},{"line_number":56,"context_line":"            return flavor"},{"line_number":57,"context_line":"    for flavor in flavors:"},{"line_number":58,"context_line":"        if flavor.name \u003d\u003d \u0027m1.micro\u0027:"},{"line_number":59,"context_line":"            return flavor"},{"line_number":60,"context_line":"    for flavor in flavors:"},{"line_number":61,"context_line":"        if flavor.name \u003d\u003d \u0027m1.tiny\u0027:"},{"line_number":62,"context_line":"            return flavor"},{"line_number":63,"context_line":"    for flavor in flavors:"},{"line_number":64,"context_line":"        if flavor.name \u003d\u003d \u0027m1.small\u0027:"},{"line_number":65,"context_line":"            return flavor"},{"line_number":66,"context_line":"    raise NoFlavorException()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_05e77c40","line":65,"range":{"start_line":54,"start_character":4,"end_line":65,"end_character":25},"in_reply_to":"9ad45d7e_e55ce81a","updated":"2016-08-11 15:18:48.000000000","message":"I guess the order would actually have to be loop over the priority order first, then the inner loop is on the flavors, so:\n\n  for name in (\u0027m1.nano\u0027, \u0027m1.micro\u0027, ...):\n    for flavor in flavors:\n      if flavor.name \u003d\u003d name:\n        return flavor","commit_id":"86b646f11d089bff8f46104ef1f2e9219e0eb7f6"}]}
