12:00:31 #startmeeting watcher 12:00:31 Meeting started Thu Jul 3 12:00:31 2025 UTC and is due to finish in 60 minutes. The chair is dviroel. Information about MeetBot at http://wiki.debian.org/MeetBot. 12:00:31 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 12:00:31 The meeting name has been set to 'watcher' 12:00:52 hi o/ 12:01:10 who's around today? 12:01:18 o/ 12:01:25 o/ 12:01:53 courtesy ping: amoralej sean-k-mooney chandankumar 12:02:01 o/ 12:03:06 o/ 12:03:06 alright, let's start with today's meeting agenda 12:03:16 #link https://etherpad.opendev.org/p/openstack-watcher-irc-meeting#L44 (Meeting agenda) 12:03:25 feel free to add your own topics to the agenda 12:03:35 there are topics to place your changes that requires attention from reviewers 12:03:44 we also have a topic for bugs, if you want to discuss any 12:03:58 #topic Announcements 12:04:20 we reached flamingo's second milestone today \o/ 12:04:27 #link https://releases.openstack.org/flamingo/schedule.html (2025.2 Flamingo Release Schedule) 12:04:39 and with that 12:05:05 all features that requires a spec and are going to be implemented in Flamingo (2025.2) 12:05:12 should have a spec merged today 12:05:23 from our open specs in gerrit 12:05:30 #link https://review.opendev.org/q/project:openstack/watcher-specs+is:+open 12:05:43 now there is only still open 12:05:54 #link https://review.opendev.org/c/openstack/watcher-specs/+/947282 (Adds spec for extend compute model attributes) 12:06:08 which has some approvals already 12:06:25 so, if nobody disagrees with it 12:06:33 o/ (apologies late to the meeting) 12:06:38 o/ 12:06:49 I/we can workflow it at the end of the day today 12:07:57 you can also see the already approved specs for this release here 12:07:59 #link https://specs.openstack.org/openstack/watcher-specs/specs/2025.2/index.html 12:08:29 any other comment on this topic? 12:09:20 this was the only announcement from my side :) - anyone has other announcement to make? 12:10:38 ok :) next topic 12:11:09 #topic Eventlet Removal Updates 12:11:22 not too much bring this week i guess 12:11:48 last week we already discussed about the issue with decision-engine and its 2 services started from the same service manager 12:12:18 #link https://meetings.opendev.org/meetings/watcher/2025/watcher.2025-06-26-12.00.log.html#l-46 12:12:26 logs from last meeting ^ 12:12:38 one possible fix to this issue, which was recently updated is 12:12:50 #link https://review.opendev.org/c/openstack/watcher/+/952499 12:13:40 which is open for review, but I don't plan to merge it before having the other eventlet patch ready (and working) 12:13:48 #link https://review.opendev.org/c/openstack/watcher/+/952257 12:14:37 the latter one is really testing the decision engine both with monkey patching enabled and disabled (there is a new job that disabled monkey patching in the dec-eng) 12:15:07 this one is the one that I am working right now, refactoring it and going to update soon 12:15:48 this is all that I have 12:16:11 any question on this topic? 12:17:24 ok, next topic is 12:17:49 #topic Handling storage model automatically 12:18:06 I added that one 12:18:15 I've been looking into how to detect if cinder is enabled to enable the storage model 12:18:28 but I'm not sure what is the best way to handle the existing config option 12:18:36 #link I've been looking into how to detect if cinder is enabled to enable the storage model 12:19:05 I'm not sure if we keep using it, how to reconcile user input and auto detection 12:19:17 so I though 12:19:18 Option 1: Set its default value to None and use it if the user sets it, otherwise detect automatically 12:19:25 Option 2: Deprecated and always detect automatically 12:20:14 I think option 1 is better because the docs mention that watcher supports custom collector plugins 12:20:22 jgilaber: can you share the link again? 12:20:25 i think having a way to totally disabling collecting storage model is fine as some users may want to totally avoid unneeded api access 12:20:37 sorry about the link 12:20:50 #link https://docs.openstack.org/watcher/latest/configuration/watcher.html#collector.collector_plugins 12:22:01 yeah, I agree that we should keep the option that allows users to disable individual collectors 12:22:14 which in this case is the opposite, they select which one they want to enable 12:22:46 so, autodetection would be only applied if the plugin is enabled 12:24:22 amoralej: IIUC that is the current behavior, only use the collector if the plugin is enabled in the config 12:24:24 so if 'storage' is in collection_plugins list -> if no cinder available -> left warning message and skip collection 12:24:45 yes, actually, current behavior is pretty good, just there is some corner case to cover, iiuc 12:24:54 ah ok I see what you mean now 12:25:41 i.e. if a user create a zone_migration with storage_backend, it tries to collect and if there is no cinder, a bunch of errors appear 12:26:11 imo the only thing that is needed is a last case check inside the collector itself 12:27:05 we could consider enable storage by default, if we could guarantee that there is no issues with that, i.e. watcher is able to handle this cases where there is no cinder/backends 12:27:43 we could do both, enable it by default, but check if cinder is present as amoralej suggested 12:29:18 so, in the most common case, user enables storage, runs the decision-engine and there is no cinder, it works fine, it will not even try to collect storage until there is a strategy that explicitely requests the storage_model 12:30:12 it'd be a bit strange that a user create a zone_migration with storage_backend parameter if there is no cinder ... but still it'd be good to cover that case 12:31:42 +1 I'll cover that in a follow-up 12:31:52 in other case, there is a protection in place that skips storage collection unless something actually requires it even if it's enabled 12:31:53 https://github.com/openstack/watcher/blob/master/watcher/decision_engine/model/collector/cinder.py#L150-L155 12:33:10 right, it would avoid collecting info while it is not needed 12:34:23 for me, it is more about covering the corner cases, where there is no backend, and user creates a audit that will trigger the collector 12:35:31 +1 12:35:51 after deleting this single audit, it will continue to collecting? don't know 12:36:28 it does, once a collection has happened and storage_model is not empty, it will continue collecting according to the period parameter 12:37:05 if storage is in collector_plugins 12:38:29 something that we should also take a look 12:39:48 jgilaber: anything else to cover in this topic? 12:40:04 nope, I think that is ok for now, thanks! 12:40:22 jgilaber: ty! 12:40:35 #topic Call for reviews 12:40:42 there is one in the list 12:40:59 #link https://review.opendev.org/c/openstack/watcher/+/954021 12:41:12 from chandankumar 12:42:59 dviroel: thanks! It removes unused forbidden apis from action.py 12:43:11 there is more info the related bug: 12:43:13 #link https://launchpad.net/bugs/2110895 12:43:23 I have started working on tackling bugs related to tech debts 12:43:45 it is one of them. 12:43:53 Please have a look when free, thank you! 12:43:59 i wonder why those methods were created to just raise operationnotpermited ... 12:44:46 I got this old commit https://github.com/openstack/watcher/commit/22c9c4df877b5fabcdf74bb80e61d24d06700dcc 12:45:04 pointing to https://bugs.launchpad.net/watcher/+bug/1533281 12:45:36 ah, that explains i guet 12:45:42 guess 12:45:57 The reason behind removing these actions is because an action plan is atomic. 12:45:57 The only way for us to be able to delete actions should be when we delete the 12:45:57 action plan these actions relate to. 12:46:08 it is from long text pasted in the bug 12:46:16 sorry i have been kidn of distracted today so i have been perodicily check the meeting topics but im not following the converstaion fully 12:46:55 ill try and read back again later but if my input is needed please ping directly 12:47:09 yes, i understand that, but my question is why they implemented that way instead of just removing the methods, maybe for backwards compatibility in the exposed api methods or something 12:47:40 i have not looke at the impe for the api fix 12:48:10 the existing code mention about FIXME: blueprint edit-action-plan-flow but I was not able to find out the blueprint 12:48:13 but skimming it quicklyu it looks light a straige delete 12:48:25 the exiting code was related to that yes 12:48:27 yep 12:48:34 they started the imple but never finsihed it 12:48:54 the orgiall paths came form the template they used to crate teh files 12:49:12 I deleted the code as I was not finding its usage any where 12:49:31 ya that the correct approch but i think you have only looked at actions 12:49:44 if i recall there are other places where we need to clean up 12:49:58 i would like one patch to do all the removal personally 12:50:52 i could be miss rememberign but i though it affect other enpoitnss too 12:51:24 * dviroel was reading the LP 12:52:01 oh not all uses of OperationNotPermitted are for this pattern 12:52:21 I did an audit of all the rest api and captured it somewhere in etherpad 12:52:24 let me find that one 12:52:49 we can double check this offline in the gerrit review but if those are the only routes that shoudl not exist we shoud eb good 12:53:14 https://etherpad.opendev.org/p/watcher-apiref-audit 12:53:22 i also need some time to dig more, and place my comments in the review 12:53:47 ack, thanks for the link chandankumar 12:54:28 sure 12:54:37 thank you sean-k-mooney dviroel amoralej ! 12:54:37 so they have this parttern as well 12:54:45 if self.from_audits: 12:54:47 raise exception.OperationNotPermitted 12:55:03 so they put protection to prevent self calls to the api 12:55:14 btu since watcher shoudl never call its own api 12:55:24 im not sure why those are there 12:55:50 thats kind of sepreate however so we can maybe look into that seperately ad possibel other tech debt 12:56:00 https://github.com/openstack/watcher/blob/93366df2641b64b7bc345ed91bfbef7ae17de25a/watcher/api/controllers/v1/audit.py#L676-L677 12:56:42 raise exception.OperationNotPermitted is called in almost all the apis 12:57:02 right but openstack service are not ment to ever all there own api 12:57:14 so im not sure if those check are dead code 12:57:26 or if there is other technial debth that we need to look into 12:57:42 I will dig into that exceptions and update the same patch based on that 12:57:46 i.e. if those every block anything it indeciates that watcher is calling it own api endpoitn which si not good 12:58:11 ack for now lets keep ti small just update it if you see other endpoitn that uncontionaly raise 12:58:33 +1 12:58:34 in that case, I will open a seperate bug for this exception to see what it breaks 12:58:52 and why it is there in the first place 12:59:06 perfect 12:59:24 i just skimmed the other entry point adn i dont see any other routes that uncondtionally raise 12:59:40 * dviroel time check 12:59:43 so i think the scope fo the inial patch is good and we can look into the ohter issuse seperately 12:59:53 +1 12:59:53 sounds good! 13:00:10 thanks chandankumar 13:00:17 thanks sean-k-mooney dviroel amoralej ! 13:00:28 thanks chandankumar for taking care of that one 13:00:41 going to skip bug triage for now, there is only one bug there that we can cover next week 13:00:49 #topic Volunteers to chair next meeting 13:00:59 i am available next week again 13:01:14 but if someone wants to chair, pls let me know 13:01:25 or put yout name in the etherpad 13:01:33 i can take it 13:01:33 let's wrap up for today 13:01:39 thanks amoralej! 13:01:45 all yours :) 13:01:49 thanks amoralej dviroel ! 13:01:51 ok, we will meet again next week 13:01:57 thank you all for participating 13:01:57 thanks! 13:02:04 #endmeeting