)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"7afbdee12e720af4618ec93d7df8e132ead68bed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"63bb9fce_0a5221cd","updated":"2025-11-26 16:38:33.000000000","message":"It\u0027s mostly fine. Just some suggestions.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ef4a873d_436d4858","updated":"2025-12-08 20:40:11.000000000","message":"over all this looks ok but i would have only covered the scope fo this cycle","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"48863e9893573b526067f3d351a2bc707c7babcd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c538afa2_862d74a2","updated":"2025-12-18 19:29:33.000000000","message":"Mergin this spec since we agree with the proposed aproach. If you want to propose any update, pls send a follow up change. Thanks Joan","commit_id":"8101d595e767f5277d8cf3c68e2425e620808073"}],"specs/2026.1/approved/use_openstacksdk.rst":[{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"7afbdee12e720af4618ec93d7df8e132ead68bed","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Migrate Watcher to Use OpenStackSDK"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/use-openstacksdk"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Watcher currently uses individual Python client libraries (python-novaclient,"},{"line_number":14,"context_line":"python-cinderclient, etc.) to interact with other OpenStack services. These"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8e811cfe_1a8d9903","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":2},"updated":"2025-11-26 16:38:33.000000000","message":"This blueprint does not exist. I guess you need to create it before.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Migrate Watcher to Use OpenStackSDK"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/use-openstacksdk"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Watcher currently uses individual Python client libraries (python-novaclient,"},{"line_number":14,"context_line":"python-cinderclient, etc.) to interact with other OpenStack services. These"}],"source_content_type":"text/x-rst","patch_set":1,"id":"17815822_c49647e0","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":2},"in_reply_to":"21f6679d_75bcd218","updated":"2025-12-08 20:40:11.000000000","message":"we dont alwasy create it before but it is one of the things we are ment to do before merging.\n\ni.e. you dont have to file a blueprint if your just looking for feedback but once we are getting close to an agreement we should.\n\nalso once the spec is merged we shoudl rememebr to go back and mark it as approved.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fd049a31e231cdf0ffec2e2ca1f94c4ed219f6c6","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Migrate Watcher to Use OpenStackSDK"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/use-openstacksdk"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Watcher currently uses individual Python client libraries (python-novaclient,"},{"line_number":14,"context_line":"python-cinderclient, etc.) to interact with other OpenStack services. These"}],"source_content_type":"text/x-rst","patch_set":1,"id":"21f6679d_75bcd218","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":2},"in_reply_to":"8e811cfe_1a8d9903","updated":"2025-11-27 10:18:55.000000000","message":"true, I forgot to create it, I\u0027ve done it now","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"7afbdee12e720af4618ec93d7df8e132ead68bed","unresolved":true,"context_lines":[{"line_number":15,"context_line":"client libraries have been frozen or deprecated and are scheduled for removal"},{"line_number":16,"context_line":"in future OpenStack releases. This specification proposes migrating Watcher to"},{"line_number":17,"context_line":"use OpenStackSDK, the unified and officially maintained SDK for OpenStack"},{"line_number":18,"context_line":"service interactions, ensuring long-term maintainability and support."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"42b01997_391e7e1d","line":18,"updated":"2025-11-26 16:38:33.000000000","message":"I\u0027d be mention that this also includes adding watcher support in openstacksdk itself (phase 3)","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fd049a31e231cdf0ffec2e2ca1f94c4ed219f6c6","unresolved":true,"context_lines":[{"line_number":15,"context_line":"client libraries have been frozen or deprecated and are scheduled for removal"},{"line_number":16,"context_line":"in future OpenStack releases. This specification proposes migrating Watcher to"},{"line_number":17,"context_line":"use OpenStackSDK, the unified and officially maintained SDK for OpenStack"},{"line_number":18,"context_line":"service interactions, ensuring long-term maintainability and support."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c5052c2f_1b30bd24","line":18,"in_reply_to":"42b01997_391e7e1d","updated":"2025-11-27 10:18:55.000000000","message":"makes sense, done!","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":15,"context_line":"client libraries have been frozen or deprecated and are scheduled for removal"},{"line_number":16,"context_line":"in future OpenStack releases. This specification proposes migrating Watcher to"},{"line_number":17,"context_line":"use OpenStackSDK, the unified and officially maintained SDK for OpenStack"},{"line_number":18,"context_line":"service interactions, ensuring long-term maintainability and support."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d8ba6dc3_a6f743ad","line":18,"in_reply_to":"c5052c2f_1b30bd24","updated":"2025-12-08 20:40:11.000000000","message":"so if this was inteed as a backlog spec i guess i woudl agree but in a normal spec you would only proppsoe the change you intend to complete in the cycle.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"7afbdee12e720af4618ec93d7df8e132ead68bed","unresolved":true,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"1. Add OpenStackSDK as a dependency in requirements.txt"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"2. Extend the OpenStackClients class in ``watcher/common/clients.py`` to"},{"line_number":63,"context_line":"   create and manage an OpenStackSDK Connection object. This connection will be"},{"line_number":64,"context_line":"   established using a keystone session like it\u0027s currently done with the"},{"line_number":65,"context_line":"   individual clients."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"**Nova Helper Migration**"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b0dfccce_019a38a0","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":22},"updated":"2025-11-26 16:38:33.000000000","message":"I\u0027m not sure if i would do this or the oposite, leave OpenStackClients untuched until we can remove it and create a new one based on openstacksdk. Anyway, that\u0027s probably an implementation detail at this point.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"1. Add OpenStackSDK as a dependency in requirements.txt"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"2. Extend the OpenStackClients class in ``watcher/common/clients.py`` to"},{"line_number":63,"context_line":"   create and manage an OpenStackSDK Connection object. This connection will be"},{"line_number":64,"context_line":"   established using a keystone session like it\u0027s currently done with the"},{"line_number":65,"context_line":"   individual clients."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"**Nova Helper Migration**"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e3e19a7b_f225ca10","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":22},"in_reply_to":"447bb2e6_b1536579","updated":"2025-12-08 20:40:11.000000000","message":"personally i hate how the OpenStackClients clase works today so woudl prefer to delete it. that partly because i hat the name that was chose for ti.\n\nim sort of tempted to say we shoudl either put the sdk object in the RequestContext\nhttps://github.com/openstack/watcher/blob/master/watcher/common/context.py#L23\n\nor provde a helper to create one on demand.\n\nin general we shoudl be using the user token formn the RequestContext when calling other service and extending that with a service_user token that is generated form our config.\n\nthat way the audit history of the rests adn request id ectra will be propagated correctly.\n\nin many case we will need to create our own token because we wont have a user oen so in those case we weill ned to fallback to useing a token created form our config as we do today.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fd049a31e231cdf0ffec2e2ca1f94c4ed219f6c6","unresolved":true,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"1. Add OpenStackSDK as a dependency in requirements.txt"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"2. Extend the OpenStackClients class in ``watcher/common/clients.py`` to"},{"line_number":63,"context_line":"   create and manage an OpenStackSDK Connection object. This connection will be"},{"line_number":64,"context_line":"   established using a keystone session like it\u0027s currently done with the"},{"line_number":65,"context_line":"   individual clients."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"**Nova Helper Migration**"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e0474a82_5e84d09a","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":22},"in_reply_to":"b0dfccce_019a38a0","updated":"2025-11-27 10:18:55.000000000","message":"that is another option, I proposed to keep it in the `OpenstackClients` class because we currently pass an instance of that class in many places, for example, the strategies, and use it to created the helpers. Adding the `Connection` there means we can switch without touching other code","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"1dfab11210fc908fa1a8783c82b22b9b795b856e","unresolved":true,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"1. Add OpenStackSDK as a dependency in requirements.txt"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"2. Extend the OpenStackClients class in ``watcher/common/clients.py`` to"},{"line_number":63,"context_line":"   create and manage an OpenStackSDK Connection object. This connection will be"},{"line_number":64,"context_line":"   established using a keystone session like it\u0027s currently done with the"},{"line_number":65,"context_line":"   individual clients."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"**Nova Helper Migration**"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"447bb2e6_b1536579","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":22},"in_reply_to":"e0474a82_5e84d09a","updated":"2025-11-27 13:03:06.000000000","message":"That\u0027s a valid point. Actually I was thinking that we have the clients actions mostly isolated in the nova_helper, but you are right, we are importing it many places, so it may be good to reuse.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"54f92b9ff227ca3cb988c171330422ca084bdc99","unresolved":true,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"1. Add OpenStackSDK as a dependency in requirements.txt"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"2. Extend the OpenStackClients class in ``watcher/common/clients.py`` to"},{"line_number":63,"context_line":"   create and manage an OpenStackSDK Connection object. This connection will be"},{"line_number":64,"context_line":"   established using a keystone session like it\u0027s currently done with the"},{"line_number":65,"context_line":"   individual clients."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"**Nova Helper Migration**"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a98a4bc_3f6f29ea","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":22},"in_reply_to":"e3e19a7b_f225ca10","updated":"2025-12-11 15:27:01.000000000","message":"as mentioned, I proposed to use OpenstackClients to reduce the impact of the change, but I\u0027ll change the plan to use a new class so we can remove OpenstackClient (I\u0027m not opposed to that idea). I found an example of what you suggested in nova https://github.com/openstack/nova/blob/8a4b000216c7a6c2673af78d7eb7f9bf938dc867/nova/utils.py#L945-L962. I think we can do a similar approach with a helper that optionally accepts a context object and uses it to create the connection. I\u0027ll change the spec to reflect that.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"7afbdee12e720af4618ec93d7df8e132ead68bed","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"**Nova Helper Migration**"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Replace the Nova client implementation in ``watcher/common/nova_helper.py``"},{"line_number":70,"context_line":"with calls to the Compute SDK. The methods will maintain both the current"},{"line_number":71,"context_line":"interface and functionality."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Phase 2: Other Client Migrations (2026.1 or Future)"},{"line_number":74,"context_line":"---------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bb63a0cc_6aeed396","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":28},"updated":"2025-11-26 16:38:33.000000000","message":"+1","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"54f92b9ff227ca3cb988c171330422ca084bdc99","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"**Nova Helper Migration**"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Replace the Nova client implementation in ``watcher/common/nova_helper.py``"},{"line_number":70,"context_line":"with calls to the Compute SDK. The methods will maintain both the current"},{"line_number":71,"context_line":"interface and functionality."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Phase 2: Other Client Migrations (2026.1 or Future)"},{"line_number":74,"context_line":"---------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"93e19307_34d8d343","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":28},"in_reply_to":"83ba197d_e6021bc1","updated":"2025-12-11 15:27:01.000000000","message":"that\u0027s a good point, I had missed that fact. I\u0027ve updated the spec to propose abstracting those return objects as a first step before moving to the sdk. That should allow us to make incremental improvements to avoid breaking existing functionality","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"**Nova Helper Migration**"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Replace the Nova client implementation in ``watcher/common/nova_helper.py``"},{"line_number":70,"context_line":"with calls to the Compute SDK. The methods will maintain both the current"},{"line_number":71,"context_line":"interface and functionality."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Phase 2: Other Client Migrations (2026.1 or Future)"},{"line_number":74,"context_line":"---------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aecdd9c_e0246e10","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":28},"in_reply_to":"93e19307_34d8d343","updated":"2025-12-18 17:35:34.000000000","message":"Acknowledged","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"**Nova Helper Migration**"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Replace the Nova client implementation in ``watcher/common/nova_helper.py``"},{"line_number":70,"context_line":"with calls to the Compute SDK. The methods will maintain both the current"},{"line_number":71,"context_line":"interface and functionality."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Phase 2: Other Client Migrations (2026.1 or Future)"},{"line_number":74,"context_line":"---------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"83ba197d_e6021bc1","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":28},"in_reply_to":"bb63a0cc_6aeed396","updated":"2025-12-08 20:40:11.000000000","message":"so that wont quite be possibel\n\nthe current medod are incorrectly returning the nova client classes and excetpion\n\nhow this shoudl be workign is we should be converting the nova clent instance objects in to watcher NovaInstacne object.\n\nif that was in place today you could simplely change the client out to the sdk and still return teh same NovaInstance class form watcher.\n\nbecause that is not how this was one in the firest place teh reterun type of all function swill change and all the excption classes will change as well.\n\nideally we woudl take this opertuneity to fix this can convert client specific excption to watcher excptions to stop leakign this information from the module into the implmetnation.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"7afbdee12e720af4618ec93d7df8e132ead68bed","unresolved":true,"context_lines":[{"line_number":87,"context_line":"- Maintain existing interface for backward compatibility"},{"line_number":88,"context_line":"- Update unit tests while keeping the existing asserts to ensure no regressions"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Phase 3: python-watcherclient Integration (Future)"},{"line_number":91,"context_line":"---------------------------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Add Watcher service support to OpenStackSDK by contributing an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e36c55ba_b0ac34c9","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":2},"updated":"2025-11-26 16:38:33.000000000","message":"I would be explicit in mentioning that the osc plugin for watcher will stay in this repo after removing the client side. The osc plugin should itself use openstacksdk iiuc.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":87,"context_line":"- Maintain existing interface for backward compatibility"},{"line_number":88,"context_line":"- Update unit tests while keeping the existing asserts to ensure no regressions"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Phase 3: python-watcherclient Integration (Future)"},{"line_number":91,"context_line":"---------------------------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Add Watcher service support to OpenStackSDK by contributing an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"27f0802a_0b04058b","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":2},"in_reply_to":"b4c2defa_d6152935","updated":"2025-12-18 17:35:34.000000000","message":"Done","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":87,"context_line":"- Maintain existing interface for backward compatibility"},{"line_number":88,"context_line":"- Update unit tests while keeping the existing asserts to ensure no regressions"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Phase 3: python-watcherclient Integration (Future)"},{"line_number":91,"context_line":"---------------------------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Add Watcher service support to OpenStackSDK by contributing an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bef68a5e_6fa26939","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":2},"in_reply_to":"b93eb960_6ebe889a","updated":"2025-12-08 20:40:11.000000000","message":"python-watcherclient change have to happen after addign watcher supprot to the sdk which is really a sperate pahse.\n \nonce that is complete we will want to make the watcher client osc plugin and watcher dashbaord both use the sdk.\n\nso i woudl split this in two","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"54f92b9ff227ca3cb988c171330422ca084bdc99","unresolved":true,"context_lines":[{"line_number":87,"context_line":"- Maintain existing interface for backward compatibility"},{"line_number":88,"context_line":"- Update unit tests while keeping the existing asserts to ensure no regressions"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Phase 3: python-watcherclient Integration (Future)"},{"line_number":91,"context_line":"---------------------------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Add Watcher service support to OpenStackSDK by contributing an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b4c2defa_d6152935","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":2},"in_reply_to":"bef68a5e_6fa26939","updated":"2025-12-11 15:27:01.000000000","message":"ack, I split phase 3 in two, now phase 3 covers the work to add watcher support to the sdk, and the new phase 4 covers the work to adapt python-watcherclient to that change","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fd049a31e231cdf0ffec2e2ca1f94c4ed219f6c6","unresolved":true,"context_lines":[{"line_number":87,"context_line":"- Maintain existing interface for backward compatibility"},{"line_number":88,"context_line":"- Update unit tests while keeping the existing asserts to ensure no regressions"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Phase 3: python-watcherclient Integration (Future)"},{"line_number":91,"context_line":"---------------------------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Add Watcher service support to OpenStackSDK by contributing an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b93eb960_6ebe889a","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":2},"in_reply_to":"e36c55ba_b0ac34c9","updated":"2025-11-27 10:18:55.000000000","message":"ack, I\u0027ve added an explicit mention in point 6","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"3bd514cd8a2745feb4873fd3ed59394998b1bced","unresolved":true,"context_lines":[{"line_number":110,"context_line":"Phase 5: Cleanup and Deprecation (Future)"},{"line_number":111,"context_line":"-----------------------------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"After all previous phases are completed, and once all consumers of"},{"line_number":114,"context_line":"python-watcherclient have removed its usage, the deprecated code from the"},{"line_number":115,"context_line":"python-watcherclient can be removed."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Scope of 2026.1 Implementation"},{"line_number":118,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e720f2e7_a48ee9bf","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":36},"updated":"2025-11-27 08:49:52.000000000","message":"Note that rally-openstack project is also using watcherclient. It will also need to be migrated to openstacksdk for watcher afther phase3 is done.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"47203f1b173103275441ba4963a989be5721a8be","unresolved":true,"context_lines":[{"line_number":110,"context_line":"Phase 5: Cleanup and Deprecation (Future)"},{"line_number":111,"context_line":"-----------------------------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"After all previous phases are completed, and once all consumers of"},{"line_number":114,"context_line":"python-watcherclient have removed its usage, the deprecated code from the"},{"line_number":115,"context_line":"python-watcherclient can be removed."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Scope of 2026.1 Implementation"},{"line_number":118,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"aacac238_1fcf561f","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":36},"in_reply_to":"000d7a44_e3c3a004","updated":"2025-12-18 11:42:18.000000000","message":"I think it\u0027s a good thing for this spec to describe the impact and high-level activities end-to-end, even if watcher project itself is not responsible of fixing all the projects, at least we need to properly announce and support other projects to do it.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"54f92b9ff227ca3cb988c171330422ca084bdc99","unresolved":true,"context_lines":[{"line_number":110,"context_line":"Phase 5: Cleanup and Deprecation (Future)"},{"line_number":111,"context_line":"-----------------------------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"After all previous phases are completed, and once all consumers of"},{"line_number":114,"context_line":"python-watcherclient have removed its usage, the deprecated code from the"},{"line_number":115,"context_line":"python-watcherclient can be removed."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Scope of 2026.1 Implementation"},{"line_number":118,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"000d7a44_e3c3a004","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":36},"in_reply_to":"39d57be2_70350505","updated":"2025-12-11 15:27:01.000000000","message":"I have not included any timeline for removal, should I also remove this phase 5 from the spec altogether?","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":110,"context_line":"Phase 5: Cleanup and Deprecation (Future)"},{"line_number":111,"context_line":"-----------------------------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"After all previous phases are completed, and once all consumers of"},{"line_number":114,"context_line":"python-watcherclient have removed its usage, the deprecated code from the"},{"line_number":115,"context_line":"python-watcherclient can be removed."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Scope of 2026.1 Implementation"},{"line_number":118,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"39d57be2_70350505","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":36},"in_reply_to":"4a6021ea_fbba8b07","updated":"2025-12-08 20:40:11.000000000","message":"yes and no.\n\nif we propos the patche and they do not review them that wont block the removal\nbut we woudl want to give them time to adjust.\nonce the sdk supprot is there.\n\nin general we do not put the removal part or planed time in the spec.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Phase 5: Cleanup and Deprecation (Future)"},{"line_number":111,"context_line":"-----------------------------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"After all previous phases are completed, and once all consumers of"},{"line_number":114,"context_line":"python-watcherclient have removed its usage, the deprecated code from the"},{"line_number":115,"context_line":"python-watcherclient can be removed."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Scope of 2026.1 Implementation"},{"line_number":118,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"31590fdc_5d736386","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":36},"in_reply_to":"aacac238_1fcf561f","updated":"2025-12-18 17:35:34.000000000","message":"ya this is fine to have as it is but we shoudl not go into to much more detail.\nwhen we actully start workign on phase 6 we will ahve a blueprint ro spec to tack compeltign tha twork.\n\nfor now we just need to know that it should be done in the future.","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"fd049a31e231cdf0ffec2e2ca1f94c4ed219f6c6","unresolved":true,"context_lines":[{"line_number":110,"context_line":"Phase 5: Cleanup and Deprecation (Future)"},{"line_number":111,"context_line":"-----------------------------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"After all previous phases are completed, and once all consumers of"},{"line_number":114,"context_line":"python-watcherclient have removed its usage, the deprecated code from the"},{"line_number":115,"context_line":"python-watcherclient can be removed."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Scope of 2026.1 Implementation"},{"line_number":118,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4a6021ea_fbba8b07","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":36},"in_reply_to":"e720f2e7_a48ee9bf","updated":"2025-11-27 10:18:55.000000000","message":"true, good call, I updated phase 4 to include all consumers of python-watcherclient (watcher-dashboard and rally-openstack for now)","commit_id":"7dd12a8bc14a75c349278a4f8afaf6bb575f0218"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"2. **Missing features**: The individual client libraries do not support all"},{"line_number":34,"context_line":"   existing functionality. Features introduced in later microversions not"},{"line_number":35,"context_line":"   supported in the client library are not accessible to Watcher."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3. **OpenStack Community Direction**: The OpenStack community has standardized"},{"line_number":38,"context_line":"   on OpenStackSDK as the unified interface for inter-service communication."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fc4e7730_34d9369a","line":35,"updated":"2025-12-08 20:40:11.000000000","message":"yep a good example of this is novaclient. which only supprot feature intoduce before bocat or caracal.\n\nit will get increasingly out of date as time moves on.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"2. **Missing features**: The individual client libraries do not support all"},{"line_number":34,"context_line":"   existing functionality. Features introduced in later microversions not"},{"line_number":35,"context_line":"   supported in the client library are not accessible to Watcher."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3. **OpenStack Community Direction**: The OpenStack community has standardized"},{"line_number":38,"context_line":"   on OpenStackSDK as the unified interface for inter-service communication."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4567ee_d1396a98","line":35,"in_reply_to":"fc4e7730_34d9369a","updated":"2025-12-18 17:35:34.000000000","message":"Acknowledged","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":43,"context_line":"**As a Watcher Developer**, I want a unified, consistent API for interacting"},{"line_number":44,"context_line":"with OpenStack services, accessing their complete functionality, reducing code"},{"line_number":45,"context_line":"complexity and improving maintainability."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"2d38f113_bd57b3d0","line":46,"updated":"2025-12-08 20:40:11.000000000","message":"oh if only that was a thing :P but sicne it will never happen i agree that\nusing the sdk ot take the rough edges off definlly helps :)","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"**As a Watcher Developer**, I want a unified, consistent API for interacting"},{"line_number":44,"context_line":"with OpenStack services, accessing their complete functionality, reducing code"},{"line_number":45,"context_line":"complexity and improving maintainability."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"18341d96_e256981c","line":46,"in_reply_to":"2d38f113_bd57b3d0","updated":"2025-12-18 17:35:34.000000000","message":"Acknowledged","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":81,"context_line":"1. **Cinder**: Migrate to ``connection.block_storage``"},{"line_number":82,"context_line":"2. **Keystone**: Migrate to ``connection.identity``"},{"line_number":83,"context_line":"3. **Placement**: Migrate to ``connection.placement``"},{"line_number":84,"context_line":"4. **Ironic**: Migrate to ``connection.baremetal``"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Each migration follows the same pattern:"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"f99bc931_cf98bf3d","line":84,"updated":"2025-12-08 20:40:11.000000000","message":"i woudl do them in this order\n\n```\n**Keystone**: Migrate to ``connection.identity``\n**Cinder**: Migrate to ``connection.block_storage``\n**Placement**: Migrate to ``connection.placement``\n**Ironic**: Migrate to ``connection.baremetal``\n```\n\nthe remain usage of keystone client shoudl eb very small so that should be easy to remvoe.\n\ncinder clinet is proably our next most imporant client ot mvoe so i woudl do that next\n\nfollowed by placement and finally ironic.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":81,"context_line":"1. **Cinder**: Migrate to ``connection.block_storage``"},{"line_number":82,"context_line":"2. **Keystone**: Migrate to ``connection.identity``"},{"line_number":83,"context_line":"3. **Placement**: Migrate to ``connection.placement``"},{"line_number":84,"context_line":"4. **Ironic**: Migrate to ``connection.baremetal``"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Each migration follows the same pattern:"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"b648de14_f36008f8","line":84,"in_reply_to":"5c1fd8fa_db80c242","updated":"2025-12-18 17:35:34.000000000","message":"Acknowledged","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"54f92b9ff227ca3cb988c171330422ca084bdc99","unresolved":true,"context_lines":[{"line_number":81,"context_line":"1. **Cinder**: Migrate to ``connection.block_storage``"},{"line_number":82,"context_line":"2. **Keystone**: Migrate to ``connection.identity``"},{"line_number":83,"context_line":"3. **Placement**: Migrate to ``connection.placement``"},{"line_number":84,"context_line":"4. **Ironic**: Migrate to ``connection.baremetal``"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Each migration follows the same pattern:"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5c1fd8fa_db80c242","line":84,"in_reply_to":"f99bc931_cf98bf3d","updated":"2025-12-11 15:27:01.000000000","message":"I had not listed them in the order that I thought should be done, but I agree with the proposed order, so I changed the list to reflect it","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":128,"context_line":"- Testing framework establishment"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Subsequent phases will be addressed in future specifications once Phase 1"},{"line_number":131,"context_line":"patterns are validated."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Alternatives"},{"line_number":134,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b7f8b5b7_8279b4c8","line":131,"updated":"2025-12-08 20:40:11.000000000","message":"ack note that we will need to reporpsoe teh spec for each cycle so in future versions  you will need to update this for the work planed for each subsequent release.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"54f92b9ff227ca3cb988c171330422ca084bdc99","unresolved":true,"context_lines":[{"line_number":128,"context_line":"- Testing framework establishment"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Subsequent phases will be addressed in future specifications once Phase 1"},{"line_number":131,"context_line":"patterns are validated."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Alternatives"},{"line_number":134,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f70a216a_a6a88ef3","line":131,"in_reply_to":"b7f8b5b7_8279b4c8","updated":"2025-12-11 15:27:01.000000000","message":"ack, I think that is ok. I wanted to include the whole plan in the first spec to ensure I did not miss anything from the PTG discussion, can add more details for each phase in each cycle\u0027s spec","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":128,"context_line":"- Testing framework establishment"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Subsequent phases will be addressed in future specifications once Phase 1"},{"line_number":131,"context_line":"patterns are validated."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Alternatives"},{"line_number":134,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9b12fc20_0cfd4718","line":131,"in_reply_to":"f70a216a_a6a88ef3","updated":"2025-12-18 17:35:34.000000000","message":"no i think this captured the imporant points.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":189,"context_line":"integrated."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Future service integrations will use OpenStackSDK exclusively, providing a"},{"line_number":192,"context_line":"clearer pattern than mixing SDK and client libraries."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"Upgrade impact"},{"line_number":195,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4e1806b9_d98b932e","line":192,"updated":"2025-12-08 20:40:11.000000000","message":"+1","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"None. OpenStackSDK will be added as an explicit dependency. However, it should"},{"line_number":198,"context_line":"already be present in existing developments since its a dependency of"},{"line_number":199,"context_line":"python-openstackclient."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Implementation"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fbe84e29_d28b0afa","line":199,"updated":"2025-12-08 20:40:11.000000000","message":"we shoudl eb removing this by the way as we shoudl not be using\npython-openstackclient at all in the watcher repo.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"47203f1b173103275441ba4963a989be5721a8be","unresolved":true,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"None. OpenStackSDK will be added as an explicit dependency. However, it should"},{"line_number":198,"context_line":"already be present in existing developments since its a dependency of"},{"line_number":199,"context_line":"python-openstackclient."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Implementation"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b97c1f26_3176650f","line":199,"in_reply_to":"194e91c4_b68023d6","updated":"2025-12-18 11:42:18.000000000","message":"imported dependencies needs to be explicitely added to the requirements. Actually, openstackclient should be removed at the end. I think this can be described in the Dependencies section?","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"b5cff8a4ddd167f150de4c8fd92062ae1eea68a4","unresolved":true,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"None. OpenStackSDK will be added as an explicit dependency. However, it should"},{"line_number":198,"context_line":"already be present in existing developments since its a dependency of"},{"line_number":199,"context_line":"python-openstackclient."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Implementation"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dbf73a17_b86cd2a6","line":199,"in_reply_to":"b97c1f26_3176650f","updated":"2025-12-18 15:45:08.000000000","message":"sure, done","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"None. OpenStackSDK will be added as an explicit dependency. However, it should"},{"line_number":198,"context_line":"already be present in existing developments since its a dependency of"},{"line_number":199,"context_line":"python-openstackclient."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Implementation"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"123f0aac_1d8fb173","line":199,"in_reply_to":"dbf73a17_b86cd2a6","updated":"2025-12-18 17:35:34.000000000","message":"so we can clean this up as part of this work but we dont need to specify when\n\nits not a runtime depenciey today as far as i am aware but lets review that seprately form teh spec.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"54f92b9ff227ca3cb988c171330422ca084bdc99","unresolved":true,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"None. OpenStackSDK will be added as an explicit dependency. However, it should"},{"line_number":198,"context_line":"already be present in existing developments since its a dependency of"},{"line_number":199,"context_line":"python-openstackclient."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Implementation"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"194e91c4_b68023d6","line":199,"in_reply_to":"fbe84e29_d28b0afa","updated":"2025-12-11 15:27:01.000000000","message":"yes, it does not like it\u0027s used at all in watcher. Should we also remove it as part of this spec implementation?","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"All existing unit tests for Nova helper will be updated to use SDK mocks, but"},{"line_number":236,"context_line":"their asserts will be maintained to ensure the change does not introduce any"},{"line_number":237,"context_line":"regression."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"**Functional Testing**"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"4360d818_a17a1661","line":237,"updated":"2025-12-08 20:40:11.000000000","message":"this is unlikely to work\n\nas i noted above the exction and return types will change.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"54f92b9ff227ca3cb988c171330422ca084bdc99","unresolved":true,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"All existing unit tests for Nova helper will be updated to use SDK mocks, but"},{"line_number":236,"context_line":"their asserts will be maintained to ensure the change does not introduce any"},{"line_number":237,"context_line":"regression."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"**Functional Testing**"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"a6a42952_9dc80d33","line":237,"in_reply_to":"4360d818_a17a1661","updated":"2025-12-11 15:27:01.000000000","message":"I changed this section to include the change to use an intermediate layer that abstracts the return types from the python-novaclient mentioned above","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"dc46912f259af546f7b6a234c60fa5d9ab3a55bf","unresolved":true,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"All existing unit tests for Nova helper will be updated to use SDK mocks, but"},{"line_number":236,"context_line":"their asserts will be maintained to ensure the change does not introduce any"},{"line_number":237,"context_line":"regression."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"**Functional Testing**"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"515f1fb4_e580cf25","line":237,"in_reply_to":"78011eba_f86b09f8","updated":"2025-12-18 17:28:30.000000000","message":"sorry, I missinterpreted the sequence of steps. I got it now. You can forget my comment.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"All existing unit tests for Nova helper will be updated to use SDK mocks, but"},{"line_number":236,"context_line":"their asserts will be maintained to ensure the change does not introduce any"},{"line_number":237,"context_line":"regression."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"**Functional Testing**"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"0c45a8a7_8af5ba6d","line":237,"in_reply_to":"78011eba_f86b09f8","updated":"2025-12-18 17:35:34.000000000","message":"ya we coudl do it either way but i was leaning in the same direction as joan\n\njust upgrade in palceme and update teh tests at the same time.\n\nif we had funcitonal tests the there could be value in deveoping a selreate nova_helpers and havign the ablity to swap between tehm but not based on how our unit tests work today.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"47203f1b173103275441ba4963a989be5721a8be","unresolved":true,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"All existing unit tests for Nova helper will be updated to use SDK mocks, but"},{"line_number":236,"context_line":"their asserts will be maintained to ensure the change does not introduce any"},{"line_number":237,"context_line":"regression."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"**Functional Testing**"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dc2fa684_2e37cf5d","line":237,"in_reply_to":"a6a42952_9dc80d33","updated":"2025-12-18 11:42:18.000000000","message":"I\u0027d bet by having two sets of tests for novaclient and sdk implementations and remove the novaclient based ones at the end.","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"b5cff8a4ddd167f150de4c8fd92062ae1eea68a4","unresolved":true,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"All existing unit tests for Nova helper will be updated to use SDK mocks, but"},{"line_number":236,"context_line":"their asserts will be maintained to ensure the change does not introduce any"},{"line_number":237,"context_line":"regression."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"**Functional Testing**"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"78011eba_f86b09f8","line":237,"in_reply_to":"dc2fa684_2e37cf5d","updated":"2025-12-18 15:45:08.000000000","message":"I\u0027m not sure if I undestand your comment, I was thinking on changing the nova_helper to use the sdk and changing the unit tests in the same patch, so I\u0027m not sure when we\u0027d have two sets of tests","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d94a984f7477274dc1804ee91c1cee52ad18133","unresolved":true,"context_lines":[{"line_number":238,"context_line":""},{"line_number":239,"context_line":"**Functional Testing**"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":" The existing tempest tests should pass without modification."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Documentation Impact"},{"line_number":244,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"31aeefe7_a8630118","line":241,"updated":"2025-12-08 20:40:11.000000000","message":"tempest tests are integration test not functional tests","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"54f92b9ff227ca3cb988c171330422ca084bdc99","unresolved":true,"context_lines":[{"line_number":238,"context_line":""},{"line_number":239,"context_line":"**Functional Testing**"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":" The existing tempest tests should pass without modification."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Documentation Impact"},{"line_number":244,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a3597a7c_a9a99ae2","line":241,"in_reply_to":"31aeefe7_a8630118","updated":"2025-12-11 15:27:01.000000000","message":"right, fixed","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":238,"context_line":""},{"line_number":239,"context_line":"**Functional Testing**"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":" The existing tempest tests should pass without modification."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Documentation Impact"},{"line_number":244,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5965d018_d7515414","line":241,"in_reply_to":"a3597a7c_a9a99ae2","updated":"2025-12-18 17:35:34.000000000","message":"Done","commit_id":"5089fba1688d2c19bc59c3583dd7063b77cc2237"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"48863e9893573b526067f3d351a2bc707c7babcd","unresolved":true,"context_lines":[{"line_number":16,"context_line":"in future OpenStack releases. This specification proposes migrating Watcher to"},{"line_number":17,"context_line":"use OpenStackSDK, the unified and officially maintained SDK for OpenStack"},{"line_number":18,"context_line":"service interactions, ensuring long-term maintainability. Additionally, this"},{"line_number":19,"context_line":"specification also proposes adding support for Watcher in the OpenStackSDK,"},{"line_number":20,"context_line":"aligning it with most OpenStack projects."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Problem description"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"71d127a1_33bf9982","line":20,"range":{"start_line":19,"start_character":14,"end_line":20,"end_character":41},"updated":"2025-12-18 19:29:33.000000000","message":"it could be on a follow up spect too, by include many things here we will carry this spec/blueprint for a while","commit_id":"553c1b49f8ca101aa6c8b0ea496d5f2a25c18f6c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":26,"context_line":"various OpenStack services including Nova, Cinder, Keystone, Placement, and"},{"line_number":27,"context_line":"others. These libraries face several critical issues:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"1. **Deprecation and Removal**: Individual client libraries are no longer"},{"line_number":30,"context_line":"   actively maintained and are scheduled for removal from OpenStack. This"},{"line_number":31,"context_line":"   poses a significant risk to Watcher\u0027s continued operation."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"09fe3106_e59b7ab5","line":29,"in_reply_to":"2160a681_f571d89c","updated":"2025-12-18 17:35:34.000000000","message":"\u003e Consider deprecation timeline alignment with OpenStack release schedule\n\u003e \n\u003e **Severity**: SUGGESTION | **Confidence**: 0.7\n\u003e \n\u003e **Benefit**: Better alignment with OpenStack ecosystem deprecation schedules and downstream project planning\n\u003e \n\u003e **Recommendation**:\n\u003e Add specific timeline analysis showing: 1) Current client library deprecation dates, 2) OpenStack SDK support timelines, 3) Coordination with other projects migrating, 4) Buffer time for downstream adaptation. This helps operators and dependent projects plan accordingly.\n\nwe have standad openstack practice for this\n\ndepecation happen in slurp release removal can happen any time after that.\nin this case its an internal chanage so we dont actully need a deprecation persiod and can start the removal of project libs right away provide we do not regress the functionatly along the way.","commit_id":"8101d595e767f5277d8cf3c68e2425e620808073"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":51,"context_line":"libraries to OpenStackSDK. The migration will be executed across multiple"},{"line_number":52,"context_line":"release cycles to minimize risk and ensure thorough testing."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Phase 1: Nova Client Migration + Infrastructure (2026.1)"},{"line_number":55,"context_line":"--------------------------------------------------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The initial phase establishes the OpenStackSDK infrastructure and migrates"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a9520ed5_cbef3677","line":54,"in_reply_to":"481ca86c_62369f57","updated":"2025-12-18 17:35:34.000000000","message":"\u003e Missing rollback strategy for migration failures\n\u003e \n\u003e **Severity**: WARNING | **Confidence**: 0.8\n\u003e \n\u003e **Impact**: Risk of service disruption if migration encounters unexpected issues\n\u003e \n\u003e **Suggestion**:\n\u003e Add rollback strategy section covering: 1) Feature flags for gradual migration, 2) Automated rollback triggers, 3) Verification steps before/after migration, 4) Communication plan for operators. This is particularly important for infrastructure changes affecting all service communications.\n\nah no, valid in other case like the eventlet remvoal but not for this.\n\nwe have provide configuration option for using diffenc client in the past \n\nhttps://github.com/openstack/os-vif/blob/master/vif_plug_ovs/ovs.py#L72\n\nbut that was because they had differnet perforamcne and seciryt consdieraton as well as packgaing requirements\n\nhere we are consodliating on a single lib \"python-openstacksdk\" which si not the saem","commit_id":"8101d595e767f5277d8cf3c68e2425e620808073"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":true,"context_lines":[{"line_number":51,"context_line":"libraries to OpenStackSDK. The migration will be executed across multiple"},{"line_number":52,"context_line":"release cycles to minimize risk and ensure thorough testing."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Phase 1: Nova Client Migration + Infrastructure (2026.1)"},{"line_number":55,"context_line":"--------------------------------------------------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The initial phase establishes the OpenStackSDK infrastructure and migrates"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7d709c29_7ba75822","line":54,"in_reply_to":"f4a95055_68edd9c6","updated":"2025-12-18 17:35:34.000000000","message":"\u003e **Recommendation**:\n\u003e Add detailed technical implementation section covering: 1) Specific mapping between python-novaclient objects and proposed Watcher objects, 2) Error handling translation strategy, 3) Version compatibility approach, 4) Concrete examples of method signature changes, 5) Testing strategy for migration validation.\n\n\n\ni dont think we need to list the exact signiture changes.\n\nthese are all valid suggestion but i think we could mostly defer this to the impelation review.\n\naddign some of this context is good to capture in teh spec but some of this will only become apprent as we start implemeting this.","commit_id":"8101d595e767f5277d8cf3c68e2425e620808073"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":true,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"1. Deprecate python-watcherclient library in favor of the SDK"},{"line_number":119,"context_line":"2. Deprecate watcher cli in favor of the OpenStackClient plugin, the plugin"},{"line_number":120,"context_line":"   will stay in the python-watcherclient repository"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Phase 5: Watcherclient consumers migration (Future)"},{"line_number":123,"context_line":"---------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"6007d0ef_e9a90328","line":120,"updated":"2025-12-18 17:35:34.000000000","message":"if we have partity we might want to just deprecate the watcher cli now. and remvoe that early.\n\nwe just need the plugin to supprot the equiveltn comand in osc.","commit_id":"8101d595e767f5277d8cf3c68e2425e620808073"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":119,"context_line":"2. Deprecate watcher cli in favor of the OpenStackClient plugin, the plugin"},{"line_number":120,"context_line":"   will stay in the python-watcherclient repository"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Phase 5: Watcherclient consumers migration (Future)"},{"line_number":123,"context_line":"---------------------------------------------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Once the Watcher service is integrated in the OpenStackSDK, all consumers of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"979afa32_ab67bb75","line":122,"in_reply_to":"929769ce_a2e4c8bc","updated":"2025-12-18 17:35:34.000000000","message":"\u003e **Recommendation**:\n\u003e Include analysis of impact on: 1) watcher-dashboard Horizon plugin, 2) Rally performance testing, 3) Third-party monitoring tools, 4) Automation scripts using Watcher, 5) Client library behavior changes that might affect consumers. This helps the broader ecosystem prepare for changes.\n\n\nif we were doing this thsi cycle we could but since thisi is not prosped to be compelte in this spec im fine with not going into detail behod what is already capturesd","commit_id":"8101d595e767f5277d8cf3c68e2425e620808073"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Subsequent phases will be addressed in future specifications once Phase 1"},{"line_number":147,"context_line":"patterns are validated."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Alternatives"},{"line_number":150,"context_line":"------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"One possibility would be to continue using individual client libraries."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9bc3b30f_538d2d89","line":149,"in_reply_to":"57e1dbee_9c5027cc","updated":"2025-12-18 17:35:34.000000000","message":"\u003e **Recommendation**:\n\u003e Add analysis of: 1) Hybrid approach during transition, 2) Adapter pattern as intermediate step, 3) Cost-benefit analysis of each alternative, 4) Risk assessment matrix, 5) Community feedback from other similar migrations. This strengthens the technical justification.\n\n\nthis woudl be valid for large entrpirese software developem but that level of risk assement is overkil here \n\nall we need to do is note teh alterenitive and the pirmary reason why we did not pursueit whichis already done.","commit_id":"8101d595e767f5277d8cf3c68e2425e620808073"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8a7cbd01b6de2c209bfeb718cc79dd7c0e40cad5","unresolved":false,"context_lines":[{"line_number":184,"context_line":"None."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Performance Impact"},{"line_number":187,"context_line":"------------------"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"None. Once all services are migrated, there might be a minimal performance gain"},{"line_number":190,"context_line":"since the number of connections will be reduced, but this will be negligible."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ab68f1bb_8ac2a28d","line":187,"in_reply_to":"86cc22fb_3b7d6b6e","updated":"2025-12-18 17:35:34.000000000","message":"\u003e Inadequate performance impact assessment\n\u003e \n\u003e **Severity**: WARNING | **Confidence**: 0.8\n\u003e \n\u003e **Impact**: Potential performance regressions not properly evaluated or monitored\n\u003e \n\u003e **Suggestion**:\n\u003e Expand performance impact section to include: 1) Baseline performance metrics, 2) Expected connection overhead changes, 3) Memory usage patterns with SDK, 4) Monitoring strategy during migration, 5) Performance regression testing approach. While individual impact may be minimal, cumulative effects across all clients need evaluation.\n\nthe reason for doing this move is maintainablity not perfroamcne so as long as there is not a gross regression (there should not be) we woudl make this change even if there was a small impact. i think the current section is enough.","commit_id":"8101d595e767f5277d8cf3c68e2425e620808073"}]}
