)]}'
{"etc/trove/trove-taskmanager.conf.sample":[{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"649f7301fbff20ccebc0551a0cef605af0d91027","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084d"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":40,"id":"AAAATn%2F9TEo%3D","line":60,"updated":"2013-12-12 22:40:18.000000000","message":"I think the id\u0027s should be different for each service that we add. Not sure where the magically uuid came from though for mysql.","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"ab8d6f5a0139f6be4d58d72787d6135e9fcbaec5","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084d"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":40,"id":"AAAATn%2F9NuQ%3D","line":60,"in_reply_to":"AAAATn%2F9NwU%3D","updated":"2013-12-13 22:59:19.000000000","message":"agree w/ slicknick. confer with rax/hp as to whether there\u0027s some expectation as to how the uuid is generated however.","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"5c09f57eff5c82a344ea894443fd56bb88efd765","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084d"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":40,"id":"AAAATn%2F9NwU%3D","line":60,"in_reply_to":"AAAATn%2F9RlI%3D","updated":"2013-12-13 22:46:16.000000000","message":"Can we generate a new UUID rather than just change the last letter? Better to not cause confusion.","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d46f2d0a008294d0c95bf11391f6668be9eb02e5","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084d"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":40,"id":"AAAATn%2F9RlI%3D","line":60,"in_reply_to":"AAAATn%2F9TEo%3D","updated":"2013-12-13 07:20:47.000000000","message":"they are different, last letter.","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"65014372dc4589d6816fa224c9e88ba662e4bef2","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:61a04cd5-cc5a-4deb-9618-4cb30dcc73d6"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":52,"id":"AAAAUX%2F%2FMnI%3D","line":60,"updated":"2014-02-15 00:11:07.000000000","message":"if redis and cassandra aren\u0027t in here (but they\u0027re all in cfg.py), then mongodb shouldn\u0027t be here either.","commit_id":"b1522e6c1083ff15250276eae6c43888a887d04a"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"8eecbe6c6fce73e54fab2517f589821054d6b4df","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:61a04cd5-cc5a-4deb-9618-4cb30dcc73d6"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":52,"id":"AAAAUX%2F%2FHBg%3D","line":60,"in_reply_to":"AAAAUX%2F%2FMnI%3D","updated":"2014-02-17 04:00:39.000000000","message":"+1","commit_id":"b1522e6c1083ff15250276eae6c43888a887d04a"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"09146aa9e3154a0489d0aad4b856460bb11e5d56","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:c8c907af-7375-456f-b929-b637ff9209ee"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":54,"id":"AAAAUX%2F%2B%2FTM%3D","line":60,"updated":"2014-02-17 19:38:18.000000000","message":"as mentioned in patch-set 52 (and co-signed by cp16net), this file should **not** be changed in this patch-set.","commit_id":"0983f8b9eb764d2eec7e032acb84d6447a8dc53a"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"3f321eaca90235123d0e0acad906faf65ca85693","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:c8c907af-7375-456f-b929-b637ff9209ee"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":54,"id":"AAAAUX%2F%2B5YY%3D","line":60,"in_reply_to":"AAAAUX%2F%2B%2BFA%3D","updated":"2014-02-18 10:42:47.000000000","message":"i\u0027ll do this, but i still stand on that given argument is not strong, again, it\u0027s only the _sample_ of possible config, it doesn\u0027t affects any possible installations.","commit_id":"0983f8b9eb764d2eec7e032acb84d6447a8dc53a"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"b45848262ff88671e5892acfb0f51bbeb18479c2","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:c8c907af-7375-456f-b929-b637ff9209ee"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":54,"id":"AAAAUX%2F%2B%2BFA%3D","line":60,"in_reply_to":"AAAAUX%2F%2B%2Bak%3D","updated":"2014-02-17 22:21:43.000000000","message":"it was explained in patch-set 52: if cassandra wasn\u0027t added in conf.sample for notification_service_id, then why is mongodb? the argument is for consistency.","commit_id":"0983f8b9eb764d2eec7e032acb84d6447a8dc53a"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c91f4cee3c0e91ebd106554d6b426e939facaec7","unresolved":false,"context_lines":[{"line_number":57,"context_line":"# Manager sends Exists Notifications"},{"line_number":58,"context_line":"exists_notification_transformer \u003d trove.extensions.mgmt.instances.models.NovaNotificationTransformer"},{"line_number":59,"context_line":"exists_notification_ticks \u003d 30"},{"line_number":60,"context_line":"notification_service_id \u003d mysql:2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b, mongodb:c8c907af-7375-456f-b929-b637ff9209ee"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# Trove DNS"},{"line_number":63,"context_line":"trove_dns_support \u003d False"}],"source_content_type":"application/octet-stream","patch_set":54,"id":"AAAAUX%2F%2B%2Bak%3D","line":60,"in_reply_to":"AAAAUX%2F%2B%2FTM%3D","updated":"2014-02-17 21:42:20.000000000","message":"why? any strong meaningful objections(because i don\u0027t see them at all)? it\u0027s only an example of how notification should be mentioned.","commit_id":"0983f8b9eb764d2eec7e032acb84d6447a8dc53a"}],"trove/common/cfg.py":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"befe47497971acc1bcdfadfb73b88dc56996846e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.StrOpt(\u0027db_api_implementation\u0027, default\u003d\u0027trove.db.sqlalchemy.api\u0027),"},{"line_number":67,"context_line":"    cfg.StrOpt(\u0027mysql_pkg\u0027, default\u003d\u0027mysql-server-5.5\u0027),"},{"line_number":68,"context_line":"    cfg.StrOpt(\u0027percona_pkg\u0027, default\u003d\u0027percona-server-server-5.5\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027mongodb_pkg\u0027, default\u003d\u0027mongodb\u0027),"},{"line_number":70,"context_line":"    cfg.StrOpt(\u0027dns_driver\u0027, default\u003d\u0027trove.dns.driver.DnsDriver\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027dns_instance_entry_factory\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027trove.dns.driver.DnsInstanceEntryFactory\u0027),"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B4qA%3D","line":69,"updated":"2013-11-18 23:53:53.000000000","message":"the others are pinned to a version (mysql-server-5.5, percona-server-server-5.5), shouldn\u0027t this follow suit?","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a40d02ccfc051a05609b8ae8d891a90c818e078","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.StrOpt(\u0027db_api_implementation\u0027, default\u003d\u0027trove.db.sqlalchemy.api\u0027),"},{"line_number":67,"context_line":"    cfg.StrOpt(\u0027mysql_pkg\u0027, default\u003d\u0027mysql-server-5.5\u0027),"},{"line_number":68,"context_line":"    cfg.StrOpt(\u0027percona_pkg\u0027, default\u003d\u0027percona-server-server-5.5\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027mongodb_pkg\u0027, default\u003d\u0027mongodb\u0027),"},{"line_number":70,"context_line":"    cfg.StrOpt(\u0027dns_driver\u0027, default\u003d\u0027trove.dns.driver.DnsDriver\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027dns_instance_entry_factory\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027trove.dns.driver.DnsInstanceEntryFactory\u0027),"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B0VI%3D","line":69,"in_reply_to":"AAAATn%2F%2B3A8%3D","updated":"2013-11-19 19:06:44.000000000","message":"http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/:\n\n\"You can use the mongodb-10gen package to install previous versions of MongoDB. To install a specific release, append the version number to the package name, as in the following example:\n\n    apt-get install mongodb-10gen\u003d2.2.3\n\nThis will install the 2.2.3 release of MongoDB. You can specify any available version of MongoDB; however apt-get will upgrade the mongodb-10gen package when a newer version becomes available. Use the following pinning procedure to prevent unintended upgrades.\"","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a6fdb54bbb8517aa9c5c8a25805b4020020a3bed","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.StrOpt(\u0027db_api_implementation\u0027, default\u003d\u0027trove.db.sqlalchemy.api\u0027),"},{"line_number":67,"context_line":"    cfg.StrOpt(\u0027mysql_pkg\u0027, default\u003d\u0027mysql-server-5.5\u0027),"},{"line_number":68,"context_line":"    cfg.StrOpt(\u0027percona_pkg\u0027, default\u003d\u0027percona-server-server-5.5\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027mongodb_pkg\u0027, default\u003d\u0027mongodb\u0027),"},{"line_number":70,"context_line":"    cfg.StrOpt(\u0027dns_driver\u0027, default\u003d\u0027trove.dns.driver.DnsDriver\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027dns_instance_entry_factory\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027trove.dns.driver.DnsInstanceEntryFactory\u0027),"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B3A8%3D","line":69,"in_reply_to":"AAAATn%2F%2B4ks%3D","updated":"2013-11-19 09:29:57.000000000","message":"I actually not any good in cassandra, neither could argue on mysql 5.1 vs 5.5. But as for MongoDB, there is just no such package as \u0027mongodb-x.x.x\u0027 neither in ubuntu nor in 10-gen repo. Just \u0027mongodb\u0027 or \u0027mongodb-10gen\u0027, take it or leave it. Moreover, the only way the versions differ from the Trove point of view is user management, which is not being implemented in the nearest future (there are issues to discuss)\nSo, the answer is \u0027no, no versions in the package name\u0027","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"7c62e69954c8ef084cef364fb3359013781d8e65","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.StrOpt(\u0027db_api_implementation\u0027, default\u003d\u0027trove.db.sqlalchemy.api\u0027),"},{"line_number":67,"context_line":"    cfg.StrOpt(\u0027mysql_pkg\u0027, default\u003d\u0027mysql-server-5.5\u0027),"},{"line_number":68,"context_line":"    cfg.StrOpt(\u0027percona_pkg\u0027, default\u003d\u0027percona-server-server-5.5\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027mongodb_pkg\u0027, default\u003d\u0027mongodb\u0027),"},{"line_number":70,"context_line":"    cfg.StrOpt(\u0027dns_driver\u0027, default\u003d\u0027trove.dns.driver.DnsDriver\u0027),"},{"line_number":71,"context_line":"    cfg.StrOpt(\u0027dns_instance_entry_factory\u0027,"},{"line_number":72,"context_line":"               default\u003d\u0027trove.dns.driver.DnsInstanceEntryFactory\u0027),"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B4ks%3D","line":69,"in_reply_to":"AAAATn%2F%2B4qA%3D","updated":"2013-11-19 00:16:25.000000000","message":"note: the in-flight cassandra pach-set also pins, see https://review.openstack.org/#/c/51884/17/trove/common/cfg.py","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"}],"trove/guestagent/datastore/mongodb/__init__.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"8a0903e9aebfa205a932717b424096e0bbbeb81e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2011 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2Bs6w%3D","line":1,"updated":"2013-11-21 11:43:48.000000000","message":"FYI, license header is not required for empty files.","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"8a5d6651ad73e62ab162f7242e182ef98dde1b62","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2011 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2BsmQ%3D","line":1,"in_reply_to":"AAAATn%2F%2Bs6w%3D","updated":"2013-11-21 12:33:39.000000000","message":"Done","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"}],"trove/guestagent/datastore/mongodb/app.py":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"befe47497971acc1bcdfadfb73b88dc56996846e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    \"\"\"Prepares DBaaS on a Guest container.\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    def __init__(self, status):"},{"line_number":19,"context_line":"        \"\"\" By default login with root no password for initial setup. \"\"\""},{"line_number":20,"context_line":"        self.state_change_wait_time \u003d CONF.state_change_wait_time"},{"line_number":21,"context_line":"        self.status \u003d status"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B4po%3D","line":19,"updated":"2013-11-18 23:53:53.000000000","message":"this docstring is not relevant.","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a6fdb54bbb8517aa9c5c8a25805b4020020a3bed","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    \"\"\"Prepares DBaaS on a Guest container.\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    def __init__(self, status):"},{"line_number":19,"context_line":"        \"\"\" By default login with root no password for initial setup. \"\"\""},{"line_number":20,"context_line":"        self.state_change_wait_time \u003d CONF.state_change_wait_time"},{"line_number":21,"context_line":"        self.status \u003d status"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B3DQ%3D","line":19,"in_reply_to":"AAAATn%2F%2B4po%3D","updated":"2013-11-19 09:29:57.000000000","message":"Done","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"befe47497971acc1bcdfadfb73b88dc56996846e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        self.status \u003d status"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def install_if_needed(self):"},{"line_number":24,"context_line":"        \"\"\"Prepare the guest machine with a secure mysql server installation\"\"\""},{"line_number":25,"context_line":"        if not self.is_installed():"},{"line_number":26,"context_line":"            self._install_db()"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B4ps%3D","line":24,"updated":"2013-11-18 23:53:53.000000000","message":"this docstring is still referring to mysql.","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a6fdb54bbb8517aa9c5c8a25805b4020020a3bed","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        self.status \u003d status"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def install_if_needed(self):"},{"line_number":24,"context_line":"        \"\"\"Prepare the guest machine with a secure mysql server installation\"\"\""},{"line_number":25,"context_line":"        if not self.is_installed():"},{"line_number":26,"context_line":"            self._install_db()"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B3DM%3D","line":24,"in_reply_to":"AAAATn%2F%2B4ps%3D","updated":"2013-11-19 09:29:57.000000000","message":"Done","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"befe47497971acc1bcdfadfb73b88dc56996846e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            self._install_db()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def _install_db(self):"},{"line_number":29,"context_line":"        \"\"\"Install mysql server. The current version is 5.5\"\"\""},{"line_number":30,"context_line":"        LOG.info(_(\"Installing MongoDB server\"))"},{"line_number":31,"context_line":"        # self._create_mysql_confd_dir()"},{"line_number":32,"context_line":"        system.PACKAGER.pkg_install(system.PACKAGE_NAME,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B4pw%3D","line":29,"updated":"2013-11-18 23:53:53.000000000","message":"this docstring is still referring to mysql.","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a6fdb54bbb8517aa9c5c8a25805b4020020a3bed","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            self._install_db()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def _install_db(self):"},{"line_number":29,"context_line":"        \"\"\"Install mysql server. The current version is 5.5\"\"\""},{"line_number":30,"context_line":"        LOG.info(_(\"Installing MongoDB server\"))"},{"line_number":31,"context_line":"        # self._create_mysql_confd_dir()"},{"line_number":32,"context_line":"        system.PACKAGER.pkg_install(system.PACKAGE_NAME,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B3DI%3D","line":29,"in_reply_to":"AAAATn%2F%2B4pw%3D","updated":"2013-11-19 09:29:57.000000000","message":"Done","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"befe47497971acc1bcdfadfb73b88dc56996846e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        system.PACKAGER.pkg_install(system.PACKAGE_NAME,"},{"line_number":33,"context_line":"                                    system.TIME_OUT)"},{"line_number":34,"context_line":"        self.start_db()"},{"line_number":35,"context_line":"        LOG.info(_(\"Finished installing mysql server\"))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _enable_db_on_boot(self):"},{"line_number":38,"context_line":"        LOG.info(_(\"Enabling MongoDB on boot\"))"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B4pk%3D","line":35,"updated":"2013-11-18 23:53:53.000000000","message":"this log message is still referring to mysql","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a6fdb54bbb8517aa9c5c8a25805b4020020a3bed","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        system.PACKAGER.pkg_install(system.PACKAGE_NAME,"},{"line_number":33,"context_line":"                                    system.TIME_OUT)"},{"line_number":34,"context_line":"        self.start_db()"},{"line_number":35,"context_line":"        LOG.info(_(\"Finished installing mysql server\"))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _enable_db_on_boot(self):"},{"line_number":38,"context_line":"        LOG.info(_(\"Enabling MongoDB on boot\"))"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B3DE%3D","line":35,"in_reply_to":"AAAATn%2F%2B4pk%3D","updated":"2013-11-19 09:29:57.000000000","message":"Done","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"8a0903e9aebfa205a932717b424096e0bbbeb81e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"import re"},{"line_number":2,"context_line":"from trove.common import cfg"},{"line_number":3,"context_line":"from trove.common import utils as utils"},{"line_number":4,"context_line":"from trove.common import exception"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2Bsvw%3D","line":1,"updated":"2013-11-21 11:43:48.000000000","message":"There should be an empty line between `import re` and this import block","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"8a5d6651ad73e62ab162f7242e182ef98dde1b62","unresolved":false,"context_lines":[{"line_number":1,"context_line":"import re"},{"line_number":2,"context_line":"from trove.common import cfg"},{"line_number":3,"context_line":"from trove.common import utils as utils"},{"line_number":4,"context_line":"from trove.common import exception"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2Bslo%3D","line":1,"in_reply_to":"AAAATn%2F%2Bsvw%3D","updated":"2013-11-21 12:33:39.000000000","message":"Done","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"649f7301fbff20ccebc0551a0cef605af0d91027","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2013 Mirantis, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAATn%2F9TEc%3D","line":1,"updated":"2013-12-12 22:40:18.000000000","message":"remove the vim stuffs","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"ab8d6f5a0139f6be4d58d72787d6135e9fcbaec5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2013 Mirantis, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAATn%2F9NuM%3D","line":1,"in_reply_to":"AAAATn%2F9TEc%3D","updated":"2013-12-13 22:59:19.000000000","message":"agree","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"30c529c4f0fb503784e5bfe586778e67d3a1969b","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        except KeyError:"},{"line_number":69,"context_line":"            raise RuntimeError(\"MongoDB service is not discovered.\")"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def stop_db(self, update_db\u003dFalse, do_not_start_on_reboot\u003dFalse):"},{"line_number":72,"context_line":"        LOG.info(_(\"Stopping MongoDB\"))"},{"line_number":73,"context_line":"        if do_not_start_on_reboot:"},{"line_number":74,"context_line":"            self._disable_db_on_boot()"}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAATn%2F9TOE%3D","line":71,"updated":"2013-12-12 21:47:28.000000000","message":"i don\u0027t see a situation in which do_not_start_on_reboot\u003dTrue in this review. so out of curiosity, what is your long-term intention with this flag?","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"649f7301fbff20ccebc0551a0cef605af0d91027","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        except KeyError:"},{"line_number":69,"context_line":"            raise RuntimeError(\"MongoDB service is not discovered.\")"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def stop_db(self, update_db\u003dFalse, do_not_start_on_reboot\u003dFalse):"},{"line_number":72,"context_line":"        LOG.info(_(\"Stopping MongoDB\"))"},{"line_number":73,"context_line":"        if do_not_start_on_reboot:"},{"line_number":74,"context_line":"            self._disable_db_on_boot()"}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAATn%2F9TBk%3D","line":71,"in_reply_to":"AAAATn%2F9TOE%3D","updated":"2013-12-12 22:40:18.000000000","message":"looks like this was copied in from the mysql guest.","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"30c529c4f0fb503784e5bfe586778e67d3a1969b","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                self.state_change_wait_time, update_db):"},{"line_number":119,"context_line":"            LOG.error(_(\"Start up of MongoDB failed\"))"},{"line_number":120,"context_line":"            # If it won\u0027t start, but won\u0027t die either, kill it by hand so we"},{"line_number":121,"context_line":"            # don\u0027t let a rouge process wander around."},{"line_number":122,"context_line":"            try:"},{"line_number":123,"context_line":"                utils.execute_with_timeout(\"sudo\", \"pkill\", \"-9\", \"mongod\")"},{"line_number":124,"context_line":"            except exception.ProcessExecutionError as p:"}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAATn%2F9TQQ%3D","line":121,"updated":"2013-12-12 21:47:28.000000000","message":"rouge should be rogue","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"}],"trove/guestagent/datastore/mongodb/manager.py":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"befe47497971acc1bcdfadfb73b88dc56996846e","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    @periodic_task.periodic_task(ticks_between_runs\u003d3)"},{"line_number":24,"context_line":"    def update_status(self, context):"},{"line_number":25,"context_line":"        \"\"\"Update the status of the MySQL service\"\"\""},{"line_number":26,"context_line":"        self.status.update()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def prepare(self, context, databases, memory_mb, users, device_path\u003dNone,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B4pY%3D","line":25,"updated":"2013-11-18 23:53:53.000000000","message":"this docstring is still referring to mysql","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a6fdb54bbb8517aa9c5c8a25805b4020020a3bed","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    @periodic_task.periodic_task(ticks_between_runs\u003d3)"},{"line_number":24,"context_line":"    def update_status(self, context):"},{"line_number":25,"context_line":"        \"\"\"Update the status of the MySQL service\"\"\""},{"line_number":26,"context_line":"        self.status.update()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def prepare(self, context, databases, memory_mb, users, device_path\u003dNone,"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B3DY%3D","line":25,"in_reply_to":"AAAATn%2F%2B4pY%3D","updated":"2013-11-19 09:29:57.000000000","message":"Done","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"6827e665f0b86e4ca4ddb94bbad7a060e1af4fc2","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.app.install_if_needed(packages)"},{"line_number":51,"context_line":"        self.app.stop_db()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        mount_point \u003d CONF.mount_point"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if device_path and mount_point:"},{"line_number":56,"context_line":"            device \u003d volume.VolumeDevice(device_path)"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BNIc%3D","line":53,"updated":"2014-01-29 03:23:36.000000000","message":"insta-fails, because this defaults to /var/lib/mysql.\n\ninstead, this should be hardcoded to /data/db much like the redis implementation hardcoded itself (see https://github.com/openstack/trove/blob/master/trove/guestagent/datastore/redis/manager.py#L80)\n\nin short, change this to \"mount_point \u003d system.MONGO_BASE_DIR\" and set MONGO_BASE_DIR to /data/db in system.py\n\nsometime in the near future, a patch should address these crazy mount_point hacks.","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"e0fde7035bf76aabfd2bbcedd52e5361679c6343","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.app.install_if_needed(packages)"},{"line_number":51,"context_line":"        self.app.stop_db()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        mount_point \u003d CONF.mount_point"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if device_path and mount_point:"},{"line_number":56,"context_line":"            device \u003d volume.VolumeDevice(device_path)"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BNGU%3D","line":53,"in_reply_to":"AAAAUH%2F%2BNIc%3D","updated":"2014-01-29 03:37:40.000000000","message":"update: instead of /data/db, do /var/lib/mongodb (i didn\u0027t notice you changed it in the template)","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"5fda2b319d063899ec3f4f89bd56096d729b9502","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        \"\"\"Gets the filesystem stats for the path given \"\"\""},{"line_number":103,"context_line":"        return dbaas.get_filesystem_volume_stats(fs_path)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def create_backup(self, context, backup_info):"},{"line_number":106,"context_line":"        raise NotImplementedError()"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def update_attributes(self, context, username, hostname, user_attrs):"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BMyo%3D","line":105,"updated":"2014-01-29 05:10:42.000000000","message":"when a user attempts to use an operation that\u0027s not implemented, this is what they see:\n\n    $ trove user-list dd190235-34ae-42f0-8660-25b879a016bd\n    ERROR: An error occurred communicating with the guest: \n    Traceback (most recent call last):\n    \n      File \"/home/stack/trove/trove/openstack/common/rpc/amqp.py\", line 440, in _process_data\n        **args)\n    \n      File \"/home/stack/trove/trove/openstack/common/rpc/dispatcher.py\", line 172, in dispatch\n        result \u003d getattr(proxyobj, method)(ctxt, **kwargs)\n    \n      File \"/home/stack/trove/trove/guestagent/datastore/mongodb/manager.py\", line 151, in list_users\n        raise NotImplementedError()\n    \n    NotImplementedError\n\n\nthis experience is pretty awful. the stacktrace should not be exposed to the user, and the message should be much more helpful, like: \"This operation is not supported for this datastore at this time.\"","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"a2f50fdcc75c4d4bd0f8a53c5dc147fb6c7153c1","unresolved":false,"context_lines":[{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class Manager(periodic_task.PeriodicTasks):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self):"},{"line_number":36,"context_line":"        self.status \u003d mongo_service.MongoDbAppStatus()"}],"source_content_type":"text/x-python","patch_set":44,"id":"AAAAUH%2F%2BF5I%3D","line":33,"updated":"2014-01-30 07:50:41.000000000","message":"$ trove user-list dedff60a-7814-4851-9d56-4f7ac26d3fce\n    ERROR: An error occurred communicating with the guest: No such RPC function \u0027list_users\u0027\n    Traceback (most recent call last):\n    \n      File \"/home/stack/trove/trove/openstack/common/rpc/amqp.py\", line 440, in _process_data\n        **args)\n    \n      File \"/home/stack/trove/trove/openstack/common/rpc/dispatcher.py\", line 176, in dispatch\n        raise AttributeError(\"No such RPC function \u0027%s\u0027\" % method)\n    \n    AttributeError: No such RPC function \u0027list_users\u0027\n\nremoving the functions and the \"raise NotSupported()\" does not solve the issue. users need to see a stacktrace-less message that is easy to grok.","commit_id":"996bcb14553e6233111fd697078b71358f6f8fc4"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"51525c7200c02cac2550101da5ad165a4db4069a","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def prepare(self, context, packages, databases, memory_mb, users,"},{"line_number":47,"context_line":"                device_path\u003dNone, mount_point\u003dNone, backup_info\u003dNone,"},{"line_number":48,"context_line":"                config_contents\u003dNone, root_password\u003dNone):"},{"line_number":49,"context_line":"        \"\"\"Makes ready DBAAS on a Guest container.\"\"\""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        LOG.debug(_(\"Prepare MongoDB instance\"))"}],"source_content_type":"text/x-python","patch_set":48,"id":"AAAAUH%2F9ZqQ%3D","line":48,"updated":"2014-02-07 06:09:29.000000000","message":"you need \"overrides\u003dNone\" here now that configuration-groups merged.","commit_id":"0c7e40166505ebcfab794c2edc843ed8a2a18262"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"b6a74ecf8abe502d43b7b145dd1d6ff668ff7237","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        \"\"\"Gets the filesystem stats for the path given \"\"\""},{"line_number":92,"context_line":"        return dbaas.get_filesystem_volume_stats(system.MONGODB_MOUNT_POINT)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def change_passwords(self, context, users):"},{"line_number":95,"context_line":"        raise exception.TroveError(ERROR_MSG)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def update_attributes(self, context, username, hostname, user_attrs):"}],"source_content_type":"text/x-python","patch_set":48,"id":"AAAAUH%2F%2BBYw%3D","line":94,"updated":"2014-01-30 22:21:19.000000000","message":"still doesn\u0027t work as expected (stack is sprayed to the user):\n\n$ trove user-list 64c8f37d-a126-4e8d-bfb8-23cb44432a99\nERROR: An error occurred communicating with the guest: Remote error: TroveError Not supported\n[u\u0027Traceback (most recent call last):\\n\u0027, u\u0027  File \"/home/stack/trove/trove/openstack/common/rpc/amqp.py\", line 440, in _process_data\\n    **args)\\n\u0027, u\u0027  File \"/home/stack/trove/trove/openstack/common/rpc/dispatcher.py\", line 172, in dispatch\\n    result \u003d getattr(proxyobj, method)(ctxt, **kwargs)\\n\u0027, u\u0027  File \"/home/stack/trove/trove/guestagent/datastore/mongodb/manager.py\", line 130, in list_users\\n    raise exception.TroveError(ERROR_MSG)\\n\u0027, u\u0027TroveError: Not supported\\n\u0027]..\n\nplease test your next attempt before pushing the patch-set.\n\nalso, change the content to \"This operation is not supported for this datastore at this time\"","commit_id":"0c7e40166505ebcfab794c2edc843ed8a2a18262"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"51525c7200c02cac2550101da5ad165a4db4069a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        \"\"\"Gets the filesystem stats for the path given \"\"\""},{"line_number":92,"context_line":"        return dbaas.get_filesystem_volume_stats(system.MONGODB_MOUNT_POINT)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def change_passwords(self, context, users):"},{"line_number":95,"context_line":"        raise exception.TroveError(ERROR_MSG)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def update_attributes(self, context, username, hostname, user_attrs):"}],"source_content_type":"text/x-python","patch_set":48,"id":"AAAAUH%2F9ZqE%3D","line":94,"in_reply_to":"AAAAUH%2F%2BBYw%3D","updated":"2014-02-07 06:09:29.000000000","message":"update: this is being punted on for now.","commit_id":"0c7e40166505ebcfab794c2edc843ed8a2a18262"},{"author":{"_account_id":8136,"name":"Viswa Vutharkar","email":"vpvutharkar@ebaysf.com","username":"vvutharkar"},"change_message_id":"8a9c595df9a4e79b340c87f0e441c532be93a5f0","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        LOG.debug(_(\"Prepare MongoDB instance\"))"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        self.status.begin_install()"},{"line_number":54,"context_line":"        self.app.clear_storage()"},{"line_number":55,"context_line":"        self.app.install_if_needed(packages)"},{"line_number":56,"context_line":"        self.app.stop_db()"},{"line_number":57,"context_line":"        mount_point \u003d system.MONGODB_MOUNT_POINT"}],"source_content_type":"text/x-python","patch_set":61,"id":"AAAAU3%2F%2Fa8E%3D","line":54,"updated":"2014-02-26 18:42:25.000000000","message":"This should be called after two lines below. i.e after self.app.stop_db()\n\nThis is for two reasons.\n1) you shouldn\u0027t delete the db dir while mongo is still running\n2) install_if_needed() may create the dir again\n\nSo better call it after the step  self.app.stop_db()","commit_id":"69b9fcfe2cd0adf82768390059432fa506d06e58"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"555c0d6f9b1ecbc532a7ac6c635abd7591d55a77","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        LOG.debug(_(\"Prepare MongoDB instance\"))"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        self.status.begin_install()"},{"line_number":54,"context_line":"        self.app.clear_storage()"},{"line_number":55,"context_line":"        self.app.install_if_needed(packages)"},{"line_number":56,"context_line":"        self.app.stop_db()"},{"line_number":57,"context_line":"        mount_point \u003d system.MONGODB_MOUNT_POINT"}],"source_content_type":"text/x-python","patch_set":61,"id":"AAAAVX%2F%2F%2BLg%3D","line":54,"in_reply_to":"AAAAU3%2F%2Fa8E%3D","updated":"2014-02-27 03:30:33.000000000","message":"agreed.","commit_id":"69b9fcfe2cd0adf82768390059432fa506d06e58"}],"trove/guestagent/datastore/mongodb/service.py":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"6827e665f0b86e4ca4ddb94bbad7a060e1af4fc2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":53,"context_line":"            utils.execute_with_timeout(mongodb_service[\u0027cmd_enable\u0027],"},{"line_number":54,"context_line":"                                       shell\u003dTrue, run_as_root\u003dTrue,"},{"line_number":55,"context_line":"                                       root_helper\u003d\"sudo\")"},{"line_number":56,"context_line":"        except KeyError:"},{"line_number":57,"context_line":"            raise RuntimeError(_(\"MongoDB service is not discovered.\"))"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BNJ4%3D","line":55,"updated":"2014-01-29 03:23:36.000000000","message":"doesn\u0027t work, insta-fails (because cmd_enable already has a sudo, so by specifying run_as_root+root_helper, you\u0027re running \"sudo sudo\" vs \"sudo\").\n\ninstead, should be:\n\n            utils.execute_with_timeout(mongodb_service[\u0027cmd_enable\u0027],\n                                       shell\u003dTrue)","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"6827e665f0b86e4ca4ddb94bbad7a060e1af4fc2","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":64,"context_line":"            utils.execute_with_timeout(mongodb_service[\u0027cmd_disable\u0027],"},{"line_number":65,"context_line":"                                       shell\u003dTrue, run_as_root\u003dTrue,"},{"line_number":66,"context_line":"                                       root_helper\u003d\"sudo\")"},{"line_number":67,"context_line":"        except KeyError:"},{"line_number":68,"context_line":"            raise RuntimeError(\"MongoDB service is not discovered.\")"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BNJc%3D","line":66,"updated":"2014-01-29 03:23:36.000000000","message":"insta-fails (see explanation above).\n\nshould be:\n\n            utils.execute_with_timeout(mongodb_service[\u0027cmd_disable\u0027],\n                                       shell\u003dTrue)","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"6827e665f0b86e4ca4ddb94bbad7a060e1af4fc2","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            mongodb_service \u003d operating_system.service_discovery("},{"line_number":77,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":78,"context_line":"            utils.execute_with_timeout(mongodb_service[\u0027cmd_stop\u0027], shell\u003dTrue,"},{"line_number":79,"context_line":"                                       run_as_root\u003dTrue, root_helper\u003d\"sudo\")"},{"line_number":80,"context_line":"        except KeyError:"},{"line_number":81,"context_line":"            raise RuntimeError(_(\"MongoDB service is not discovered.\"))"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BNJo%3D","line":79,"updated":"2014-01-29 03:23:36.000000000","message":"insta-fails (see explanation above).\n\nshould be:\n\n            utils.execute_with_timeout(mongodb_service[\u0027cmd_stop\u0027],\n                                       shell\u003dTrue)","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"6827e665f0b86e4ca4ddb94bbad7a060e1af4fc2","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":107,"context_line":"            utils.execute_with_timeout(mongodb_service[\u0027cmd_start\u0027],"},{"line_number":108,"context_line":"                                       shell\u003dTrue, run_as_root\u003dTrue,"},{"line_number":109,"context_line":"                                       root_helper\u003d\"sudo\")"},{"line_number":110,"context_line":"        except ProcessExecutionError:"},{"line_number":111,"context_line":"            pass"},{"line_number":112,"context_line":"        except KeyError:"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BNJU%3D","line":109,"updated":"2014-01-29 03:23:36.000000000","message":"insta-fails (see explanation above).\n\nshould be:\n\n            utils.execute_with_timeout(mongodb_service[\u0027cmd_start\u0027],\n                                       shell\u003dTrue)","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9c8592a9cb876b870c949a715c743a5f1676eaa7","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            # If it won\u0027t start, but won\u0027t die either, kill it by hand so we"},{"line_number":120,"context_line":"            # don\u0027t let a rouge process wander around."},{"line_number":121,"context_line":"            try:"},{"line_number":122,"context_line":"                utils.execute_with_timeout(\"sudo\", \"pkill\", \"-9\", \"mongod\")"},{"line_number":123,"context_line":"            except exception.ProcessExecutionError as p:"},{"line_number":124,"context_line":"                LOG.error(\"Error killing stalled MongoDB start command.\")"},{"line_number":125,"context_line":"                LOG.error(p)"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BMw8%3D","line":122,"updated":"2014-01-29 05:20:53.000000000","message":"as mentioned in the official literature at http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/#use-kill:\n\n    Never use kill -9 (i.e. SIGKILL) to terminate a mongod instance.\n\nplease change this logic to attempt to use regular ol\u0027 \"kill\" (as the literature states).\n\nthen, *maybe* if kill fails, you can resort to pkill -9, but i\u0027d like to see if we can confer with someone from 10gen (or a resident expert) on whether it\u0027s advisable (considering this path can be hit in the future on a migration).","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"6827e665f0b86e4ca4ddb94bbad7a060e1af4fc2","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    def _get_actual_db_status(self):"},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            out, err \u003d utils.execute_with_timeout("},{"line_number":209,"context_line":"                system.CMD_STATUS, shell\u003dTrue)"},{"line_number":210,"context_line":"            if \"start/running\" in out:"},{"line_number":211,"context_line":"                return rd_instance.ServiceStatuses.RUNNING"},{"line_number":212,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BNKI%3D","line":209,"updated":"2014-01-29 03:23:36.000000000","message":"doesn\u0027t work, results in:\n\n    Command: sudo service mongodb status\n    Exit code: 1\n    Stdout: \u0027\u0027\n    Stderr: \u0027sudo: service mongodb status: command not found\\n\u0027\n\ninstead, should be:\n\n            out, err \u003d utils.execute_with_timeout(\n                \"sudo\", \"service\", \"mongodb\", \"status\")","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"a2f50fdcc75c4d4bd0f8a53c5dc147fb6c7153c1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def install_if_needed(self, packages):"},{"line_number":41,"context_line":"        \"\"\"Prepare the guest machine with a MongoDB installation\"\"\""},{"line_number":42,"context_line":"        LOG.info(_(\"Preparing Guest as MongoDB\"))"},{"line_number":43,"context_line":"        if not system.PACKAGER.pkg_is_installed(packages):"},{"line_number":44,"context_line":"            LOG.debug(_(\"Installing packages: %s\") % str(packages))"},{"line_number":45,"context_line":"            system.PACKAGER.pkg_install(packages, {}, system.TIME_OUT)"},{"line_number":46,"context_line":"        LOG.info(_(\"Finished installing MongoDB server\"))"}],"source_content_type":"text/x-python","patch_set":44,"id":"AAAAUH%2F%2BF7o%3D","line":43,"updated":"2014-01-30 07:50:41.000000000","message":"in trove-integration you had to add \"rm -rf /var/lib/mongodb\" to avoid the rsync-related failure.\n\nwell, if the image being used does not have the package installed, here it will be installed, /var/lib/mongodb will be created, and the same rsync + db-status loop + status\u003dERROR problem occurs.\n\n2014-01-30 07:04:41.031 DEBUG trove.openstack.common.processutils [req-4df30578-48f8-46b1-af35-7dfc47f65d1a 1608984302624e548e8617d1c5983a19 7eec58dd037e488689a920d8ec07cbeb] Running cmd (subprocess): sudo rsync --safe-links --perms --recursive --owner --group --xattrs --sparse /var/lib/mongodb/ /mnt/volume from (pid\u003d1167) execute /home/stack/trove/trove/openstack/common/processutils.py:137\n2014-01-30 07:04:49.818 DEBUG trove.openstack.common.periodic_task [-] Running periodic task Manager.update_status from (pid\u003d1167) run_periodic_tasks /home/stack/trove/trove/openstack/common/periodic_task.py:106\n2014-01-30 07:04:49.992 INFO trove.guestagent.datastore.service [-] DB server is not installed or is in restart mode, so for now we\u0027ll skip determining the status of DB on this box.\n2014-01-30 07:04:59.725 DEBUG trove.openstack.common.periodic_task [-] Skipping Manager.update_status, 3 ticks left until next run from (pid\u003d1167) run_periodic_tasks /home/stack/trove/trove/openstack/common/periodic_task.py:100\n2014-01-30 07:05:09.726 DEBUG trove.openstack.common.periodic_task [-] Skipping Manager.update_status, 2 ticks left until next run from (pid\u003d1167) run_periodic_tasks /home/stack/trove/trove/openstack/common/periodic_task.py:100\n2014-01-30 07:05:19.734 DEBUG trove.openstack.common.periodic_task [-] Skipping Manager.update_status, 1 ticks left until next run from (pid\u003d1167) run_periodic_tasks /home/stack/trove/trove/openstack/common/periodic_task.py:100\n2014-01-30 07:05:29.741 DEBUG trove.openstack.common.periodic_task [-] Running periodic task Manager.update_status from (pid\u003d1167) run_periodic_tasks /home/stack/trove/trove/openstack/common/periodic_task.py:106\n\nthe only quick hack that will work here is: if the mount_path directory is empty prior to the package install, then after the install (and after it\u0027s been stopped) it\u0027s safe to \"rm -rf\" that directory.\n\nanother issue is that it\u0027s installed without using the config template. with mongodb, this means even if you have noprealloc\u003dtrue and smallfiles\u003dtrue in your config template, your root disk will be filled with gigs of prealloc files because it\u0027s auto-started after the install. as is then, this necessitates the use of flavors that are \"small\" or larger, irrespective of config template values. this is a bit tricky to solve, and likely should be done dynamically (as seen in mysql\u0027s config parameters).","commit_id":"996bcb14553e6233111fd697078b71358f6f8fc4"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"a2f50fdcc75c4d4bd0f8a53c5dc147fb6c7153c1","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            # If it won\u0027t start, but won\u0027t die either, kill it by hand so we"},{"line_number":117,"context_line":"            # don\u0027t let a rouge process wander around."},{"line_number":118,"context_line":"            try:"},{"line_number":119,"context_line":"                utils.execute_with_timeout(\"sudo\", \"pkill\", \"-9\", \"mongod\")"},{"line_number":120,"context_line":"            except exception.ProcessExecutionError as p:"},{"line_number":121,"context_line":"                LOG.error(\"Error killing stalled MongoDB start command.\")"},{"line_number":122,"context_line":"                LOG.error(p)"}],"source_content_type":"text/x-python","patch_set":44,"id":"AAAAUH%2F%2BF3g%3D","line":119,"updated":"2014-01-30 07:50:41.000000000","message":"as mentioned in the official literature at http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/#use-kill:\n\n    Never use kill -9 (i.e. SIGKILL) to terminate a mongod instance.\n\nplease change this logic to attempt to use:\n\n    kill $(pidof mongod)\n\nfor more information, see http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/","commit_id":"996bcb14553e6233111fd697078b71358f6f8fc4"},{"author":{"_account_id":8136,"name":"Viswa Vutharkar","email":"vpvutharkar@ebaysf.com","username":"vvutharkar"},"change_message_id":"8a9c595df9a4e79b340c87f0e441c532be93a5f0","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    def clear_storage(self):"},{"line_number":206,"context_line":"        mount_point \u003d \"/var/lib/mongodb\""},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            cmd \u003d \"sudo rm -rf %s/\" % mount_point"},{"line_number":209,"context_line":"            utils.execute_with_timeout(cmd, shell\u003dTrue)"},{"line_number":210,"context_line":"        except exception.ProcessExecutionError as e:"},{"line_number":211,"context_line":"            LOG.error(_(\"Process execution %s\") % e)"}],"source_content_type":"text/x-python","patch_set":61,"id":"AAAAU3%2F%2Fa6c%3D","line":208,"updated":"2014-02-26 18:42:25.000000000","message":"should be \"sudo rm -rf %s/*\"  so that the /var/lib/mongodb/*  (files and dirs under the dir) will get deleted and not /var/lib/mongodb also. Some versions of mongo expect that dir to be present and won\u0027t startup properly if it is not present. The dir itself may be empty but it has to be present.","commit_id":"69b9fcfe2cd0adf82768390059432fa506d06e58"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"555c0d6f9b1ecbc532a7ac6c635abd7591d55a77","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    def clear_storage(self):"},{"line_number":206,"context_line":"        mount_point \u003d \"/var/lib/mongodb\""},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            cmd \u003d \"sudo rm -rf %s/\" % mount_point"},{"line_number":209,"context_line":"            utils.execute_with_timeout(cmd, shell\u003dTrue)"},{"line_number":210,"context_line":"        except exception.ProcessExecutionError as e:"},{"line_number":211,"context_line":"            LOG.error(_(\"Process execution %s\") % e)"}],"source_content_type":"text/x-python","patch_set":61,"id":"AAAAVX%2F%2F%2BLM%3D","line":208,"in_reply_to":"AAAAU3%2F%2Fa6c%3D","updated":"2014-02-27 03:30:33.000000000","message":"viswa: this is for mongo 2.4.9 that /var/lib/mongodb as a directory must be present, correct?","commit_id":"69b9fcfe2cd0adf82768390059432fa506d06e58"},{"author":{"_account_id":8136,"name":"Viswa Vutharkar","email":"vpvutharkar@ebaysf.com","username":"vvutharkar"},"change_message_id":"b24ced7b36636e0e52bfb93a729319bbdeb8457e","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    def clear_storage(self):"},{"line_number":206,"context_line":"        mount_point \u003d \"/var/lib/mongodb/*\""},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            cmd \u003d \"sudo rm -rf %s/\" % mount_point"},{"line_number":209,"context_line":"            utils.execute_with_timeout(cmd, shell\u003dTrue)"},{"line_number":210,"context_line":"        except exception.ProcessExecutionError as e:"},{"line_number":211,"context_line":"            LOG.error(_(\"Process execution %s\") % e)"}],"source_content_type":"text/x-python","patch_set":62,"id":"AAAAVX%2F%2F35M%3D","line":208,"updated":"2014-02-27 17:02:22.000000000","message":"This will translate to \"sudo rm -rf /var/lob/mongodb/*/\"\nThat is not correct. The last / must be removed.","commit_id":"56dc43fbf44773ef5d11bc5626dc22051ecc5694"}],"trove/guestagent/datastore/mongodb/status.py":[{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"649f7301fbff20ccebc0551a0cef605af0d91027","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        try:"},{"line_number":32,"context_line":"            out, err \u003d utils.execute_with_timeout("},{"line_number":33,"context_line":"                system.CMD_STATUS, shell\u003dTrue)"},{"line_number":34,"context_line":"            if \"start/running\" in out:"},{"line_number":35,"context_line":"                return instance.ServiceStatuses.RUNNING"},{"line_number":36,"context_line":"            else:"},{"line_number":37,"context_line":"                return instance.ServiceStatuses.SHUTDOWN"}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAATn%2F9S8U%3D","line":34,"updated":"2013-12-12 22:40:18.000000000","message":"i think this will work for now but may cause some issues if the service gets hung up or something goofy happens. Its why we made the mysql ping to make sure the service is good.\n\nSince i dont know another way to do this with mongo i wont hold it up for this. just something to keep in mind.","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"0c0739e4574927f99b149b2159903e52f541499f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        try:"},{"line_number":32,"context_line":"            out, err \u003d utils.execute_with_timeout("},{"line_number":33,"context_line":"                system.CMD_STATUS, shell\u003dTrue)"},{"line_number":34,"context_line":"            if \"start/running\" in out:"},{"line_number":35,"context_line":"                return instance.ServiceStatuses.RUNNING"},{"line_number":36,"context_line":"            else:"},{"line_number":37,"context_line":"                return instance.ServiceStatuses.SHUTDOWN"}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAATn%2F9OjU%3D","line":34,"in_reply_to":"AAAATn%2F9Rks%3D","updated":"2013-12-13 19:19:10.000000000","message":"i\u0027m wondering if we can do something similar to the couchdb pingquery plugin, but for mongodb via the client. see https://github.com/iriscouch/pingquery_couchdb.\n\nin short, issue something silly like 2\u003d2 simply to assert the query server is running/working.","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d46f2d0a008294d0c95bf11391f6668be9eb02e5","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        try:"},{"line_number":32,"context_line":"            out, err \u003d utils.execute_with_timeout("},{"line_number":33,"context_line":"                system.CMD_STATUS, shell\u003dTrue)"},{"line_number":34,"context_line":"            if \"start/running\" in out:"},{"line_number":35,"context_line":"                return instance.ServiceStatuses.RUNNING"},{"line_number":36,"context_line":"            else:"},{"line_number":37,"context_line":"                return instance.ServiceStatuses.SHUTDOWN"}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAATn%2F9Rks%3D","line":34,"in_reply_to":"AAAATn%2F9S8U%3D","updated":"2013-12-13 07:20:47.000000000","message":"There no simple way in mongo like mysql ping. So we should trust to such check.","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"}],"trove/guestagent/datastore/mongodb/system.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"8a0903e9aebfa205a932717b424096e0bbbeb81e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from trove.guestagent import pkg"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"CMD_STATUS \u003d \"service mongodb status\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":7,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2BswY%3D","line":4,"updated":"2013-11-21 11:43:48.000000000","message":"Not sure about using service here. Although, it may work for most of the distros, it sounds like to so cross-distro (not all distros name mongodb service as mongodb).\n\nWhat about checking if there\u0027s a mongod process running? None of these solutions will work for more complex deployments (replSets and sharding)","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"e64167251ecfb0445e8b7d356c4ab4684034fabd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from trove.guestagent import pkg"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"CMD_STATUS \u003d \"service mongodb status\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":7,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2Brto%3D","line":4,"in_reply_to":"AAAATn%2F%2BslM%3D","updated":"2013-11-21 15:46:07.000000000","message":"mmh, a bit scary TBH :P\n\nWe should find a way to gate this on different distros and make sure this work fine.","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"8a5d6651ad73e62ab162f7242e182ef98dde1b62","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from trove.guestagent import pkg"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"CMD_STATUS \u003d \"service mongodb status\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":7,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2BslM%3D","line":4,"in_reply_to":"AAAATn%2F%2BswY%3D","updated":"2013-11-21 12:33:39.000000000","message":"I\u0027m going to elaborate this later, using service_discovery.\nThe whole thing has been tested on ubuntu only for now","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"8a0903e9aebfa205a932717b424096e0bbbeb81e","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"CMD_STATUS \u003d \"service mongodb status\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":7,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""},{"line_number":8,"context_line":"SERVICE_CANDIDATES \u003d [\"mongodb\"]"},{"line_number":9,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2BszY%3D","line":6,"updated":"2013-11-21 11:43:48.000000000","message":"This should be a configuration parameter. Using /tmp is not secure and not having a configuration parameter makes it impossible for packagers to set a more , distro-specific, secure path. :(","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"e64167251ecfb0445e8b7d356c4ab4684034fabd","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"CMD_STATUS \u003d \"service mongodb status\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":7,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""},{"line_number":8,"context_line":"SERVICE_CANDIDATES \u003d [\"mongodb\"]"},{"line_number":9,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2BsHo%3D","line":6,"in_reply_to":"AAAATn%2F%2BskY%3D","updated":"2013-11-21 15:46:07.000000000","message":"I do think there are security issues related to this (and I saw mysql is using it as well). I could inject a mongodb.conf that points to a different db_path and get all the data. This is one of many scenarios. \n\nThanks :)","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"8a5d6651ad73e62ab162f7242e182ef98dde1b62","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"CMD_STATUS \u003d \"service mongodb status\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":7,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""},{"line_number":8,"context_line":"SERVICE_CANDIDATES \u003d [\"mongodb\"]"},{"line_number":9,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2BskY%3D","line":6,"in_reply_to":"AAAATn%2F%2BszY%3D","updated":"2013-11-21 12:33:39.000000000","message":"Well, it is used only as a short-term temporary storage during configuration update and never as a real mongodb config. So I don\u0027t think it really needs to be configurable. \nAnd it gets removed once it is not needed. And as far as I know (fix me here) mongodb conf does not contain any secure information. Do you really think is can cause a security issue?","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"8a0903e9aebfa205a932717b424096e0bbbeb81e","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":7,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""},{"line_number":8,"context_line":"SERVICE_CANDIDATES \u003d [\"mongodb\"]"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"TIME_OUT \u003d 1000"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2Bsv8%3D","line":8,"updated":"2013-11-21 11:43:48.000000000","message":"f19 uses mongod","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"8a5d6651ad73e62ab162f7242e182ef98dde1b62","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":7,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""},{"line_number":8,"context_line":"SERVICE_CANDIDATES \u003d [\"mongodb\"]"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"TIME_OUT \u003d 1000"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2Bslc%3D","line":8,"in_reply_to":"AAAATn%2F%2Bsv8%3D","updated":"2013-11-21 12:33:39.000000000","message":"That\u0027s really helpful, thanks","commit_id":"ccf21af9626410c4262676514e141db8d736cbec"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"9eee1dedc939f536851be9cafec8186949899bc8","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"CMD_STATUS \u003d \"service mongodb status\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":24,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""},{"line_number":25,"context_line":"SERVICE_CANDIDATES \u003d [\"mongodb\", \"mongod\"]"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"AAAATn%2F%2BY2I%3D","line":23,"updated":"2013-11-26 16:22:53.000000000","message":"This still worries me. At least, a bug should be filed for it. Using /tmp/ is not safe security-wise. :(","commit_id":"e077df88208f6e0462f865133197532d2c4ecccf"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"6629486df6647bbe3003a134340560e905752b9f","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"CMD_STATUS \u003d \"service mongodb status\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":24,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""},{"line_number":25,"context_line":"SERVICE_CANDIDATES \u003d [\"mongodb\", \"mongod\"]"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"AAAATn%2F%2BYhE%3D","line":23,"in_reply_to":"AAAATn%2F%2BY2I%3D","updated":"2013-11-26 17:08:34.000000000","message":"Could you please suggest a better location?\nOr maybe \"/tmp/mongodb.conf-\u003ccurrent_timestamp\u003e.tmp\" will help?\n\nSorry, I still can\u0027t figure out a possible security issue considering the way this value is used.","commit_id":"e077df88208f6e0462f865133197532d2c4ecccf"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"e9dd8aede04352ad1712660d47b9ea3bb14e8464","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"CMD_STATUS \u003d \"service mongodb status\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"TMP_CONFIG \u003d \"/tmp/mongodb.conf.tmp\""},{"line_number":24,"context_line":"CONFIG \u003d \"/etc/mongodb.conf\""},{"line_number":25,"context_line":"SERVICE_CANDIDATES \u003d [\"mongodb\", \"mongod\"]"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"AAAATn%2F%2BVnw%3D","line":23,"in_reply_to":"AAAATn%2F%2BYhE%3D","updated":"2013-11-27 08:11:15.000000000","message":"Using the current timestamp is a good option. \n\nI think you missed one of my comments about the security implications, I can\u0027t find it anymore. Too many patch-sets :D\n\nI know this file is created when needed but, between its creation and the actual copy to its final location, this file can be swapped with another config file that would make mongo write its data in another, insecure, location, for example.\n\nThanks for the effort, really.","commit_id":"e077df88208f6e0462f865133197532d2c4ecccf"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"65014372dc4589d6816fa224c9e88ba662e4bef2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2013 Mirantis, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":52,"id":"AAAAUX%2F%2FMbU%3D","line":1,"updated":"2014-02-15 00:11:07.000000000","message":"remove vim line.","commit_id":"b1522e6c1083ff15250276eae6c43888a887d04a"}],"trove/guestagent/manager/mongodb.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"02ac2fee02f27ae3b9cb8633b91e863c0bbdccfb","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        try:"},{"line_number":195,"context_line":"            self.status.begin_restart()"},{"line_number":196,"context_line":"            self.stop_db()"},{"line_number":197,"context_line":"            self.start_db()"},{"line_number":198,"context_line":"        finally:"},{"line_number":199,"context_line":"            self.status.end_install_or_restart()"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FvD0%3D","line":197,"updated":"2013-10-10 16:09:39.000000000","message":"Since stop and start are execs, so we could use simple \"sudo service mongodb restart\"","commit_id":"25f9e0162e8996b751c51fb36552ad8aabb2177e"}],"trove/templates/mongodb/config.template":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9bf297b65dd7cf19ef51eb8217070ba168925ef0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# mongodb.conf"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"smallfiles \u003d true"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"# Where to store the data."},{"line_number":6,"context_line":"dbpath\u003d/var/lib/mongodb"}],"source_content_type":"application/octet-stream","patch_set":40,"id":"AAAATn%2F9Njg%3D","line":3,"updated":"2013-12-14 00:07:47.000000000","message":"it\u0027s worthwhile to point out that smallfiles defaults to false, yet you\u0027ve set it to true here. shouldn\u0027t the templates default to the true package default?","commit_id":"a583678db80ea7c8ef40536a00c4019dcbf3c144"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"4bfeea79f35c4e763010a08df93665894261d0ca","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"logappend\u003dtrue"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"bind_ip \u003d 127.0.0.1"},{"line_number":14,"context_line":"#port \u003d 27017"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling"}],"source_content_type":"application/octet-stream","patch_set":42,"id":"AAAAUH%2F%2BMwA%3D","line":13,"updated":"2014-01-29 05:31:27.000000000","message":"bind_ip should be commented out; setting it to 127.0.0.1 makes it impossible to connect.","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"e237b60e5ad0fd933afaa55e0b5ddc37bfde7173","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"logappend\u003dtrue"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"bind_ip \u003d 127.0.0.1"},{"line_number":14,"context_line":"#port \u003d 27017"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling"}],"source_content_type":"application/octet-stream","patch_set":42,"id":"AAAAUH%2F%2BMlU%3D","line":13,"in_reply_to":"AAAAUH%2F%2BMwA%3D","updated":"2014-01-29 06:26:46.000000000","message":"update: actually, you should keep this, but use the get_ip_address method at https://review.openstack.org/#/c/51884/26/trove/guestagent/common/operating_system.py to set it in manager.py\u0027s prepare()","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"}],"trove/tests/unittests/guestagent/test_dbaas.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"703fda3d55b2433df442f639e6f1e636a0fd993d","unresolved":false,"context_lines":[{"line_number":899,"context_line":"        self.assertEqual(test_dict.get(\u0027mysql\u0027),"},{"line_number":900,"context_line":"                         \u0027trove.guestagent.datastore.mysql.\u0027"},{"line_number":901,"context_line":"                         \u0027manager.Manager\u0027)"},{"line_number":902,"context_line":"        self.assertEqual(test_dict.get(\u0027percona\u0027),"},{"line_number":903,"context_line":"                         \u0027trove.guestagent.datastore.mysql.\u0027"},{"line_number":904,"context_line":"                         \u0027manager.Manager\u0027)"},{"line_number":905,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B62o%3D","line":902,"updated":"2013-11-18 15:34:40.000000000","message":"add a check for mongo","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"71ef9bb50e8f9bbfd21d92c68f5e33f710d0dcaf","unresolved":false,"context_lines":[{"line_number":899,"context_line":"        self.assertEqual(test_dict.get(\u0027mysql\u0027),"},{"line_number":900,"context_line":"                         \u0027trove.guestagent.datastore.mysql.\u0027"},{"line_number":901,"context_line":"                         \u0027manager.Manager\u0027)"},{"line_number":902,"context_line":"        self.assertEqual(test_dict.get(\u0027percona\u0027),"},{"line_number":903,"context_line":"                         \u0027trove.guestagent.datastore.mysql.\u0027"},{"line_number":904,"context_line":"                         \u0027manager.Manager\u0027)"},{"line_number":905,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B6i0%3D","line":902,"in_reply_to":"AAAATn%2F%2B62o%3D","updated":"2013-11-18 16:14:47.000000000","message":"This is service registry functionality test. It has nothing to do with MongoDB support. I\u0027d even prefer these tests to deal with something fake/random for not being necessary to tweak it each time we add new service type support.","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"741d3029e498231a8a50d906b302cc77a961951e","unresolved":false,"context_lines":[{"line_number":899,"context_line":"        self.assertEqual(test_dict.get(\u0027mysql\u0027),"},{"line_number":900,"context_line":"                         \u0027trove.guestagent.datastore.mysql.\u0027"},{"line_number":901,"context_line":"                         \u0027manager.Manager\u0027)"},{"line_number":902,"context_line":"        self.assertEqual(test_dict.get(\u0027percona\u0027),"},{"line_number":903,"context_line":"                         \u0027trove.guestagent.datastore.mysql.\u0027"},{"line_number":904,"context_line":"                         \u0027manager.Manager\u0027)"},{"line_number":905,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B6gY%3D","line":902,"in_reply_to":"AAAATn%2F%2B6i0%3D","updated":"2013-11-18 16:21:02.000000000","message":"Fine, I think that the base test should then be changed to not say \u0027mysql\u0027 and \u0027percona\u0027 As it makes one think that this is actual data.","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"703fda3d55b2433df442f639e6f1e636a0fd993d","unresolved":false,"context_lines":[{"line_number":915,"context_line":"        self.assertEqual(test_dict.get(\u0027mysql\u0027),"},{"line_number":916,"context_line":"                         \u0027trove.guestagent.datastore.mysql.\u0027"},{"line_number":917,"context_line":"                         \u0027manager.Manager123\u0027)"},{"line_number":918,"context_line":"        self.assertEqual(test_dict.get(\u0027percona\u0027),"},{"line_number":919,"context_line":"                         \u0027trove.guestagent.datastore.mysql.\u0027"},{"line_number":920,"context_line":"                         \u0027manager.Manager\u0027)"},{"line_number":921,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B62k%3D","line":918,"updated":"2013-11-18 15:34:40.000000000","message":"same here","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"703fda3d55b2433df442f639e6f1e636a0fd993d","unresolved":false,"context_lines":[{"line_number":925,"context_line":"                                            service_registry_ext_test)"},{"line_number":926,"context_line":"        test_dict \u003d dbaas_sr.service_registry()"},{"line_number":927,"context_line":"        self.assertEqual(3, len(test_dict))"},{"line_number":928,"context_line":"        self.assertEqual(test_dict.get(\u0027mysql\u0027),"},{"line_number":929,"context_line":"                         \u0027trove.guestagent.datastore.mysql.\u0027"},{"line_number":930,"context_line":"                         \u0027manager.Manager\u0027)"},{"line_number":931,"context_line":"        self.assertEqual(test_dict.get(\u0027percona\u0027),"}],"source_content_type":"text/x-python","patch_set":28,"id":"AAAATn%2F%2B62g%3D","line":928,"updated":"2013-11-18 15:34:40.000000000","message":"same here","commit_id":"2b1beef496f0dc2bd9ef51aeea9353d71c6af5bf"}],"trove/tests/unittests/guestagent/test_manager.py":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"e1b1e29281d5996e2469eae2c2000cbf649391a9","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                             packages\u003d[\u0027package\u0027],"},{"line_number":287,"context_line":"                             memory_mb\u003d\u00272048\u0027, users\u003dNone,"},{"line_number":288,"context_line":"                             device_path\u003ddevice_path,"},{"line_number":289,"context_line":"                             mount_point\u003d\u0027/var/lib/mysql\u0027,"},{"line_number":290,"context_line":"                             backup_info\u003dbackup_info)"},{"line_number":291,"context_line":"        # verification/assertion"},{"line_number":292,"context_line":"        verify(mock_status).begin_install()"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BNHg%3D","line":289,"updated":"2014-01-29 03:27:55.000000000","message":"should not be /var/lib/mysql, should be /data/db","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"6c2ab67ef5dc991df213b3166b905ea3c008c563","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                             packages\u003d[\u0027package\u0027],"},{"line_number":287,"context_line":"                             memory_mb\u003d\u00272048\u0027, users\u003dNone,"},{"line_number":288,"context_line":"                             device_path\u003ddevice_path,"},{"line_number":289,"context_line":"                             mount_point\u003d\u0027/var/lib/mysql\u0027,"},{"line_number":290,"context_line":"                             backup_info\u003dbackup_info)"},{"line_number":291,"context_line":"        # verification/assertion"},{"line_number":292,"context_line":"        verify(mock_status).begin_install()"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUH%2F%2BMyg%3D","line":289,"in_reply_to":"AAAAUH%2F%2BNHg%3D","updated":"2014-01-29 05:11:13.000000000","message":"update: should be /var/lib/mongodb","commit_id":"520c963b83760d57176c8a8e114f759e560c86f3"}]}
