)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ad09e5d071d0b014d700d15f5f83881dc3816c56","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Search in nova services instead of hypervisors"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Nova services and hypervisor naming can differ, as they retireve node"},{"line_number":10,"context_line":"names in different way."},{"line_number":11,"context_line":"In the meanwhile we operate with nova.services while enabling/disabling"},{"line_number":12,"context_line":"nodes duringh the incident. So we\u0027re supposed to have in database record"},{"line_number":13,"context_line":"matching to what we have in service list, but not in hypervisor list."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"9f560f44_7fcbc31c","line":10,"range":{"start_line":10,"start_character":19,"end_line":10,"end_character":22},"updated":"2020-08-26 16:21:23.000000000","message":"nit: ways","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ad09e5d071d0b014d700d15f5f83881dc3816c56","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Nova services and hypervisor naming can differ, as they retireve node"},{"line_number":10,"context_line":"names in different way."},{"line_number":11,"context_line":"In the meanwhile we operate with nova.services while enabling/disabling"},{"line_number":12,"context_line":"nodes duringh the incident. So we\u0027re supposed to have in database record"},{"line_number":13,"context_line":"matching to what we have in service list, but not in hypervisor list."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #1839715"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"9f560f44_bfd1dbce","line":12,"range":{"start_line":12,"start_character":6,"end_line":12,"end_character":13},"updated":"2020-08-26 16:21:23.000000000","message":"nit: during","commit_id":"52387f9c40be11a54585522ef207509835f68bda"}],"api-ref/source/hosts.inc":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ad09e5d071d0b014d700d15f5f83881dc3816c56","unresolved":false,"context_lines":[{"line_number":89,"context_line":"User can set sepcific hosts as reserved by setting reserved attribute to True."},{"line_number":90,"context_line":"By default `on_maintenance` mode which indicates whether host is under"},{"line_number":91,"context_line":"maintenance or not is False when host is created. Host name should be equal"},{"line_number":92,"context_line":"to nova-compute binary name out of nova service list and host name from"},{"line_number":93,"context_line":"the corosync cluster."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"**Preconditions**"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"9f560f44_5ffb5f45","line":92,"range":{"start_line":92,"start_character":16,"end_line":92,"end_character":22},"updated":"2020-08-26 16:21:23.000000000","message":"host, not binary","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ad09e5d071d0b014d700d15f5f83881dc3816c56","unresolved":false,"context_lines":[{"line_number":89,"context_line":"User can set sepcific hosts as reserved by setting reserved attribute to True."},{"line_number":90,"context_line":"By default `on_maintenance` mode which indicates whether host is under"},{"line_number":91,"context_line":"maintenance or not is False when host is created. Host name should be equal"},{"line_number":92,"context_line":"to nova-compute binary name out of nova service list and host name from"},{"line_number":93,"context_line":"the corosync cluster."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"**Preconditions**"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"9f560f44_3f482bb1","line":92,"range":{"start_line":92,"start_character":28,"end_line":92,"end_character":34},"updated":"2020-08-26 16:21:23.000000000","message":"nit: from","commit_id":"52387f9c40be11a54585522ef207509835f68bda"}],"masakari/compute/nova.py":[{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"7d0ea93a2e77732cb68aafe1dd4ddcf60f443d9a","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        return nova.servers.unlock(uuid)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @translate_nova_exception"},{"line_number":247,"context_line":"    def hypervisor_search(self, context, hypervisor_name):"},{"line_number":248,"context_line":"        \"\"\"Search hypervisor with case sensitive hostname.\"\"\""},{"line_number":249,"context_line":"        nova \u003d novaclient(context)"},{"line_number":250,"context_line":"        msg \u003d (\"Call hypervisor search command to get list of matching \""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_5d2c3dab","line":247,"range":{"start_line":247,"start_character":8,"end_line":247,"end_character":25},"updated":"2020-05-19 01:44:11.000000000","message":"Rename it to search_compute_service(self, context, host_name).","commit_id":"665643289fa1f0db984c8a5be2cb76bd2d5f15db"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"7d0ea93a2e77732cb68aafe1dd4ddcf60f443d9a","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        LOG.info(msg, {\u0027hypervisor_name\u0027: hypervisor_name})"},{"line_number":253,"context_line":"        try:"},{"line_number":254,"context_line":"            hypervisor \u003d \\"},{"line_number":255,"context_line":"                nova.services.find(binary\u003d\u0027nova-compute\u0027, host\u003dhypervisor_name)"},{"line_number":256,"context_line":"            if hypervisor_name !\u003d hypervisor.host:"},{"line_number":257,"context_line":"                raise exception.HypervisorNotFoundByName("},{"line_number":258,"context_line":"                    hypervisor_name\u003dhypervisor_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_fd2271b8","line":255,"range":{"start_line":255,"start_character":16,"end_line":255,"end_character":34},"updated":"2020-05-19 01:44:11.000000000","message":"There is an another patch[1] which is also trying to fix similar issue.\n\nQuestions:\n1. When operator configures pace_maker cluster to detect compute host failure, will he/she use nova.services.host to add a node in the cluster?\nIf yes, then I think it\u0027s fine to use nova.services API to perform the validation.\n2. We will need to provide a migration function in masakari-manage tool to allow migration of existing failover-segment-\u003ehosts from  hypervisor_name to nova.services.host and also document the same.\n\n[1] : https://review.opendev.org/#/c/675734","commit_id":"665643289fa1f0db984c8a5be2cb76bd2d5f15db"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ad09e5d071d0b014d700d15f5f83881dc3816c56","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        return nova.servers.unlock(uuid)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @translate_nova_exception"},{"line_number":247,"context_line":"    def search_compute_service(self, context, hypervisor_name):"},{"line_number":248,"context_line":"        \"\"\"Search hypervisor with case sensitive hostname.\"\"\""},{"line_number":249,"context_line":"        nova \u003d novaclient(context)"},{"line_number":250,"context_line":"        msg \u003d (\"Call hypervisor search command to get list of matching \""}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_bab8c974","line":247,"range":{"start_line":247,"start_character":8,"end_line":247,"end_character":14},"updated":"2020-08-26 16:21:23.000000000","message":"find","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"3a2451e680f9924222cb80a2bb9357b87e048f81","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        return nova.servers.unlock(uuid)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @translate_nova_exception"},{"line_number":247,"context_line":"    def search_compute_service(self, context, hypervisor_name):"},{"line_number":248,"context_line":"        \"\"\"Search hypervisor with case sensitive hostname.\"\"\""},{"line_number":249,"context_line":"        nova \u003d novaclient(context)"},{"line_number":250,"context_line":"        msg \u003d (\"Call hypervisor search command to get list of matching \""}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_0024e80b","line":247,"range":{"start_line":247,"start_character":46,"end_line":247,"end_character":61},"updated":"2020-08-26 16:36:52.000000000","message":"per Sean\u0027s observation, this also needs a rename to avoid further confusion","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"863eeefd67ed9e939204b3939936314f7666d4e5","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        return nova.servers.unlock(uuid)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @translate_nova_exception"},{"line_number":247,"context_line":"    def search_compute_service(self, context, hypervisor_name):"},{"line_number":248,"context_line":"        \"\"\"Search hypervisor with case sensitive hostname.\"\"\""},{"line_number":249,"context_line":"        nova \u003d novaclient(context)"},{"line_number":250,"context_line":"        msg \u003d (\"Call hypervisor search command to get list of matching \""}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_7432c511","line":247,"range":{"start_line":247,"start_character":46,"end_line":247,"end_character":61},"in_reply_to":"9f560f44_0024e80b","updated":"2020-08-26 17:51:31.000000000","message":"Done","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"863eeefd67ed9e939204b3939936314f7666d4e5","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        return nova.servers.unlock(uuid)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @translate_nova_exception"},{"line_number":247,"context_line":"    def search_compute_service(self, context, hypervisor_name):"},{"line_number":248,"context_line":"        \"\"\"Search hypervisor with case sensitive hostname.\"\"\""},{"line_number":249,"context_line":"        nova \u003d novaclient(context)"},{"line_number":250,"context_line":"        msg \u003d (\"Call hypervisor search command to get list of matching \""}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_14526935","line":247,"range":{"start_line":247,"start_character":8,"end_line":247,"end_character":14},"in_reply_to":"9f560f44_bab8c974","updated":"2020-08-26 17:51:31.000000000","message":"Done","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ad09e5d071d0b014d700d15f5f83881dc3816c56","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        try:"},{"line_number":254,"context_line":"            hypervisor \u003d \\"},{"line_number":255,"context_line":"                nova.services.find(binary\u003d\u0027nova-compute\u0027, host\u003dhypervisor_name)"},{"line_number":256,"context_line":"            if hypervisor_name !\u003d hypervisor.host:"},{"line_number":257,"context_line":"                raise exception.HypervisorNotFoundByName("},{"line_number":258,"context_line":"                    hypervisor_name\u003dhypervisor_name)"},{"line_number":259,"context_line":"        except nova_exception.NotFound:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_e03e1489","line":256,"range":{"start_line":256,"start_character":15,"end_line":256,"end_character":49},"updated":"2020-08-26 16:21:23.000000000","message":"when can it happen? (is find from nova case-insensitive? I\u0027d doubt but never checked)","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"863eeefd67ed9e939204b3939936314f7666d4e5","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        try:"},{"line_number":254,"context_line":"            hypervisor \u003d \\"},{"line_number":255,"context_line":"                nova.services.find(binary\u003d\u0027nova-compute\u0027, host\u003dhypervisor_name)"},{"line_number":256,"context_line":"            if hypervisor_name !\u003d hypervisor.host:"},{"line_number":257,"context_line":"                raise exception.HypervisorNotFoundByName("},{"line_number":258,"context_line":"                    hypervisor_name\u003dhypervisor_name)"},{"line_number":259,"context_line":"        except nova_exception.NotFound:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_3457ad28","line":256,"range":{"start_line":256,"start_character":15,"end_line":256,"end_character":49},"in_reply_to":"9f560f44_e03e1489","updated":"2020-08-26 17:51:31.000000000","message":"Not sure but maybe empty reply or several results found...","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ad09e5d071d0b014d700d15f5f83881dc3816c56","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                raise exception.HypervisorNotFoundByName("},{"line_number":258,"context_line":"                    hypervisor_name\u003dhypervisor_name)"},{"line_number":259,"context_line":"        except nova_exception.NotFound:"},{"line_number":260,"context_line":"            raise exception.HypervisorNotFoundByName("},{"line_number":261,"context_line":"                hypervisor_name\u003dhypervisor_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_204c8c40","line":260,"range":{"start_line":260,"start_character":28,"end_line":260,"end_character":52},"updated":"2020-08-26 16:21:23.000000000","message":"need to amend this exception name because it\u0027s confusing","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"863eeefd67ed9e939204b3939936314f7666d4e5","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                raise exception.HypervisorNotFoundByName("},{"line_number":258,"context_line":"                    hypervisor_name\u003dhypervisor_name)"},{"line_number":259,"context_line":"        except nova_exception.NotFound:"},{"line_number":260,"context_line":"            raise exception.HypervisorNotFoundByName("},{"line_number":261,"context_line":"                hypervisor_name\u003dhypervisor_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_543501f6","line":260,"range":{"start_line":260,"start_character":28,"end_line":260,"end_character":52},"in_reply_to":"9f560f44_204c8c40","updated":"2020-08-26 17:51:31.000000000","message":"Done","commit_id":"52387f9c40be11a54585522ef207509835f68bda"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"57c5376052df68ff5ea1fc6116e3648d53ce0e81","unresolved":false,"context_lines":[{"line_number":254,"context_line":"               \"hypervisor name \u0027%(compute_name)s\u0027\")"},{"line_number":255,"context_line":"        LOG.info(msg, {\u0027compute_name\u0027: compute_name})"},{"line_number":256,"context_line":"        try:"},{"line_number":257,"context_line":"            compute \u003d \\"},{"line_number":258,"context_line":"                nova.services.find(binary\u003d\u0027nova-compute\u0027, host\u003dcompute_name)"},{"line_number":259,"context_line":"            if compute_name !\u003d compute.host:"},{"line_number":260,"context_line":"                raise exception.ComputeNotFoundByName("},{"line_number":261,"context_line":"                    compute_name\u003dcompute_name)"},{"line_number":262,"context_line":"        except nova_exception.NotFound:"},{"line_number":263,"context_line":"            raise exception.ComputeNotFoundByName("},{"line_number":264,"context_line":"                compute_name\u003dcompute_name)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_5c34f648","line":261,"range":{"start_line":257,"start_character":12,"end_line":261,"end_character":46},"updated":"2020-09-12 18:24:54.000000000","message":"I\u0027ve checked that it\u0027s better to use `list` instead of `find` to benefit from server-side filtering (which is linear anyway but at least eliminates the need to transfer the list of all nova services).\n\nEither approach results in a case-sensitive match so we don\u0027t need the extra check.\n\nWith `list` one needs to check whether the returned list contains the host (i.e. it is not empty).","commit_id":"0ea44f621c719ef20f620d390560f11954cb075c"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ef11f9d683d75d7b059532fd8305a963764c9ef4","unresolved":false,"context_lines":[{"line_number":254,"context_line":"               \"hypervisor name \u0027%(compute_name)s\u0027\")"},{"line_number":255,"context_line":"        LOG.info(msg, {\u0027compute_name\u0027: compute_name})"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        compute \u003d \\"},{"line_number":258,"context_line":"            nova.services.list(binary\u003d\u0027nova-compute\u0027, host\u003dcompute_name)"},{"line_number":259,"context_line":"        if len(compute) \u003d\u003d 0:"},{"line_number":260,"context_line":"            raise exception.ComputeNotFoundByName("}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_138088bf","line":257,"range":{"start_line":257,"start_character":8,"end_line":257,"end_character":15},"updated":"2020-09-15 14:58:41.000000000","message":"should use plural - computes","commit_id":"3831d8a401e9d774455607e73e9fb070ebb1f6d1"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"77e3dd73d787ed7dd22a2da366cbb2a3076d6954","unresolved":false,"context_lines":[{"line_number":254,"context_line":"               \"hypervisor name \u0027%(compute_name)s\u0027\")"},{"line_number":255,"context_line":"        LOG.info(msg, {\u0027compute_name\u0027: compute_name})"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        compute \u003d \\"},{"line_number":258,"context_line":"            nova.services.list(binary\u003d\u0027nova-compute\u0027, host\u003dcompute_name)"},{"line_number":259,"context_line":"        if len(compute) \u003d\u003d 0:"},{"line_number":260,"context_line":"            raise exception.ComputeNotFoundByName("}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_f315144b","line":257,"range":{"start_line":257,"start_character":8,"end_line":257,"end_character":15},"in_reply_to":"9f560f44_138088bf","updated":"2020-09-15 15:10:27.000000000","message":"tbh, we expect here to be from 0 to 1 element in list...","commit_id":"3831d8a401e9d774455607e73e9fb070ebb1f6d1"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"3612db6c788f3081da56df562c669c702ca05213","unresolved":false,"context_lines":[{"line_number":254,"context_line":"               \"hypervisor name \u0027%(compute_name)s\u0027\")"},{"line_number":255,"context_line":"        LOG.info(msg, {\u0027compute_name\u0027: compute_name})"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        compute \u003d \\"},{"line_number":258,"context_line":"            nova.services.list(binary\u003d\u0027nova-compute\u0027, host\u003dcompute_name)"},{"line_number":259,"context_line":"        if len(compute) \u003d\u003d 0:"},{"line_number":260,"context_line":"            raise exception.ComputeNotFoundByName("}],"source_content_type":"text/x-python","patch_set":19,"id":"9f560f44_36d65a55","line":257,"range":{"start_line":257,"start_character":8,"end_line":257,"end_character":15},"in_reply_to":"9f560f44_f315144b","updated":"2020-09-15 15:18:26.000000000","message":"True, but it\u0027s a list.","commit_id":"3831d8a401e9d774455607e73e9fb070ebb1f6d1"}],"masakari/exception.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"eefe541cd8c9a2cd6ca42311130e5c9954ef6864","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"class ComputeNotFoundByName(NotFound):"},{"line_number":280,"context_line":"    msg_fmt \u003d _(\"Compute service with name %(compute_name)s could not be found.\")"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"class FailoverSegmentExists(MasakariException):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_4a039a0d","line":280,"updated":"2020-08-26 18:47:13.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"dad13f16e1952a34635eb1e6ce8c13d9f3cb5310"}],"masakari/tests/unit/compute/test_nova.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"faf40b224060487c2b00be6d7361ece9c6b51ce4","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        self.assertRaises(exception.HypervisorNotFoundByName,"},{"line_number":319,"context_line":"                          self.api.hypervisor_search, context, \u0027xyz\u0027)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"class TestHypers:"},{"line_number":322,"context_line":"    id \u003d 1"},{"line_number":323,"context_line":"    status \u003d \u0027enabled\u0027"},{"line_number":324,"context_line":"    binary \u003d \u0027nova-compute\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_61e53a09","line":321,"updated":"2020-05-16 10:06:14.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"e60c541e3b6579395bf1f5f06a8406d234ee1615"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"faf40b224060487c2b00be6d7361ece9c6b51ce4","unresolved":false,"context_lines":[{"line_number":322,"context_line":"    id \u003d 1"},{"line_number":323,"context_line":"    status \u003d \u0027enabled\u0027"},{"line_number":324,"context_line":"    binary \u003d \u0027nova-compute\u0027"},{"line_number":325,"context_line":"    zone\u003d\u0027nova\u0027"},{"line_number":326,"context_line":"    host\u003d\u0027XYZ\u0027"},{"line_number":327,"context_line":"    region_name\u003d\u0027RegionOne\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_c1eec6eb","line":325,"updated":"2020-05-16 10:06:14.000000000","message":"pep8: E225 missing whitespace around operator","commit_id":"e60c541e3b6579395bf1f5f06a8406d234ee1615"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"faf40b224060487c2b00be6d7361ece9c6b51ce4","unresolved":false,"context_lines":[{"line_number":323,"context_line":"    status \u003d \u0027enabled\u0027"},{"line_number":324,"context_line":"    binary \u003d \u0027nova-compute\u0027"},{"line_number":325,"context_line":"    zone\u003d\u0027nova\u0027"},{"line_number":326,"context_line":"    host\u003d\u0027XYZ\u0027"},{"line_number":327,"context_line":"    region_name\u003d\u0027RegionOne\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_a1ebd2d9","line":326,"updated":"2020-05-16 10:06:14.000000000","message":"pep8: E225 missing whitespace around operator","commit_id":"e60c541e3b6579395bf1f5f06a8406d234ee1615"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"faf40b224060487c2b00be6d7361ece9c6b51ce4","unresolved":false,"context_lines":[{"line_number":324,"context_line":"    binary \u003d \u0027nova-compute\u0027"},{"line_number":325,"context_line":"    zone\u003d\u0027nova\u0027"},{"line_number":326,"context_line":"    host\u003d\u0027XYZ\u0027"},{"line_number":327,"context_line":"    region_name\u003d\u0027RegionOne\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_01befed3","line":327,"updated":"2020-05-16 10:06:14.000000000","message":"pep8: E225 missing whitespace around operator","commit_id":"e60c541e3b6579395bf1f5f06a8406d234ee1615"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f5466441f7214dd9f4ed600247fc2ada83e81faf","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        self.assertRaises(exception.HypervisorNotFoundByName,"},{"line_number":319,"context_line":"                          self.api.hypervisor_search, context, \u0027xyz\u0027)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        "},{"line_number":322,"context_line":"class TestHypers:"},{"line_number":323,"context_line":"    id \u003d 1"},{"line_number":324,"context_line":"    status \u003d \u0027enabled\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_acee29ea","line":321,"updated":"2020-05-16 13:43:36.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"6563b2dc620e26195b3fa83a033d76e03db3b9da"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cae4c95647e9a63882b536c9a8c69aee3f71842b","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        mock_servers.unlock.assert_called_once_with(uuidsentinel.fake_server)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    @mock.patch(\u0027masakari.compute.nova.novaclient\u0027)"},{"line_number":308,"context_line":"    def test_search_compute_service_non_existing_host_name(self, mock_novaclient):"},{"line_number":309,"context_line":"        mock_novaclient.return_value.services.find.side_effect \u003d ("},{"line_number":310,"context_line":"            nova_exception.NotFound(http.NOT_FOUND))"},{"line_number":311,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_3dad9731","line":308,"updated":"2020-07-01 21:27:43.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"1a36f603ebd61a63e3847c5edfa9e9d883cd4f74"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cae4c95647e9a63882b536c9a8c69aee3f71842b","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        self.assertRaises(exception.HypervisorNotFoundByName,"},{"line_number":319,"context_line":"                          self.api.search_compute_service, context, \u0027xyz\u0027)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"class TestHypers:"},{"line_number":322,"context_line":"    id \u003d 1"},{"line_number":323,"context_line":"    status \u003d \u0027enabled\u0027"},{"line_number":324,"context_line":"    binary \u003d \u0027nova-compute\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_9daae316","line":321,"updated":"2020-07-01 21:27:43.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"1a36f603ebd61a63e3847c5edfa9e9d883cd4f74"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cae4c95647e9a63882b536c9a8c69aee3f71842b","unresolved":false,"context_lines":[{"line_number":322,"context_line":"    id \u003d 1"},{"line_number":323,"context_line":"    status \u003d \u0027enabled\u0027"},{"line_number":324,"context_line":"    binary \u003d \u0027nova-compute\u0027"},{"line_number":325,"context_line":"    zone\u003d\u0027nova\u0027"},{"line_number":326,"context_line":"    host\u003d\u0027XYZ\u0027"},{"line_number":327,"context_line":"    region_name\u003d\u0027RegionOne\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_7da70f51","line":325,"updated":"2020-07-01 21:27:43.000000000","message":"pep8: E225 missing whitespace around operator","commit_id":"1a36f603ebd61a63e3847c5edfa9e9d883cd4f74"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cae4c95647e9a63882b536c9a8c69aee3f71842b","unresolved":false,"context_lines":[{"line_number":323,"context_line":"    status \u003d \u0027enabled\u0027"},{"line_number":324,"context_line":"    binary \u003d \u0027nova-compute\u0027"},{"line_number":325,"context_line":"    zone\u003d\u0027nova\u0027"},{"line_number":326,"context_line":"    host\u003d\u0027XYZ\u0027"},{"line_number":327,"context_line":"    region_name\u003d\u0027RegionOne\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_dd61fb13","line":326,"updated":"2020-07-01 21:27:43.000000000","message":"pep8: E225 missing whitespace around operator","commit_id":"1a36f603ebd61a63e3847c5edfa9e9d883cd4f74"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cae4c95647e9a63882b536c9a8c69aee3f71842b","unresolved":false,"context_lines":[{"line_number":324,"context_line":"    binary \u003d \u0027nova-compute\u0027"},{"line_number":325,"context_line":"    zone\u003d\u0027nova\u0027"},{"line_number":326,"context_line":"    host\u003d\u0027XYZ\u0027"},{"line_number":327,"context_line":"    region_name\u003d\u0027RegionOne\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_bd66c728","line":327,"updated":"2020-07-01 21:27:43.000000000","message":"pep8: E225 missing whitespace around operator","commit_id":"1a36f603ebd61a63e3847c5edfa9e9d883cd4f74"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"108606f5a7c1b7183efea651cee04bfddfb6d037","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                          self.api.find_compute_service, context, \u0027xyz\u0027)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"class TestHypers:"},{"line_number":321,"context_line":"    id \u003d 1"},{"line_number":322,"context_line":"    status \u003d \u0027enabled\u0027"},{"line_number":323,"context_line":"    binary \u003d \u0027nova-compute\u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_36bf7afd","line":320,"range":{"start_line":320,"start_character":6,"end_line":320,"end_character":16},"updated":"2020-09-15 15:20:53.000000000","message":"I know I\u0027m getting nitpicky but this should probably be TestNovaService and be a variable on the test class rather than a new class (confusing).","commit_id":"012c62108b204179f91b069cc5f7a2e7cec03b9f"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"04a9a7cfdd0d4882bacbde66b7fff5ce65a88e09","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            self, mock_novaclient):"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        mock_services \u003d mock.MagicMock()"},{"line_number":311,"context_line":"        mock_services.list.return_value \u003d []"},{"line_number":312,"context_line":"        self.assertRaises(exception.ComputeNotFoundByName,"},{"line_number":313,"context_line":"            self.api.find_compute_service, self.ctx, \u0027abc\u0027)"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"9f560f44_6e1bc41b","line":311,"range":{"start_line":311,"start_character":8,"end_line":311,"end_character":21},"updated":"2020-09-16 15:36:58.000000000","message":"well, it\u0027s not really used; sad no linters discovered the issue; I guess they don\u0027t know whether the assignment has side-effects or not, oh well","commit_id":"47eae52bc19380d2728225c88ce6e7af6e28e444"}],"masakari/tests/unit/ha/test_api.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cae4c95647e9a63882b536c9a8c69aee3f71842b","unresolved":false,"context_lines":[{"line_number":522,"context_line":"    @mock.patch.object(nova_obj.API, \u0027search_compute_service\u0027)"},{"line_number":523,"context_line":"    @mock.patch.object(host_obj.Host, \u0027get_by_uuid\u0027)"},{"line_number":524,"context_line":"    def test_update_with_non_existing_host("},{"line_number":525,"context_line":"            self, mock_get, mock_search_compute_service, mock_is_under_recovery):"},{"line_number":526,"context_line":"        host_data \u003d {\"name\": \"host-2\"}"},{"line_number":527,"context_line":"        mock_get.return_value \u003d self.host"},{"line_number":528,"context_line":"        mock_search_compute_service.side_effect \u003d ("}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_5db04b8c","line":525,"updated":"2020-07-01 21:27:43.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"1a36f603ebd61a63e3847c5edfa9e9d883cd4f74"}],"releasenotes/notes/compute_search-3da97e69e661a73f.yaml":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ad09e5d071d0b014d700d15f5f83881dc3816c56","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes validation of compute host existance from checking hypervisor list"},{"line_number":5,"context_line":"    to compute service list. Since masakari needs to match nova compute service"},{"line_number":6,"context_line":"    hostname with the one in pacemaker cluster and added to API for correctly"},{"line_number":7,"context_line":"    processing hostmonitors failover notifications."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9f560f44_5f57df26","line":4,"range":{"start_line":4,"start_character":37,"end_line":4,"end_character":46},"updated":"2020-08-26 16:21:23.000000000","message":"nit: existence","commit_id":"52387f9c40be11a54585522ef207509835f68bda"}]}
