14:00:57 <gampel> #startmeeting Smaug 14:00:58 <edison> hi 14:00:58 <openstack> Meeting started Tue Feb 23 14:00:57 2016 UTC and is due to finish in 60 minutes. The chair is gampel. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:59 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:01:01 <openstack> The meeting name has been set to 'smaug' 14:01:13 <gampel> Hi edison 14:01:13 <chenying_> hi 14:01:46 <gampel> #info: edison, chenying in the meeting 14:01:46 <edison> hi, i am xiangxinyong 14:02:11 <yinweimac> hello, guys 14:02:14 <saggi1> hey 14:02:27 <gampel> #info: xiangxinyong , gampel ,yinweimac, saggi1 14:02:44 <gampel> Hi everyone we want to start 14:02:50 <gampel> #topic Announcements 14:03:09 <gampel> I want to propose Saggi as core in Smaug 14:03:28 <gampel> Lets do a vote about it 14:03:28 <avishay> Hi all 14:03:39 <xiangxinyong123> ok 14:03:42 <chenying_> +1 14:03:50 <gampel> Hi @avishay welcome 14:04:12 <gampel> gampel: +1 14:04:24 <zhonghua-li> hi 14:04:27 <xiangxinyong123> xiangxinyong:+1 14:04:45 <gampel> hi zhonghua-li 14:04:49 <zhonghua-li> gampel: +1 14:05:23 <yinweimac> +1 14:05:26 <zhonghua-li> though i'm not a core reviewer:) 14:05:47 <gampel> So i will update the core list and add Saggi it will help allot with th review and merging all the code 14:06:05 <saggi1> Thank you everyone for your support 14:06:21 <gampel> next we have two new sub projects for dashboard and client for Smaug 14:06:22 <xiangxinyong123> ^-^ 14:06:29 <gampel> #link: https://review.openstack.org/#/c/281019/ 14:07:22 <gampel> Saggi welcome and you are deserve it thank you for all the good work 14:07:52 <saggi1> you just want me take care of the merging for you ;) 14:08:20 <gampel> xiangxinyong123: zhonghua-li: do you want to update regarding the new sub projects the status 14:08:27 <gampel> :) 14:08:49 <xiangxinyong123> yeah 14:09:08 <zhonghua-li> gampel: yes 14:09:20 <xiangxinyong123> The patch in project-config is still in review 14:10:00 <chenying_> I am alreadly working on the client for Smaug project. I am waiting for the project-config merging. 14:10:15 <gampel> Ok lets hope that we can merge it this week 14:10:27 <zhonghua-li> hope so 14:10:36 <gampel> #topic Smaug UI Design 14:10:46 <xiangxinyong123> http://www.screencast.com/t/SLqCyOwtBRl 14:10:57 <gampel> #link: http://www.screencast.com/t/SLqCyOwtBRl 14:10:58 <xiangxinyong123> i upload a video in the above link. 14:11:12 <zhonghua-li> looks good 14:11:45 <zengyingzhe_> what's this video used for? gampel. 14:12:21 <gampel> it is used as a mock up to show the UI to everyone here and get their feedback 14:12:47 <zhonghua-li> do we plan to do a really demo? 14:13:16 <xiangxinyong123> yeah. 14:13:27 <gampel> Yes I think that the UI design is in a good state and we could start coding 14:13:38 <gampel> any feedbacks / 14:13:40 <gampel> ? 14:13:48 <xiangxinyong123> i have made a horizon ui framework. 14:13:52 <saggi1> I'm very pleased with it 14:14:07 <xiangxinyong123> if the project-config is merged, i will add the ui framework to git 14:14:26 <gampel> xiangxinyong123: You did a very good job 14:14:28 <zhonghua-li> gampel: we must create the project successfully fist 14:14:36 <xiangxinyong123> thanks 14:14:57 <gampel> yes but i hope next week we could start sending patches for UI and client 14:15:09 <gampel> meanwhile you can work offline on it 14:15:22 <xiangxinyong123> ok. i will do 14:15:32 <zhonghua-li> gampel: good idea 14:15:57 <gampel> is there any comments on the UI 14:16:17 <yinweimac> no 14:16:25 <xiangxinyong123> Merge Proposed Smaug API v1.0 14:16:26 <xiangxinyong123> Missing operation log will be added in another patch 14:16:26 <gampel> @avishay what do you think 14:17:55 <gampel> Ok lets move to next topic we can continue comment on the UI latter 14:17:57 <gampel> #topic Merge Proposed Smaug API v1.0 14:18:15 <gampel> yes we are missing the operation log log 14:18:23 <gampel> we ant to add it in another patch 14:18:54 <gampel> We want to merge the current API and add the operation log next 14:18:59 <avishay> gampel: about the GUI? looks good, reflects the API, maybe can make more user friendly in the future, need to think about it 14:19:45 <gampel> Ok lets try to have a talk about it I will send you HTML mock up as well so we can get your feedbacks 14:20:32 <gampel> Please all review the API assuming that we have another patch for the operation log 14:20:48 <xiangxinyong123> welcome to suggestion and feedback. 14:20:58 <gampel> I want to merge it only when we have enough votes 14:21:34 <gampel> #action all, review the API patch https://review.openstack.org/#/c/244756/ 14:21:49 <zhonghua-li> will 14:21:57 <gampel> any comments on the API 14:22:21 <gampel> #topic Protection Service design spec 14:22:34 <gampel> #link: https://review.openstack.org/#/c/261455/ 14:22:55 <gampel> @yinwei can you please update the status 14:23:45 <yinweimac> sure 14:23:48 <yinweimac> let me check 14:24:16 <yinweimac> I thought this patch has already been merged 14:24:35 <yinweimac> so currently the issue is about the serialization of checkpoint, right? 14:24:42 <gampel> I see that @saggi thinks that implementation detail of the provider instead of a pluggable class 14:24:53 <gampel> the checkpoint serialization 14:25:41 <gampel> I agree that checkpoint serialization is the bank driver issue 14:26:10 <saggi1> I don't want to introduce another factor for incompatibility between sites 14:26:39 <saggi1> Otherwise you need to configure a BankPlugin and a BankSerializer. 14:26:48 <saggi1> Or CheckpointSerializer 14:27:05 <yinweimac> sorry, I think there may be some misunderstanding 14:27:11 <saggi1> which gives the user options it doesn't need or want for the price of configuration complexity IMHO 14:27:31 <yinweimac> I didn't mean to make checkopint serializer as a pluggable class 14:28:08 <zhonghua-li> saggi1: we can use single Serializer 14:28:08 <saggi1> The bank knows the optimal format it wants to save information. 14:28:16 <yinweimac> The design just want to decouple the serialization from checkpoint collection 14:28:31 <saggi1> We can't since a mongo bank would require serializing to it's format. 14:28:37 <gampel> difference banks plugin will serialize differently 14:28:40 <saggi1> since it doesn't use blobs but documents 14:29:23 <yinweimac> yes, different bank will serialize differently. some will but some won't 14:29:30 <gampel> it should be a bank driver implementation's detail 14:29:41 <yinweimac> I don't think serialization should be done inside bank 14:29:53 <gampel> In side the bank plugin the driver 14:30:06 <yinweimac> some stupid bank would just take key/value 14:30:22 <yinweimac> some higher level bank like db would do serialization 14:30:35 <gampel> yes so that bank driver/plugin code in Smaug will need to take care of that 14:30:44 <yinweimac> that's why I make serialization in a higher layer otherthan bank 14:31:30 <yinweimac> if we have bank to take care of serializtion, it needs understand the class to be stored 14:31:50 <yinweimac> where we only want to leave bank as a simple writer, isn't it? 14:31:51 <gampel> we have the same issue in other projects that use DB layer and pubsub and every driver will do a different serialization 14:32:32 <saggi1> yinweimac: It will need to be able to handle dictionaries. Since this is what we pass to the plugins. 14:32:43 <gampel> yes we need to define the Object we Pass to the Bank Plug in 14:32:43 <yinweimac> the point here is, I want to make bank a simple writer, which doesn't care what it writes 14:33:39 <yinweimac> take checkpoint as example 14:34:42 <yinweimac> if we want to choose xsd or gpb as the serialize way, we don't want bank to handle the proto of each object 14:35:06 <saggi1> yinweimac: Checkpoint will not serialize to a single file. We need might need to have serialize to dict function in the Checkpiont. Similar to how oslo serializers do it. 14:35:34 <saggi1> So that the bank only handles basic types. strings\numbers\lists\maps. 14:36:01 <saggi1> So that the object is responsible for implementing the conversion to a dict. 14:36:15 <saggi1> or whatever primitive 14:36:22 <yinweimac> hmm, that's the divergence 14:36:33 <yinweimac> so let's take it step by step 14:36:47 <yinweimac> what's the interface of bank write do we want" 14:37:28 <saggi1> Similar to json. We give it an object and it should be able to save it if it's a basic type that maps to json. 14:37:54 <gampel> yinweimac: we think that with this basic primitive we cover all the parameters info, .... 14:37:58 <saggi1> we could have a to_bank_format() function that the bank probes. If it exists it will call it and store the result. 14:38:05 <yinweimac> you're talking about the serialization way 14:38:16 <yinweimac> I'm talking about the interface of bank 14:38:34 <saggi1> the bank has write_object(key, value) 14:38:38 <yinweimac> json is just a way of serialization and it doesn't provide compression 14:38:40 <saggi1> where key must be a string 14:38:54 <yinweimac> what'a bout the value 14:39:12 <saggi1> any basic type similar to what json.dumps() accepts 14:39:21 <saggi1> If the bank wants to compress it could 14:39:27 <saggi1> it could be part of it's options 14:39:43 <saggi1> Since this is the on disk format 14:39:55 <saggi1> it should be the responsibility of the bank 14:40:03 <saggi1> we should just convert it to a basic type 14:40:05 <yinweimac> so our difference is on the value part 14:40:40 <zhonghua-li> IMO, the serializator is just to change the object to dict or json,am i correct? 14:40:40 <saggi1> this could be solved by adding to_bank_format() to objects that are not basic. That way any class we create can be saved in any bank. 14:40:44 <yinweimac> what n my mind is the value is a tuple of bytes, which is a serialized value 14:40:57 <yinweimac> could be json, xsd, gdp 14:41:10 <yinweimac> but bank doesn't care 14:41:17 <yinweimac> it's only a simple writer 14:41:29 <gampel> serialization should be done in the Bank driver,we should have one format above 14:41:51 <yinweimac> only checkpoint collection layer interpret the content write there 14:42:05 <yinweimac> we want to make bank simple, right? 14:42:07 <saggi1> yinweimac: This forces blob storage on the bank. 14:42:24 <yinweimac> while we want to leave more flexibility on serialization way, right? 14:42:35 <gampel> yinweimac: saggi: i think we should continue in the review 14:42:43 <saggi1> gampel: sure 14:43:09 <gampel> we understand the differences and we should all think about it and try this week to resolve 14:43:45 <gampel> #action @saggi @yinweimac @gampel agree on the Checkpoint serialization 14:44:13 <gampel> #topic protection-plugin-design 14:44:16 <yinweimac> ok, saggi1, let's talk about it offloine 14:44:38 <yinweimac> maybe a pseudo code would better explain it 14:45:06 <gampel> Yingzhe Zeng: can you share the status of this BP 14:45:30 <yinweimac> protection plugin is dependent on graph walker listener, isn't it? 14:45:40 <gampel> #link: https://blueprints.launchpad.net/smaug/+spec/protection-plugin-design 14:46:08 <gampel> yinweimac: yes it does it was merged 14:46:19 <yinweimac> from saggi's latest patch, I still can't see how to pass down the recursive result 14:46:27 <zengyingzhe_> this's just for the internal interfaces definition, to confirm with DJ product. 14:47:00 <zhonghua-li> zengyingzhe_:which one? 14:47:01 <gampel> Ok we need to define the reference implementation 14:47:16 <gampel> protection Plugins Volume and VM 14:47:21 <saggi1> yinweimac: I will add an example test for passing information. 14:47:24 <zhonghua-li> oh 14:47:40 <zhonghua-li> yeah, it's a reference implementation 14:47:44 <yinweimac> saggi1, thanks! 14:47:59 <zhonghua-li> likes ABC 14:48:02 <gampel> #link: https://review.openstack.org/#/c/274308/ 14:48:20 <gampel> comments from saggi and me is why not define it as abs ? 14:48:29 <yinweimac> gampel, hu rong is working on a volume protection plugin 14:48:42 <yinweimac> I think we have updated on the epad 14:49:17 <gampel> what we dicussed with @smcginnis 14:49:30 <chenying_> I note that saggi's comments:define abs in the code instead of md file. I think abc class code can be submitted in another patch. 14:49:32 <yinweimac> but before that, we need confirm how to pass recursive result in graph wolker listener 14:50:00 <gampel> that in the reference we should call cider backup and store the back id in the bank checkpoint 14:50:25 <yinweimac> yes, that's the plugin hu rong is working on 14:50:39 <gampel> Other vendor protection plugin could bypass cinder and call their driver directly 14:51:34 <gampel> Ok so @hu rong and @zengyingzhe_ should sync and collaborate on this 14:51:44 <chenying_> Yes default reference call cider backup 14:51:56 <yinweimac> but first we need a basic protection plugin as a sample or base class, like singleTaskProtectionPlugin, which only returns one task in before/after functions 14:52:36 <gampel> #action @zengyingzhe_ and @hurong sync and collaborate on Volume protection plugin 14:53:09 <gampel> yinweimac: yes I think that we need to define it first as abs do you agree 14:53:22 <yinweimac> sure 14:53:38 <yinweimac> that's what I want to express 14:53:38 <gampel> Ok lets move on we do not have much more time 14:53:48 <zengyingzhe_> My design is just for our product. If the plugins can follow it, that would be good. If not, we can discuss it. 14:53:55 <chenying_> first implement abstract backup plugin 14:54:24 <yinweimac> first implement abstract singleTaskPlugin 14:54:37 <gampel> we should first show how to do it in the reference implementation 14:54:47 <gampel> #topic Operation Service Status 14:55:00 <gampel> any upadtes 14:55:04 <gampel> updates 14:55:36 <gampel> any updates about the API Service Status 14:56:06 <gampel> we need to continue merging all the stack of patches, please all try to help in the review 14:56:17 <chenying_> API service: 14:56:17 <chenying_> plan Controller is done. restore is working. chenzeng will working on schedule and trigger resources Controller. 14:56:33 <chenying_> anyone can develop this refer to the plan Controller. 14:57:07 <gampel> very good job chenying: and chenzeng: thank 14:57:17 <xiangxinyong123> yeah, chenzeng has also a good progress in operation engine service. 14:57:32 <gampel> yes is he here ? 14:57:57 <gampel> #topic Open Issues 14:58:01 <zhonghua-li> gampel: not yet 14:58:15 <gampel> Ok i will catch him tomorrow morning 14:58:33 <gampel> any other subject 14:58:40 <gampel> we do not have much time left 14:59:06 <gampel> if not thank you every one for the good work 14:59:38 <gampel> lets continue discussing the issues in the patches/review 14:59:55 <zhonghua-li> ok,thanks, bye 14:59:57 <gampel> bye and thanks everyone good night 15:00:02 <xiangxinyong123> 88 15:00:07 <saggi1> bye 15:00:10 <chenying_> bye 15:00:22 <zengyingzhe_> see you 15:00:36 <gampel> #endmeeting