Wednesday, 2016-04-06

*** chenhuayi has joined #openstack-smaug02:04
openstackgerritzengchen proposed openstack/smaug: Implement time trigger with Eventlet  https://review.openstack.org/29688002:34
openstackgerritzengchen proposed openstack/smaug: Implement rpc interfaces of OperationEngine  https://review.openstack.org/29973902:34
openstackgerritzengchen proposed openstack/smaug: Implement time trigger with Eventlet  https://review.openstack.org/29688002:50
openstackgerritsmile-luobin proposed openstack/smaug: Fix serialized_meta in SwiftBankPlugin  https://review.openstack.org/30142703:29
*** zhangshuai has joined #openstack-smaug04:41
*** zhangshuai has quit IRC04:42
xiangxinyongsaggi: good morning04:58
*** xiangxinyong456 has joined #openstack-smaug05:17
xiangxinyongsaggi: hello05:22
*** xiangxinyong456 has quit IRC05:24
*** saggi_class has joined #openstack-smaug05:24
saggi_classping xiangxinyong05:24
xiangxinyongmorning05:24
saggi_classsorry I'm late05:25
saggi_classI'm actually in class05:25
xiangxinyongyou are welcome05:25
saggi_classI'll try and be brief05:25
saggi_classYour idea is good.05:25
xiangxinyonghttp://paste.openstack.org/show/492976/05:25
saggi_classThe only issue is that you put the properties in the resource "struct"05:25
saggi_classAnd that will give us issues when deserializing it05:26
saggi_classsince it's not a field of the resource class inside the code05:26
saggi_classSo you just need to put it somewhere else05:27
xiangxinyongso do you have suggestion?05:27
saggi_classWhat about: {"resource": {...}, "parameters": {...} }05:27
saggi_classFor every item in the list05:27
saggi_class?05:28
xiangxinyongsaggi i paste the code into here. https://etherpad.openstack.org/p/createplan05:28
xiangxinyongcould you adjust the format you suggest.05:29
xiangxinyongthanks05:29
saggi_classI changed the first one05:31
saggi_classwhat do you think?05:31
xiangxinyongi see it. i am ok05:32
xiangxinyongi add a name property.05:33
xiangxinyongwhat do you think about it?05:33
saggi_classgreat05:33
saggi_classdid you see I sent the API change patch yesterday?05:33
xiangxinyongyeah. i review the two patches. very good and very important05:34
xiangxinyongsaggi: if we agree with json format about create plan,  we can notify chenying and yinwei05:35
saggi_classyes, just check with them that they are OK with it as well05:35
xiangxinyongThey will do some changes in the create plan workflow05:35
saggi_classThey have a good eye for such stuff05:35
xiangxinyongok. i will05:36
saggi_classthanks05:36
xiangxinyongsaggi: i have the similar question about the restore flow05:36
xiangxinyonghttps://etherpad.openstack.org/p/restorecheckpoint05:36
xiangxinyongplease take a look at it05:37
xiangxinyongAs we discuss it yesterday, we need to edit the resource parameters when we restore from a checkpoint05:38
xiangxinyongwe think we need to add some parameter so that we can launch a restore workflow.05:39
saggi_classYes, the original plan was to have paramters be able to specify ID in the type.05:39
saggi_classcheck out https://etherpad.openstack.org/p/restorecheckpoint05:41
saggi_classBut not that we decided to change that for backup05:43
saggi_classwe might need to change it also for restore05:43
xiangxinyongoh05:43
xiangxinyongi add new restore json in the end of file.05:45
xiangxinyonghttps://etherpad.openstack.org/p/restorecheckpoint05:46
* saggi_class is checking it05:47
xiangxinyongok. i finish to modify it05:48
xiangxinyongi combine the default parameters05:49
xiangxinyongusername and resource default parameters05:50
saggi_classThe thing I'm thinking about is whether this is really better than the old notation05:50
saggi_classWhy do we need the type in the parameters per resource?05:51
saggi_classWe know the type of the resource05:51
saggi_classwhen can just  put them05:51
saggi_classwhen=ew05:51
saggi_classew=we05:51
saggi_classxiangxinyong: ?05:53
xiangxinyongso your opinion is that we only need resource id?05:53
saggi_classno05:53
saggi_class1 sec05:53
xiangxinyongok05:53
saggi_classhttps://etherpad.openstack.org/p/restorecheckpoint05:54
xiangxinyongso you mean we have the same struct as the plan create05:56
saggi_classthat was what you suggested05:56
saggi_classWhat I removed is the type of the parameters part05:56
saggi_classback in 505:57
xiangxinyongok saggi05:58
chenying_Hi05:58
chenying_xinyong you change the struct of plan  How to store this parameters to db? do you consider this?06:06
saggi_classchenying_: It shouldn't change much06:07
xiangxinyongchengying: what do you think about it?06:08
chenying_adding a parameters to resource is ok06:10
chenying_        resource:06:10
chenying_       {06:10
chenying_                  "id": "64e51e85-4f31-441f-9a5d-6e93e3196628",06:10
chenying_                  "type": "OS::Nova::Server",06:10
chenying_                  "name": "Saggi's computer"06:10
chenying_      },06:10
chenying_      "parameters": {06:10
chenying_             "consistency": "os"06:10
chenying_          }06:10
chenying_       },06:10
chenying_    },06:10
chenying_i don't understand this06:10
saggi_classIt puts it next to it instead of inside it so we don't change the resource serialize06:11
saggi_class\deserialize for this06:11
chenying_You can check the db structure  plan : resource  -> 1:n06:11
saggi_classthe old way was to just put it in the key "OS::Server::Nova;id00-000000-000-0000"06:12
chenying_imo the parameters of a resource is defined by a resource type. don't need define by a instance.06:14
*** gampel1 has joined #openstack-smaug06:16
gampelwe need global default  and specific settings06:17
yinwei_computerhi guys06:22
saggi_classchenying_: this is why I removed the type06:22
saggi_classIt's just the parameters for that type06:22
saggi_classhi yinwei_computer06:22
yinwei_computergo ahead06:23
yinwei_computertrying to catch up with you06:23
chenying_you have another parameter field in the plan structure. does it for resource type ?06:25
saggi_classxiangxinyong: Why not just leave it as it was. With the seperator for cases where we want to define for specific resource. It's like a very simple css selector from html.06:25
xiangxinyongsaggi: Do you mean we can add the special resource into the default parameters when we create the plan?06:28
saggi_classNo use the format: "<TYPE>" for type default and "<TYPE>;<RESOURCE_ID>" for resource specific.06:30
xiangxinyonglike this one: https://etherpad.openstack.org/p/createplannew06:31
xiangxinyong?06:31
chenying_It puts it next to it instead of inside it.  how to organize the data in db table.  Imo add a parameter for a resoure, I just add a parameter field to the database resources.06:33
saggi_classxiangxinyong: yes06:33
saggi_classchenying_: You need a general place to put default anyway.06:34
chenying_default parameter for a type will be added to the database table paln.06:35
saggi_classchenying_: Default parametrs for tpe06:35
saggi_classSo you can use this key format06:35
saggi_classBut thinking about it06:36
saggi_classyou both are working on both ends of this code06:36
saggi_classif you think it's better for you06:36
saggi_classThen it's OK06:36
saggi_classJust remove the type from the parameters in the resource06:37
saggi_classsince it makes no sense to put it twice06:37
chenying_I see the new link.06:37
chenying_Does it mean that only add a parametr field to table plan?06:40
chenying_the content of the parametr dump to a string?06:41
*** yuval has joined #openstack-smaug06:42
saggi_classI really have to go06:42
saggi_classsorry06:42
xiangxinyongok. see you/06:42
saggi_classBut the per resource parameters need to be stored similiarly to how type defaults are stored06:42
*** saggi_class has quit IRC06:43
chenying_I only concern how the persistence data persistence to the database table.06:46
chenying_how the parametrs data persistence to the database table.06:46
xiangxinyongyinwei: are you here?06:49
openstackgerritEran Gampel proposed openstack/smaug: Implement time trigger with Eventlet  https://review.openstack.org/29688006:51
chenying_ping gampel106:57
gampelhi chenying_07:00
chenying_Hi Eran I have another question about restore api.07:00
gampelyes07:00
chenying_You know, now the resore action may generate a heat template.07:01
openstackgerritYuval Brik proposed openstack/smaug: Fix python3 compatibility  https://review.openstack.org/30165907:01
chenying_Do we need change or modify the restore api?  generating a heat template or executing a resore action may have different parameters and responses?07:01
gampelI think that the heat template should be internal, not as a return value07:01
gampelYou mean to have an option just to generate the heat template ?07:02
chenying_yes07:02
*** openstackgerrit has quit IRC07:02
gampelIt is problematic  because some of the resources like Volume must be created on restore07:02
*** openstackgerrit has joined #openstack-smaug07:03
chenying_restore  API parameters can define  generating a heat template or executing a resore action.07:03
gampelI think we can not generate heat template  because the restore will create some of the resources and you will not know which are generated by the heat template and which are created in the restore07:04
chenying_ heat template should be internal  you mean after generating a heat template, a new task will execute the  heat template ?07:05
chenying_or just generating a heat template, a user should get this template, and execute it himself.07:05
gampelI think so think of volume heat can not generate it some one must copy the data from the backup to the new volume07:05
gampelunless we using Heat to call cider backup07:05
gampelSome of the use cases we got form the product is restore to the same VM07:06
chenying_let me see.07:07
chenying_as yinwei's design    a heat template is a must. all the resources are created by the heat template.07:09
gampel chenying_: lets talk about it latter i think we should add yinwei to this thread07:09
yinweiishereI'm in07:09
yinweiisheregampel_, even restore() produced resource, we can wait until it's available, and make it as a HeatParameter07:10
yinweiishereand thus have its parent to refer it in its heat resource section07:11
gampelto my understanding they could be referenced or created in the heat07:11
yinweiishereheat is able to create volume from backup which means to call cinder backup restore07:11
gampelYes but we will not always have cider in the loop07:11
yinweiishereyes, they're two round trips07:11
gampelI mean you could think of image or volume backup that is not using cinder backup API07:12
yinweiisherefirst round trip: we run task flow to generate heat tempate07:12
gampelThe question  from chenying_ was if we need to return the  heat template07:13
yinweiishereinsid this trip, image/volume backup not using cinder backup API could restore resource synchronously in restore()07:13
gampelI think that this should be internal07:13
yinweiisherepls. wait for my full printing07:13
yinweiishereand the resource they restored in the task flow should encapsulate as a parameter and inject into a shared HeatTemplate07:14
yinweiisherethen its parent task runs to refer the child resource created as parameter to construct parent's heat template07:14
gampelThe question is whether a heat template is an internal mechanism or is it exposed through the API? I believe it is internal and *not* exposed07:15
yinweiisherehmm, I think we could offer options07:15
yinweiishereone option is to restore checkpoint, means generate template and restore the stack07:16
yinweiisheresecond is only export template and user could choose when to restore it.07:16
yinweiishereit's just an action of checkpoint07:16
yinweiishereshould be export checkpoint07:16
yinweiishereexport checkpoint to heat template07:16
gampelLet me try to explain this again since I don07:17
gampel't think I am explaining myself properly07:17
yinweiishereok07:17
yinweiisherego ahead pls.07:17
gampelthere is an asymmetry between the volume and the resources that are created by the heat template07:18
gampelthe process should be driven from one place07:18
gampelusing heat templates we would get a situation where some resources are created by heat and some externally by the protection plugin07:18
yinweiisheregot your point07:19
gampelwhat I want to reach is a design where all resources are created from the same place, otherwise we will not be able to maintain this long term07:19
yinweiishereso 'export checkpoint' is not simply export checkpoint into a yaml file07:20
gampelif heat is internal  we do not have this problem07:20
yinweiisherebut may introduce some real resource creation07:20
yinweiisherebecause we allow 2 ways to restore07:20
yinweiishereok, agree07:20
yinweiishereso we only provide restore option07:21
yinweiisherewe don't allow user to export checkpoint externally07:21
gampelthat's what i think but we should add saggi  and all the others to the loop and get feednacks07:22
yinweiishereconfirm: internally we will create heat template for restore and tolerate two options for restore07:22
gampelchenying_: what do you think07:22
gampel?07:22
yinweiishereyes, saggi has given me some comments on the restore spec07:22
gampelOk i will try to continue going over it today07:23
yinweiisherethanks!07:23
gampelthank you07:23
yinweiisherewe're also looking for python yaml lib to see if it could simplify our parsing work07:23
yinweiisheregampel07:24
yinweiishereone another question07:24
yinweiishereare you still there?07:24
gampelyes i am here07:25
xiangxinyongyinwei: PyYAML>=3.1.0 # MIT07:25
gampelwhat does  heat use07:26
chenying_Ok we can collect other guys's feednacks.07:26
yinweiisheregampel: your are asking me?07:27
gampelyes07:28
yinweiisherewe will have restore() to fill a in memory object HeatResource, and HeatResource will organize fields into dict.  It will use py yaml to dump the internal dict to yaml format stream07:29
yinweiisherexiangxinyong: thanks07:32
gampelok got it07:32
yinweiisherewe will note the version of lib07:32
yinweiisheregampel07:33
gampelany thing else we need to discuss i need to go07:33
yinweiishereone another question07:33
gampelyes sure07:33
yinweiisherecurrently our protection plugin client uses the context passed down by API07:33
yinweiishereincluding the token07:33
gampelyes07:34
yinweiisherethere is one issue, that protection plugin may need check openstack resource status asynchronously07:34
yinweiishereit's possible that the token from API may expire07:34
openstackgerritWeAreFormalGroup proposed openstack/smaug: Implement cinder protection plugin  https://review.openstack.org/28645807:34
gampelyes i see we discuss this with one of cinder cors07:34
yinweiishereyes, plus the token is per tenant while in background we may need admin token to check all resources status07:35
gampelI said there an option in keystone to continue renewing  the keystone session07:35
gampellet me check and i will get back to you07:35
yinweiishereok07:35
yinweiishereno problem07:35
gampelOk we might need a special admin ctx let me check07:36
yinweiishererenew token doesn't work for restore, where restore heat client need token from the target keystone07:37
yinweiishereok07:37
yinweiisheretalk to you later07:37
openstackgerritzengchen proposed openstack/smaug: Implement rpc interfaces of OperationEngine  https://review.openstack.org/29973907:38
gampelPlease vote https://review.openstack.org/#/c/301659/2 we want to  put the python 3 CI in palce07:41
openstackgerritWeAreFormalGroup proposed openstack/smaug: Implement glance protection plugin  https://review.openstack.org/29575207:43
xiangxinyongok08:04
openstackgerritsmile-luobin proposed openstack/smaug: Implement nova protection plugin  https://review.openstack.org/29561808:05
openstackgerritchenying proposed openstack/smaug: Add name property to protectable instances model  https://review.openstack.org/30208608:13
yuvalHey all, please vote for the py3 CI jobs:08:17
yuvalhttps://review.openstack.org/#/c/302072/08:17
yuvaland:08:18
yuvalhttps://review.openstack.org/#/c/301659/08:18
openstackgerritMerged openstack/smaug: Fix python3 compatibility  https://review.openstack.org/30165908:50
openstackgerritzengchen proposed openstack/smaug: Implement RestAPIs of trigger.  https://review.openstack.org/28640608:57
openstackgerritchenying proposed openstack/smaug: Add name property to protectable instances model  https://review.openstack.org/30208609:12
*** gampel2 has joined #openstack-smaug09:14
*** gampel1 has quit IRC09:16
gampelYuli: ping09:21
openstackgerrityinwei proposed openstack/smaug: Restore design spec (protection service level)  https://review.openstack.org/29695009:33
yinweiishereping gampel09:34
yinweiishereyou are looking for me?09:34
yinweiishereJust got message on espace09:34
openstackgerritchenying proposed openstack/smaug: Add show protectables instance endpoint  https://review.openstack.org/30213709:46
openstackgerritchenying proposed openstack/smaug: Add show protectables instance endpoint  https://review.openstack.org/30214409:56
openstackgerritzengchen proposed openstack/smaug: Implement RestAPIs of Scheduled Operation.  https://review.openstack.org/28703610:06
xiangxinyonghello saggi10:44
openstackgerritzengchen proposed openstack/smaug: Implement RestAPIs of Scheduled Operation.  https://review.openstack.org/28703611:01
openstackgerritzengchen proposed openstack/smaug: Implement rpc interfaces of OperationEngine  https://review.openstack.org/29973911:07
openstackgerritzengchen proposed openstack/smaug: Implement executor of OperationEngine  https://review.openstack.org/28226311:30
*** chenhuayi has quit IRC11:57
openstackgerritYuval Brik proposed openstack/smaug: Add project protectable and dependencies  https://review.openstack.org/30221212:27
yuvalCI now runs Python 3 jobs12:37
*** xiangxinyong456 has joined #openstack-smaug12:56
*** xiangxinyong456 has quit IRC13:00
*** yuval has quit IRC13:30
*** Hunter has joined #openstack-smaug13:59
*** Hunter is now known as Guest413514:00
*** Guest4135 has quit IRC14:04
xiangxinyongyuval: :)14:34
*** chenhuayi has joined #openstack-smaug15:15
*** gampel2 has quit IRC15:22
*** chenhuayi has quit IRC16:52

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!