)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"8ee5f864461e332a342cf4e966c1ac64f5b9853e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"unicode flavor id.  The current id field will now contain a value"},{"line_number":12,"context_line":"only when the flavor\u0027s id can be cast to int, otherwise it will be"},{"line_number":13,"context_line":"None.  Validation of flavor id when querying a flavor or creating an"},{"line_number":14,"context_line":"instance has been updated to include non-emptry strings in addition to"},{"line_number":15,"context_line":"integers."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This will require a patch to python-troveclient to properly fallback"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_9a277ac9","line":14,"updated":"2014-11-18 20:41:18.000000000","message":"non-emptry ?","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":11,"context_line":"unicode flavor id.  The current id field will now contain a value"},{"line_number":12,"context_line":"only when the flavor\u0027s id can be cast to int, otherwise it will be"},{"line_number":13,"context_line":"None.  Validation of flavor id when querying a flavor or creating an"},{"line_number":14,"context_line":"instance has been updated to include non-emptry strings in addition to"},{"line_number":15,"context_line":"integers."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This will require a patch to python-troveclient to properly fallback"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_2eac9fec","line":14,"in_reply_to":"5a890539_9a277ac9","updated":"2014-11-25 23:32:11.000000000","message":"Done","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"37ea48457bea5a0a041b3718d15a69392fd71549","unresolved":false,"context_lines":[{"line_number":15,"context_line":"integers."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This will require a patch to python-troveclient to properly fallback"},{"line_number":18,"context_line":"to str_id in absence of the integer id (https://review.openstack.org/#/c/123301/)."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Ie9cfefc6127bc76783cdf9668636342d7590b308"},{"line_number":21,"context_line":"Closes-bug: #1333852"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_0f6e0ec9","line":18,"updated":"2014-11-17 18:00:57.000000000","message":"if you\u0027d wrap this, it would be great. Not essential ...","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":15,"context_line":"integers."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This will require a patch to python-troveclient to properly fallback"},{"line_number":18,"context_line":"to str_id in absence of the integer id (https://review.openstack.org/#/c/123301/)."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Ie9cfefc6127bc76783cdf9668636342d7590b308"},{"line_number":21,"context_line":"Closes-bug: #1333852"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_4eb72b3a","line":18,"in_reply_to":"5a890539_0f6e0ec9","updated":"2014-11-25 23:32:11.000000000","message":"Done","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"}],"trove/common/apischema.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"26f9bf0ea6356cd21213a1731a3685db4041c291","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            \"pattern\": \"[0-9]+\""},{"line_number":59,"context_line":"        },"},{"line_number":60,"context_line":"        {"},{"line_number":61,"context_line":"            \"type\": \"integer\""},{"line_number":62,"context_line":"        }]"},{"line_number":63,"context_line":"}"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_ec830b54","side":"PARENT","line":61,"updated":"2014-10-22 11:52:13.000000000","message":"my suspicion is that once you have non_empty_string as the first option, this will never get used and is therefore redumnant (tm).","commit_id":"e24bd6ba1b35af80a4a386c8b46ae2d5e1a2d514"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7cc22301694881e36212e85117fd97599385f3a4","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            \"pattern\": \"[0-9]+\""},{"line_number":59,"context_line":"        },"},{"line_number":60,"context_line":"        {"},{"line_number":61,"context_line":"            \"type\": \"integer\""},{"line_number":62,"context_line":"        }]"},{"line_number":63,"context_line":"}"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_b0b7ad85","side":"PARENT","line":61,"in_reply_to":"9aa7fdbe_ec830b54","updated":"2014-11-04 10:46:07.000000000","message":"Will update next patch","commit_id":"e24bd6ba1b35af80a4a386c8b46ae2d5e1a2d514"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"26f9bf0ea6356cd21213a1731a3685db4041c291","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"flavorref \u003d {"},{"line_number":60,"context_line":"    \u0027oneOf\u0027: ["},{"line_number":61,"context_line":"        non_empty_string,"},{"line_number":62,"context_line":"        url_ref,"},{"line_number":63,"context_line":"        {"},{"line_number":64,"context_line":"            \"type\": \"integer\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_8c927f9d","line":61,"updated":"2014-10-22 11:52:13.000000000","message":"why not use uuid?","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7cc22301694881e36212e85117fd97599385f3a4","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"flavorref \u003d {"},{"line_number":60,"context_line":"    \u0027oneOf\u0027: ["},{"line_number":61,"context_line":"        non_empty_string,"},{"line_number":62,"context_line":"        url_ref,"},{"line_number":63,"context_line":"        {"},{"line_number":64,"context_line":"            \"type\": \"integer\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_f0b0558d","line":61,"in_reply_to":"9aa7fdbe_8c927f9d","updated":"2014-11-04 10:46:07.000000000","message":"IDs are not necessarily UUIDs, they may be any string","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"}],"trove/db/sqlalchemy/migrate_repo/versions/034_flavor_id_int_to_string.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"26f9bf0ea6356cd21213a1731a3685db4041c291","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_ec5f8be3","line":1,"updated":"2014-10-22 11:52:13.000000000","message":"what\u0027s this?","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7cc22301694881e36212e85117fd97599385f3a4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_70ef0588","line":1,"in_reply_to":"9aa7fdbe_ec5f8be3","updated":"2014-11-04 10:46:07.000000000","message":"copy/paste cruft","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"26f9bf0ea6356cd21213a1731a3685db4041c291","unresolved":false,"context_lines":[{"line_number":26,"context_line":"def upgrade(migrate_engine):"},{"line_number":27,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":28,"context_line":"    instances \u003d Table(\u0027instances\u0027, meta, autoload\u003dTrue)"},{"line_number":29,"context_line":"    instances.c.flavor_id.alter(String(255))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def downgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_2c5a73f3","line":29,"updated":"2014-10-22 11:52:13.000000000","message":"I believe we use string(36) for uuid?","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7cc22301694881e36212e85117fd97599385f3a4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"def upgrade(migrate_engine):"},{"line_number":27,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":28,"context_line":"    instances \u003d Table(\u0027instances\u0027, meta, autoload\u003dTrue)"},{"line_number":29,"context_line":"    instances.c.flavor_id.alter(String(255))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def downgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_9064714a","line":29,"in_reply_to":"9aa7fdbe_2c5a73f3","updated":"2014-11-04 10:46:07.000000000","message":"This matches nova\u0027s schema https://git.openstack.org/cgit/openstack/nova/tree/nova/db/sqlalchemy/models.py#n354   flavor ids may be any string, not just UUIDs","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"26f9bf0ea6356cd21213a1731a3685db4041c291","unresolved":false,"context_lines":[{"line_number":32,"context_line":"def downgrade(migrate_engine):"},{"line_number":33,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":34,"context_line":"    instances \u003d Table(\u0027instances\u0027, meta, autoload\u003dTrue)"},{"line_number":35,"context_line":"    instances.c.flavor_id.atler(Int())"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_4c46d724","line":35,"updated":"2014-10-22 11:52:13.000000000","message":"As part of testing this code, I cherry picked your change and attempted to run stuff. nova create worked fine but trove create failed because you have a migration of the database which I had not done. \n\nSo I did that manually (redstack rd-sql ...)\n\nmysql\u003e alter table instances modify flavor_id char(255);\nQuery OK, 10 rows affected (0.03 sec)\nRecords: 10  Duplicates: 0  Warnings: 0\n\nAnd then I ran through an instance create and it worked. Finally after stopping trove, I simulated the downgrade.\n\nmysql\u003e alter table instances modify flavor_id int;\nERROR 1265 (01000): Data truncated for column \u0027flavor_id\u0027 at row 10\nmysql\u003e select flavor_id from instances\n    -\u003e ;\n+--------------------------------------+\n| flavor_id                            |\n+--------------------------------------+\n| 3                                    |\n| 2                                    |\n| 2                                    |\n| 3                                    |\n| 7                                    |\n| 7                                    |\n| 7                                    |\n| 7                                    |\n| 7                                    |\n| 30fafdb0-59dc-11e4-8ed6-0800200c9a66 |\n| 2                                    |\n+--------------------------------------+\n11 rows in set (0.01 sec)\n\nSo ... your downgrade could fail. I would suggest that you have to do something different here like, maybe, handling the error or something?","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7cc22301694881e36212e85117fd97599385f3a4","unresolved":false,"context_lines":[{"line_number":32,"context_line":"def downgrade(migrate_engine):"},{"line_number":33,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":34,"context_line":"    instances \u003d Table(\u0027instances\u0027, meta, autoload\u003dTrue)"},{"line_number":35,"context_line":"    instances.c.flavor_id.atler(Int())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_f0dbf5ea","line":35,"in_reply_to":"9aa7fdbe_4c46d724","updated":"2014-11-04 10:46:07.000000000","message":"I\u0027m not sure how best to handle downgrades here.  If the table has been populated with a string flavor_id, downgrading can\u0027t really be supported--and probably shouldn\u0027t be?  Trove at its current version is not functional with non-int flavor_ids.","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"0a90b2674e6b9eb8713db2e8b617e6f25785f779","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_7c5733ca","line":1,"updated":"2014-11-18 13:41:21.000000000","message":"IIRC, we should not put such headers in files.","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_6e89476e","line":1,"in_reply_to":"5a890539_278e6628","updated":"2014-11-25 23:32:11.000000000","message":"Done","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_4e8e4b7a","line":1,"in_reply_to":"5a890539_7c5733ca","updated":"2014-11-25 23:32:11.000000000","message":"Done","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"8851635e6a1b7498b6e511cde3c764521484c585","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_278e6628","line":1,"in_reply_to":"5a890539_7c5733ca","updated":"2014-11-18 19:49:11.000000000","message":"agreed. the encoding line shouldn\u0027t exist, and considering this was written in 2014, the copyright shouldn\u0027t be 2013 ;)","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"8ee5f864461e332a342cf4e966c1ac64f5b9853e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_3505b910","line":3,"updated":"2014-11-18 20:41:18.000000000","message":"This is a new file, should be copyrighted with the current year","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2013 Hewlett-Packard Development Company, L.P."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_cef15b02","line":3,"in_reply_to":"5a890539_3505b910","updated":"2014-11-25 23:32:11.000000000","message":"Done","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"8851635e6a1b7498b6e511cde3c764521484c585","unresolved":false,"context_lines":[{"line_number":33,"context_line":"def downgrade(migrate_engine):"},{"line_number":34,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":35,"context_line":"    instances \u003d Table(\u0027instances\u0027, meta, autoload\u003dTrue)"},{"line_number":36,"context_line":"    instances.c.flavor_id.alter(Integer())"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_27b586d0","line":36,"updated":"2014-11-18 19:49:11.000000000","message":"casting a uuid to an integer will fail (naturally), so i assume that this should fail spectacularly. however: what\u0027s the alternative? i can\u0027t think of a corrective action that makes sense. since downgrades are mostly a development utility, i\u0027m ok with this as-is.","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"}],"trove/flavor/service.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"d49c385c52ea05c69048643aa1e0ab499a1a6187","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from trove.flavor import views"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class FlavorController(wsgi.Controller):"},{"line_number":24,"context_line":"    \"\"\"Controller for flavor functionality.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def show(self, req, tenant_id, id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_965d067c","side":"PARENT","line":23,"updated":"2014-08-21 09:55:06.000000000","message":"this is the PEP violation, add a newline above here.","commit_id":"b1731b41648d9443a93340a08e2ac533cb72c0d7"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"d49c385c52ea05c69048643aa1e0ab499a1a6187","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from trove.common import wsgi"},{"line_number":19,"context_line":"from trove.flavor import models"},{"line_number":20,"context_line":"from trove.flavor import views"},{"line_number":21,"context_line":"from trove.openstack.common import uuidutils"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class FlavorController(wsgi.Controller):"},{"line_number":24,"context_line":"    \"\"\"Controller for flavor functionality.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_16e01695","line":21,"updated":"2014-08-21 09:55:06.000000000","message":"I don\u0027t have one of these.","commit_id":"c7f937dac2545cfa4154a122c238c68853042f94"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"26f9bf0ea6356cd21213a1731a3685db4041c291","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        return wsgi.Result(views.FlavorsView(flavors, req).data(), 200)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def _validate_flavor_id(self, id):"},{"line_number":41,"context_line":"        if isinstance(id, str):"},{"line_number":42,"context_line":"            return"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            if int(id) !\u003d float(id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_6cfabbbe","line":41,"updated":"2014-10-22 11:52:13.000000000","message":"I would like for this to be tightened a bit further, looking not for a generic string but rather a UUID.","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7cc22301694881e36212e85117fd97599385f3a4","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        return wsgi.Result(views.FlavorsView(flavors, req).data(), 200)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def _validate_flavor_id(self, id):"},{"line_number":41,"context_line":"        if isinstance(id, str):"},{"line_number":42,"context_line":"            return"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            if int(id) !\u003d float(id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_10224101","line":41,"in_reply_to":"9aa7fdbe_6cfabbbe","updated":"2014-11-04 10:46:07.000000000","message":"non-int flavors ids do not necessarily need to be UUIDs, they may be any string.  UUIDs are generated by novaclient\u0027s flavor-create command if id is specified as \u0027auto\u0027","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ada35e8593432d9e4ce4683790a26dbf792d8811","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        if isinstance(id, str):"},{"line_number":42,"context_line":"            return"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            if int(id) !\u003d float(id):"},{"line_number":45,"context_line":"                raise exception.NotFound(uuid\u003did)"},{"line_number":46,"context_line":"        except ValueError:"},{"line_number":47,"context_line":"            raise exception.NotFound(uuid\u003did)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_9944de1c","line":44,"updated":"2014-11-26 19:34:59.000000000","message":"Why even bother validating the flavor ID as an integer or float at all? Just convert integers and floats to strings and be done with it.","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"}],"trove/flavor/views.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"26f9bf0ea6356cd21213a1731a3685db4041c291","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            f_id \u003d None"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        flavor \u003d {"},{"line_number":39,"context_line":"            \u0027id\u0027: f_id,"},{"line_number":40,"context_line":"            \u0027links\u0027: self._build_links(),"},{"line_number":41,"context_line":"            \u0027name\u0027: self.flavor.name,"},{"line_number":42,"context_line":"            \u0027ram\u0027: self.flavor.ram,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_cc1647f1","line":39,"updated":"2014-10-22 11:52:13.000000000","message":"do we even need this any more? why not eschew it completely in favor of str_id?","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"d00d31add94287dd92d1963694f7edc6d4de7e51","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            f_id \u003d None"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        flavor \u003d {"},{"line_number":39,"context_line":"            \u0027id\u0027: f_id,"},{"line_number":40,"context_line":"            \u0027links\u0027: self._build_links(),"},{"line_number":41,"context_line":"            \u0027name\u0027: self.flavor.name,"},{"line_number":42,"context_line":"            \u0027ram\u0027: self.flavor.ram,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_0dcb12a6","line":39,"in_reply_to":"5a890539_f2794794","updated":"2014-11-11 23:58:07.000000000","message":"Denis I understand your point, yes. I thought it was 1 release after but that\u0027s a minor difference. Thanks for clarification.","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"1f5285dde848fbaff7af1dd6eca17bc55b516b25","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            f_id \u003d None"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        flavor \u003d {"},{"line_number":39,"context_line":"            \u0027id\u0027: f_id,"},{"line_number":40,"context_line":"            \u0027links\u0027: self._build_links(),"},{"line_number":41,"context_line":"            \u0027name\u0027: self.flavor.name,"},{"line_number":42,"context_line":"            \u0027ram\u0027: self.flavor.ram,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_f2794794","line":39,"in_reply_to":"7a8c0949_d0a3594d","updated":"2014-11-11 22:56:49.000000000","message":"Adam, actually it does. Once we have str_id we might say that we should deprecate type of flavor id from Trove perspective and after 2 releases we might remove str_id and make type of flavor id more generic, not only int.","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7cc22301694881e36212e85117fd97599385f3a4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            f_id \u003d None"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        flavor \u003d {"},{"line_number":39,"context_line":"            \u0027id\u0027: f_id,"},{"line_number":40,"context_line":"            \u0027links\u0027: self._build_links(),"},{"line_number":41,"context_line":"            \u0027name\u0027: self.flavor.name,"},{"line_number":42,"context_line":"            \u0027ram\u0027: self.flavor.ram,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_d0a3594d","line":39,"in_reply_to":"9aa7fdbe_cc1647f1","updated":"2014-11-04 10:46:07.000000000","message":"That would break the API, no?","commit_id":"17af3c38110d1216222e8f724c10df369ba0a901"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ada35e8593432d9e4ce4683790a26dbf792d8811","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def data(self):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        # If the flavor id cannot be cast to an int, we simply return"},{"line_number":32,"context_line":"        # no id and rely on str_id instead."},{"line_number":33,"context_line":"        try:"},{"line_number":34,"context_line":"            f_id \u003d int(self.flavor.id)"},{"line_number":35,"context_line":"        except ValueError:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_f95242dd","line":32,"updated":"2014-11-26 19:34:59.000000000","message":"Why bother? Just return a string value for id.","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"8ee5f864461e332a342cf4e966c1ac64f5b9853e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            \u0027links\u0027: self._build_links(),"},{"line_number":41,"context_line":"            \u0027name\u0027: self.flavor.name,"},{"line_number":42,"context_line":"            \u0027ram\u0027: self.flavor.ram,"},{"line_number":43,"context_line":"            \u0027str_id\u0027: str(self.flavor.id),"},{"line_number":44,"context_line":"        }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if not CONF.trove_volume_support and CONF.device_path is not None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_35885970","line":43,"range":{"start_line":43,"start_character":22,"end_line":43,"end_character":41},"updated":"2014-11-18 20:41:18.000000000","message":"Isn\u0027t the str() unnecessary here?","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            \u0027links\u0027: self._build_links(),"},{"line_number":41,"context_line":"            \u0027name\u0027: self.flavor.name,"},{"line_number":42,"context_line":"            \u0027ram\u0027: self.flavor.ram,"},{"line_number":43,"context_line":"            \u0027str_id\u0027: str(self.flavor.id),"},{"line_number":44,"context_line":"        }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if not CONF.trove_volume_support and CONF.device_path is not None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_cefcfb74","line":43,"in_reply_to":"5a890539_35885970","updated":"2014-11-25 23:32:11.000000000","message":"Yes-at this point self.flavor_id may be either a string or an int","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"d1ea9f40dc96dc73464741249f7a2e5dfd410356","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            \u0027links\u0027: self._build_links(),"},{"line_number":41,"context_line":"            \u0027name\u0027: self.flavor.name,"},{"line_number":42,"context_line":"            \u0027ram\u0027: self.flavor.ram,"},{"line_number":43,"context_line":"            \u0027str_id\u0027: str(self.flavor.id),"},{"line_number":44,"context_line":"        }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if not CONF.trove_volume_support and CONF.device_path is not None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_3615be9b","line":43,"in_reply_to":"5a890539_cefcfb74","updated":"2014-11-26 17:04:40.000000000","message":"I knocked it out when I tested the code and it still worked fine (for both ints and UUIDs) but I\u0027m ok with leaving it in.","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"}],"trove/tests/api/flavors.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"40c47eee24bbe6ff6b3a510e10cb50cf68d6619e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    assert_true(flavor.links)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    if flavor.id:"},{"line_number":69,"context_line":"        flavor_id \u003d str(flavor.id)"},{"line_number":70,"context_line":"    else:"},{"line_number":71,"context_line":"        flavor_id \u003d flavor.str_id"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_2f29d8f2","line":69,"updated":"2014-11-26 21:26:24.000000000","message":"it can take less LOC:\n\n\n  flavor_id \u003d str(flavor.id) if flavor.id else flavor.str_id","commit_id":"38899ac94e59606a1f64c70a37de549b3c6da0bf"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"40c47eee24bbe6ff6b3a510e10cb50cf68d6619e","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    for link in flavor.links:"},{"line_number":74,"context_line":"        href \u003d link[\u0027href\u0027]"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        if \"self\" in link[\u0027rel\u0027]:"},{"line_number":77,"context_line":"            expected_href \u003d os.path.join(test_config.dbaas_url, \"flavors\","},{"line_number":78,"context_line":"                                         str(flavor.id))"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_6f33e062","line":75,"updated":"2014-11-26 21:26:24.000000000","message":"do we need redundant line?","commit_id":"38899ac94e59606a1f64c70a37de549b3c6da0bf"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"1cd84ca4c8bc23020d1d29e5c15e40f90ef4b4ba","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        attrcheck.links(flavor_dict[\u0027links\u0027])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    @test"},{"line_number":172,"context_line":"    def test_flavor_not_found(self):"},{"line_number":173,"context_line":"        assert_raises(exceptions.NotFound,"},{"line_number":174,"context_line":"                      self.rd_client.flavors.get, \"detail\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_e3e73b10","line":172,"updated":"2014-12-22 12:39:47.000000000","message":"seems like there\u0027s a problem with this test, please take a look at http://logs.openstack.org/11/115811/12/check/gate-trove-functional-dsvm-mysql/88114ef/logs/screen-tr-api.txt.gz#_2014-12-18_17_18_21_557","commit_id":"717b1e029fa6940b248dcc05c923b3f9ad5017e9"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"33d7454867a080c5330c7bcbd8b322bdf643e6b7","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        attrcheck.links(flavor_dict[\u0027links\u0027])"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    @test"},{"line_number":172,"context_line":"    def test_flavor_not_found(self):"},{"line_number":173,"context_line":"        assert_raises(exceptions.NotFound,"},{"line_number":174,"context_line":"                      self.rd_client.flavors.get, \"detail\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_bfcb5ca2","line":172,"in_reply_to":"3a961159_e3e73b10","updated":"2014-12-23 20:55:14.000000000","message":"So this test is bad:\n\n1) The current code in master will never actually query nova and find that the flavor named \u0027detail\u0027 doesn\u0027t exist--it simply fails to validate flavor id (trove.flavor.service) _validate_flavor_id() as in int, and raises NotFound There.\n\n2) With this patch applied, we end up having trove actually query nova for a flavor named \u0027detail\u0027, which in turn ends up requesting $nova_api/flavors/detail.  The failure showing up now is that  \u0027/flavors/detail\u0027 actually requests a detailed list of flavors, not a specific flavor named \u0027detail\u0027, so I believe this test needs to be updated to request a non-existent flavor with a non-reserved name.","commit_id":"717b1e029fa6940b248dcc05c923b3f9ad5017e9"}],"trove/tests/api/instances.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"8ee5f864461e332a342cf4e966c1ac64f5b9853e","unresolved":false,"context_lines":[{"line_number":704,"context_line":"                check.volume()"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"    @test"},{"line_number":707,"context_line":"    def test_create_failure_with_int_flavor(self):"},{"line_number":708,"context_line":"        instance_name \u003d \"instance-failure-with-int-flavor\""},{"line_number":709,"context_line":"        databases \u003d []"},{"line_number":710,"context_line":"        if VOLUME_SUPPORT:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_966672ed","line":707,"updated":"2014-11-18 20:41:18.000000000","message":"This test isn\u0027t actually testing a failure ...","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":704,"context_line":"                check.volume()"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"    @test"},{"line_number":707,"context_line":"    def test_create_failure_with_int_flavor(self):"},{"line_number":708,"context_line":"        instance_name \u003d \"instance-failure-with-int-flavor\""},{"line_number":709,"context_line":"        databases \u003d []"},{"line_number":710,"context_line":"        if VOLUME_SUPPORT:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_4ec64b69","line":707,"in_reply_to":"5a890539_966672ed","updated":"2014-11-25 23:32:11.000000000","message":"Done","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"0a90b2674e6b9eb8713db2e8b617e6f25785f779","unresolved":false,"context_lines":[{"line_number":711,"context_line":"            volume \u003d {\u0027size\u0027: 1}"},{"line_number":712,"context_line":"        else:"},{"line_number":713,"context_line":"            volume \u003d None"},{"line_number":714,"context_line":"        dbaas.instances.create(instance_name, 1, volume, databases)"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"    @test"},{"line_number":717,"context_line":"    def test_create_failure_with_string_flavor(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_fcab2372","line":714,"updated":"2014-11-18 13:41:21.000000000","message":"Disagree with such testing way, in the end we\u0027d have two more instances that are hanging somewhere.\n\nI\u0027d strongly recommend to make this tests only enabled in fake mode, and only (for those who don\u0027t believe that this code works - pull-and-try).\n\nLet me explain why. For now Trove has problem with its testing process, infra folks doesn\u0027t allow to increase gate timeout (we have 95 mins, and it\u0027s completely not enough for our tests).\n\nFake-mode tests are lightweight, fast. So, please make them only enabled in fake mode to avoid increasing time of integration gating.","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":711,"context_line":"            volume \u003d {\u0027size\u0027: 1}"},{"line_number":712,"context_line":"        else:"},{"line_number":713,"context_line":"            volume \u003d None"},{"line_number":714,"context_line":"        dbaas.instances.create(instance_name, 1, volume, databases)"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"    @test"},{"line_number":717,"context_line":"    def test_create_failure_with_string_flavor(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_ae8def32","line":714,"in_reply_to":"5a890539_16cfe2b4","updated":"2014-11-25 23:32:11.000000000","message":"For historical context, this patch was prompted by a failing trove tempest test--when we were adding support to devstack to deploy ironic, we relied on a nova flavor named \u0027baremetal\u0027, which caused the trove flavor tempest test to fail. We worked around it in devstack by using an int flavor ID instead, but the idea is to go back to a string once this has been fixed in trove.  Then we\u0027ll have some functional test coverage running in Tempest of both int (the default nova flavors) and str (baremetal)","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":711,"context_line":"            volume \u003d {\u0027size\u0027: 1}"},{"line_number":712,"context_line":"        else:"},{"line_number":713,"context_line":"            volume \u003d None"},{"line_number":714,"context_line":"        dbaas.instances.create(instance_name, 1, volume, databases)"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"    @test"},{"line_number":717,"context_line":"    def test_create_failure_with_string_flavor(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_6ec1474d","line":714,"in_reply_to":"5a890539_fcab2372","updated":"2014-11-25 23:32:11.000000000","message":"Done","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"8ee5f864461e332a342cf4e966c1ac64f5b9853e","unresolved":false,"context_lines":[{"line_number":711,"context_line":"            volume \u003d {\u0027size\u0027: 1}"},{"line_number":712,"context_line":"        else:"},{"line_number":713,"context_line":"            volume \u003d None"},{"line_number":714,"context_line":"        dbaas.instances.create(instance_name, 1, volume, databases)"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"    @test"},{"line_number":717,"context_line":"    def test_create_failure_with_string_flavor(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_16cfe2b4","line":714,"in_reply_to":"5a890539_fcab2372","updated":"2014-11-18 20:41:18.000000000","message":"Maybe this could be moved to a tempest scenario test (the actual create, once the tempest work moves far enough along) and kept here as a fake-mode test.","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"8ee5f864461e332a342cf4e966c1ac64f5b9853e","unresolved":false,"context_lines":[{"line_number":714,"context_line":"        dbaas.instances.create(instance_name, 1, volume, databases)"},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"    @test"},{"line_number":717,"context_line":"    def test_create_failure_with_string_flavor(self):"},{"line_number":718,"context_line":"        instance_name \u003d \"instance-failure-with-str-flavor\""},{"line_number":719,"context_line":"        databases \u003d []"},{"line_number":720,"context_line":"        if VOLUME_SUPPORT:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_d660fad1","line":717,"updated":"2014-11-18 20:41:18.000000000","message":"ditto","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"0a90b2674e6b9eb8713db2e8b617e6f25785f779","unresolved":false,"context_lines":[{"line_number":721,"context_line":"            volume \u003d {\u0027size\u0027: 1}"},{"line_number":722,"context_line":"        else:"},{"line_number":723,"context_line":"            volume \u003d None"},{"line_number":724,"context_line":"        dbaas.instances.create(instance_name, \u0027custom\u0027, volume, databases)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"@test(depends_on_classes\u003d[InstanceSetup], groups\u003d[GROUP_NEUTRON])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_5cbc37bb","line":724,"updated":"2014-11-18 13:41:21.000000000","message":"Another thing, resource clean-up should take it\u0027s place. So, as long as you create an instance, you have to delete it once your test is going to be finished.","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":721,"context_line":"            volume \u003d {\u0027size\u0027: 1}"},{"line_number":722,"context_line":"        else:"},{"line_number":723,"context_line":"            volume \u003d None"},{"line_number":724,"context_line":"        dbaas.instances.create(instance_name, \u0027custom\u0027, volume, databases)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"@test(depends_on_classes\u003d[InstanceSetup], groups\u003d[GROUP_NEUTRON])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_ee9a9760","line":724,"in_reply_to":"5a890539_5cbc37bb","updated":"2014-11-25 23:32:11.000000000","message":"Do you have any pointers on where similar test cleanup happens in this test suite? I\u0027ll be honest, this is my first time working with the trove suite and I\u0027m a bit lost.","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"40c47eee24bbe6ff6b3a510e10cb50cf68d6619e","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        instance_name \u003d \"instance-failure-with-empty-flavor\""},{"line_number":386,"context_line":"        databases \u003d []"},{"line_number":387,"context_line":"        if VOLUME_SUPPORT:"},{"line_number":388,"context_line":"            volume \u003d {\u0027size\u0027: 1}"},{"line_number":389,"context_line":"        else:"},{"line_number":390,"context_line":"            volume \u003d None"},{"line_number":391,"context_line":"        assert_raises(exceptions.BadRequest, dbaas.instances.create,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_0f441cb6","line":388,"updated":"2014-11-26 21:26:24.000000000","message":"also can take less LOC:\n\n    volume \u003d {\u0027size\u0027: 1} if VOLUME_SUPPORT else None","commit_id":"38899ac94e59606a1f64c70a37de549b3c6da0bf"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"40c47eee24bbe6ff6b3a510e10cb50cf68d6619e","unresolved":false,"context_lines":[{"line_number":729,"context_line":"            raise SkipTest(\"This test only for fake mode.\")"},{"line_number":730,"context_line":"        instance_name \u003d \"instance-with-flavor-%s\" % flavor_id"},{"line_number":731,"context_line":"        databases \u003d []"},{"line_number":732,"context_line":"        if VOLUME_SUPPORT:"},{"line_number":733,"context_line":"            volume \u003d {\u0027size\u0027: 1}"},{"line_number":734,"context_line":"        else:"},{"line_number":735,"context_line":"            volume \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_2f77180a","line":732,"updated":"2014-11-26 21:26:24.000000000","message":"same here, this code may be shorter than it is not, take a look at comment above.","commit_id":"38899ac94e59606a1f64c70a37de549b3c6da0bf"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"40c47eee24bbe6ff6b3a510e10cb50cf68d6619e","unresolved":false,"context_lines":[{"line_number":743,"context_line":"        self._create_with_flavor(1)"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    @test"},{"line_number":746,"context_line":"    def test_create_with_str_flavor(self):"},{"line_number":747,"context_line":"        self._create_with_flavor(\u0027custom\u0027)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_af230805","line":746,"updated":"2014-11-26 21:26:24.000000000","message":"Well, new code looks nice. Appreciate that you\u0027ve addressed all our suggestion.","commit_id":"38899ac94e59606a1f64c70a37de549b3c6da0bf"}],"trove/tests/fakes/nova.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"8ee5f864461e332a342cf4e966c1ac64f5b9853e","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        \"\"\""},{"line_number":618,"context_line":"        self.instances \u003d []"},{"line_number":619,"context_line":"        self.percentUsed \u003d 0"},{"line_number":620,"context_line":"        self.totalRAM \u003d 32000  # 16384"},{"line_number":621,"context_line":"        self.usedRAM \u003d 0"},{"line_number":622,"context_line":"        for server in self.servers.list():"},{"line_number":623,"context_line":"            print(server)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_d6ef1ae8","line":620,"updated":"2014-11-18 20:41:18.000000000","message":"Not sure how this change fits in with str flavors","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        \"\"\""},{"line_number":618,"context_line":"        self.instances \u003d []"},{"line_number":619,"context_line":"        self.percentUsed \u003d 0"},{"line_number":620,"context_line":"        self.totalRAM \u003d 32000  # 16384"},{"line_number":621,"context_line":"        self.usedRAM \u003d 0"},{"line_number":622,"context_line":"        for server in self.servers.list():"},{"line_number":623,"context_line":"            print(server)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_2ec73f46","line":620,"in_reply_to":"5a890539_d6ef1ae8","updated":"2014-11-25 23:32:11.000000000","message":"These need to be bumped to allow creation of the new instances that were added in other tests.  I\u0027m a bit lost as to why that\u0027s required for unit tests, but I couldn\u0027t get those tests to create what i thought were \u0027fake\u0027 instances without getting \"not enough memory\" errors","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"}],"trove/tests/unittests/instance/test_instance_controller.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"8ee5f864461e332a342cf4e966c1ac64f5b9853e","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        self.verify_errors(errors[0].context,"},{"line_number":199,"context_line":"                           [\"\u0027\u0027 is too short\","},{"line_number":200,"context_line":"                            \"\u0027\u0027 does not match \u0027^.*[0-9a-zA-Z]+.*$\u0027\","},{"line_number":201,"context_line":"                            \"\u0027\u0027 is not of type \u0027integer\u0027\"],"},{"line_number":202,"context_line":"                           [\"flavorRef\", \"flavorRef\", \"flavorRef\","},{"line_number":203,"context_line":"                            \"flavorRef\"],"},{"line_number":204,"context_line":"                           errors[0].path.pop())"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_f6d6d6f0","line":201,"updated":"2014-11-18 20:41:18.000000000","message":"Should we still be getting this error?","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"d1ea9f40dc96dc73464741249f7a2e5dfd410356","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        self.verify_errors(errors[0].context,"},{"line_number":199,"context_line":"                           [\"\u0027\u0027 is too short\","},{"line_number":200,"context_line":"                            \"\u0027\u0027 does not match \u0027^.*[0-9a-zA-Z]+.*$\u0027\","},{"line_number":201,"context_line":"                            \"\u0027\u0027 is not of type \u0027integer\u0027\"],"},{"line_number":202,"context_line":"                           [\"flavorRef\", \"flavorRef\", \"flavorRef\","},{"line_number":203,"context_line":"                            \"flavorRef\"],"},{"line_number":204,"context_line":"                           errors[0].path.pop())"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_d6a71a4f","line":201,"in_reply_to":"5a890539_ae096f96","updated":"2014-11-26 17:04:40.000000000","message":"I was referring to the \u0027is not of type integer\u0027 error, but I haven\u0027t looked into how this validation works ;)","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"66b778352cd3bd92999441203fb41d72af5a77fe","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        self.verify_errors(errors[0].context,"},{"line_number":199,"context_line":"                           [\"\u0027\u0027 is too short\","},{"line_number":200,"context_line":"                            \"\u0027\u0027 does not match \u0027^.*[0-9a-zA-Z]+.*$\u0027\","},{"line_number":201,"context_line":"                            \"\u0027\u0027 is not of type \u0027integer\u0027\"],"},{"line_number":202,"context_line":"                           [\"flavorRef\", \"flavorRef\", \"flavorRef\","},{"line_number":203,"context_line":"                            \"flavorRef\"],"},{"line_number":204,"context_line":"                           errors[0].path.pop())"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_ae096f96","line":201,"in_reply_to":"5a890539_f6d6d6f0","updated":"2014-11-25 23:32:11.000000000","message":"If I understand this test and the schema validation correctly, yes these need to be updated according to changes  @ https://review.openstack.org/#/c/115811/6/trove/common/apischema.py","commit_id":"98ba80bd97a429cfb30f805fe75296e98943a24c"}]}
