)]}'
{"doc/source/reference/services.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6d2c6b9bf0d38d3c5bac9ca815ac5866323e17f6","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"A manager will generally load a driver for some of its tasks. The driver is responsible for specific implementation details.  Anything running shell commands on a host, or dealing with other non-python code should probably be happening in a driver."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Drivers should not touch the database as the database management is done inside nova conductor. "},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"It usually makes sense to define an Abstract Base Class for the specific driver (i.e. VolumeDriver), to define the methods that a different driver would need to implement."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_a23954a4","line":53,"range":{"start_line":53,"start_character":79,"end_line":53,"end_character":94},"updated":"2017-08-31 09:32:39.000000000","message":"`nova-conductor`?","commit_id":"645f3ebe34f4665b46adce80cb01c8b6da31fd9c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"fdbc5edf940479654b663c4c1363f9ac3ed39346","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"A manager will generally load a driver for some of its tasks. The driver is responsible for specific implementation details.  Anything running shell commands on a host, or dealing with other non-python code should probably be happening in a driver."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Drivers should not touch the database as the database management is done inside nova conductor. "},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"It usually makes sense to define an Abstract Base Class for the specific driver (i.e. VolumeDriver), to define the methods that a different driver would need to implement."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f287b81_1bd6e028","line":53,"range":{"start_line":53,"start_character":79,"end_line":53,"end_character":94},"in_reply_to":"7f287b81_a23954a4","updated":"2017-09-06 06:09:07.000000000","message":"Done","commit_id":"645f3ebe34f4665b46adce80cb01c8b6da31fd9c"}],"nova/service.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6d2c6b9bf0d38d3c5bac9ca815ac5866323e17f6","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        self.periodic_interval_max \u003d periodic_interval_max"},{"line_number":122,"context_line":"        self.saved_args, self.saved_kwargs \u003d args, kwargs"},{"line_number":123,"context_line":"        self.backdoor_port \u003d None"},{"line_number":124,"context_line":"        if objects_base.NovaObject.indirection_api"},{"line_number":125,"context_line":"            conductor_api \u003d conductor.API()"},{"line_number":126,"context_line":"            conductor_api.wait_until_ready(context.get_admin_context())"},{"line_number":127,"context_line":"        setup_profiler(binary, self.host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_623fec86","line":124,"updated":"2017-08-31 09:32:39.000000000","message":"This shouldn\u0027t have been dropped","commit_id":"645f3ebe34f4665b46adce80cb01c8b6da31fd9c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"fdbc5edf940479654b663c4c1363f9ac3ed39346","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        self.periodic_interval_max \u003d periodic_interval_max"},{"line_number":122,"context_line":"        self.saved_args, self.saved_kwargs \u003d args, kwargs"},{"line_number":123,"context_line":"        self.backdoor_port \u003d None"},{"line_number":124,"context_line":"        if objects_base.NovaObject.indirection_api"},{"line_number":125,"context_line":"            conductor_api \u003d conductor.API()"},{"line_number":126,"context_line":"            conductor_api.wait_until_ready(context.get_admin_context())"},{"line_number":127,"context_line":"        setup_profiler(binary, self.host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_9be1b0ff","line":124,"in_reply_to":"7f287b81_623fec86","updated":"2017-09-06 06:09:07.000000000","message":":(\ndon\u0027t know why remove it, thanks","commit_id":"645f3ebe34f4665b46adce80cb01c8b6da31fd9c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6d2c6b9bf0d38d3c5bac9ca815ac5866323e17f6","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                }"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def start(self):"},{"line_number":139,"context_line":"        \"\"\"start the service such as rpc server, periodic task etc.\"\"\""},{"line_number":140,"context_line":"        verstr \u003d version.version_string_with_package()"},{"line_number":141,"context_line":"        LOG.info(_LI(\u0027Starting %(topic)s node (version %(version)s)\u0027),"},{"line_number":142,"context_line":"                  {\u0027topic\u0027: self.topic, \u0027version\u0027: verstr})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_0248282a","line":139,"range":{"start_line":139,"start_character":11,"end_line":139,"end_character":12},"updated":"2017-08-31 09:32:39.000000000","message":"Can we break this into a summary-description. Something like:\n\n  Start the service.\n\n  This may include starting an RPC service, initializing\n  periodic tasks, etc.","commit_id":"645f3ebe34f4665b46adce80cb01c8b6da31fd9c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"fdbc5edf940479654b663c4c1363f9ac3ed39346","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                }"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def start(self):"},{"line_number":139,"context_line":"        \"\"\"start the service such as rpc server, periodic task etc.\"\"\""},{"line_number":140,"context_line":"        verstr \u003d version.version_string_with_package()"},{"line_number":141,"context_line":"        LOG.info(_LI(\u0027Starting %(topic)s node (version %(version)s)\u0027),"},{"line_number":142,"context_line":"                  {\u0027topic\u0027: self.topic, \u0027version\u0027: verstr})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_dbdf3838","line":139,"range":{"start_line":139,"start_character":11,"end_line":139,"end_character":12},"in_reply_to":"7f287b81_0248282a","updated":"2017-09-06 06:09:07.000000000","message":"ok, thanks~","commit_id":"645f3ebe34f4665b46adce80cb01c8b6da31fd9c"}]}
