15:00:19 #startmeeting manila 15:00:20 Meeting started Thu May 19 15:00:19 2016 UTC and is due to finish in 60 minutes. The chair is bswartz. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:00:21 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:00:24 The meeting name has been set to 'manila' 15:00:41 hi 15:00:41 Hi 15:00:42 hello o/ 15:00:43 hello 15:00:44 hello 15:00:44 hello 15:00:45 hi 15:00:46 o/ 15:00:48 hi 15:00:51 hey \o 15:00:55 hi 15:00:57 Hello 15:01:02 hi 15:01:21 hi 15:01:22 #agenda https://wiki.openstack.org/wiki/Manila/Meetings#Next_meeting 15:01:56 just a few leftover discussion topics from design summit 15:02:11 I'll save those for after the specific topics people proposed 15:02:23 #topic share backup 15:02:41 zhongjun_: you're up 15:02:50 thanks 15:02:54 I saw the record about discussion share backup. but it is not a conculution. 15:03:06 hi 15:03:07 which discussion? 15:03:07 so, There are two ideas(Not very detailed, just a direction) for the share backups, please see which one is suitable for manila? 15:03:07 or which one is definite not suitable for manila. 15:03:22 we haven't discussed share backup in details since the winder midcycle meetup 15:03:23 1. Smaug(openstack project)+Manila+Swift(or something else) 15:03:24 Use swift as a smaug's backup plugin, Use smaug calling manila's APIs(such as share-list, share-instances-export-location) to obtain share information. then creating a backup in smaug. 15:03:24 2. Add backup APIs in Manila Data service, let manila own have backup capacity. 15:04:53 personally I see both options as valuable 15:05:15 given that (2) will be a lot of work it seems like (1) is more likely to happen sooner 15:05:19 hi 15:05:53 The benifit of use first idea: it not only backup share but also backup manila config and database, etc. 15:05:59 it seems to me that the development in (1) is creating a plugin in Smaug 15:06:12 does it mean we recommend to use Smaug for manila backups? 15:07:00 I don't know enough about smaug yet to understand what it can do for a project like manila 15:07:15 is (1) written up somewhere so we can study it in more detail? 15:07:23 tbarron: +1 15:07:31 however if they have ideas for backing up shared file systems I think we should be supportive and helpful 15:08:04 how is this related to freezer? https://wiki.openstack.org/wiki/Freezer 15:08:22 I also don't know anything about freezer 15:08:28 I believe smaug compete with freezer 15:08:38 I am kind of learning them both these days 15:08:58 I believe that regardless of what backup or DR services are built on top of Manila, users will get a better experience if we build backup / DR features into manila itself 15:09:09 therefore we should do both 15:09:11 it would be nice to hash 1) out in a manila-spec (now that we can't create new Wiki pages) 15:09:13 ok we have too many projects in OpenStack... 15:09:18 tbarron: The smaug have a video demo, but I forget the link, I will find it and put it to wiki. 15:09:22 i'm also interested in restore :) 15:09:26 share replication was designed with that belief in mind 15:09:27 mkoderer, +1 15:09:40 link: https://wiki.openstack.org/wiki/smaug 15:09:44 i can post a link later 15:09:49 lol 15:09:56 zhongjun_, thanks 15:09:59 mkoderer: +1 15:10:43 gouthamr: In smaug, use heat to restore openstack environment. 15:10:47 when we discussed share backup at the midcycle one of the arguments against doing it was that many other backup tools exist and many of those are going to be way better than anything we build into manila unless we spend large amounts of time on a manila backup feature 15:11:27 https://www.youtube.com/watch?v=_tVYuW_YMB8 15:11:33 I still think it's worth developing some kind of backup framework with minimal capabilities just to have a standard interface 15:11:36 smaug 15:11:43 and if we have projects that provide backup functionality, why reinvent the wheel? 15:11:45 xyang2: thanks xyang 15:11:55 but we won't be able to compete with other solutions that focus 100% on backup 15:12:00 dustins: +1 15:12:53 I believe these projects use API provided by backed component 15:12:56 if there is an openstack service and is focused on it, a plugin for it makes sense 15:13:05 ganso: +1 15:13:10 they would be reinventing the wheel, not us hehe 15:13:11 dustins: there are some kinds of things that can only be done properly with low level access to the storage -- the kind of thing that requires code in the storage drivers to implement 15:13:15 zhongjun_: i'm a little bit familiar with smaug but i haven't seen anything about filesystem backup in particular yet 15:13:39 those can only be implemented as features in projects that have storage drivers (AKA cinder, manila, glance, etc) 15:13:56 tbarron: It will, I will do 15:14:03 services that layer on top of these services will be limited in what they can achieve through the common interface 15:14:10 bswartz: Indeed, tricky to balance a general approach versus exposing value in the underlying storage back end 15:14:38 that's why I say we should do both 15:14:42 bswartz: I wouldn't say only done properly in the backend, but more efficiently in most cases. Backup can still be done properly through the storage interface (NFS shares for instance) 15:14:43 zhongjun_: i'd be interested in seeing a spec for integration with smaug 15:15:26 ganso: you probably recall some people at the migration talk in austin saying it was important to them that their backups were bit-exact 15:15:26 bswartz: +1 15:15:26 tbarron: ditto 15:15:58 that kind of guarantee can only be provided at the storage driver level -- you can't do that in a generalized way 15:16:27 in cinder's case i believe smaug intends to use standard cinder api which allows for backend driver optimizations 15:16:33 tbarron, dustins: Oh, that's sounds good. 15:16:34 for volume backup 15:16:41 Hmm, perhaps we could do a Smaug-based solution just to cover everything for now, then we can add the "special sauce" in another release? 15:16:44 for dbase backup, etc., difft story 15:16:49 tbarron: backups of volumes is fundamentally easier than backups of file systems 15:17:01 bswartz: +1 15:17:51 for filesystems we have metadata issues like with migration 15:17:53 zhongjun_: did we answer you qusetion? 15:17:54 for one thiing 15:18:00 question* 15:18:36 bswartz: yes, the answer is two idea is ok? 15:18:48 s/idea/ideas 15:19:02 yes I don't want to discourage either approach 15:19:13 if people want to work on both, then that's great 15:19:36 personally I'd like to spend time on manila backup -- there are just too many other important problems to solve first 15:19:39 bswartz: That's great, thanks 15:19:41 let's move on 15:19:49 #topic snapshot restore 15:19:56 I'm working on the Snapshot Restore feature we agreed to at Summit. 15:20:00 cknight1: you're up 15:20:08 I had a working POC before we left Austin, and the spec is in review. 15:20:15 #link https://review.openstack.org/#/c/315695/ 15:20:25 do people like the name "Snapshot restore" better than "revert to snapshot"? 15:20:25 Most of it seems non-controversial, but there is a question about the REST API. 15:20:53 bswartz: Your question is germane to mine! 15:20:57 There are two objects involved, the share being reverted, and the snapshot being restored. 15:21:09 In any case, the API must be explicit about which snapshot is being restored. 15:21:19 when I think of restoring snapshots I imagine creating a new share from a snapshot 15:21:37 +1 for "revert to snapshot" 15:21:40 If the API is on the share, then the snapshot must be specified in the body. 15:21:44 when I think of reverting to a snapshot I think of modifying an existing share 15:22:01 cknight1: +1 for "snapshot restore" 15:22:04 If the API is on the snapshot, then the share need not be specified because Manila can infer it from the snapshot. 15:22:19 I chose the latter because it is simpler to invoke, it matches the GUI tools I'm familiar with where the restore action is on the snapshot, and the client code is smaller. 15:22:38 can't the action be on the snapshot but we call it something like snapshot revert? 15:22:40 bswartz, +1 (the 2 names suggest different meanings) 15:22:41 But in the extremely unlikely case where the API layer can find the specified snapshot but not the share, the server would have to return a 500 because something went very wrong in the server. I'm not aware of any code that returns 500-series errors today, so it would be something new. 15:22:52 revert makes is obvious that you're going backwards 15:23:05 cknight1: also, you don't need to touch the share API since this is mostly a change to snapshots API 15:23:26 bswartz: That's true. Personally, I don't feel strongly about it. 15:23:27 cknight1: +1 for "snapshot restore/revert" 15:23:35 action is applied to a share, it should be "shares" API 15:24:03 vponomaryov: if we do that then the caller has to specify the share ID in the URL and the snapshot ID in the body 15:24:17 that's more work for the caller than just specifying the snapshot ID in the URL 15:24:24 bswartz: in fact no, we agreed we always revert to latest 15:24:24 why? 15:24:29 we allow only latest snapshot 15:24:33 no need to provide it 15:24:44 ganso: ) 15:24:54 bswartz: so, if we do not need to do /snapshots/snapshot-id/restore, then it makes sense to be /shares/share-id/revert 15:24:59 revert will know what to do 15:25:01 well the user has to specify which snapshot he expects to be restored in case a new shapshot call races with the revert call 15:25:02 because it is the latest 15:25:14 bswartz: we should avoid such races 15:25:29 that sort of race is unavoidable 15:25:49 bswartz: who will create snapshots when it should be reverted? 15:25:54 if I list the snapshots, then invoke share revert, and another snapshot was taken between those 2 operations, I might be very confused 15:25:55 bswartz: it is not use case 15:26:28 since we are modifying the share, shares api seems more appropriate 15:26:43 in that case we would at least need to return the UUID of the snapshot we did revert to 15:26:53 if the caller doesn't specify it 15:27:05 bswartz: return some data - ok 15:27:10 to prevent surprises 15:27:28 Yeah, something just saying "I used this snapshot to restore from" would be handy 15:27:30 bswartz: We're changing data, so I think the API should be very explicit about what snapshot is being restored. 15:27:40 cknight1: +1 15:27:41 cknight1: agreed 15:27:53 bswartz: I don't think the server should pick the latest one itself, since that can lead to a surprise. 15:27:58 yeah I lean towards explicitness so we can report more accurate errors 15:28:02 and there can be 2 admins + one creating a new snapshot and one reverting 15:28:15 bswartz: In my POC, I check that the specified snapshot is actually the latest one. 15:28:18 cknight1: manila can store value of latest snapshot in share model 15:28:19 Yes, that way we can error out saying that the snapshot specified was not the most recent 15:28:19 cknight1, bswartz: why wouldn't share's status prevent this scenario? if we have statuses with locks 15:28:26 worst case is you get an error 15:28:27 cknight1: that can be visible via "share show" 15:28:42 ganso there is unknown time between when an admin looks at the list of snapshots and invokes the revert call 15:28:48 it could be seconds or minutes or hours 15:28:50 bswartz: if a snapshot is created, even though it is in "Creating" then it is latest, but share status will be "snapshotting" 15:29:05 bswartz: oh I see, two users under the same tenant 15:29:17 yes 15:29:18 bswartz: like, one user is taking a snapshot and the other is reverting 15:29:34 ganso: yes 15:29:46 if that were to happen, the revert call should error out explaining that the specified snapshot is no longer the latest snapshot 15:29:52 bswartz: so if we need the snapshot parameter there is no real advantage between usage of either API 15:29:57 then the admins can get together and figure out what they want to do 15:30:15 So what I'm hearing is that most feel this should be an action on the share as far as the REST API is concerned. 15:30:24 I'm hearing though that for semantic reasons people prefer it's a share action 15:30:33 cknight1: yes definitely 15:30:48 And the CLI should be 'revert-to-snapshot' instead of 'snapshot-restore'. Right? 15:30:58 it might be slightly less RESTful but it's more clear what's going on 15:31:02 +1 15:31:02 "restore this share to this snapshot" rather than "with this snapshot restore this share" 15:31:03 cknight1: +1 15:31:14 cknight1: +1 15:31:19 yes revert-to-snapshot seems very clear 15:31:33 cknight1: +1 15:31:41 OK, I'll make it happen. Thanks, everyone! 15:31:53 the revert-to-latest-snapshot (with no snapshot arg) is also interesting but a little scary to me 15:32:06 bswartz: yes, too scary 15:32:17 okay 15:32:23 let's move on 15:32:28 #topic specs 15:33:00 ganso asked earlier today about spec deadlines, and requirements for specs 15:33:14 I don't believe we agreed on any deadlines, or requirements for specs 15:33:29 we have the specs repo, and people are already using it, which is great 15:33:35 ok so bswartz and I were discussing today about specs priority, I think it is a good idea that N1 has specs prioritized because if we are following this idea of working with specs, specs block implementation if they are not approved 15:34:13 however where we left things in Austin was that specs are still optional and we encourage them but don't require them 15:34:47 for the purpose of reviews I do think ganso has a point 15:34:50 we need to avoid being too waterfall here, it would be good to be able to refine specs and refine code in parallel 15:35:19 if a developer is waiting for feedback on his ideas before writing the code then we should prioritize reviewing the spec and providing the feedback 15:35:21 +1 for in parallel 15:35:23 where the code doesn't get merged in the end if it diverges significantly from spec 15:35:48 I think they should not be enforced, according to what we discussed in Austin, it seems the main value of specs for Manila, is to have feedback on design and implementation before investing a lot of work in it and having to change too late in the cycle 15:35:54 we shouldn't force developers to wait, but in ganso's case it sounds like he doesn't want to start coding the wrong thing 15:36:04 understood 15:36:07 there are proposals that do not need specs, or that they may not need too much feedback or refining 15:36:20 if we could get code merged before spec is merged, that will be better, so spec will not be out of sync with code 15:36:24 so specs aggregate more if they used 15:37:23 xyang2: that would be good also, but then we need to consider the spec approved even though not merged 15:37:32 ganso: in the past the way we've stimulated feedback was to bring up specific topics during these weekly meetings and ask for feedback 15:37:37 ganso: yes, it is tricky 15:38:04 ganso: the code will almost always go out of sync with spec if spec is merged first 15:38:10 ganso: if you're looking for feedback on your spec I suggest we just bring it up here and agree to give you yes or no decisions by some date 15:38:22 bswartz: sometimes people find out that they disagree with design or find a potential flaw when we are too close to FF 15:38:26 ganso: but if spec is not merged, people may not want to +2 the code 15:38:55 I would merge specs and after that merge the code and update documentation accorindgly 15:39:02 okay let's not get too wrapped up in the meaning of a merged spec 15:39:14 I think we agreed that we can modify specs after they're merged 15:39:15 xyang2: then we need a social rule for this, so it makes sense and we do not get stuck not being able to merge a code because spec was not merged hehe 15:39:25 I don't see any issue in outdated specs as long the documenation is up to date 15:39:37 mkoderer: that's fine too. just need to remember to update the spec afterwards 15:39:38 mkoderer: +1 15:39:40 I dislike the ceremonial "merging of the spec" to mean that the idea is somehow blessed and approved 15:39:45 mkoderer: docs up-to-date is utopia 15:39:48 ganso: agree 15:40:01 bswartz: +1 15:40:07 vponomaryov: would also mean: spec up-to-date is utopia ;) 15:40:10 I think we should try to reach consensus and merge specs but that shouldn't be the end of the discussion 15:40:23 i'm just saying look at the spec before the code merges, ask questions about divergence, etc. 15:40:28 use our heads 15:40:36 bswartz: I think this "ceremony" is needed, else devs won't be required to review the spec at all, and their value will be diminished 15:40:39 tbarron: +1 15:41:12 this is similar situation with blueprints 15:41:12 ganso: we can build a culture that does the right thing w/o having to make formal process IMO 15:41:15 ganso: yes we need people to know that feedback is more welcome earlier than later 15:41:42 bswartz: "merge" is kind of proof 15:41:50 we have a history of people ignoring features until 2 weeks before feature freeze then dropping a whole bunch of feedback 15:42:14 that's not a good experience for contributors 15:42:16 bswartz: yes, specs cannot solve that by itself, it is more of a cultural thing 15:42:34 and a history of big code drops late, right? 15:42:37 okay so here's a proposal 15:42:44 so my idea of emphasizing "priority" is to address this 15:42:48 no deadlines 15:42:50 just priorities 15:43:22 if people post a spec, and ask for feedback, we should prioritize reviewing the spec and giving feedback early (before first milestone as ganso says) 15:44:12 btw we have already some specs in gerrit for review.. can we put some priority to review them? ;) 15:44:14 people who fail to review specs shouldn't propose major changes later on in the release 15:44:40 bswartz: define major changes:) 15:44:52 xyang2: something which should have caught in the spec review 15:44:53 xyang2: good catch! )) 15:45:21 sometimes you can't see why you don't like something until you see the implementation 15:45:35 bswartz: so true :) 15:45:52 but in many cases you can see objectionable things in the spec and the right time to object to those is before the code is written 15:46:18 disagreements in specs need to get resolved before code merges 15:47:00 markstur__: yes.. 15:47:02 Nits in specs -- shouldn't be a roadblock 15:47:18 also (and I've seen this with specs I've written) sometimes you just get really helpful suggestions in the spec review which make implementation go more smoothly 15:47:37 believe it or not, other people have good ideas 15:47:37 Also code POC before spec is decided is still a good idea if coder is OK w/ POC 15:48:01 but that isn't supposed to change the spec process (just adds proof) 15:48:16 markstur__: +1 correct spelling, etc. but don't -1 for it alone 15:48:41 wait a minute 15:48:44 tbarron: nits shouldn't -1 15:48:53 spelling errors should be fixed -- that's what -1 is for 15:49:02 markstur__: yeah I really like POC code in the same time with spechs 15:49:02 it's not hard to just fix it and move on 15:49:13 or you can fix it if it's not too much of a bother? 15:49:23 bswartz: I wouldn't block a merge just because two spelling nits 15:49:28 well I see a lot of negative energy going into that kind of thing 15:49:33 right we can always +2 over a -1 15:49:34 I do think we should fix them 15:49:47 tbarron: they become obsolete 15:49:50 but that's doesn't mean we shouldn't post the -1 review 15:49:52 but note them as nits, fix, etc. 15:49:58 tbarron: the documentation should be have perfect spelling 15:50:07 tbarron: s/be have/have 15:50:13 ok, well we got that away. 15:50:17 out of the way -1 15:50:31 ganso: true.. but what stops the reviewer from helping out and fixing the documentation for spelling errors? 15:50:37 bswartz: so we don't require spec to be merged before code merged? 15:50:50 the docs team does this.. don't -1, just edit and help merge 15:50:55 ^ if minor 15:51:10 gouthamr: nothing, spelling mistakes are welcome to be pointed out, some people learn from it, but not worth -1 15:51:11 xyang2: not currently -- we could decide to change that (probably for ocata though given we're already well into newton) 15:51:21 ok 15:51:43 gouthamr: i like that b/c now when I do -1 it means something 15:51:48 but we can play the game either way :) 15:51:57 okay ganso: do you want to provide a link to your spec before we move on? 15:52:07 bswartz: sure, thanks! 15:52:26 #link https://review.openstack.org/315707 15:52:26 tbarron: ofcourse, don't fix functionality, just fix 'teh' to 'the' or 'hence' to 'thus' :) 15:52:29 #action everyone review ganso's ^ spec! 15:52:52 #topic UI customization 15:53:11 sgotliv may have had to drop 15:53:13 gouthamr: you don't like "hence" ? :( 15:53:13 late there 15:53:17 but 15:53:29 we have two issues where a customer has requested 15:53:38 more customizalbe ui. 15:53:48 ganso: i've had US/british grammar checks happen wayy too often :) 15:53:52 they run a public cloud 15:54:08 tbarron: manila in public cloud? nice! 15:54:18 they down't want pulldowns for protocols that don't exist in their cloud 15:54:24 british english > US english 15:54:35 bswartz: +1 15:54:37 * bswartz listens to the BBC too much... 15:54:38 ^ well, i for one agree 15:54:48 if they don't have cifs of hdfs then they don't want their paying tenants to complain b/c they are in the ui and not availiable 15:55:04 #link https://etherpad.openstack.org/p/newton-manila-contributor-meetup 15:55:04 tbarron: nice use case.. 15:55:11 we have enabled_protocols in manila.conf so that seems a reasonable request to me. 15:55:16 any issue? 15:55:25 if you see in the etherpad, vponomaryov commented about the possiblity of a new API to support this use case 15:55:25 tbarron: no issue, I like idea 15:55:30 tbarron: don't we already disable these through manila.conf ? "enabled_share_protocols" or something? 15:55:31 tbarron: but i was under the impression people don't use vanilla manila-ui or manilaclient 15:55:41 I support the idea of the API 15:55:43 ganso: no APIs 15:55:51 gouthamr: they change the CSS sheet :-) 15:55:51 ganso: yet 15:56:04 it would be very useful for any tools built on top of manila to know which protocols are available 15:56:26 ok, we can work on that issue 15:56:29 #2. 15:56:35 tbarron: do we need anything more than that single API for that use case? 15:56:37 bswartz: It's possible now via the pools list API. 15:56:46 bswartz: The scheduler has all that information. 15:56:49 cknight1: that's admin only 15:57:01 bswartz: true 15:57:02 we need ordinary tenants to know which protocols are available 15:57:20 preferably without giving away all the pool details 15:57:33 bswartz: So what else might a user or GUI need to know? 15:57:55 bswartz: scheduler stats can be improved, we only have GET pools and GET /detail on pools 15:58:01 cknight1: to know type of access and its level 15:58:08 perhaps a mapping of protocols to share types or share types to protocols in case not every protocol is compatible with every share type 15:58:18 bswartz: we can easily add this tenant facing API to the same suite 15:58:39 bswartz: or a filter to the existing API 15:58:48 bswartz: Point being, if we must add an API, we can design an extensible Manila capabilities API for adding such things. 15:59:01 or we could even make the protocol list just extra data on the share type list APIs 15:59:01 gouthamr: i think that's the way we were thinking 15:59:12 maybe we can do incremental refinement here 15:59:23 ready for #2? 15:59:25 tbarron: agree.. 15:59:31 we just return a list of supported protocols for each share type when you list the share types 15:59:37 tbarron: time check 15:59:41 then it's a change to an existing API instead of a brand new API 15:59:59 tbarron: I am curious for #2 16:00:01 today when you create a share you get a make visible for all checkbox 16:00:02 altough I'm not sure we have the raw data for that anywhere 16:00:04 they want to be able to turn that off 16:00:05 there's a #2? 16:00:14 beep beep beep 16:00:20 12:00 16:00:21 markstur__: yeah, i said 2 things 16:00:21 gouthamr: lol 16:00:22 cliffhanger 16:00:28 continue in channel 16:00:31 hahaa 16:00:32 okay 16:00:34 thanks all 16:00:34 to be continued... 16:00:35 gouthamr: lunch time 16:00:36 we ran out of time 16:00:42 #endmeeting