)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"0f4f29408dbfa487760da545d0add8be6ec8a7cf","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Avoid creating a root provider when parent is not found"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before this change, when agent called to conductor to report_data(),"},{"line_number":10,"context_line":"if the parent provider was not found by hostname, we would log an error,"},{"line_number":11,"context_line":"and then continue to create the \"child\" provider with no parent. We should"},{"line_number":12,"context_line":"never do this if we are supposed to have a parent. Cleanup from this"},{"line_number":13,"context_line":"situation is also messy."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This makes us raise PlacementResourceProviderNotFound() in that case,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_a48a50ba","line":12,"range":{"start_line":9,"start_character":0,"end_line":12,"end_character":50},"updated":"2020-02-21 07:56:28.000000000","message":"Yes, before this conductor does not abort to report devices data info into DB, also create an error orphan provider.\n\nAfter this patch, the conductor abort DB report.\n\nNot sure should also conductor continue DB report?","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"a5f441cc0ea5dd792b2c94c652c7242f1a6e9d6e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Avoid creating a root provider when parent is not found"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before this change, when agent called to conductor to report_data(),"},{"line_number":10,"context_line":"if the parent provider was not found by hostname, we would log an error,"},{"line_number":11,"context_line":"and then continue to create the \"child\" provider with no parent. We should"},{"line_number":12,"context_line":"never do this if we are supposed to have a parent. Cleanup from this"},{"line_number":13,"context_line":"situation is also messy."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This makes us raise PlacementResourceProviderNotFound() in that case,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_c728ae80","line":12,"range":{"start_line":9,"start_character":0,"end_line":12,"end_character":50},"in_reply_to":"3fa7e38b_a48a50ba","updated":"2020-02-21 08:17:27.000000000","message":"with DB report:\nThe end users can get the devices info on a host by Cyborg API.\nBut can not track them by Placement API for misconfigure host name.\n\nMaybe this can help them to debug","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"a2251bbbe54dd91704a3f13ae6d1440e7df9b64f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Avoid creating a root provider when parent is not found"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before this change, when agent called to conductor to report_data(),"},{"line_number":10,"context_line":"if the parent provider was not found by hostname, we would log an error,"},{"line_number":11,"context_line":"and then continue to create the \"child\" provider with no parent. We should"},{"line_number":12,"context_line":"never do this if we are supposed to have a parent. Cleanup from this"},{"line_number":13,"context_line":"situation is also messy."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This makes us raise PlacementResourceProviderNotFound() in that case,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1fa4df85_c9f7b5d4","line":12,"range":{"start_line":9,"start_character":0,"end_line":12,"end_character":50},"in_reply_to":"3fa7e38b_a5e48742","updated":"2020-02-23 12:26:54.000000000","message":"Not sure whether conductor diff update method works well.","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b7d06030273432aa8b14aefb0a14b35708d6b9fd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Avoid creating a root provider when parent is not found"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Before this change, when agent called to conductor to report_data(),"},{"line_number":10,"context_line":"if the parent provider was not found by hostname, we would log an error,"},{"line_number":11,"context_line":"and then continue to create the \"child\" provider with no parent. We should"},{"line_number":12,"context_line":"never do this if we are supposed to have a parent. Cleanup from this"},{"line_number":13,"context_line":"situation is also messy."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This makes us raise PlacementResourceProviderNotFound() in that case,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_a5e48742","line":12,"range":{"start_line":9,"start_character":0,"end_line":12,"end_character":50},"in_reply_to":"3fa7e38b_c728ae80","updated":"2020-02-21 14:40:38.000000000","message":"Yes, but if they change their config in cyborg and restart the agent, attributes and deployables are re-created which causes database errors, and then multiple things must be removed before you can boot again. Check the storyboard bug I opened for this which has the traces:\n\nhttps://storyboard.openstack.org/#!/story/2007310#comment-152293","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"0f4f29408dbfa487760da545d0add8be6ec8a7cf","unresolved":false,"context_lines":[{"line_number":15,"context_line":"This makes us raise PlacementResourceProviderNotFound() in that case,"},{"line_number":16,"context_line":"which aborts the report and thus does not create the provider incorrectly."},{"line_number":17,"context_line":"It also makes the agent catch that exception and moves the log message"},{"line_number":18,"context_line":"to the agent where the actual problem is (i.e. likely misconfiguration)."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The exception used here is actually defined incorrectly, having a message"},{"line_number":21,"context_line":"class variable instead of _msg_fmt, which caused it to not render properly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_247c2021","line":18,"range":{"start_line":18,"start_character":54,"end_line":18,"end_character":70},"updated":"2020-02-21 07:56:28.000000000","message":"Check the code, cyborg get provider by hostname from CONF.\nNova maybe also get hostname from CONF.\nThe deployer should be careful to make same consistent configure for all project. \n\nGuess misconfiguration is common in the deployment scenarios by devstack.","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b7d06030273432aa8b14aefb0a14b35708d6b9fd","unresolved":false,"context_lines":[{"line_number":15,"context_line":"This makes us raise PlacementResourceProviderNotFound() in that case,"},{"line_number":16,"context_line":"which aborts the report and thus does not create the provider incorrectly."},{"line_number":17,"context_line":"It also makes the agent catch that exception and moves the log message"},{"line_number":18,"context_line":"to the agent where the actual problem is (i.e. likely misconfiguration)."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The exception used here is actually defined incorrectly, having a message"},{"line_number":21,"context_line":"class variable instead of _msg_fmt, which caused it to not render properly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_857ceb74","line":18,"range":{"start_line":18,"start_character":54,"end_line":18,"end_character":70},"in_reply_to":"3fa7e38b_247c2021","updated":"2020-02-21 14:40:38.000000000","message":"Devstack is currently misconfiguring this on my system which has an FQDN. The bug is actually in the cyborg devstack plugin, which forces the cyborg host to the short name, even though nova is not configured with the same. This would be an easy thing to mess up with other tools as well, as I see it rather often.","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"a2251bbbe54dd91704a3f13ae6d1440e7df9b64f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"This makes us raise PlacementResourceProviderNotFound() in that case,"},{"line_number":16,"context_line":"which aborts the report and thus does not create the provider incorrectly."},{"line_number":17,"context_line":"It also makes the agent catch that exception and moves the log message"},{"line_number":18,"context_line":"to the agent where the actual problem is (i.e. likely misconfiguration)."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The exception used here is actually defined incorrectly, having a message"},{"line_number":21,"context_line":"class variable instead of _msg_fmt, which caused it to not render properly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1fa4df85_090e2de5","line":18,"range":{"start_line":18,"start_character":54,"end_line":18,"end_character":70},"in_reply_to":"3fa7e38b_857ceb74","updated":"2020-02-23 12:26:54.000000000","message":"Thanks sean mooney for fixing the devstack bug.","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"}],"cyborg/common/exception.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca565707e8e456d5cd3ab1650bd60773fb6db9fc","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"class PlacementResourceProviderNotFound(NotFound):"},{"line_number":246,"context_line":"    _msg_fmt \u003d _(\"Placement resource provider not found: \""},{"line_number":247,"context_line":"                 \"%(resource_provider)s.\")"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"class PlacementInventoryNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_01856053","line":247,"range":{"start_line":246,"start_character":12,"end_line":247,"end_character":3},"updated":"2020-02-20 15:53:39.000000000","message":"so we parbaly shoudl also fix the other cases in a sperate patch right.\n\nall cases where itws currently message shoudl be _msg_fmt correct.","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a2fb364298e2e647d63f011c738178f0d9bde59b","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"class PlacementResourceProviderNotFound(NotFound):"},{"line_number":246,"context_line":"    _msg_fmt \u003d _(\"Placement resource provider not found: \""},{"line_number":247,"context_line":"                 \"%(resource_provider)s.\")"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"class PlacementInventoryNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_41d03857","line":247,"range":{"start_line":246,"start_character":12,"end_line":247,"end_character":3},"in_reply_to":"3fa7e38b_01856053","updated":"2020-02-20 15:54:23.000000000","message":"oh you did that in the next patch :)","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"}],"cyborg/conductor/manager.py":[{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"0f4f29408dbfa487760da545d0add8be6ec8a7cf","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                \"resource_providers?name\u003d\" + hostname).json()"},{"line_number":364,"context_line":"            pr_uuid \u003d provider[\"resource_providers\"][0][\"uuid\"]"},{"line_number":365,"context_line":"            return pr_uuid"},{"line_number":366,"context_line":"        except IndexError:"},{"line_number":367,"context_line":"            raise exception.PlacementResourceProviderNotFound("},{"line_number":368,"context_line":"                resource_provider\u003dhostname)"},{"line_number":369,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c4698c23","line":366,"range":{"start_line":366,"start_character":15,"end_line":366,"end_character":25},"updated":"2020-02-21 07:56:28.000000000","message":"The IndexError is because we get a empty resource_providers list maybe cause bye misconfigure. \n\nNot sure which is better:\nif not provider[\"resource_providers\"]:\n    raise","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b7d06030273432aa8b14aefb0a14b35708d6b9fd","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                \"resource_providers?name\u003d\" + hostname).json()"},{"line_number":364,"context_line":"            pr_uuid \u003d provider[\"resource_providers\"][0][\"uuid\"]"},{"line_number":365,"context_line":"            return pr_uuid"},{"line_number":366,"context_line":"        except IndexError:"},{"line_number":367,"context_line":"            raise exception.PlacementResourceProviderNotFound("},{"line_number":368,"context_line":"                resource_provider\u003dhostname)"},{"line_number":369,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c5de636a","line":366,"range":{"start_line":366,"start_character":15,"end_line":366,"end_character":25},"in_reply_to":"3fa7e38b_c4698c23","updated":"2020-02-21 14:40:38.000000000","message":"It\u0027s more pythonic to catch the IndexError, as the code is here.","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"7c46f8241afd457c98d34b9724807f266ec26c2a","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                \"resource_providers?name\u003d\" + hostname).json()"},{"line_number":364,"context_line":"            pr_uuid \u003d provider[\"resource_providers\"][0][\"uuid\"]"},{"line_number":365,"context_line":"            return pr_uuid"},{"line_number":366,"context_line":"        except IndexError:"},{"line_number":367,"context_line":"            raise exception.PlacementResourceProviderNotFound("},{"line_number":368,"context_line":"                resource_provider\u003dhostname)"},{"line_number":369,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_e8d9f680","line":366,"range":{"start_line":366,"start_character":15,"end_line":366,"end_character":25},"in_reply_to":"3fa7e38b_c5de636a","updated":"2020-02-21 16:07:26.000000000","message":"Yeah, the IndexError can be catched in if the provider[\"resource_providers\"] is None.","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"a2251bbbe54dd91704a3f13ae6d1440e7df9b64f","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                \"resource_providers?name\u003d\" + hostname).json()"},{"line_number":364,"context_line":"            pr_uuid \u003d provider[\"resource_providers\"][0][\"uuid\"]"},{"line_number":365,"context_line":"            return pr_uuid"},{"line_number":366,"context_line":"        except IndexError:"},{"line_number":367,"context_line":"            raise exception.PlacementResourceProviderNotFound("},{"line_number":368,"context_line":"                resource_provider\u003dhostname)"},{"line_number":369,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_25889723","line":366,"range":{"start_line":366,"start_character":15,"end_line":366,"end_character":25},"in_reply_to":"3fa7e38b_c5de636a","updated":"2020-02-23 12:26:54.000000000","message":"Yes, pythonic is better.","commit_id":"d279c22d1e3e1f053cd33bfb062fbaeb1f397472"}]}
