)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7f7b40b4cd5146da65f194553ac2c408eeb03ac2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Before deleting and updating the flavor, check if the"},{"line_number":10,"context_line":"flavor has actually changed. Moreover, let the user"},{"line_number":11,"context_line":"choose what projects have access to the flavor removing"},{"line_number":12,"context_line":"the ones added by nova whren a non-public flavor is created"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I9e899c33177c18f6bb01f1e6c525e312045c647b"},{"line_number":15,"context_line":"Closes-Bug: #1291069"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAWn%2F%2F9vo%3D","line":12,"updated":"2014-04-08 08:05:51.000000000","message":"whren -\u003e when","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"54a64a212c172fc3d3603994a1f578b1a8fea790","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Before deleting and updating the flavor, check if the"},{"line_number":10,"context_line":"flavor has actually changed. Moreover, let the user"},{"line_number":11,"context_line":"choose what projects have access to the flavor removing"},{"line_number":12,"context_line":"the ones added by nova whren a non-public flavor is created"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I9e899c33177c18f6bb01f1e6c525e312045c647b"},{"line_number":15,"context_line":"Closes-Bug: #1291069"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAWn%2F%2F41E%3D","line":12,"in_reply_to":"AAAAWn%2F%2F9vo%3D","updated":"2014-04-08 17:55:56.000000000","message":"Done","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"}],"openstack_dashboard/dashboards/admin/flavors/tests.py":[{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"0c1da2fe18bd8885e218d30d4c3a2962e290495a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        params[\u0027is_public\u0027] \u003d False"},{"line_number":142,"context_line":"        api.nova.flavor_create(IsA(http.HttpRequest), **params) \\"},{"line_number":143,"context_line":"                .AndReturn(flavor)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        for project in projects:"},{"line_number":146,"context_line":"            api.nova.add_tenant_to_flavor(IsA(http.HttpRequest),"},{"line_number":147,"context_line":"                                              flavor.id, project.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_c9bc2d6f","line":144,"updated":"2014-06-27 12:54:06.000000000","message":"unneeded extra line","commit_id":"cac4f44391b986b52d114ee499798eac02b09e77"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"1aa36cb7539b937a219069e795e5aed3d699db13","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        params[\u0027is_public\u0027] \u003d False"},{"line_number":142,"context_line":"        api.nova.flavor_create(IsA(http.HttpRequest), **params) \\"},{"line_number":143,"context_line":"                .AndReturn(flavor)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        for project in projects:"},{"line_number":146,"context_line":"            api.nova.add_tenant_to_flavor(IsA(http.HttpRequest),"},{"line_number":147,"context_line":"                                              flavor.id, project.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_6adb9c1b","line":144,"in_reply_to":"1ae5cdf2_c9bc2d6f","updated":"2014-07-01 15:09:40.000000000","message":"Done","commit_id":"cac4f44391b986b52d114ee499798eac02b09e77"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"0c1da2fe18bd8885e218d30d4c3a2962e290495a","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        for project in projects:"},{"line_number":146,"context_line":"            api.nova.add_tenant_to_flavor(IsA(http.HttpRequest),"},{"line_number":147,"context_line":"                                              flavor.id, project.id)"},{"line_number":148,"context_line":"        self.mox.ReplayAll()"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        workflow_data \u003d self._get_workflow_data(flavor, access\u003dprojects)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_a9dc41e2","line":147,"updated":"2014-06-27 12:54:06.000000000","message":"Please remove this 4 spaces, parameter should be aligned","commit_id":"cac4f44391b986b52d114ee499798eac02b09e77"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"1aa36cb7539b937a219069e795e5aed3d699db13","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        for project in projects:"},{"line_number":146,"context_line":"            api.nova.add_tenant_to_flavor(IsA(http.HttpRequest),"},{"line_number":147,"context_line":"                                              flavor.id, project.id)"},{"line_number":148,"context_line":"        self.mox.ReplayAll()"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        workflow_data \u003d self._get_workflow_data(flavor, access\u003dprojects)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_8ad8f01e","line":147,"in_reply_to":"1ae5cdf2_a9dc41e2","updated":"2014-07-01 15:09:40.000000000","message":"Done","commit_id":"cac4f44391b986b52d114ee499798eac02b09e77"}],"openstack_dashboard/dashboards/admin/flavors/workflows.py":[{"author":{"_account_id":9275,"name":"Leandro Ignacio Costantino","email":"leandro.i.costantino@intel.com","username":"lcostantino"},"change_message_id":"233cbddac7d88558b83abb47ddf14f5e3c910a41","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        is_public \u003d not flavor_projects"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        # Update flavor information if metadata changed"},{"line_number":281,"context_line":"        if self.context[\u0027name\u0027] !\u003d self.context_seed[\u0027name\u0027] or \\"},{"line_number":282,"context_line":"           self.context[\u0027memory_mb\u0027] !\u003d self.context_seed[\u0027memory_mb\u0027] or \\"},{"line_number":283,"context_line":"           self.context[\u0027vcpus\u0027] !\u003d self.context_seed[\u0027vcpus\u0027] or \\"},{"line_number":284,"context_line":"           self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F6bE%3D","line":281,"updated":"2014-03-13 00:24:23.000000000","message":"Please use () to remove all those backslashes","commit_id":"12be3ae49acf45c79a37c9536ab5a6835c252fc6"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"5e6b7e7cbac6c76fb29b9ad2fed6bea000e0a541","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        is_public \u003d not flavor_projects"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        # Update flavor information if metadata changed"},{"line_number":281,"context_line":"        if self.context[\u0027name\u0027] !\u003d self.context_seed[\u0027name\u0027] or \\"},{"line_number":282,"context_line":"           self.context[\u0027memory_mb\u0027] !\u003d self.context_seed[\u0027memory_mb\u0027] or \\"},{"line_number":283,"context_line":"           self.context[\u0027vcpus\u0027] !\u003d self.context_seed[\u0027vcpus\u0027] or \\"},{"line_number":284,"context_line":"           self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F6C0%3D","line":281,"in_reply_to":"AAAAWH%2F%2F6bE%3D","updated":"2014-03-13 12:32:46.000000000","message":"Done","commit_id":"12be3ae49acf45c79a37c9536ab5a6835c252fc6"},{"author":{"_account_id":9275,"name":"Leandro Ignacio Costantino","email":"leandro.i.costantino@intel.com","username":"lcostantino"},"change_message_id":"233cbddac7d88558b83abb47ddf14f5e3c910a41","unresolved":false,"context_lines":[{"line_number":283,"context_line":"           self.context[\u0027vcpus\u0027] !\u003d self.context_seed[\u0027vcpus\u0027] or \\"},{"line_number":284,"context_line":"           self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or \\"},{"line_number":285,"context_line":"           self.context[\u0027eph_gb\u0027] !\u003d self.context_seed[\u0027eph_gb\u0027] or \\"},{"line_number":286,"context_line":"           self.context[\u0027swap_mb\u0027] !\u003d self.context_seed[\u0027swap_mb\u0027]:"},{"line_number":287,"context_line":"                try:"},{"line_number":288,"context_line":"                    # Grab any existing extra specs, because flavor edit"},{"line_number":289,"context_line":"                    # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F6a0%3D","line":286,"updated":"2014-03-13 00:24:23.000000000","message":"What about is_public condition change? All the projects will still be associated..","commit_id":"12be3ae49acf45c79a37c9536ab5a6835c252fc6"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"5e6b7e7cbac6c76fb29b9ad2fed6bea000e0a541","unresolved":false,"context_lines":[{"line_number":283,"context_line":"           self.context[\u0027vcpus\u0027] !\u003d self.context_seed[\u0027vcpus\u0027] or \\"},{"line_number":284,"context_line":"           self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or \\"},{"line_number":285,"context_line":"           self.context[\u0027eph_gb\u0027] !\u003d self.context_seed[\u0027eph_gb\u0027] or \\"},{"line_number":286,"context_line":"           self.context[\u0027swap_mb\u0027] !\u003d self.context_seed[\u0027swap_mb\u0027]:"},{"line_number":287,"context_line":"                try:"},{"line_number":288,"context_line":"                    # Grab any existing extra specs, because flavor edit"},{"line_number":289,"context_line":"                    # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F6CA%3D","line":286,"in_reply_to":"AAAAWH%2F%2F6a0%3D","updated":"2014-03-13 12:32:46.000000000","message":"if is_public changed, then the line 317 will take care of it. I just go through the list of selected projects, if the collection is empty, no projects will be added, if the collection is not empty, all selected projects will be added","commit_id":"12be3ae49acf45c79a37c9536ab5a6835c252fc6"},{"author":{"_account_id":10179,"name":"Facundo Farias","email":"facundo.farias@intel.com","username":"ffarias"},"change_message_id":"20f69fea952c5d57d8f588b324e4a273e2d612a2","unresolved":false,"context_lines":[{"line_number":296,"context_line":"                    # Then create a new flavor with the same name but a new ID."},{"line_number":297,"context_line":"                    # This is in the same try/except block as the delete call"},{"line_number":298,"context_line":"                    # because if the delete fails the API will error out"},{"line_number":299,"context_line":"                    # because active flavors can\u0027t have the same name."},{"line_number":300,"context_line":"                    flavor \u003d api.nova.flavor_create(request,"},{"line_number":301,"context_line":"                                                    data[\u0027name\u0027],"},{"line_number":302,"context_line":"                                                    data[\u0027memory_mb\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F%2FZ8%3D","line":299,"updated":"2014-03-12 14:04:43.000000000","message":"Because because? Mmm.. Maybe you should rephrase that.","commit_id":"12be3ae49acf45c79a37c9536ab5a6835c252fc6"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"5e6b7e7cbac6c76fb29b9ad2fed6bea000e0a541","unresolved":false,"context_lines":[{"line_number":296,"context_line":"                    # Then create a new flavor with the same name but a new ID."},{"line_number":297,"context_line":"                    # This is in the same try/except block as the delete call"},{"line_number":298,"context_line":"                    # because if the delete fails the API will error out"},{"line_number":299,"context_line":"                    # because active flavors can\u0027t have the same name."},{"line_number":300,"context_line":"                    flavor \u003d api.nova.flavor_create(request,"},{"line_number":301,"context_line":"                                                    data[\u0027name\u0027],"},{"line_number":302,"context_line":"                                                    data[\u0027memory_mb\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F6B4%3D","line":299,"in_reply_to":"AAAAWH%2F%2F%2FZ8%3D","updated":"2014-03-13 12:32:46.000000000","message":"it\u0027s just a comment :)","commit_id":"12be3ae49acf45c79a37c9536ab5a6835c252fc6"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"3e909a138a3ba271e3634aec3f6a6142b84d6794","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                self.context[\u0027vcpus\u0027] !\u003d self.context_seed[\u0027vcpus\u0027] or"},{"line_number":284,"context_line":"                self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or"},{"line_number":285,"context_line":"                self.context[\u0027eph_gb\u0027] !\u003d self.context_seed[\u0027eph_gb\u0027] or"},{"line_number":286,"context_line":"                self.context[\u0027swap_mb\u0027] !\u003d self.context_seed[\u0027swap_mb\u0027]):"},{"line_number":287,"context_line":"                    try:"},{"line_number":288,"context_line":"                        # Grab any existing extra specs, because flavor edit"},{"line_number":289,"context_line":"                        # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2F5Mg%3D","line":286,"updated":"2014-03-13 04:52:00.000000000","message":"also check flavor_access changed.","commit_id":"19c47de399f44d62e752ba205ff0c9b10c14f81e"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"bec327f5759f0ba54ba665bf16b56afa2b005855","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                self.context[\u0027vcpus\u0027] !\u003d self.context_seed[\u0027vcpus\u0027] or"},{"line_number":284,"context_line":"                self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or"},{"line_number":285,"context_line":"                self.context[\u0027eph_gb\u0027] !\u003d self.context_seed[\u0027eph_gb\u0027] or"},{"line_number":286,"context_line":"                self.context[\u0027swap_mb\u0027] !\u003d self.context_seed[\u0027swap_mb\u0027]):"},{"line_number":287,"context_line":"                    try:"},{"line_number":288,"context_line":"                        # Grab any existing extra specs, because flavor edit"},{"line_number":289,"context_line":"                        # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2F2AA%3D","line":286,"in_reply_to":"AAAAWH%2F%2F5Mg%3D","updated":"2014-03-13 12:46:30.000000000","message":"No need. Whether the flavor is public or not does not indicate a change in the flavor metadata. When you add a project to the access list, the flavor will not be public any more but there\u0027s no need to add/delete the flavor....adding the projects to the access list would be enough","commit_id":"19c47de399f44d62e752ba205ff0c9b10c14f81e"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"3e909a138a3ba271e3634aec3f6a6142b84d6794","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or"},{"line_number":285,"context_line":"                self.context[\u0027eph_gb\u0027] !\u003d self.context_seed[\u0027eph_gb\u0027] or"},{"line_number":286,"context_line":"                self.context[\u0027swap_mb\u0027] !\u003d self.context_seed[\u0027swap_mb\u0027]):"},{"line_number":287,"context_line":"                    try:"},{"line_number":288,"context_line":"                        # Grab any existing extra specs, because flavor edit"},{"line_number":289,"context_line":"                        # is currently implemented as a delete followed by a"},{"line_number":290,"context_line":"                        # create."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2F5dI%3D","line":287,"updated":"2014-03-13 04:52:00.000000000","message":"bad indentation here.","commit_id":"19c47de399f44d62e752ba205ff0c9b10c14f81e"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"bec327f5759f0ba54ba665bf16b56afa2b005855","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or"},{"line_number":285,"context_line":"                self.context[\u0027eph_gb\u0027] !\u003d self.context_seed[\u0027eph_gb\u0027] or"},{"line_number":286,"context_line":"                self.context[\u0027swap_mb\u0027] !\u003d self.context_seed[\u0027swap_mb\u0027]):"},{"line_number":287,"context_line":"                    try:"},{"line_number":288,"context_line":"                        # Grab any existing extra specs, because flavor edit"},{"line_number":289,"context_line":"                        # is currently implemented as a delete followed by a"},{"line_number":290,"context_line":"                        # create."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2F1%2F8%3D","line":287,"in_reply_to":"AAAAWH%2F%2F5dI%3D","updated":"2014-03-13 12:46:30.000000000","message":"The indentation is correct. Otherwise, pep8 will fail","commit_id":"19c47de399f44d62e752ba205ff0c9b10c14f81e"},{"author":{"_account_id":9981,"name":"Doug Fish","email":"drfish@us.ibm.com","username":"doug-fish"},"change_message_id":"bbe74b00a9a8f5c6e82a23b19f91d77885a605b9","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        # Clean the flavor access list to remove the one added by nova"},{"line_number":212,"context_line":"        flavor_id \u003d self.object.id"},{"line_number":213,"context_line":"        if not is_public:"},{"line_number":214,"context_line":"            for tenant in api.nova.flavor_access_list(request, flavor_id):"},{"line_number":215,"context_line":"                api.nova.remove_tenant_from_flavor(request, flavor_id,"},{"line_number":216,"context_line":"                                                   tenant.tenant_id)"},{"line_number":217,"context_line":"            for project in flavor_access:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2Fz4g%3D","line":214,"updated":"2014-03-13 17:04:08.000000000","message":"I assume there should be exception handling for the first API request as well.  Maybe both for loops should be inside the same try block?","commit_id":"675903c9392fea6e3d26a6fcca92817ea552a9f7"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"40175810b6c7a76ae34235271dbb53cfe9068729","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        # Clean the flavor access list to remove the one added by nova"},{"line_number":212,"context_line":"        flavor_id \u003d self.object.id"},{"line_number":213,"context_line":"        if not is_public:"},{"line_number":214,"context_line":"            for tenant in api.nova.flavor_access_list(request, flavor_id):"},{"line_number":215,"context_line":"                api.nova.remove_tenant_from_flavor(request, flavor_id,"},{"line_number":216,"context_line":"                                                   tenant.tenant_id)"},{"line_number":217,"context_line":"            for project in flavor_access:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2FspU%3D","line":214,"in_reply_to":"AAAAWH%2F%2Fz4g%3D","updated":"2014-03-14 12:43:33.000000000","message":"Done","commit_id":"675903c9392fea6e3d26a6fcca92817ea552a9f7"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7f7b40b4cd5146da65f194553ac2c408eeb03ac2","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        # Clean the flavor access list to remove the one added by nova"},{"line_number":212,"context_line":"        flavor_id \u003d self.object.id"},{"line_number":213,"context_line":"        if not is_public:"},{"line_number":214,"context_line":"            try:"},{"line_number":215,"context_line":"                for tenant in api.nova.flavor_access_list(request, flavor_id):"},{"line_number":216,"context_line":"                    api.nova.remove_tenant_from_flavor(request, flavor_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F9wc%3D","line":213,"updated":"2014-04-08 08:05:51.000000000","message":"flavor_access is used at L.218, so\n\n  if flavor_access:\n\nlooks better.","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"54a64a212c172fc3d3603994a1f578b1a8fea790","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        # Clean the flavor access list to remove the one added by nova"},{"line_number":212,"context_line":"        flavor_id \u003d self.object.id"},{"line_number":213,"context_line":"        if not is_public:"},{"line_number":214,"context_line":"            try:"},{"line_number":215,"context_line":"                for tenant in api.nova.flavor_access_list(request, flavor_id):"},{"line_number":216,"context_line":"                    api.nova.remove_tenant_from_flavor(request, flavor_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F5hE%3D","line":213,"in_reply_to":"AAAAWn%2F%2F9wc%3D","updated":"2014-04-08 17:55:56.000000000","message":"Done","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7f7b40b4cd5146da65f194553ac2c408eeb03ac2","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            try:"},{"line_number":215,"context_line":"                for tenant in api.nova.flavor_access_list(request, flavor_id):"},{"line_number":216,"context_line":"                    api.nova.remove_tenant_from_flavor(request, flavor_id,"},{"line_number":217,"context_line":"                                                       tenant.tenant_id)"},{"line_number":218,"context_line":"                for project in flavor_access:"},{"line_number":219,"context_line":"                    api.nova.add_tenant_to_flavor(request, flavor_id, project)"},{"line_number":220,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F9xA%3D","line":217,"updated":"2014-04-08 08:05:51.000000000","message":"This is \u0027create\u0027 flavor operation. remove_tenant_from_flavor looks unnecessary. am I missing something?","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"54a64a212c172fc3d3603994a1f578b1a8fea790","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            try:"},{"line_number":215,"context_line":"                for tenant in api.nova.flavor_access_list(request, flavor_id):"},{"line_number":216,"context_line":"                    api.nova.remove_tenant_from_flavor(request, flavor_id,"},{"line_number":217,"context_line":"                                                       tenant.tenant_id)"},{"line_number":218,"context_line":"                for project in flavor_access:"},{"line_number":219,"context_line":"                    api.nova.add_tenant_to_flavor(request, flavor_id, project)"},{"line_number":220,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F5hc%3D","line":217,"in_reply_to":"AAAAWn%2F%2F9xA%3D","updated":"2014-04-08 17:55:56.000000000","message":"This does not make sense now but it did. Nova used to add the current project to the flavor access list when a private flavor was created so when you tried to add that flavor here you\u0027d get an exception from nova saying that the flavor access already existed. \nhttps://review.openstack.org/#/c/81356/","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7f7b40b4cd5146da65f194553ac2c408eeb03ac2","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                   \"disk_gb\","},{"line_number":262,"context_line":"                   \"eph_gb\","},{"line_number":263,"context_line":"                   \"swap_mb\","},{"line_number":264,"context_line":"                   \"is_public\")"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"class UpdateFlavor(workflows.Workflow):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F90k%3D","line":264,"updated":"2014-04-08 08:05:51.000000000","message":"Who contributes is_public? I don\u0027t see any form field named \u0027is_public\u0027 and it seems not used.","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"54a64a212c172fc3d3603994a1f578b1a8fea790","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                   \"disk_gb\","},{"line_number":262,"context_line":"                   \"eph_gb\","},{"line_number":263,"context_line":"                   \"swap_mb\","},{"line_number":264,"context_line":"                   \"is_public\")"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"class UpdateFlavor(workflows.Workflow):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F5f0%3D","line":264,"in_reply_to":"AAAAWn%2F%2F90k%3D","updated":"2014-04-08 17:55:56.000000000","message":"It is used in the handle method to get the seed value for \"is public\"","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7f7b40b4cd5146da65f194553ac2c408eeb03ac2","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        is_public \u003d not flavor_projects"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        # Update flavor information if metadata changed"},{"line_number":286,"context_line":"        if (self.context[\u0027name\u0027] !\u003d self.context_seed[\u0027name\u0027] or"},{"line_number":287,"context_line":"                self.context[\u0027memory_mb\u0027] !\u003d self.context_seed[\u0027memory_mb\u0027] or"},{"line_number":288,"context_line":"                self.context[\u0027vcpus\u0027] !\u003d self.context_seed[\u0027vcpus\u0027] or"},{"line_number":289,"context_line":"                self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F918%3D","line":286,"updated":"2014-04-08 08:05:51.000000000","message":"How about:\n\n  FIELDS \u003d [\u0027name\u0027, \u0027memory_mb\u0027, \u0027vcpus\u0027, ....]\n\n  if_changed \u003d any([self.context[field] !\u003d self.context_seed[field]\n                    for field in FIELDS])","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"54a64a212c172fc3d3603994a1f578b1a8fea790","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        is_public \u003d not flavor_projects"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        # Update flavor information if metadata changed"},{"line_number":286,"context_line":"        if (self.context[\u0027name\u0027] !\u003d self.context_seed[\u0027name\u0027] or"},{"line_number":287,"context_line":"                self.context[\u0027memory_mb\u0027] !\u003d self.context_seed[\u0027memory_mb\u0027] or"},{"line_number":288,"context_line":"                self.context[\u0027vcpus\u0027] !\u003d self.context_seed[\u0027vcpus\u0027] or"},{"line_number":289,"context_line":"                self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F5dI%3D","line":286,"in_reply_to":"AAAAWn%2F%2F918%3D","updated":"2014-04-08 17:55:56.000000000","message":"Done","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7f7b40b4cd5146da65f194553ac2c408eeb03ac2","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or"},{"line_number":290,"context_line":"                self.context[\u0027eph_gb\u0027] !\u003d self.context_seed[\u0027eph_gb\u0027] or"},{"line_number":291,"context_line":"                self.context[\u0027swap_mb\u0027] !\u003d self.context_seed[\u0027swap_mb\u0027] or"},{"line_number":292,"context_line":"                is_public !\u003d self.context_seed[\u0027is_public\u0027]):"},{"line_number":293,"context_line":"            try:"},{"line_number":294,"context_line":"                # Grab any existing extra specs, because flavor edit"},{"line_number":295,"context_line":"                # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F924%3D","line":292,"updated":"2014-04-08 08:05:51.000000000","message":"If we have is_public in self.context, the logic would be simple (like above).","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"54a64a212c172fc3d3603994a1f578b1a8fea790","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                self.context[\u0027disk_gb\u0027] !\u003d self.context_seed[\u0027disk_gb\u0027] or"},{"line_number":290,"context_line":"                self.context[\u0027eph_gb\u0027] !\u003d self.context_seed[\u0027eph_gb\u0027] or"},{"line_number":291,"context_line":"                self.context[\u0027swap_mb\u0027] !\u003d self.context_seed[\u0027swap_mb\u0027] or"},{"line_number":292,"context_line":"                is_public !\u003d self.context_seed[\u0027is_public\u0027]):"},{"line_number":293,"context_line":"            try:"},{"line_number":294,"context_line":"                # Grab any existing extra specs, because flavor edit"},{"line_number":295,"context_line":"                # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F5bo%3D","line":292,"in_reply_to":"AAAAWn%2F%2F924%3D","updated":"2014-04-08 17:55:56.000000000","message":"Done","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7f7b40b4cd5146da65f194553ac2c408eeb03ac2","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                return False"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        # Clean the flavor access list to remove the one added by nova"},{"line_number":324,"context_line":"        if not is_public:"},{"line_number":325,"context_line":"            try:"},{"line_number":326,"context_line":"                for tenant in api.nova.flavor_access_list(request, flavor_id):"},{"line_number":327,"context_line":"                    api.nova.remove_tenant_from_flavor(request, flavor_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F9xs%3D","line":324,"updated":"2014-04-08 08:05:51.000000000","message":"if flavor_projects","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"54a64a212c172fc3d3603994a1f578b1a8fea790","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                return False"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        # Clean the flavor access list to remove the one added by nova"},{"line_number":324,"context_line":"        if not is_public:"},{"line_number":325,"context_line":"            try:"},{"line_number":326,"context_line":"                for tenant in api.nova.flavor_access_list(request, flavor_id):"},{"line_number":327,"context_line":"                    api.nova.remove_tenant_from_flavor(request, flavor_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F5Nw%3D","line":324,"in_reply_to":"AAAAWn%2F%2F9xs%3D","updated":"2014-04-08 17:55:56.000000000","message":"Done","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7f7b40b4cd5146da65f194553ac2c408eeb03ac2","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                    api.nova.remove_tenant_from_flavor(request, flavor_id,"},{"line_number":328,"context_line":"                                                       tenant.tenant_id)"},{"line_number":329,"context_line":"                for project in flavor_projects:"},{"line_number":330,"context_line":"                    api.nova.add_tenant_to_flavor(request, flavor_id, project)"},{"line_number":331,"context_line":"            except Exception:"},{"line_number":332,"context_line":"                exceptions.handle(request, _(\u0027Modified flavor \u0027"},{"line_number":333,"context_line":"                                             \u0027information, but unable to \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F9zI%3D","line":330,"updated":"2014-04-08 08:05:51.000000000","message":"It is better to check the diff and do remove/add if necessary.\n\n  old_access_projects \u003d set([tenant.tenant_id for tenant in\n                         api.nova.flavor_access_list(...)])\n  new_access_projects \u003d set(flavor_projects)\n  removed_projects \u003d old_access_projects - new_access_projects\n  added_projects \u003d new_access_projects - old_access_projects\n  for proj in removed_projects:\n      api.nova.remove_tenant_from_flavor(...)\n  for proj in added_projects:\n      api.nova.add_tenant_to_flavor(...)","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"54a64a212c172fc3d3603994a1f578b1a8fea790","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                    api.nova.remove_tenant_from_flavor(request, flavor_id,"},{"line_number":328,"context_line":"                                                       tenant.tenant_id)"},{"line_number":329,"context_line":"                for project in flavor_projects:"},{"line_number":330,"context_line":"                    api.nova.add_tenant_to_flavor(request, flavor_id, project)"},{"line_number":331,"context_line":"            except Exception:"},{"line_number":332,"context_line":"                exceptions.handle(request, _(\u0027Modified flavor \u0027"},{"line_number":333,"context_line":"                                             \u0027information, but unable to \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWn%2F%2F41M%3D","line":330,"in_reply_to":"AAAAWn%2F%2F9zI%3D","updated":"2014-04-08 17:55:56.000000000","message":"Done","commit_id":"ea72a730bf1b3cb40fb2b00962067e7e3c20ccf9"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"7b4d8cf6d0bf1a35a09f0c7aaf9a0bc906d9f6aa","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        flavor_id \u003d self.object.id"},{"line_number":212,"context_line":"        if flavor_access:"},{"line_number":213,"context_line":"            try:"},{"line_number":214,"context_line":"                for project in flavor_access:"},{"line_number":215,"context_line":"                    api.nova.add_tenant_to_flavor(request, flavor_id, project)"},{"line_number":216,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_83c33d38","line":213,"updated":"2014-06-25 12:41:01.000000000","message":"With `try - except` block moved out of the `for` loop, failure to add one tenant to flavor also fails addition to all the other tenants, an exception message in such case will be misguiding also. I suggest to return `try - except` block inside the `for` loop.","commit_id":"f6eb094c7654b079ff6bfdd2e2c89236c1726e00"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"8b3018429b983b5d0b9d048c0a40b24b5f931a4a","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        flavor_id \u003d self.object.id"},{"line_number":212,"context_line":"        if flavor_access:"},{"line_number":213,"context_line":"            try:"},{"line_number":214,"context_line":"                for project in flavor_access:"},{"line_number":215,"context_line":"                    api.nova.add_tenant_to_flavor(request, flavor_id, project)"},{"line_number":216,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_9289b771","line":213,"in_reply_to":"1ae5cdf2_83c33d38","updated":"2014-06-25 18:25:31.000000000","message":"Done","commit_id":"f6eb094c7654b079ff6bfdd2e2c89236c1726e00"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"7b4d8cf6d0bf1a35a09f0c7aaf9a0bc906d9f6aa","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                          for field in fields])"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        # Update flavor information if metadata changed"},{"line_number":288,"context_line":"        if (if_changed):"},{"line_number":289,"context_line":"            try:"},{"line_number":290,"context_line":"                # Grab any existing extra specs, because flavor edit"},{"line_number":291,"context_line":"                # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_83389d3c","line":288,"updated":"2014-06-25 12:41:01.000000000","message":"Parenthesis are no longer needed for one variable. Why not call it `fields_changed`?","commit_id":"f6eb094c7654b079ff6bfdd2e2c89236c1726e00"},{"author":{"_account_id":9981,"name":"Doug Fish","email":"drfish@us.ibm.com","username":"doug-fish"},"change_message_id":"25e5e63deb0a103dcd775169df1bcfd3472a93f5","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                          for field in fields])"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        # Update flavor information if metadata changed"},{"line_number":288,"context_line":"        if (if_changed):"},{"line_number":289,"context_line":"            try:"},{"line_number":290,"context_line":"                # Grab any existing extra specs, because flavor edit"},{"line_number":291,"context_line":"                # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_f81e5f5e","line":288,"in_reply_to":"1ae5cdf2_83389d3c","updated":"2014-06-25 17:02:59.000000000","message":"I suggest is_changed as the variable name -- to me that implies a boolean, fields_changed implies some kind of collection.  I see we\u0027ve used that convention for is_public.","commit_id":"f6eb094c7654b079ff6bfdd2e2c89236c1726e00"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"8b3018429b983b5d0b9d048c0a40b24b5f931a4a","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                          for field in fields])"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        # Update flavor information if metadata changed"},{"line_number":288,"context_line":"        if (if_changed):"},{"line_number":289,"context_line":"            try:"},{"line_number":290,"context_line":"                # Grab any existing extra specs, because flavor edit"},{"line_number":291,"context_line":"                # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_b2e79345","line":288,"in_reply_to":"1ae5cdf2_de00ab02","updated":"2014-06-25 18:25:31.000000000","message":"Done","commit_id":"f6eb094c7654b079ff6bfdd2e2c89236c1726e00"},{"author":{"_account_id":8090,"name":"Chad Roberts","email":"croberts@redhat.com","username":"croberts"},"change_message_id":"62d1625b4b2bb796e2c561f998a9f05269882fe6","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                          for field in fields])"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        # Update flavor information if metadata changed"},{"line_number":288,"context_line":"        if (if_changed):"},{"line_number":289,"context_line":"            try:"},{"line_number":290,"context_line":"                # Grab any existing extra specs, because flavor edit"},{"line_number":291,"context_line":"                # is currently implemented as a delete followed by a"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_de00ab02","line":288,"in_reply_to":"1ae5cdf2_f81e5f5e","updated":"2014-06-25 17:56:00.000000000","message":"+1 for is_changed","commit_id":"f6eb094c7654b079ff6bfdd2e2c89236c1726e00"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"c86d5838db2af0bb57a335c58c6d035c5e2ca755","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            return False"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        flavor_id \u003d self.object.id"},{"line_number":210,"context_line":"        if flavor_access:"},{"line_number":211,"context_line":"            for project in flavor_access:"},{"line_number":212,"context_line":"                try:"},{"line_number":213,"context_line":"                    api.nova.add_tenant_to_flavor(request, flavor_id, project)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_00f464ef","line":210,"updated":"2014-06-26 02:07:55.000000000","message":"\u0027if flavor_access\u0027 is not needed here, it will be [] if the new flavor is not public or there\u0027s no access projects.","commit_id":"cac4f44391b986b52d114ee499798eac02b09e77"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"1aa36cb7539b937a219069e795e5aed3d699db13","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            return False"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        flavor_id \u003d self.object.id"},{"line_number":210,"context_line":"        if flavor_access:"},{"line_number":211,"context_line":"            for project in flavor_access:"},{"line_number":212,"context_line":"                try:"},{"line_number":213,"context_line":"                    api.nova.add_tenant_to_flavor(request, flavor_id, project)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_00603f31","line":210,"in_reply_to":"1ae5cdf2_00f464ef","updated":"2014-07-01 15:09:40.000000000","message":"Done","commit_id":"cac4f44391b986b52d114ee499798eac02b09e77"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"0c1da2fe18bd8885e218d30d4c3a2962e290495a","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            exceptions.check_message([\"Connection\", \"refused\"], msg)"},{"line_number":238,"context_line":"            raise"},{"line_number":239,"context_line":"        # Check if there is no flavor with the same name"},{"line_number":240,"context_line":"        if flavors:"},{"line_number":241,"context_line":"            for flavor in flavors:"},{"line_number":242,"context_line":"                if flavor.name \u003d\u003d name and flavor.id !\u003d flavor_id:"},{"line_number":243,"context_line":"                    raise forms.ValidationError("}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_0932955d","line":240,"updated":"2014-06-27 12:54:06.000000000","message":"I think this if is unneded you are seting flavors as []. Is the same case as line 210","commit_id":"cac4f44391b986b52d114ee499798eac02b09e77"},{"author":{"_account_id":10247,"name":"Santiago Baldassin","email":"santiago.b.baldassin@intel.com","username":"santibaldassin"},"change_message_id":"1aa36cb7539b937a219069e795e5aed3d699db13","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            exceptions.check_message([\"Connection\", \"refused\"], msg)"},{"line_number":238,"context_line":"            raise"},{"line_number":239,"context_line":"        # Check if there is no flavor with the same name"},{"line_number":240,"context_line":"        if flavors:"},{"line_number":241,"context_line":"            for flavor in flavors:"},{"line_number":242,"context_line":"                if flavor.name \u003d\u003d name and flavor.id !\u003d flavor_id:"},{"line_number":243,"context_line":"                    raise forms.ValidationError("}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_e526fd67","line":240,"in_reply_to":"1ae5cdf2_0932955d","updated":"2014-07-01 15:09:40.000000000","message":"Done","commit_id":"cac4f44391b986b52d114ee499798eac02b09e77"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"99998e1aceb8cc0965addc49682de36e1e7e4528","unresolved":false,"context_lines":[{"line_number":235,"context_line":"            exceptions.check_message([\"Connection\", \"refused\"], msg)"},{"line_number":236,"context_line":"            raise"},{"line_number":237,"context_line":"        # Check if there is no flavor with the same name"},{"line_number":238,"context_line":"        for flavor in flavors:"},{"line_number":239,"context_line":"            if flavor.name \u003d\u003d name and flavor.id !\u003d flavor_id:"},{"line_number":240,"context_line":"                raise forms.ValidationError("},{"line_number":241,"context_line":"                    _(\u0027The name \"%s\" is already used by another \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_fb5e95e8","line":238,"updated":"2014-07-01 19:02:16.000000000","message":"If api fails, flavors not be iterable and will throw an exception. Having flavors \u003d [] safeguards that. Is there a reason why it was removed?","commit_id":"e0920cc6a2cab51609c6db6af239c171facb83bc"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"99998e1aceb8cc0965addc49682de36e1e7e4528","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        self.context[\u0027is_public\u0027] \u003d not flavor_projects"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        fields \u003d [\u0027name\u0027, \u0027memory_mb\u0027, \u0027vcpus\u0027, \u0027disk_gb\u0027,"},{"line_number":278,"context_line":"                  \u0027eph_gb\u0027, \u0027swap_mb\u0027, \u0027is_public\u0027]"},{"line_number":279,"context_line":"        is_changed \u003d any([self.context[field] !\u003d self.context_seed[field]"},{"line_number":280,"context_line":"                          for field in fields])"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_4dab48d8","line":278,"updated":"2014-07-01 19:02:16.000000000","message":"self.context_seed and self.context already contain all of the fields  (it also includes the flavor_id). no need to reintroduce the keys here. it makes for cleaner code and less error prone.","commit_id":"e0920cc6a2cab51609c6db6af239c171facb83bc"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"99998e1aceb8cc0965addc49682de36e1e7e4528","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        fields \u003d [\u0027name\u0027, \u0027memory_mb\u0027, \u0027vcpus\u0027, \u0027disk_gb\u0027,"},{"line_number":278,"context_line":"                  \u0027eph_gb\u0027, \u0027swap_mb\u0027, \u0027is_public\u0027]"},{"line_number":279,"context_line":"        is_changed \u003d any([self.context[field] !\u003d self.context_seed[field]"},{"line_number":280,"context_line":"                          for field in fields])"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        # Update flavor information if metadata changed"},{"line_number":283,"context_line":"        if is_changed:"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_ad6ce49d","line":280,"updated":"2014-07-01 19:02:16.000000000","message":"Does it make more sense to compare the context_seed to data instead of self.context (even though they are identical)?","commit_id":"e0920cc6a2cab51609c6db6af239c171facb83bc"}]}
