)]}'
{"trove/guestagent/datastore/experimental/hbase_common/service.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"a465587b0ed3c4337d7037274ff85fdc58b57968","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            packager.pkg_install(packages, {}, system.TIME_OUT)"},{"line_number":64,"context_line":"        LOG.info(_(\"Finished installing HBase server.\"))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _disable_db_on_boot(self):"},{"line_number":67,"context_line":"        try:"},{"line_number":68,"context_line":"            LOG.debug(\"Disable HBase on boot.\")"},{"line_number":69,"context_line":"            hbase_service \u003d operating_system.service_discovery("},{"line_number":70,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":71,"context_line":"            utils.execute_with_timeout("},{"line_number":72,"context_line":"                hbase_service[\u0027cmd_disable\u0027], shell\u003dTrue)"},{"line_number":73,"context_line":"        except KeyError:"},{"line_number":74,"context_line":"            raise RuntimeError("},{"line_number":75,"context_line":"                \"Command to disable HBase server on boot not found.\")"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _enable_db_on_boot(self):"},{"line_number":78,"context_line":"        try:"},{"line_number":79,"context_line":"            LOG.debug(\"Enable HBase on boot.\")"},{"line_number":80,"context_line":"            hbase_service \u003d operating_system.service_discovery("},{"line_number":81,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":82,"context_line":"            utils.execute_with_timeout("},{"line_number":83,"context_line":"                hbase_service[\u0027cmd_enable\u0027], shell\u003dTrue)"},{"line_number":84,"context_line":"        except KeyError:"},{"line_number":85,"context_line":"            raise RuntimeError("},{"line_number":86,"context_line":"                \"Command to disable HBase server on boot not found.\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def stop_db(self, update_db\u003dFalse, do_not_start_on_reboot\u003dFalse):"},{"line_number":89,"context_line":"        LOG.info(_(\"Stopping HBase.\"))"},{"line_number":90,"context_line":"        if do_not_start_on_reboot:"},{"line_number":91,"context_line":"            self._disable_db_on_boot()"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        try:"},{"line_number":94,"context_line":"            hbase_service \u003d operating_system.service_discovery("},{"line_number":95,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":96,"context_line":"            utils.execute_with_timeout(hbase_service[\u0027cmd_stop\u0027],"},{"line_number":97,"context_line":"                                       shell\u003dTrue,"},{"line_number":98,"context_line":"                                       timeout\u003dsystem.SERVICE_COMMAND_TIMEOUT)"},{"line_number":99,"context_line":"        except KeyError:"},{"line_number":100,"context_line":"            raise RuntimeError(_(\"HBase service is not discovered.\"))"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if not self.status.wait_for_real_status_to_change_to("},{"line_number":103,"context_line":"                rd_instance.ServiceStatuses.SHUTDOWN,"},{"line_number":104,"context_line":"                self.state_change_wait_time, update_db):"},{"line_number":105,"context_line":"            LOG.error(_(\"Could not stop HBase.\"))"},{"line_number":106,"context_line":"            self.status.end_restart()"},{"line_number":107,"context_line":"            raise RuntimeError(_(\"Could not stop HBase.\"))"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def start_db(self, update_db\u003dFalse):"},{"line_number":110,"context_line":"        \"\"\""},{"line_number":111,"context_line":"        Start the HBase server."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        LOG.info(_(\"Starting HBase server.\"))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self._enable_db_on_boot()"},{"line_number":116,"context_line":"        try:"},{"line_number":117,"context_line":"            hbase_service \u003d operating_system.service_discovery("},{"line_number":118,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":119,"context_line":"            utils.execute_with_timeout("},{"line_number":120,"context_line":"                hbase_service[\u0027cmd_start\u0027], shell\u003dTrue,"},{"line_number":121,"context_line":"                timeout\u003dsystem.SERVICE_COMMAND_TIMEOUT)"},{"line_number":122,"context_line":"        except exception.ProcessExecutionError:"},{"line_number":123,"context_line":"            pass"},{"line_number":124,"context_line":"        except KeyError:"},{"line_number":125,"context_line":"            raise RuntimeError(\"Command to start HBase server not found.\")"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        if not self.status.wait_for_real_status_to_change_to("},{"line_number":128,"context_line":"                rd_instance.ServiceStatuses.RUNNING,"},{"line_number":129,"context_line":"                self.state_change_wait_time, update_db):"},{"line_number":130,"context_line":"            LOG.error(_(\"Start up of HBase server failed.\"))"},{"line_number":131,"context_line":"            self.status.end_restart()"},{"line_number":132,"context_line":"            raise RuntimeError(\"Could not start HBase server.\")"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def restart(self):"},{"line_number":135,"context_line":"        LOG.info(_(\"Restarting HBase server.\"))"},{"line_number":136,"context_line":"        try:"},{"line_number":137,"context_line":"            self.status.begin_restart()"},{"line_number":138,"context_line":"            self.stop_db()"},{"line_number":139,"context_line":"            self.start_db()"},{"line_number":140,"context_line":"        finally:"},{"line_number":141,"context_line":"            self.status.end_restart()"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def start_db_with_conf_changes(self, config_contents):"},{"line_number":144,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_3851390f","line":141,"range":{"start_line":66,"start_character":4,"end_line":141,"end_character":37},"updated":"2015-12-31 18:23:17.000000000","message":"Just use the service calls in the base status class. See for instance Postgres: https://github.com/openstack/trove/blob/master/trove/guestagent/datastore/experimental/postgresql/service/process.py","commit_id":"704ff33cb898188aca0cf97fff8e5537933a4da3"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7e52683f441c5fce135a5dd52e3ddc2251a1136b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            packager.pkg_install(packages, {}, system.TIME_OUT)"},{"line_number":64,"context_line":"        LOG.info(_(\"Finished installing HBase server.\"))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _disable_db_on_boot(self):"},{"line_number":67,"context_line":"        try:"},{"line_number":68,"context_line":"            LOG.debug(\"Disable HBase on boot.\")"},{"line_number":69,"context_line":"            hbase_service \u003d operating_system.service_discovery("},{"line_number":70,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":71,"context_line":"            utils.execute_with_timeout("},{"line_number":72,"context_line":"                hbase_service[\u0027cmd_disable\u0027], shell\u003dTrue)"},{"line_number":73,"context_line":"        except KeyError:"},{"line_number":74,"context_line":"            raise RuntimeError("},{"line_number":75,"context_line":"                \"Command to disable HBase server on boot not found.\")"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _enable_db_on_boot(self):"},{"line_number":78,"context_line":"        try:"},{"line_number":79,"context_line":"            LOG.debug(\"Enable HBase on boot.\")"},{"line_number":80,"context_line":"            hbase_service \u003d operating_system.service_discovery("},{"line_number":81,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":82,"context_line":"            utils.execute_with_timeout("},{"line_number":83,"context_line":"                hbase_service[\u0027cmd_enable\u0027], shell\u003dTrue)"},{"line_number":84,"context_line":"        except KeyError:"},{"line_number":85,"context_line":"            raise RuntimeError("},{"line_number":86,"context_line":"                \"Command to disable HBase server on boot not found.\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def stop_db(self, update_db\u003dFalse, do_not_start_on_reboot\u003dFalse):"},{"line_number":89,"context_line":"        LOG.info(_(\"Stopping HBase.\"))"},{"line_number":90,"context_line":"        if do_not_start_on_reboot:"},{"line_number":91,"context_line":"            self._disable_db_on_boot()"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        try:"},{"line_number":94,"context_line":"            hbase_service \u003d operating_system.service_discovery("},{"line_number":95,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":96,"context_line":"            utils.execute_with_timeout(hbase_service[\u0027cmd_stop\u0027],"},{"line_number":97,"context_line":"                                       shell\u003dTrue,"},{"line_number":98,"context_line":"                                       timeout\u003dsystem.SERVICE_COMMAND_TIMEOUT)"},{"line_number":99,"context_line":"        except KeyError:"},{"line_number":100,"context_line":"            raise RuntimeError(_(\"HBase service is not discovered.\"))"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if not self.status.wait_for_real_status_to_change_to("},{"line_number":103,"context_line":"                rd_instance.ServiceStatuses.SHUTDOWN,"},{"line_number":104,"context_line":"                self.state_change_wait_time, update_db):"},{"line_number":105,"context_line":"            LOG.error(_(\"Could not stop HBase.\"))"},{"line_number":106,"context_line":"            self.status.end_restart()"},{"line_number":107,"context_line":"            raise RuntimeError(_(\"Could not stop HBase.\"))"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def start_db(self, update_db\u003dFalse):"},{"line_number":110,"context_line":"        \"\"\""},{"line_number":111,"context_line":"        Start the HBase server."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        LOG.info(_(\"Starting HBase server.\"))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self._enable_db_on_boot()"},{"line_number":116,"context_line":"        try:"},{"line_number":117,"context_line":"            hbase_service \u003d operating_system.service_discovery("},{"line_number":118,"context_line":"                system.SERVICE_CANDIDATES)"},{"line_number":119,"context_line":"            utils.execute_with_timeout("},{"line_number":120,"context_line":"                hbase_service[\u0027cmd_start\u0027], shell\u003dTrue,"},{"line_number":121,"context_line":"                timeout\u003dsystem.SERVICE_COMMAND_TIMEOUT)"},{"line_number":122,"context_line":"        except exception.ProcessExecutionError:"},{"line_number":123,"context_line":"            pass"},{"line_number":124,"context_line":"        except KeyError:"},{"line_number":125,"context_line":"            raise RuntimeError(\"Command to start HBase server not found.\")"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        if not self.status.wait_for_real_status_to_change_to("},{"line_number":128,"context_line":"                rd_instance.ServiceStatuses.RUNNING,"},{"line_number":129,"context_line":"                self.state_change_wait_time, update_db):"},{"line_number":130,"context_line":"            LOG.error(_(\"Start up of HBase server failed.\"))"},{"line_number":131,"context_line":"            self.status.end_restart()"},{"line_number":132,"context_line":"            raise RuntimeError(\"Could not start HBase server.\")"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def restart(self):"},{"line_number":135,"context_line":"        LOG.info(_(\"Restarting HBase server.\"))"},{"line_number":136,"context_line":"        try:"},{"line_number":137,"context_line":"            self.status.begin_restart()"},{"line_number":138,"context_line":"            self.stop_db()"},{"line_number":139,"context_line":"            self.start_db()"},{"line_number":140,"context_line":"        finally:"},{"line_number":141,"context_line":"            self.status.end_restart()"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def start_db_with_conf_changes(self, config_contents):"},{"line_number":144,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_d5cd6d5e","line":141,"range":{"start_line":66,"start_character":4,"end_line":141,"end_character":37},"in_reply_to":"fa69d971_3851390f","updated":"2016-01-07 19:31:09.000000000","message":"Done","commit_id":"704ff33cb898188aca0cf97fff8e5537933a4da3"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"a465587b0ed3c4337d7037274ff85fdc58b57968","unresolved":false,"context_lines":[{"line_number":148,"context_line":"         this needs to be implemented to enable volume resize on the guest"},{"line_number":149,"context_line":"         agent side."},{"line_number":150,"context_line":"        \u0027\u0027\u0027"},{"line_number":151,"context_line":"        LOG.info(_(\"Starting HBase with configuration changes.\"))"},{"line_number":152,"context_line":"        self.start_db(True)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def initialize_hbase(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_7847b14b","line":151,"updated":"2015-12-31 18:23:17.000000000","message":"Virtually the same message already gets logged in the API layer.","commit_id":"704ff33cb898188aca0cf97fff8e5537933a4da3"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"7e52683f441c5fce135a5dd52e3ddc2251a1136b","unresolved":false,"context_lines":[{"line_number":148,"context_line":"         this needs to be implemented to enable volume resize on the guest"},{"line_number":149,"context_line":"         agent side."},{"line_number":150,"context_line":"        \u0027\u0027\u0027"},{"line_number":151,"context_line":"        LOG.info(_(\"Starting HBase with configuration changes.\"))"},{"line_number":152,"context_line":"        self.start_db(True)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def initialize_hbase(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_3503a978","line":151,"in_reply_to":"fa69d971_7847b14b","updated":"2016-01-07 19:31:09.000000000","message":"Done","commit_id":"704ff33cb898188aca0cf97fff8e5537933a4da3"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"a465587b0ed3c4337d7037274ff85fdc58b57968","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                root_helper\u003d\"sudo\","},{"line_number":181,"context_line":"                log_output_on_error\u003dTrue,"},{"line_number":182,"context_line":"                timeout\u003dsystem.SERVICE_COMMAND_TIMEOUT)"},{"line_number":183,"context_line":"            if \"HBase is reachable\" in out:"},{"line_number":184,"context_line":"                LOG.debug(\"HBase is reachable\")"},{"line_number":185,"context_line":"                return rd_instance.ServiceStatuses.RUNNING"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_785ed113","line":183,"range":{"start_line":183,"start_character":12,"end_line":183,"end_character":43},"updated":"2015-12-31 18:23:17.000000000","message":"This is going to be quite fragile. Have you considered anything like: https://happybase.readthedocs.org/en/latest/ or https://pypi.python.org/pypi/starbase","commit_id":"704ff33cb898188aca0cf97fff8e5537933a4da3"}],"trove/guestagent/datastore/experimental/hbase_common/system.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"1f8afff37a371ad5883e63be6a5c05164d6e3889","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"SERVICE_CANDIDATES \u003d [\"hbase\"]"},{"line_number":17,"context_line":"SERVICE_COMMAND_TIMEOUT \u003d 1200"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_b8abe9d5","line":17,"updated":"2015-12-31 18:27:27.000000000","message":"Based on my experience from work on Cassandra: Moving all this to the base App class (i.e. get rid of the \u0027system\u0027 module altogether) would make future overriding significantly easier.","commit_id":"704ff33cb898188aca0cf97fff8e5537933a4da3"}]}
