)]}'
{"trove/configuration/models.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"4f3e10bb770a496462ba134a1a6a662731037dd7","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"class DBConfiguration(dbmodels.DatabaseModelBase):"},{"line_number":198,"context_line":"    _data_fields \u003d [\u0027name\u0027, \u0027description\u0027, \u0027tenant_id\u0027, \u0027datastore_version_id\u0027,"},{"line_number":199,"context_line":"                    \u0027deleted\u0027, \u0027deleted_at\u0027, \u0027created\u0027, \u0027updated\u0027]"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"class ConfigurationParameter(dbmodels.DatabaseModelBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_85a57304","line":199,"updated":"2014-06-22 12:04:01.000000000","message":"suggest you change the names to created_at and deleted_at. \"created\" and \"updated\" seem to imply a sense of whether the configuration option was created or updated.\n\nSimilar to deleted and deleted_at. At some point, one may want a field called updated, just to tell whether something was ever updated.","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"afd0cb26aac2f5cff751edd027f56dde88692a4b","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"class DBConfiguration(dbmodels.DatabaseModelBase):"},{"line_number":198,"context_line":"    _data_fields \u003d [\u0027name\u0027, \u0027description\u0027, \u0027tenant_id\u0027, \u0027datastore_version_id\u0027,"},{"line_number":199,"context_line":"                    \u0027deleted\u0027, \u0027deleted_at\u0027, \u0027created\u0027, \u0027updated\u0027]"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"class ConfigurationParameter(dbmodels.DatabaseModelBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_04c23c53","line":199,"in_reply_to":"1ae5cdf2_85a57304","updated":"2014-06-23 07:30:47.000000000","message":"I think he\u0027s just being consistent with the rest of the codebase. \n\nOther models have exactly this naming schema (i.e. created / updated are times, that get auto-updated by the base DBModels on save -- delete / delete_at are named differently).","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"}],"trove/configuration/service.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"4f3e10bb770a496462ba134a1a6a662731037dd7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        configuration \u003d models.Configuration.load(context, id)"},{"line_number":51,"context_line":"        configuration_items \u003d models.Configuration.load_items(context, id)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        configuration.instance_count \u003d instances_models.DBInstance.find_all("},{"line_number":54,"context_line":"            tenant_id\u003dcontext.tenant,"},{"line_number":55,"context_line":"            configuration_id\u003dconfiguration.id,"},{"line_number":56,"context_line":"            deleted\u003dFalse).count()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_a5afcfe1","line":53,"updated":"2014-06-22 12:04:01.000000000","message":"good that you are computing the count on demand and not storing it someplace that get get out of whack!","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"}],"trove/db/sqlalchemy/migrate_repo/versions/029_add_timestamps_to_configurations.py":[{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"3a62934b22ab622d0ef2fc4414c11617ef30f7d9","unresolved":false,"context_lines":[{"line_number":22,"context_line":"def upgrade(migrate_engine):"},{"line_number":23,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":24,"context_line":"    configurations \u003d Table(\u0027configurations\u0027, meta, autoload\u003dTrue)"},{"line_number":25,"context_line":"    created \u003d Column(\u0027created\u0027, DateTime())"},{"line_number":26,"context_line":"    updated \u003d Column(\u0027updated\u0027, DateTime())"},{"line_number":27,"context_line":"    configurations.create_column(created)"},{"line_number":28,"context_line":"    configurations.create_column(updated)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_a74ba129","line":25,"updated":"2014-06-12 06:01:43.000000000","message":"created seems like it could be set to nullable\u003dFalse because there should always be a created time on the record.","commit_id":"0fcfd08305fc45af35f7c1fe8bf8959f284ddd72"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"4f3e10bb770a496462ba134a1a6a662731037dd7","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    created \u003d Column(\u0027created\u0027, DateTime(), nullable\u003dTrue)"},{"line_number":26,"context_line":"    updated \u003d Column(\u0027updated\u0027, DateTime(), nullable\u003dTrue)"},{"line_number":27,"context_line":"    configurations.create_column(created)"},{"line_number":28,"context_line":"    configurations.c.created.alter(nullable\u003dFalse)"},{"line_number":29,"context_line":"    configurations.create_column(updated)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_c5aa1bd1","line":28,"updated":"2014-06-22 12:04:01.000000000","message":"Why not just set nullable\u003dFalse two lines above?","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"},{"author":{"_account_id":11606,"name":"Theron Voran","email":"theron.voran@rackspace.com","username":"tvoran"},"change_message_id":"2cfbbc8651d5480ee621a7c108fe192665ba5bd0","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    created \u003d Column(\u0027created\u0027, DateTime(), nullable\u003dTrue)"},{"line_number":26,"context_line":"    updated \u003d Column(\u0027updated\u0027, DateTime(), nullable\u003dTrue)"},{"line_number":27,"context_line":"    configurations.create_column(created)"},{"line_number":28,"context_line":"    configurations.c.created.alter(nullable\u003dFalse)"},{"line_number":29,"context_line":"    configurations.create_column(updated)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_2b9c1c5b","line":28,"in_reply_to":"1ae5cdf2_2f71d1ab","updated":"2014-06-24 20:27:15.000000000","message":"Yeah, I did it that way to make tox happy. Creating the \u0027created\u0027 column with nullable\u003dFalse causes tox to crash in initialize_database() in the py27 tests. Altering the column after creation seems to get around the issue with tox.","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"330ebdca12d3554ae7a2560a3e77dea0f09ab0cd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    created \u003d Column(\u0027created\u0027, DateTime(), nullable\u003dTrue)"},{"line_number":26,"context_line":"    updated \u003d Column(\u0027updated\u0027, DateTime(), nullable\u003dTrue)"},{"line_number":27,"context_line":"    configurations.create_column(created)"},{"line_number":28,"context_line":"    configurations.c.created.alter(nullable\u003dFalse)"},{"line_number":29,"context_line":"    configurations.create_column(updated)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_01a10195","line":28,"in_reply_to":"1ae5cdf2_2f71d1ab","updated":"2014-06-24 20:31:12.000000000","message":"hmm looks like i should retract my suggestion on setting this field to nullable. since i think it has something to do with sqlite vs mysql creating.","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"afd0cb26aac2f5cff751edd027f56dde88692a4b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    created \u003d Column(\u0027created\u0027, DateTime(), nullable\u003dTrue)"},{"line_number":26,"context_line":"    updated \u003d Column(\u0027updated\u0027, DateTime(), nullable\u003dTrue)"},{"line_number":27,"context_line":"    configurations.create_column(created)"},{"line_number":28,"context_line":"    configurations.c.created.alter(nullable\u003dFalse)"},{"line_number":29,"context_line":"    configurations.create_column(updated)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_2f71d1ab","line":28,"in_reply_to":"1ae5cdf2_c5aa1bd1","updated":"2014-06-23 07:30:47.000000000","message":"+1. That does seem like it would be simpler.","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"}],"trove/tests/api/configurations.py":[{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"3a62934b22ab622d0ef2fc4414c11617ef30f7d9","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        # to an existing configuration"},{"line_number":237,"context_line":"        values \u003d \u0027{\"join_buffer_size\": 1048576, \"connect_timeout\": 60}\u0027"},{"line_number":238,"context_line":"        # ensure updated timestamp is different than created"},{"line_number":239,"context_line":"        sleep(1)"},{"line_number":240,"context_line":"        instance_info.dbaas.configurations.edit(configuration_info.id,"},{"line_number":241,"context_line":"                                                values)"},{"line_number":242,"context_line":"        resp, body \u003d instance_info.dbaas.client.last_response"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_e71689f1","line":239,"updated":"2014-06-12 06:01:43.000000000","message":"@grapex will this cause issues with the changes you made to the sleep call with fake mode? I dont think it should but wanted to check with you.","commit_id":"0fcfd08305fc45af35f7c1fe8bf8959f284ddd72"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"3f990ee9590461b75c6ac3ab33cd0eb513d92bb1","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        # to an existing configuration"},{"line_number":237,"context_line":"        values \u003d \u0027{\"join_buffer_size\": 1048576, \"connect_timeout\": 60}\u0027"},{"line_number":238,"context_line":"        # ensure updated timestamp is different than created"},{"line_number":239,"context_line":"        sleep(1)"},{"line_number":240,"context_line":"        instance_info.dbaas.configurations.edit(configuration_info.id,"},{"line_number":241,"context_line":"                                                values)"},{"line_number":242,"context_line":"        resp, body \u003d instance_info.dbaas.client.last_response"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_fb6fddc1","line":239,"in_reply_to":"1ae5cdf2_e71689f1","updated":"2014-06-13 04:14:52.000000000","message":"nm this is fine","commit_id":"0fcfd08305fc45af35f7c1fe8bf8959f284ddd72"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"4f3e10bb770a496462ba134a1a6a662731037dd7","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        # test being able to update and insert new parameter name and values"},{"line_number":236,"context_line":"        # to an existing configuration"},{"line_number":237,"context_line":"        values \u003d \u0027{\"join_buffer_size\": 1048576, \"connect_timeout\": 60}\u0027"},{"line_number":238,"context_line":"        # ensure updated timestamp is different than created"},{"line_number":239,"context_line":"        sleep(1)"},{"line_number":240,"context_line":"        instance_info.dbaas.configurations.edit(configuration_info.id,"},{"line_number":241,"context_line":"                                                values)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_857c9372","line":238,"updated":"2014-06-22 12:04:01.000000000","message":"would it make sense to include a test here to assert that the updated_at timestamp is in fact still NULL?","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"},{"author":{"_account_id":11606,"name":"Theron Voran","email":"theron.voran@rackspace.com","username":"tvoran"},"change_message_id":"04497d32155a246b808216c9903b4cf9e9d6d6c5","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        # test being able to update and insert new parameter name and values"},{"line_number":236,"context_line":"        # to an existing configuration"},{"line_number":237,"context_line":"        values \u003d \u0027{\"join_buffer_size\": 1048576, \"connect_timeout\": 60}\u0027"},{"line_number":238,"context_line":"        # ensure updated timestamp is different than created"},{"line_number":239,"context_line":"        sleep(1)"},{"line_number":240,"context_line":"        instance_info.dbaas.configurations.edit(configuration_info.id,"},{"line_number":241,"context_line":"                                                values)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_e548a05e","line":238,"in_reply_to":"1ae5cdf2_4f01bd03","updated":"2014-06-24 20:50:28.000000000","message":"Yep, Nikhil is correct.","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"afd0cb26aac2f5cff751edd027f56dde88692a4b","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        # test being able to update and insert new parameter name and values"},{"line_number":236,"context_line":"        # to an existing configuration"},{"line_number":237,"context_line":"        values \u003d \u0027{\"join_buffer_size\": 1048576, \"connect_timeout\": 60}\u0027"},{"line_number":238,"context_line":"        # ensure updated timestamp is different than created"},{"line_number":239,"context_line":"        sleep(1)"},{"line_number":240,"context_line":"        instance_info.dbaas.configurations.edit(configuration_info.id,"},{"line_number":241,"context_line":"                                                values)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_4f01bd03","line":238,"in_reply_to":"1ae5cdf2_857c9372","updated":"2014-06-23 07:30:47.000000000","message":"I believe the updated timestamp gets set everytime the model is saved (which would include the initial save during creation), so the timestamp would not be NULL in this case.","commit_id":"96afe63482ac140a8c041b5524357579f57a18c8"}]}
