Friday, 2024-06-28

opendevreviewJonathan Koerber proposed openstack/manila master: Adding OpenAPI Schemas to Quota Sets Adding OpenAPi Shemas to User Massages Adding function decorators for User Massages => manila/manila/v2/massages.py Change-Id: I80282c2c146b63080f143946c8f0144dd356d4a4  https://review.opendev.org/c/openstack/manila/+/92256600:02
opendevreviewVolodymyr Boiko proposed openstack/manila master: Add share driver for VastData storage  https://review.opendev.org/c/openstack/manila/+/91538000:14
opendevreviewJonathan Koerber proposed openstack/manila master: Adding OpenAPI Schemas to Quota Sets Adding OpenAPi Shemas to User Massages Adding function decorators for User Massages => manila/manila/v2/massages.py Change-Id: I80282c2c146b63080f143946c8f0144dd356d4a4  https://review.opendev.org/c/openstack/manila/+/92256601:19
opendevreviewJoel Capitao proposed openstack/manila master: WIP decode with utf-8  https://review.opendev.org/c/openstack/manila/+/92302908:26
opendevreviewJoel Capitao proposed openstack/manila master: Explicitly decode with utf-8 in validation helpers  https://review.opendev.org/c/openstack/manila/+/92302909:40
opendevreviewVolodymyr Boiko proposed openstack/manila master: Add share driver for VastData storage  https://review.opendev.org/c/openstack/manila/+/91538015:23
kpdevdiscussion for share metadata spec15:57
kpdevoriginal idea was to propogate metadata API changes to driver.15:57
kpdevbut now we have extended the discussion.. to have metadata as more granular property of share dervied from share type15:58
kpdev@goutham: as I understand, we will have share type extra spec and when we create share from that type, we copy share type extra spec driver properties in share metadata. Now which properties need to copy are decided based on entries in manila.conf.. whether those goes into default section or driver specific section ? 15:58
kpdevwe can not copy all properties due to security reason..15:59
* gouthamr is extracting out of a call16:03
gouthamrkpdev: yes, taht's the suggestion16:04
gouthamrkpdev: i'd use the default section16:05
kpdevAlso on PR you said ----  User creates a share with your share type; the netapp driver sets that in share metadata. I assume its job of manila API layer or share manager and not of NetApp driver.16:05
gouthamrkpdev: sure; i meant that in case the values are modified (or not modified after a request to modify them), the NetApp driver can return these values in the "update_metadata" driver call you'll be implementing16:06
gouthamrkpdev: but yes, if you're creating a share with some share type extra-specs that we the API knows are updatable metadata properties, the API must create those metadata key-value pairs into the db16:07
* gouthamr edits badly16:07
gouthamrkpdev: but yes, if a user is creating a share with some share type extra-specs that the API knows are updatable metadata properties, the API must create those metadata key-value pairs into the db16:07
kpdevso i believe this the flow16:08
kpdevuser create share type and add extra spec16:08
kpdevuser create share... manila copy driver properties from default section of manila.conf to share metadata with default value as that of specififed in extra spec16:09
kpdevuser modify share metadata, manila update in db and propogate updated metadata i.e. delta to backend driver and backend then can take appropriate action if supported16:10
kpdevIs this flow correct ?16:10
kpdevor anything missing16:11
gouthamrYep sounds right16:12
kpdevone more thing, backend (if performing) any action with success or failure, will be reported using message API16:12
kpdevthanks for clarifying, i will update the spec 16:15
gouthamryes, and my thought was that:16:20
gouthamrwhen creating shares with specs that the driver can’t fulfill, you’ll see an error - that’s happening today - there’s no changes needed here16:21
gouthamrwhen updating metadata, if the driver/share manager fail to do so, it could also revert the metadata - along with creating a user message16:22
opendevreviewJonathan Koerber proposed openstack/manila master: Adding OpenAPi Shemas to User Massages  https://review.opendev.org/c/openstack/manila/+/92256616:30
opendevreviewVolodymyr Boiko proposed openstack/manila master: Add share driver for VastData storage  https://review.opendev.org/c/openstack/manila/+/91538016:38
ashrodrikped "user create share... manila copy driver properties from default section of manila.conf to share metadata with default value as that of specififed in extra spec" I would like to point out here that if a share is created with metadata in --property, would it override the default? 16:40
ashrodrim/kped/kpdev16:41
gouthamr^ not override; the API must handle that incompatibility.. can you comment with this on the spec, ashrodri: https://review.opendev.org/c/openstack/manila-specs/+/91659516:42
gouthamri mean there must be an error.. 16:42
gouthamrcan't set metadata XYZZY to SPOON because the share type doesn't allow it16:43
kpdevso share type has extra spec, and share metadata passed during share creation, this will be error ?16:47
gouthamrif the values are incompatible16:47
kpdevif metadata key matches with what is available in share type then ? .. it will first copy default and then over-write the specified ?16:48
gouthamrkpdev: i think that's the concern.. if we see that a user is creating a share with incompatible metadata (incompatible meaning that the metadata values differ from the share type's extra-specs's values), the API would raise an error instead of creating the share... 16:53
kpdevwhy would it be ?16:54
kpdevif values are different but keys are same, means share wants something different than default value and instead of using update metadata API, user try to achieve the same in create API call16:55
gouthamrkpdev: if a user is creating a share with metadata that matches the extra-specs, we'd could just ignore the metadata; the values from the extra-specs would be copied into the metadata anyway. the metadata that the user's providing is just redundant16:55
kpdevthis means, metadata can not be used in share create API.16:56
kpdevi think, it should not be an error.. because that is what we want to achiever16:56
kpdevdefault values from share type extra-spec and share specific values from share metadata16:57
gouthamrhmmm, my thought is that administrators may want to enforce the defaults through share type extra-specs16:58
ashrodriif the extra-specs contains keys which are in supported_admin_metadata_keys then there should be an error raised. otherwise, we can override the support_metadata_keys default value with what is given during creation16:58
ashrodriif we're still using those options from the spec16:58
gouthamryeah ^ unless the user is an admin, they can't set metadata that's configured as "admin_only_metadata" 16:59
gouthamr> because that is what we want to achiever16:59
gouthamr^ can you please add this to the use cases section of your spec16:59
gouthamrkpdev: it feels like this is a new use case... 17:00
kpdevso .. if share is created with metadata, if its admin metadata raise error, if its non-admin metadata over-write default values copied from extra-spec ... correct ?17:00
gouthamri was under the impression you wanted the ability for users to change things that were configured by the administrator (through extra-specs) 17:00
ashrodrithat what i am thinking yes17:00
gouthamrbut now you're implying that you want users to have the ability to override the administrator's configuration17:01
kpdevno17:01
ashrodrigouthamr: only for keys which the administrator ALLOWS user to override them17:01
gouthamrhmmm; i don't see anything *wrong* with this... yet :) 17:02
kpdevthe admin config will not be over-written, only non-admin config (supported_metadata_keys) will be overwritten17:02
kpdevthe admin config then can be over-written using update metadata API by admin.. right ?17:03
kpdevthat is out of scope of this spec though17:03
gouthamryes; that is clear in my head btw.. ^ i was using less words for brevity17:03
ashrodriadministrators would have to think carefully over what keys they include in supported or admin_supported lists is all.17:03
gouthamr+117:03
kpdevok17:03
gouthamrplease, lets decide on the naming of these configuration options as well17:03
gouthamrthere's one already: "admin_only_metadata"17:04
gouthamrso you only need one more: "driver_updatable_metadata" perhaps? 17:04
kpdevdriver_updateable_metadata/driver_updatable_admin_metadata..17:05
gouthamrwhy would you need "driver_updatable_admin_metadata" 17:05
kpdevyou mean driver_updatable_admin_metadata and admin_only_metadata are same ?17:05
ashrodrisupported_admin_metadata_keys = admin_only_metadata that already exists17:06
kpdevwill there be scenario where driver_updatable_admin_metadata is subset of admin_only_metadata..17:06
ashrodriadmin_only_metadata currently by default includes scheduler hints. but can be configured to include more17:06
kpdevyes,, the hints need not to pass to backend driver17:07
gouthamr^ yes and the mount_options thingy carloss introduced17:07
kpdevi mean this metadata is specific to achive two things17:07
kpdev1. more granularity of metadata 17:07
kpdev2. pass to backend driver17:07
kpdevnot all things from admin_only_metadata need to go to backed, I believe17:08
gouthamrsure… here’s the deal: admin_only_metadata is a list of things only admins can modify… driver_updatable_metadata is the list of all the metadata that involve the driver when they are updated17:09
gouthamrwhen a user modifies metadata, you’ll first look into “admin_only_metadata” to see if they are modifying any of it and if they *can modify* - this is done today via policy checks17:11
gouthamrThis check will fail early if you don’t have permission to modify something…Once you’re past this check, you’d only need to look into the “driver_updatable_metadata” list to pass on the modification to the driver17:11
gouthamrI don’t like the names of these options btw17:12
kpdevok17:12
ashrodrican we identify admin_only_metadata in config as driver_updateable_metadata? Like inheritance of a variable and not an explicit list, or is that too sophisticated to parse?17:13
kpdevalso in driver_update_metadata= "netapp:max_files" or drver_updated_metadata="max_files" ?17:13
gouthamrFeel free to change “driver_updatable_metadata” to anything that makes more sense… but I wanted to be consistent with the config opt “admin_only_metadata” that we have a just a pet peeve to introduce too many config opts and then have to clarify them with their descriptions17:13
kpdev>can we identify admin_only_metadata in config as driver_updateable_metadata 17:14
kpdevmeans ?17:14
gouthamrashrodri: no need to inherit; let the admin please configure things in both lists17:14
gouthamrashrodri: not all “admin_only_metadata” needs to go to the driver17:14
ashrodrilike admin_only = [driver_update_list] and driver_update_list = [key1, key2, key3...]17:15
ashrodriadmin_only would always include scheduler hints, so we're just appending driver_update_list to those17:16
kpdevthat means driver update list only updated by admin...17:16
kpdevthis is not achieveing purpose.. 17:17
kpdevso better be seprate config options17:17
ashrodridriver_update_list only updated by admin. right, this is in config option, is that not just an admin file when starting service?17:17
gouthamrit’s a config opt17:18
gouthamrthere are no smarts to do what you’re suggesting with oslo.config17:18
kpdev>> driver_update_list only updated by admin. 17:19
kpdevno... this is list we need to consider to pass to backed on metadata update API call.. and regular user can do so17:19
ashrodriregular user can change values, but they cannot identify what those keys that are passable are17:20
ashrodriis moot point anyways as oslo.config cant handle inheritance. for the specs purpose in config, admin will have what we initially thought of as "supported_admin_metadata keys" to the already established "admin_only_metadata". and there will be a "driver_updatable_metadata" list that includes those keys that are passable to driver. 17:24
kpdevok, so adding new config option.17:25
ashrodriOH i See what you mean. driver_updatable is not subset of admin_only, my mistake17:25
kpdevwhen user call update API, if admin_metadata and supported, we continue to check if its present in driver_updatable and if its, we pass to backend17:26
kpdevif admin_metadata_and not supported, throw error (this happens today, no new logic)17:26
kpdevif non-admin metadata and presnet in driver_updated, pass to backend17:26
kpdevif non-admin metadata and not present in driver_updated list, just update db.17:27
ashrodri"if admin_metadata and supported" it will throw error for user, will pass for admin17:27
kpdevyes, supported.. mean supported by policy17:27
kpdevconfirmed ?17:28
ashrodriyes17:30
gouthamrkpdev: ashrodri let’s please take this discussion to gerrit17:30
kpdevthanks for discussion. i will update spec accordingly17:31
gouthamrkpdev: if you’d be kind, please link this chat when you make the updates17:31
gouthamrthe log location is in the topic for this channel17:31
kpdevok17:35
carlosskpdev++ gouthamr++ ashrodri++17:36
* carloss missed out on some of this fun17:37
carlossgreat discussion17:37
carlossand I like the config option being proposed as well :)17:37
opendevreviewChuan Miao proposed openstack/manila master: svm migration across physical networks with multiple port bindings  https://review.opendev.org/c/openstack/manila/+/86972019:43
opendevreviewChuan Miao proposed openstack/manila master: Improve scheduler performance on thin provisioning  https://review.opendev.org/c/openstack/manila/+/89830620:29
opendevreviewMerged openstack/manila master: Explicitly decode with utf-8 in validation helpers  https://review.opendev.org/c/openstack/manila/+/92302921:39

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!