)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"4c56400a57702ca29bfd4f3da8ea24d7700734f1","unresolved":true,"context_lines":[{"line_number":14,"context_line":"Test plan:"},{"line_number":15,"context_line":"PASS: Fail normal lock controller with 1 remaining monitor."},{"line_number":16,"context_line":"PASS: Successfully force lock controller with 1 remaining monitor."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Signed-off-by: Iago Estrela \u003cIagoFilipe.EstrelaBarros@windriver.com\u003e"},{"line_number":19,"context_line":"Change-Id: Ib7b8fdda6cddc4316fbd4b4adb897ca73b1eb846"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"09ebc345_ea263c90","line":17,"updated":"2022-03-22 13:17:41.000000000","message":"There is no Story/Task or Bug associated with this change","commit_id":"06f8f4347c4668859e95d7279e4b08c209724572"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"23d4c4ca880515a6cff16311cbd045da0b1c5d2e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Test plan:"},{"line_number":15,"context_line":"PASS: Fail normal lock controller with 1 remaining monitor."},{"line_number":16,"context_line":"PASS: Successfully force lock controller with 1 remaining monitor."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Signed-off-by: Iago Estrela \u003cIagoFilipe.EstrelaBarros@windriver.com\u003e"},{"line_number":19,"context_line":"Change-Id: Ib7b8fdda6cddc4316fbd4b4adb897ca73b1eb846"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"d82f854b_169569bb","line":17,"in_reply_to":"09ebc345_ea263c90","updated":"2022-03-22 13:34:48.000000000","message":"Done","commit_id":"06f8f4347c4668859e95d7279e4b08c209724572"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"a057a8ed4f9df36977c5e40907fbe6688b699696","unresolved":true,"context_lines":[{"line_number":14,"context_line":"Test plan:"},{"line_number":15,"context_line":"PASS: Fail normal lock controller with 1 remaining monitor."},{"line_number":16,"context_line":"PASS: Successfully force lock controller with 1 remaining monitor."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Closes-Bug: 1965945"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Signed-off-by: Iago Estrela \u003cIagoFilipe.EstrelaBarros@windriver.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"8bbcb317_a8f73db4","line":17,"updated":"2022-03-22 15:23:55.000000000","message":"should also verify host-delete which goes through the updated semantic check","commit_id":"2b8d58bc6967b3b9bec482d680836dc92eea30d9"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"819cc7c3d8b984845028fbe1e23d3582382270be","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Test plan:"},{"line_number":15,"context_line":"PASS: Fail normal lock controller with 1 remaining monitor."},{"line_number":16,"context_line":"PASS: Successfully force lock controller with 1 remaining monitor."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Closes-Bug: 1965945"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Signed-off-by: Iago Estrela \u003cIagoFilipe.EstrelaBarros@windriver.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"088bae4c_3d77d6fa","line":17,"in_reply_to":"8bbcb317_a8f73db4","updated":"2022-03-22 18:21:07.000000000","message":"Done","commit_id":"2b8d58bc6967b3b9bec482d680836dc92eea30d9"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"2dc5d9f5c2634f886a73f6083310691b95e0c231","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9b0251ce_5b6899f8","updated":"2022-03-15 19:29:25.000000000","message":"TestPlan section should be updated with testcases and results.","commit_id":"51a387657ac1e8c8f7fe3aecd0a7aad60b8483a1"}],"sysinv/sysinv/sysinv/sysinv/api/controllers/v1/host.py":[{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"072aaa54100fabf713f3df48a67eb39ee5388a4a","unresolved":true,"context_lines":[{"line_number":1152,"context_line":"        self._from_isystem \u003d from_isystem"},{"line_number":1153,"context_line":"        self._mtc_address \u003d constants.LOCALHOST_HOSTNAME"},{"line_number":1154,"context_line":"        self._mtc_port \u003d 2112"},{"line_number":1155,"context_line":"        self._ceph \u003d ceph.CephApiOperator()"},{"line_number":1156,"context_line":"        self._kube_operator \u003d kubernetes.KubeOperator()"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        self._api_token \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"fd738546_fefa018b","line":1155,"range":{"start_line":1155,"start_character":0,"end_line":1155,"end_character":43},"updated":"2022-03-22 12:41:16.000000000","message":"This can be removed if all instances are referenced (currently for the monitor checks), can be relocated to the new method in v1/utils.py","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"7930c22f25237944f65e633c9478c3a440d2d8f3","unresolved":false,"context_lines":[{"line_number":1152,"context_line":"        self._from_isystem \u003d from_isystem"},{"line_number":1153,"context_line":"        self._mtc_address \u003d constants.LOCALHOST_HOSTNAME"},{"line_number":1154,"context_line":"        self._mtc_port \u003d 2112"},{"line_number":1155,"context_line":"        self._ceph \u003d ceph.CephApiOperator()"},{"line_number":1156,"context_line":"        self._kube_operator \u003d kubernetes.KubeOperator()"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        self._api_token \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"672e07e1_7fc5b4db","line":1155,"range":{"start_line":1155,"start_character":0,"end_line":1155,"end_character":43},"in_reply_to":"75a3cdcd_286cbaa7","updated":"2022-03-22 12:55:44.000000000","message":"Done","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"7930c22f25237944f65e633c9478c3a440d2d8f3","unresolved":false,"context_lines":[{"line_number":1152,"context_line":"        self._from_isystem \u003d from_isystem"},{"line_number":1153,"context_line":"        self._mtc_address \u003d constants.LOCALHOST_HOSTNAME"},{"line_number":1154,"context_line":"        self._mtc_port \u003d 2112"},{"line_number":1155,"context_line":"        self._ceph \u003d ceph.CephApiOperator()"},{"line_number":1156,"context_line":"        self._kube_operator \u003d kubernetes.KubeOperator()"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        self._api_token \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba241536_9e87bb9b","line":1155,"range":{"start_line":1155,"start_character":0,"end_line":1155,"end_character":43},"in_reply_to":"75a3cdcd_286cbaa7","updated":"2022-03-22 12:55:44.000000000","message":"Done","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"bc7faaa5b5bc17335c395d87e6a65f12aea4bf6f","unresolved":true,"context_lines":[{"line_number":1152,"context_line":"        self._from_isystem \u003d from_isystem"},{"line_number":1153,"context_line":"        self._mtc_address \u003d constants.LOCALHOST_HOSTNAME"},{"line_number":1154,"context_line":"        self._mtc_port \u003d 2112"},{"line_number":1155,"context_line":"        self._ceph \u003d ceph.CephApiOperator()"},{"line_number":1156,"context_line":"        self._kube_operator \u003d kubernetes.KubeOperator()"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        self._api_token \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"75a3cdcd_286cbaa7","line":1155,"range":{"start_line":1155,"start_character":0,"end_line":1155,"end_character":43},"in_reply_to":"fd738546_fefa018b","updated":"2022-03-22 12:44:57.000000000","message":"actually, would still need self._ceph since its referenced by host_crush_remove, check_osds_down_up, etc.","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"072aaa54100fabf713f3df48a67eb39ee5388a4a","unresolved":true,"context_lines":[{"line_number":2436,"context_line":"        if (personality is not None and"},{"line_number":2437,"context_line":"                personality.find(constants.STORAGE_HOSTNAME) !\u003d -1 and"},{"line_number":2438,"context_line":"                not skip_ceph_checks):"},{"line_number":2439,"context_line":"            num_monitors, required_monitors, __ \u003d \\"},{"line_number":2440,"context_line":"                    self._ceph.get_monitors_status(pecan.request.dbapi)"},{"line_number":2441,"context_line":"            if num_monitors \u003c required_monitors:"},{"line_number":2442,"context_line":"                raise wsme.exc.ClientSideError(_("},{"line_number":2443,"context_line":"                             \"Only %d storage \""},{"line_number":2444,"context_line":"                             \"monitor available. At least %s unlocked and \""},{"line_number":2445,"context_line":"                             \"enabled hosts with monitors are required. Please\""},{"line_number":2446,"context_line":"                             \" ensure hosts with monitors are unlocked and \""},{"line_number":2447,"context_line":"                             \"enabled.\") %"},{"line_number":2448,"context_line":"                             (num_monitors, required_monitors))"},{"line_number":2449,"context_line":""},{"line_number":2450,"context_line":"            # If it is the last storage node to delete, we need to delete"},{"line_number":2451,"context_line":"            # ceph osd pools and update additional tier status to \"defined\""}],"source_content_type":"text/x-python","patch_set":4,"id":"a5238818_44607a05","line":2448,"range":{"start_line":2439,"start_character":12,"end_line":2448,"end_character":63},"updated":"2022-03-22 12:41:16.000000000","message":"another instance of monitor checks","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"7930c22f25237944f65e633c9478c3a440d2d8f3","unresolved":false,"context_lines":[{"line_number":2436,"context_line":"        if (personality is not None and"},{"line_number":2437,"context_line":"                personality.find(constants.STORAGE_HOSTNAME) !\u003d -1 and"},{"line_number":2438,"context_line":"                not skip_ceph_checks):"},{"line_number":2439,"context_line":"            num_monitors, required_monitors, __ \u003d \\"},{"line_number":2440,"context_line":"                    self._ceph.get_monitors_status(pecan.request.dbapi)"},{"line_number":2441,"context_line":"            if num_monitors \u003c required_monitors:"},{"line_number":2442,"context_line":"                raise wsme.exc.ClientSideError(_("},{"line_number":2443,"context_line":"                             \"Only %d storage \""},{"line_number":2444,"context_line":"                             \"monitor available. At least %s unlocked and \""},{"line_number":2445,"context_line":"                             \"enabled hosts with monitors are required. Please\""},{"line_number":2446,"context_line":"                             \" ensure hosts with monitors are unlocked and \""},{"line_number":2447,"context_line":"                             \"enabled.\") %"},{"line_number":2448,"context_line":"                             (num_monitors, required_monitors))"},{"line_number":2449,"context_line":""},{"line_number":2450,"context_line":"            # If it is the last storage node to delete, we need to delete"},{"line_number":2451,"context_line":"            # ceph osd pools and update additional tier status to \"defined\""}],"source_content_type":"text/x-python","patch_set":4,"id":"820ec1f2_cbf8558f","line":2448,"range":{"start_line":2439,"start_character":12,"end_line":2448,"end_character":63},"in_reply_to":"a5238818_44607a05","updated":"2022-03-22 12:55:44.000000000","message":"Done","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"}],"sysinv/sysinv/sysinv/sysinv/api/controllers/v1/storage.py":[{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"2b8a7caaa38846abf498b30a2b5d2dd62d858871","unresolved":true,"context_lines":[{"line_number":632,"context_line":"        # inventoried"},{"line_number":633,"context_line":"        # CGTS 1448"},{"line_number":634,"context_line":"        if (num_monitors \u003c required_monitors and"},{"line_number":635,"context_line":"            not ihost[\u0027action\u0027] \u003d\u003d constants.FORCE_LOCK_ACTION):"},{"line_number":636,"context_line":"            raise wsme.exc.ClientSideError(_("},{"line_number":637,"context_line":"                \"Only %d storage monitor available. \""},{"line_number":638,"context_line":"                \"At least %s unlocked and enabled hosts with monitors are \""}],"source_content_type":"text/x-python","patch_set":1,"id":"68ab049a_9e52c146","line":635,"updated":"2022-03-11 22:23:34.000000000","message":"we may not want to lock this host, even in force case, if it\u0027s the only unlocked host with a storage monitor remaining, i.e. num_monitors must be at least 1 in force case.","commit_id":"5bef9f7a81dc8351a68327936e20d5116d9b0e39"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"295c10074b82f8d838774fafec89fb7e8edc9310","unresolved":false,"context_lines":[{"line_number":632,"context_line":"        # inventoried"},{"line_number":633,"context_line":"        # CGTS 1448"},{"line_number":634,"context_line":"        if (num_monitors \u003c required_monitors and"},{"line_number":635,"context_line":"            not ihost[\u0027action\u0027] \u003d\u003d constants.FORCE_LOCK_ACTION):"},{"line_number":636,"context_line":"            raise wsme.exc.ClientSideError(_("},{"line_number":637,"context_line":"                \"Only %d storage monitor available. \""},{"line_number":638,"context_line":"                \"At least %s unlocked and enabled hosts with monitors are \""}],"source_content_type":"text/x-python","patch_set":1,"id":"f9091d52_58d19a36","line":635,"in_reply_to":"68ab049a_9e52c146","updated":"2022-03-14 14:43:30.000000000","message":"Done","commit_id":"5bef9f7a81dc8351a68327936e20d5116d9b0e39"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"f0d4edbee942af184e1b7f4771c0f985ee3ff07b","unresolved":true,"context_lines":[{"line_number":623,"context_line":"        raise wsme.exc.ClientSideError(_("},{"line_number":624,"context_line":"            \"System must have a %s backend\" % constants.SB_TYPE_CEPH))"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    # semantic check: whether at least 2 unlocked hosts are monitors"},{"line_number":627,"context_line":"    if not cutils.is_aio_system(pecan.request.dbapi):"},{"line_number":628,"context_line":"        ceph_helper \u003d ceph.CephApiOperator()"},{"line_number":629,"context_line":"        num_monitors, required_monitors, __ \u003d \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"06305709_9b3376a8","line":626,"updated":"2022-03-14 14:59:59.000000000","message":"comment should be updated","commit_id":"e8963a4aa17c9470f42f2f34f0bdd5738bb9b598"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"d49b00cf1dd2ad970337811f27df5174318e611b","unresolved":false,"context_lines":[{"line_number":623,"context_line":"        raise wsme.exc.ClientSideError(_("},{"line_number":624,"context_line":"            \"System must have a %s backend\" % constants.SB_TYPE_CEPH))"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    # semantic check: whether at least 2 unlocked hosts are monitors"},{"line_number":627,"context_line":"    if not cutils.is_aio_system(pecan.request.dbapi):"},{"line_number":628,"context_line":"        ceph_helper \u003d ceph.CephApiOperator()"},{"line_number":629,"context_line":"        num_monitors, required_monitors, __ \u003d \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"2892c774_affdf1df","line":626,"in_reply_to":"06305709_9b3376a8","updated":"2022-03-14 16:09:24.000000000","message":"Done","commit_id":"e8963a4aa17c9470f42f2f34f0bdd5738bb9b598"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"f0d4edbee942af184e1b7f4771c0f985ee3ff07b","unresolved":true,"context_lines":[{"line_number":628,"context_line":"        ceph_helper \u003d ceph.CephApiOperator()"},{"line_number":629,"context_line":"        num_monitors, required_monitors, __ \u003d \\"},{"line_number":630,"context_line":"            ceph_helper.get_monitors_status(pecan.request.dbapi)"},{"line_number":631,"context_line":"        # CGTS 503 for now update monitors requirement until controller-0 is"},{"line_number":632,"context_line":"        # inventoried"},{"line_number":633,"context_line":"        # CGTS 1448"},{"line_number":634,"context_line":"        host_has_last_mon \u003d False"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"        if num_monitors \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"d53597c1_4a07b896","line":633,"range":{"start_line":631,"start_character":0,"end_line":633,"end_character":19},"updated":"2022-03-14 14:59:59.000000000","message":"stale comments can be deleted","commit_id":"e8963a4aa17c9470f42f2f34f0bdd5738bb9b598"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"d49b00cf1dd2ad970337811f27df5174318e611b","unresolved":false,"context_lines":[{"line_number":628,"context_line":"        ceph_helper \u003d ceph.CephApiOperator()"},{"line_number":629,"context_line":"        num_monitors, required_monitors, __ \u003d \\"},{"line_number":630,"context_line":"            ceph_helper.get_monitors_status(pecan.request.dbapi)"},{"line_number":631,"context_line":"        # CGTS 503 for now update monitors requirement until controller-0 is"},{"line_number":632,"context_line":"        # inventoried"},{"line_number":633,"context_line":"        # CGTS 1448"},{"line_number":634,"context_line":"        host_has_last_mon \u003d False"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"        if num_monitors \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9df31e61_1bf961ab","line":633,"range":{"start_line":631,"start_character":0,"end_line":633,"end_character":19},"in_reply_to":"d53597c1_4a07b896","updated":"2022-03-14 16:09:24.000000000","message":"Done","commit_id":"e8963a4aa17c9470f42f2f34f0bdd5738bb9b598"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"cde3ef48287f8278c753dde8d587eb6cbfd7287d","unresolved":true,"context_lines":[{"line_number":623,"context_line":"        raise wsme.exc.ClientSideError(_("},{"line_number":624,"context_line":"            \"System must have a %s backend\" % constants.SB_TYPE_CEPH))"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    # semantic check: whether host can be locked or force locked based on"},{"line_number":627,"context_line":"    # ceph monitors availability"},{"line_number":628,"context_line":"    if not cutils.is_aio_system(pecan.request.dbapi):"},{"line_number":629,"context_line":"        ceph_helper \u003d ceph.CephApiOperator()"}],"source_content_type":"text/x-python","patch_set":3,"id":"c472fdbf_0c014baa","line":626,"updated":"2022-03-21 20:43:41.000000000","message":"The equivalent checks are probably needed in v1/host.py (check_lock_ ...()); a common method could be factored out (such as into v1/utils.py)","commit_id":"51a387657ac1e8c8f7fe3aecd0a7aad60b8483a1"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"a3f3213ba505252f8a326e65d01df6796b3c1e42","unresolved":false,"context_lines":[{"line_number":623,"context_line":"        raise wsme.exc.ClientSideError(_("},{"line_number":624,"context_line":"            \"System must have a %s backend\" % constants.SB_TYPE_CEPH))"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    # semantic check: whether host can be locked or force locked based on"},{"line_number":627,"context_line":"    # ceph monitors availability"},{"line_number":628,"context_line":"    if not cutils.is_aio_system(pecan.request.dbapi):"},{"line_number":629,"context_line":"        ceph_helper \u003d ceph.CephApiOperator()"}],"source_content_type":"text/x-python","patch_set":3,"id":"4a909f4b_c9890273","line":626,"in_reply_to":"c472fdbf_0c014baa","updated":"2022-03-21 23:01:36.000000000","message":"Done","commit_id":"51a387657ac1e8c8f7fe3aecd0a7aad60b8483a1"}],"sysinv/sysinv/sysinv/sysinv/api/controllers/v1/utils.py":[{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"072aaa54100fabf713f3df48a67eb39ee5388a4a","unresolved":true,"context_lines":[{"line_number":584,"context_line":""},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"def check_node_lock_ceph_mon(ihost, force\u003dFalse):"},{"line_number":587,"context_line":"    ceph_helper \u003d ceph.CephApiOperator()"},{"line_number":588,"context_line":"    num_monitors, required_monitors, active_monitors \u003d \\"},{"line_number":589,"context_line":"        ceph_helper.get_monitors_status(pecan.request.dbapi)"},{"line_number":590,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"0156820d_65c7ced9","line":587,"updated":"2022-03-22 12:41:16.000000000","message":"this will instantiate a(nother) ceph_helper; in the case of host.py, it already has a ceph_helper.","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"7930c22f25237944f65e633c9478c3a440d2d8f3","unresolved":false,"context_lines":[{"line_number":584,"context_line":""},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"def check_node_lock_ceph_mon(ihost, force\u003dFalse):"},{"line_number":587,"context_line":"    ceph_helper \u003d ceph.CephApiOperator()"},{"line_number":588,"context_line":"    num_monitors, required_monitors, active_monitors \u003d \\"},{"line_number":589,"context_line":"        ceph_helper.get_monitors_status(pecan.request.dbapi)"},{"line_number":590,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"217175c1_e5e0edbc","line":587,"in_reply_to":"0156820d_65c7ced9","updated":"2022-03-22 12:55:44.000000000","message":"Done","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"072aaa54100fabf713f3df48a67eb39ee5388a4a","unresolved":true,"context_lines":[{"line_number":592,"context_line":"                         ihost[\u0027hostname\u0027] in active_monitors)"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"    if (num_monitors - 1 \u003c required_monitors and"},{"line_number":595,"context_line":"        not force or host_has_last_mon):"},{"line_number":596,"context_line":"        raise wsme.exc.ClientSideError(_("},{"line_number":597,"context_line":"                \"Only %d storage \""},{"line_number":598,"context_line":"                \"monitor available. At least %s unlocked and \""}],"source_content_type":"text/x-python","patch_set":4,"id":"4a56fd7f_03193a2e","line":595,"updated":"2022-03-22 12:41:16.000000000","message":"tox flake8 here: ./sysinv/api/controllers/v1/utils.py:595:9: E129 visually indented line with same indent as next logical line","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"7930c22f25237944f65e633c9478c3a440d2d8f3","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                         ihost[\u0027hostname\u0027] in active_monitors)"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"    if (num_monitors - 1 \u003c required_monitors and"},{"line_number":595,"context_line":"        not force or host_has_last_mon):"},{"line_number":596,"context_line":"        raise wsme.exc.ClientSideError(_("},{"line_number":597,"context_line":"                \"Only %d storage \""},{"line_number":598,"context_line":"                \"monitor available. At least %s unlocked and \""}],"source_content_type":"text/x-python","patch_set":4,"id":"87a50b38_8b4c17ba","line":595,"in_reply_to":"4a56fd7f_03193a2e","updated":"2022-03-22 12:55:44.000000000","message":"Done","commit_id":"f9fb0c25c3d359a34ff305b094e3e4f2201d46f9"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"19fa55f61cde77ab2a55de66eedf05a309fb8bff","unresolved":true,"context_lines":[{"line_number":601,"context_line":"                \"enabled hosts with monitors are required. Please\""},{"line_number":602,"context_line":"                \" ensure hosts with monitors are unlocked and \""},{"line_number":603,"context_line":"                \"enabled.\") %"},{"line_number":604,"context_line":"                (num_monitors - 1, required_monitors))"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"class SBApiHelper(object):"}],"source_content_type":"text/x-python","patch_set":9,"id":"b318fbc0_a4b829a4","line":604,"range":{"start_line":604,"start_character":17,"end_line":604,"end_character":29},"updated":"2022-03-22 14:57:52.000000000","message":"should this error output be (num_monitors, required_monitors+1) ?","commit_id":"fa972e74689a890b277d02e3744d484e3aecb58b"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"4841f10b6775e82b23c3dd245c988b82ae700ee6","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                \"enabled hosts with monitors are required. Please\""},{"line_number":602,"context_line":"                \" ensure hosts with monitors are unlocked and \""},{"line_number":603,"context_line":"                \"enabled.\") %"},{"line_number":604,"context_line":"                (num_monitors - 1, required_monitors))"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"class SBApiHelper(object):"}],"source_content_type":"text/x-python","patch_set":9,"id":"244d80aa_ea50d2cf","line":604,"range":{"start_line":604,"start_character":17,"end_line":604,"end_character":29},"in_reply_to":"29d73eed_03e284a7","updated":"2022-03-22 15:13:04.000000000","message":"Done","commit_id":"fa972e74689a890b277d02e3744d484e3aecb58b"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"b2b1abf40dc3196da6a96c01326561b985704aea","unresolved":true,"context_lines":[{"line_number":601,"context_line":"                \"enabled hosts with monitors are required. Please\""},{"line_number":602,"context_line":"                \" ensure hosts with monitors are unlocked and \""},{"line_number":603,"context_line":"                \"enabled.\") %"},{"line_number":604,"context_line":"                (num_monitors - 1, required_monitors))"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"class SBApiHelper(object):"}],"source_content_type":"text/x-python","patch_set":9,"id":"29d73eed_03e284a7","line":604,"range":{"start_line":604,"start_character":17,"end_line":604,"end_character":29},"in_reply_to":"b318fbc0_a4b829a4","updated":"2022-03-22 15:10:25.000000000","message":"I guess we should keep (num_monitors, required_monitors), or we can change the exception message saying that after the lock the active monitors would be num_monitors - 1.","commit_id":"fa972e74689a890b277d02e3744d484e3aecb58b"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"f32d889c1804106aa303f61d3ef42f52f2136f57","unresolved":true,"context_lines":[{"line_number":594,"context_line":"                         ihost[\u0027hostname\u0027] in active_monitors)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    if (num_monitors - 1 \u003c required_monitors and"},{"line_number":597,"context_line":"            not force or host_has_last_mon):"},{"line_number":598,"context_line":"        raise wsme.exc.ClientSideError(_("},{"line_number":599,"context_line":"                \"Only %d storage \""},{"line_number":600,"context_line":"                \"monitor available. At least %d unlocked and \""}],"source_content_type":"text/x-python","patch_set":11,"id":"43622399_db528530","line":597,"updated":"2022-03-28 18:36:10.000000000","message":"for equivalence, it was previously also exiting, without raising an exception, when active_monitors did not contain ihost[\u0027hostname\u0027].  (i.e. even when num_monitors \u003d\u003d 0)","commit_id":"950721eb48706d409db8d3bbb3899f7fb55fdf9a"},{"author":{"_account_id":33410,"name":"Iago Filipe","email":"IagoFilipe.EstrelaBarros@windriver.com","username":"ifest1"},"change_message_id":"bb81090646d46ec37729da7dbd4e97234fb8c07f","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                         ihost[\u0027hostname\u0027] in active_monitors)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"    if (num_monitors - 1 \u003c required_monitors and"},{"line_number":597,"context_line":"            not force or host_has_last_mon):"},{"line_number":598,"context_line":"        raise wsme.exc.ClientSideError(_("},{"line_number":599,"context_line":"                \"Only %d storage \""},{"line_number":600,"context_line":"                \"monitor available. At least %d unlocked and \""}],"source_content_type":"text/x-python","patch_set":11,"id":"f3160e11_9a222b13","line":597,"in_reply_to":"43622399_db528530","updated":"2022-03-28 20:12:12.000000000","message":"Done","commit_id":"950721eb48706d409db8d3bbb3899f7fb55fdf9a"}]}
