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