13:00:35 #startmeeting senlin 13:00:36 Meeting started Tue May 31 13:00:35 2016 UTC and is due to finish in 60 minutes. The chair is Qiming. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:00:37 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 13:00:39 The meeting name has been set to 'senlin' 13:00:56 evening 13:01:07 hi 13:01:15 o/ 13:02:01 #topic newton work items 13:02:20 yanyan won't be able to join today duing family reasons 13:02:32 tempest 13:02:50 tempest api gate job is enabled 13:02:57 gate job added and enabled as experimental, yes 13:03:00 in experimental queue 13:03:09 removing line 6-7 13:03:16 negative tests are slow... 13:03:34 event show test is in, right? 13:03:39 yes 13:04:10 I will continue negative tests during my part time. 13:04:14 I suggest we do finer granularity test for cluster actions 13:04:52 one of the reasons we didn't document api using openapi is that we have many cluster actions, all on the same uri 13:05:33 So you suggest to test rest cluster actions? 13:05:43 those actions differ from each other regarding parameters, better test each and every of them because they are all different apis 13:06:22 yes, cluster_add_node cluster_del_node cluster_resize ... etc 13:06:41 Okay, I will work on them. 13:06:48 Do we need to test all parameters? 13:06:51 thanks 13:06:58 for each cluster action 13:07:05 by the way, I spent quite some time rework the tempest test cases 13:07:34 I saw that, you move some functions to util.py 13:07:48 separating util functions out; and use setUp and addCleanup for test case preparation 13:07:53 Thanks for doing that! 13:08:08 I don't get the idea of doing resource_setup classmethod calls 13:08:38 it is very cumbersome to do cls.profile = ... then later reference it as self.profile 13:09:01 Yes, I thought it's weird... 13:09:05 I think adding new ones would be much easier now 13:09:10 Most of them are classmethod... 13:09:37 Thanks for that job 13:09:43 I started trying on a few of them and it worked, so I extended the revision to all tests 13:10:00 I have removed some validations after api triggering 13:10:26 because they were making the api test impure, i.e. making them more like functional tests 13:11:02 Saw that too, some of tests are using two or more API in one test. 13:11:13 once the whole collection of api tests are in place, we may want to make the gate voting 13:11:31 I will follow your mofication to add new tests. 13:11:34 or, maybe we can enable it now 13:11:39 thanks 13:12:03 Okay, I will submit a patch to enable it later :) 13:12:08 lixinhui_, there? 13:12:17 Yes, Qiming 13:12:31 hi, any news from stess tests? 13:12:46 Sorry, Qiming 13:12:50 np 13:13:00 good news is that #138453 is in 13:13:06 We are stilling focus to intergate the Senlin with VIO 2.5 13:13:26 now we can add some more rally tests when yanyan gets cycles 13:13:27 but I am thinking to delay it 13:14:16 okay, let's switch to that later 13:14:35 health management ... no progress last week 13:14:47 not really 13:14:50 Qiming 13:14:57 I am thinking 13:15:13 i have refactored the health_manager code last week, to make room for event listener 13:15:17 oh? 13:15:17 to use heat stack installing the linux ha 13:15:19 agent 13:15:41 into vm instances? 13:15:52 is that a right way to think that? 13:15:55 yes 13:15:59 to help fencing 13:16:00 that is one option 13:16:20 fencing has to be done on physical servers, which is beyond heat control 13:16:30 do we have other choice? 13:16:55 I know 13:17:09 just still need to install a agent in the vm 13:17:17 for vm level control, right? 13:17:22 I have am impression that nova has some work on fencing interface, but cannot recall the details at the moment 13:17:43 did get any info about that 13:17:48 did not 13:17:48 ... I am not a fan of installing things into VMs 13:18:04 not at this stage at least 13:18:04 I see 13:18:26 so I am trying to know if any other choice 13:18:27 our next topic on agenda will touch this topic 13:18:32 okay 13:18:45 okay 13:18:50 go head 13:19:07 no comment received on the senlin-ha-recover etherpad 13:19:11 moving on 13:19:39 no news about documentation last week, we have done api-ref migration I believe 13:19:50 the new site is up and looks great so far 13:20:02 container support 13:20:19 yes, i am working on adding docker driver 13:20:28 saw that, xuhaiwei__ 13:20:29 thanks 13:21:00 need to get the ip from nova server 13:21:08 let's see if our driver work can help shape the API design of higgins 13:21:36 yes, you will get that info 13:21:37 currently I am concerning about one thing 13:21:47 when node-create, or cluster-create is triggered 13:21:59 the profile will get those information filled in 13:22:23 that is Senlin supports two kinds of nodes, nova server and heat stack, heat stack node can contain more than one nova server 13:22:27 it is like the region_name, scheduler_hints we fed to nova server 13:22:57 then we don't support specifying a heat stack cluster as the hosting cluster for containers 13:23:22 that is the easy, quick decision 13:23:40 ok 13:23:51 in the long run, I think we can re-enable heat stack clusters to play this role, provided it has a OS::Server output 13:24:01 maybe for the first step, we care about nova server node only 13:24:23 I have an impression that a heat stack has a secret output attribute allowing to treat that stack as a nova server 13:24:40 if you really need that, please dig it out 13:24:51 as the first step, it is fine 13:25:18 will take a look at the driver code and think about it, ... how can we generalize that 13:25:36 no progress on engine work 13:25:39 In fact when I did the demo for the summit session, I used heat stack output directly to get the server's ip 13:25:52 yes, it is possible 13:26:06 it's convenient 13:26:20 so long as we controle the heat template ... to ensure that the template has server ip in its output 13:26:51 please keep on exploring that 13:26:52 yes, that's kind of forcing user to do it 13:27:03 and feel free to call for discussions on details 13:27:12 ok 13:27:18 it is not generic, but still doable, :) 13:27:36 yes 13:27:44 zaqar support, em ... I'm thinking if we can get some support from fei long on that 13:28:12 there have been a spec proposal 13:28:13 https://review.openstack.org/#/c/318202/3/specs/newton/mistral-notifications.rst 13:28:50 haven't got time to catch up on the review history 13:29:11 if you are interested in connecting the dots, that might be an interesting thread to follow 13:29:25 moving on 13:29:32 event/notifications 13:29:46 that is a big topic than I imagined 13:30:17 so after reading the nova specs, I figured that we need to get oslo.versionedobject landed first 13:30:38 all senlin db objects then can be represented as a versioned object 13:31:12 we can isolate the db changes from senlin-engine/senlin-api, so in future, live upgrade of the service is possible 13:32:06 when working on that, I was also hoping that we can use o.vo to model API requests which should be versioned as well, and notifications, which needs version too 13:32:58 notification's priority is higher than requests because we got requirements to notify other software what happened in senlin 13:33:27 that is a key interface for integrating with existing software 13:33:41 will keep working on that in coming weeks 13:33:58 so ... that's all from the agenda 13:34:09 the first topic 13:34:21 questions/comments? 13:35:13 while implementing the o.vo, there were two blockers ... 13:35:22 can share with you as experiences 13:35:41 That's great! 13:35:44 one is that many database are storing DateTime fields without time zone info 13:35:51 including mysql 13:36:15 but o.vo is forcing the DateTimeField to carry TZ info by default 13:36:47 to solve this conflict, you can either turn off TZ in o.vo, or enable TZ at sqlalchemy layer 13:36:55 I chose the latter 13:37:33 another one is about obj_name, which was a column in the event table in senlin db 13:37:53 but o.vo VersionedObject has a obj_name method 13:38:02 yes, the same name 13:38:13 Then?... 13:38:16 so we had to change to db schema to make things smooth 13:38:44 that is reason why we have version 5 of db migration 13:39:06 we changed obj_id, obj_name, and obj_type to oid, oname and otype correspondingly 13:39:33 still working on some complaints about some IDs not being UUID format 13:39:53 but anyway, stricter checkings do help make the code stable 13:40:07 #topic senlin cluster-do operation 13:40:35 during a discussion with lixinhui_ and a long 4.5 hours meeting today with a customer 13:40:58 I'm feeling an urgent need to add the cluster_do operation to senlin-api 13:41:22 what is it? 13:41:44 in general, it is an API that allows users to do things they want on all or some specific nodes in a cluster (focus on nova server cluster now) 13:42:13 I'm thinking of three layers of "things to do" at the moment 13:42:43 layer one: operations exposed by the backend drivers, thus implementable in senlin profiles 13:43:02 e.g. nova evacuate, nova reboot, nova shelf, ... 13:43:24 these operations are specific to a profile type 13:43:40 e.g. 'evacuate' only makes sense to nova servers 13:44:21 we can augment senlin profile types by adding an 'operations' property that captures the operations a backend can understand 13:44:30 then a user can do this: 13:44:46 senlin cluster-do evacuate 13:44:50 or 13:45:13 senlin cluster-do evacuate --role blue_region 13:45:40 sounds reasonable 13:45:54 it is a batch operation you can perform on a cluster, and the operation logic is programmed into the profile type implementation 13:46:28 layer two: run some user specified scripts on a cluster (still nova cluster here) 13:46:59 senlin cluster-do --script 13:47:41 senlin can take the specified script and scp that code to each and every cluster node, and ssh to those nodes for execution 13:48:16 it is a generic logic, that can be used to run any shell scripts 13:48:48 its function is comparable to the software-config and software-deployment, but with less constraints 13:49:24 layer three: enable senlin to run a ansible playbook directly 13:50:01 senlin cluster-do --playbook install_mysql_cluster.yml 13:50:41 behind the scene, you can imagine, senlin is calling ansible to run the playbooks 13:51:24 very useful 13:52:00 this is a measure to save those guys trapped by heat softwareconfig/deployments 13:52:23 we have been working with them a long time ago to set up a multi-tiered enterprise application 13:53:02 at least layer one and layer two will be useful for your use case, lixinhui_, right? 13:53:18 to be honesty 13:53:27 I wanna layer3 13:53:36 :D 13:53:37 or a super CLI 13:54:03 you know 13:54:10 install some agent 13:54:17 or remove some gent 13:54:57 yes, it would be very useful and very convenient to provision application HA 13:55:46 :) 13:56:14 I have already tried to invoke ansible from a python program ... it works 13:56:22 cool 13:56:31 though I need to figure out how to manage the keys 13:56:57 I'm not a super fan of layer 3, to be honest 13:57:22 reasons 13:57:28 it sounds a wrapper to ansible, if users already have some ansible playbooks, they may want to use ansible directly 13:57:35 yes 13:58:29 the advantage of layer 3 ... is that with such an API, it can be exposed to horizon 13:58:46 yes 13:58:54 a user can paste their playbook directly into the web page 13:59:11 or the link to the playbook to the web page, and click 'run', :) 13:59:21 oh ... time's up 13:59:27 ... 13:59:27 have to free the channel 13:59:38 okay, talk more tomorrow 13:59:42 thanks for your time, guys, you are always good listeners, :D 13:59:48 good night 13:59:55 #endmeeting