)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32932,"name":"Douglas Henrique Koerich","display_name":"Douglas Koerich","email":"douglashenrique.koerich@windriver.com","username":"dkoerich"},"change_message_id":"34aa9a95874781ef18c65747740487cb49b7c667","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8b614380_91d1b261","updated":"2021-12-20 09:57:41.000000000","message":"Dealing with a different SQLAlchemy ORM behavior in vbox (running PostgreSQL) when compared with unit tests (running SQLite).","commit_id":"f1bd07860ba2a530c15ec8bafa93bb31d78e6264"},{"author":{"_account_id":31928,"name":"Cole Walker","email":"cole.walker@windriver.com","username":"cwalker"},"change_message_id":"cf3c7fd1008752c6a7cebabf9e7668b82e34dded","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b7122f2f_ad7f01bc","updated":"2021-12-21 16:24:27.000000000","message":"I\u0027ve done a first pass on patchset 3, will review the changes in patchset 4 now that the WF -1 is removed. I have no major comments at this time.","commit_id":"f53ba9669301c6577728c2a224cce34e9ba75bd5"},{"author":{"_account_id":32932,"name":"Douglas Henrique Koerich","display_name":"Douglas Koerich","email":"douglashenrique.koerich@windriver.com","username":"dkoerich"},"change_message_id":"e434a7f76c9e6c95e1484f7fdc984899c44cb41c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b60a1ad9_fed5e833","updated":"2021-12-21 16:12:58.000000000","message":"Solved issue that happened in target only (not in unit tests), ready back for review by all.","commit_id":"f53ba9669301c6577728c2a224cce34e9ba75bd5"},{"author":{"_account_id":32932,"name":"Douglas Henrique Koerich","display_name":"Douglas Koerich","email":"douglashenrique.koerich@windriver.com","username":"dkoerich"},"change_message_id":"ff8a460bbb09bc934ae214b682e034a547efb4c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f64ff6f7_2d57aee5","updated":"2021-12-23 02:06:01.000000000","message":"Rebased to include https://review.opendev.org/c/starlingx/config/+/822545 and solved merge conflicts.","commit_id":"ac6874641a4afab38e4322e34f461bfa9a4f0a21"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"0bdaac827fcdce8ea9ef7627c3ad6c9f81e2dbf0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c5fc5749_670b53e2","updated":"2021-12-23 19:08:11.000000000","message":"The objects with save_changes removed do not support \u0027patch\u0027 operations (the object gets deleted and recreated)  the latest changeset should be good to merge.","commit_id":"157b4ce08f4b600272179f4ede6cd33641613aac"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"6fe2e9f68a0d23f6c129e8bb5481f9a794223ea5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f055c5fe_455d9a79","updated":"2021-12-23 20:23:27.000000000","message":"comments are ptp-instance specific, allowing merge for integration","commit_id":"157b4ce08f4b600272179f4ede6cd33641613aac"},{"author":{"_account_id":32932,"name":"Douglas Henrique Koerich","display_name":"Douglas Koerich","email":"douglashenrique.koerich@windriver.com","username":"dkoerich"},"change_message_id":"6240a2ec743fb8595ce907b2a884de578cd01c19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"764c374f_672544dd","in_reply_to":"c5fc5749_670b53e2","updated":"2021-12-23 19:16:33.000000000","message":"Some additional details here (with your contributions from offline discussion): the \"SomeObject.save_changes()\" method is usually called when the object itself gets own fields/columns updated by \"SomeController.patch()\" call to \"SysinvObject.save()\". For example, \"PtpParameter.save_changes()\" is called in the line \"ptp_parameter.save()\" of \"PtpParameterController.patch()\".\nSince the \"patch()\" methods of PtpInstanceController and PtpInterfaceController don\u0027t change (\"save()\") the object itself, instead they create new entries in the bridge table (ptp_parameter_ownerships), those \"save_changes\" methods for PtpInstance and PtpInterface objects can be removed.","commit_id":"157b4ce08f4b600272179f4ede6cd33641613aac"}],"sysinv/sysinv/sysinv/sysinv/api/controllers/v1/host.py":[{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"fc68b27c65c4e0bdb325fc5a5885520000bd35ca","unresolved":true,"context_lines":[{"line_number":1825,"context_line":"            path \u003d p[\u0027path\u0027]"},{"line_number":1826,"context_line":"            if path in optimize_list:"},{"line_number":1827,"context_line":"                optimizable +\u003d 1"},{"line_number":1828,"context_line":"            elif path \u003d\u003d \u0027/ptp_instances/-\u0027:"},{"line_number":1829,"context_line":"                has_ptp_instances \u003d True"},{"line_number":1830,"context_line":""},{"line_number":1831,"context_line":"        if has_ptp_instances:"}],"source_content_type":"text/x-python","patch_set":7,"id":"cc80c546_7a794209","line":1828,"range":{"start_line":1828,"start_character":41,"end_line":1828,"end_character":42},"updated":"2021-12-23 16:00:00.000000000","message":"The trailing -  for these paths is not a convention I am familiar with.\nI think this is fine.","commit_id":"4795112ebd6370814867096df584079d63e38ac2"},{"author":{"_account_id":28558,"name":"Ghada Khalil","email":"ghada.khalil@windriver.com","username":"gkhalil"},"change_message_id":"2705b9f197290487b630fa9baa7d2d58d0963b57","unresolved":false,"context_lines":[{"line_number":1825,"context_line":"            path \u003d p[\u0027path\u0027]"},{"line_number":1826,"context_line":"            if path in optimize_list:"},{"line_number":1827,"context_line":"                optimizable +\u003d 1"},{"line_number":1828,"context_line":"            elif path \u003d\u003d \u0027/ptp_instances/-\u0027:"},{"line_number":1829,"context_line":"                has_ptp_instances \u003d True"},{"line_number":1830,"context_line":""},{"line_number":1831,"context_line":"        if has_ptp_instances:"}],"source_content_type":"text/x-python","patch_set":7,"id":"420ef513_07922a7f","line":1828,"range":{"start_line":1828,"start_character":41,"end_line":1828,"end_character":42},"in_reply_to":"4756bcc1_fbf6b755","updated":"2021-12-23 19:09:54.000000000","message":"Done","commit_id":"4795112ebd6370814867096df584079d63e38ac2"},{"author":{"_account_id":32932,"name":"Douglas Henrique Koerich","display_name":"Douglas Koerich","email":"douglashenrique.koerich@windriver.com","username":"dkoerich"},"change_message_id":"6e1c2e3863d790bcb8595c8e56f77eafa77f1222","unresolved":true,"context_lines":[{"line_number":1825,"context_line":"            path \u003d p[\u0027path\u0027]"},{"line_number":1826,"context_line":"            if path in optimize_list:"},{"line_number":1827,"context_line":"                optimizable +\u003d 1"},{"line_number":1828,"context_line":"            elif path \u003d\u003d \u0027/ptp_instances/-\u0027:"},{"line_number":1829,"context_line":"                has_ptp_instances \u003d True"},{"line_number":1830,"context_line":""},{"line_number":1831,"context_line":"        if has_ptp_instances:"}],"source_content_type":"text/x-python","patch_set":7,"id":"4756bcc1_fbf6b755","line":1828,"range":{"start_line":1828,"start_character":41,"end_line":1828,"end_character":42},"in_reply_to":"cc80c546_7a794209","updated":"2021-12-23 17:17:23.000000000","message":"This is for appending another value to the tail of an array field (usually a zero-based index would be used to point a specific position at the array), please see https://datatracker.ietf.org/doc/html/rfc6902#appendix-A.16.\nYou may notice there is no such array field in host table, but instead this approach is being used to allow a list of instances to be assigned to the host (i.e. setting the corresponding ptp_instance_maps - the bridge table - entries). Same was done for PTP parameters assigned to PTP instances and PTP interfaces.","commit_id":"4795112ebd6370814867096df584079d63e38ac2"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"65eeacd1457340e961b90a8f37e73f463321ac9b","unresolved":true,"context_lines":[{"line_number":1828,"context_line":"            elif path \u003d\u003d \u0027/ptp_instances/-\u0027:"},{"line_number":1829,"context_line":"                has_ptp_instances \u003d True"},{"line_number":1830,"context_line":""},{"line_number":1831,"context_line":"        if has_ptp_instances:"},{"line_number":1832,"context_line":"            return self._patch_ptp(uuid, patch)"},{"line_number":1833,"context_line":"        elif len(patch) \u003d\u003d optimizable:"},{"line_number":1834,"context_line":"            return self._patch(uuid, patch)"},{"line_number":1835,"context_line":"        elif (pecan.request.user_agent.startswith(\u0027mtce\u0027) or"}],"source_content_type":"text/x-python","patch_set":8,"id":"5d526f18_8125ead3","line":1832,"range":{"start_line":1831,"start_character":0,"end_line":1832,"end_character":47},"updated":"2021-12-23 20:20:48.000000000","message":"This should be under patch_sys() ... should address in future commit","commit_id":"157b4ce08f4b600272179f4ede6cd33641613aac"},{"author":{"_account_id":32932,"name":"Douglas Henrique Koerich","display_name":"Douglas Koerich","email":"douglashenrique.koerich@windriver.com","username":"dkoerich"},"change_message_id":"147612ed41713ec4405b69be973dd4a7ac4a3fc7","unresolved":false,"context_lines":[{"line_number":1828,"context_line":"            elif path \u003d\u003d \u0027/ptp_instances/-\u0027:"},{"line_number":1829,"context_line":"                has_ptp_instances \u003d True"},{"line_number":1830,"context_line":""},{"line_number":1831,"context_line":"        if has_ptp_instances:"},{"line_number":1832,"context_line":"            return self._patch_ptp(uuid, patch)"},{"line_number":1833,"context_line":"        elif len(patch) \u003d\u003d optimizable:"},{"line_number":1834,"context_line":"            return self._patch(uuid, patch)"},{"line_number":1835,"context_line":"        elif (pecan.request.user_agent.startswith(\u0027mtce\u0027) or"}],"source_content_type":"text/x-python","patch_set":8,"id":"5e1876e1_07b548c0","line":1832,"range":{"start_line":1831,"start_character":0,"end_line":1832,"end_character":47},"in_reply_to":"5d526f18_8125ead3","updated":"2021-12-23 20:38:36.000000000","message":"Ack","commit_id":"157b4ce08f4b600272179f4ede6cd33641613aac"}],"sysinv/sysinv/sysinv/sysinv/api/controllers/v1/interface.py":[{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"65eeacd1457340e961b90a8f37e73f463321ac9b","unresolved":true,"context_lines":[{"line_number":443,"context_line":"            elif \u0027/ports\u0027 \u003d\u003d p[\u0027path\u0027]:"},{"line_number":444,"context_line":"                ports \u003d p[\u0027value\u0027]"},{"line_number":445,"context_line":"                patches_to_remove.append(p)"},{"line_number":446,"context_line":"            elif \u0027/ptp_interfaces/-\u0027 \u003d\u003d p[\u0027path\u0027]:"},{"line_number":447,"context_line":"                has_ptp_interfaces \u003d True"},{"line_number":448,"context_line":"                ptp_interface_id \u003d p[\u0027value\u0027]"},{"line_number":449,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"541ff0ec_a2ca2f09","line":446,"range":{"start_line":446,"start_character":34,"end_line":446,"end_character":35},"updated":"2021-12-23 20:20:48.000000000","message":"appears to be an extra character","commit_id":"157b4ce08f4b600272179f4ede6cd33641613aac"},{"author":{"_account_id":32932,"name":"Douglas Henrique Koerich","display_name":"Douglas Koerich","email":"douglashenrique.koerich@windriver.com","username":"dkoerich"},"change_message_id":"147612ed41713ec4405b69be973dd4a7ac4a3fc7","unresolved":false,"context_lines":[{"line_number":443,"context_line":"            elif \u0027/ports\u0027 \u003d\u003d p[\u0027path\u0027]:"},{"line_number":444,"context_line":"                ports \u003d p[\u0027value\u0027]"},{"line_number":445,"context_line":"                patches_to_remove.append(p)"},{"line_number":446,"context_line":"            elif \u0027/ptp_interfaces/-\u0027 \u003d\u003d p[\u0027path\u0027]:"},{"line_number":447,"context_line":"                has_ptp_interfaces \u003d True"},{"line_number":448,"context_line":"                ptp_interface_id \u003d p[\u0027value\u0027]"},{"line_number":449,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"45c004aa_09a3099a","line":446,"range":{"start_line":446,"start_character":34,"end_line":446,"end_character":35},"in_reply_to":"541ff0ec_a2ca2f09","updated":"2021-12-23 20:38:36.000000000","message":"Hi John, this is not an extra character but the same approach that I discussed with Al in some comment above.","commit_id":"157b4ce08f4b600272179f4ede6cd33641613aac"}],"sysinv/sysinv/sysinv/sysinv/db/sqlalchemy/models.py":[{"author":{"_account_id":31928,"name":"Cole Walker","email":"cole.walker@windriver.com","username":"cwalker"},"change_message_id":"cf3c7fd1008752c6a7cebabf9e7668b82e34dded","unresolved":true,"context_lines":[{"line_number":244,"context_line":"                          ForeignKey(\u0027i_system.id\u0027, ondelete\u003d\u0027CASCADE\u0027))"},{"line_number":245,"context_line":"    peer_id \u003d Column(Integer,"},{"line_number":246,"context_line":"                     ForeignKey(\u0027peers.id\u0027))"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    system \u003d relationship(\"isystem\", lazy\u003d\"subquery\")"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    host_upgrade \u003d relationship(\"HostUpgrade\", lazy\u003d\"subquery\", uselist\u003dFalse)"},{"line_number":251,"context_line":"    kube_host_upgrade \u003d relationship(\"KubeHostUpgrade\", lazy\u003d\"subquery\","},{"line_number":252,"context_line":"                                     uselist\u003dFalse)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    ptp_instances \u003d relationship("},{"line_number":255,"context_line":"        \"PtpInstances\","}],"source_content_type":"text/x-python","patch_set":3,"id":"15d82d13_072cdf6c","line":252,"range":{"start_line":247,"start_character":0,"end_line":252,"end_character":51},"updated":"2021-12-21 16:24:27.000000000","message":"Could you explain what these changes are for? Particularly the lazy\u003dsubquery that has been added in multiple places.","commit_id":"f1bd07860ba2a530c15ec8bafa93bb31d78e6264"},{"author":{"_account_id":32932,"name":"Douglas Henrique Koerich","display_name":"Douglas Koerich","email":"douglashenrique.koerich@windriver.com","username":"dkoerich"},"change_message_id":"1498845168fc5caa3befb425c08803c47efd715f","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                          ForeignKey(\u0027i_system.id\u0027, ondelete\u003d\u0027CASCADE\u0027))"},{"line_number":245,"context_line":"    peer_id \u003d Column(Integer,"},{"line_number":246,"context_line":"                     ForeignKey(\u0027peers.id\u0027))"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    system \u003d relationship(\"isystem\", lazy\u003d\"subquery\")"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"    host_upgrade \u003d relationship(\"HostUpgrade\", lazy\u003d\"subquery\", uselist\u003dFalse)"},{"line_number":251,"context_line":"    kube_host_upgrade \u003d relationship(\"KubeHostUpgrade\", lazy\u003d\"subquery\","},{"line_number":252,"context_line":"                                     uselist\u003dFalse)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    ptp_instances \u003d relationship("},{"line_number":255,"context_line":"        \"PtpInstances\","}],"source_content_type":"text/x-python","patch_set":3,"id":"fa101b32_be856839","line":252,"range":{"start_line":247,"start_character":0,"end_line":252,"end_character":51},"in_reply_to":"15d82d13_072cdf6c","updated":"2021-12-21 16:41:29.000000000","message":"I got a session timeout for \"system\" relationship during unit tests, then after some research I found that \"lazy\u003dsubquery\" seemed to solve the issue.\nHowever, it introduced another problem only in the target (not in unit tests), which is just the point that made me set W-1 for PS#3.\nNotice that I reverted this change, and limited to explicit the \"lazy\" parameter only for the \"system\" relationship that also solved that original timeout issue in unit test","commit_id":"f1bd07860ba2a530c15ec8bafa93bb31d78e6264"}],"sysinv/sysinv/sysinv/sysinv/objects/ptp_interface.py":[{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"fc68b27c65c4e0bdb325fc5a5885520000bd35ca","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        return cls.dbapi.ptp_interface_get(uuid)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def save_changes(self, context, updates):"},{"line_number":65,"context_line":"        self.dbapi.ptp_interface_update(self.uuid,  # pylint: disable\u003dno-member"},{"line_number":66,"context_line":"                                        updates)"}],"source_content_type":"text/x-python","patch_set":7,"id":"e96ca688_a7ee0ada","line":65,"range":{"start_line":65,"start_character":19,"end_line":65,"end_character":39},"updated":"2021-12-23 16:00:00.000000000","message":"Is this disabled because you are adding ptp_interface_update   method in a later commit?","commit_id":"4795112ebd6370814867096df584079d63e38ac2"},{"author":{"_account_id":28558,"name":"Ghada Khalil","email":"ghada.khalil@windriver.com","username":"gkhalil"},"change_message_id":"2705b9f197290487b630fa9baa7d2d58d0963b57","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        return cls.dbapi.ptp_interface_get(uuid)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def save_changes(self, context, updates):"},{"line_number":65,"context_line":"        self.dbapi.ptp_interface_update(self.uuid,  # pylint: disable\u003dno-member"},{"line_number":66,"context_line":"                                        updates)"}],"source_content_type":"text/x-python","patch_set":7,"id":"d40b0e72_fad9cf79","line":65,"range":{"start_line":65,"start_character":19,"end_line":65,"end_character":39},"in_reply_to":"2badba4f_379b8972","updated":"2021-12-23 19:09:54.000000000","message":"Done","commit_id":"4795112ebd6370814867096df584079d63e38ac2"},{"author":{"_account_id":32932,"name":"Douglas Henrique Koerich","display_name":"Douglas Koerich","email":"douglashenrique.koerich@windriver.com","username":"dkoerich"},"change_message_id":"6e1c2e3863d790bcb8595c8e56f77eafa77f1222","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        return cls.dbapi.ptp_interface_get(uuid)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def save_changes(self, context, updates):"},{"line_number":65,"context_line":"        self.dbapi.ptp_interface_update(self.uuid,  # pylint: disable\u003dno-member"},{"line_number":66,"context_line":"                                        updates)"}],"source_content_type":"text/x-python","patch_set":7,"id":"2badba4f_379b8972","line":65,"range":{"start_line":65,"start_character":19,"end_line":65,"end_character":39},"in_reply_to":"e96ca688_a7ee0ada","updated":"2021-12-23 17:17:23.000000000","message":"No, it is disabled because of pylint complaining in tox. I just did what has been done for other object definitions as well (e.g. host.py, cpu.py, etc.)","commit_id":"4795112ebd6370814867096df584079d63e38ac2"}],"sysinv/sysinv/sysinv/sysinv/puppet/networking.py":[{"author":{"_account_id":31928,"name":"Cole Walker","email":"cole.walker@windriver.com","username":"cwalker"},"change_message_id":"ed783b31926fd39af43443c45e7bdd5c36e0ac73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b0237742_a1ecf84b","updated":"2021-12-21 18:14:08.000000000","message":"These changes in networking.py look correct to me.","commit_id":"f53ba9669301c6577728c2a224cce34e9ba75bd5"}]}
