Thursday, 2017-01-12

*** zhurong has joined #senlin00:28
*** yanyanhu has joined #senlin01:23
yanyanhuhi, Qiming, around?01:40
yanyanhuI think we may need to wait more time for our mascot01:40
yanyanhujust got reply from Heidi and she said the design is still in progress01:40
yanyanhuand she said we will get it before PTG01:40
*** wllabs has joined #senlin02:29
*** zhurong has quit IRC03:39
*** Jeffrey4l__ has joined #senlin04:11
*** Jeffrey4l_ has quit IRC04:14
*** wllabs has quit IRC05:31
*** wllabs has joined #senlin05:34
yanyanhuhi, XueFeng, around?05:46
XueFenghi,YanYan05:58
XueFengI have reserved a high-speed rail ticket for tomorrow afternoon.06:01
yanyanhuXueFeng, great, looking forward to see u this weekend :)06:18
yanyanhubtw, if you have time this afternoon, maybe I can give u a simple introduction about setting up gate job06:18
*** zhurong has joined #senlin06:23
XueFengYanYan, now I have time:)06:29
yanyanhuXueFeng, ok, plz give me 10 minutes, will ping you soon :)06:42
XueFengOK06:43
yanyanhuhi, XueFeng, sorry let you wait06:58
yanyanhuso here is the patch I proposed to add senlin functional test06:58
yanyanhuhttps://review.openstack.org/#/c/209736/06:58
XueFengOK, let me see it06:58
yanyanhuyes, and I can give you a simple introduction about it06:59
yanyanhuactually, functional test is one or more jobs running at gate side06:59
yanyanhuthe project maintainers are responsible to define the job(s) and OpenStack CI will run it based on the job description07:00
yanyanhuand the definition of a job is maintained in project-config repo07:01
XueFengIf there are some docs for this?07:01
yanyanhuso if you want to add a new test job at gateside, you need to propose a patch to openstack-infra/project-config07:01
XueFengI see, this patch is propose to openstack-infra/project-config07:02
XueFengs/propose/proposed07:02
yanyanhuXueFeng, not so sure, I tried to search the formal guide, but didn't find it. Of course, that was about 1 and half years ago07:02
yanyanhu:)07:02
yanyanhubut you can find some excellent articles to introduce openstack CI system07:02
yanyanhuwhich are very helpful for you to understand how OpenStack CI works07:03
yanyanhulet me search it for you later07:03
yanyanhuafter introducing the patch :)07:03
XueFenghmm, I see.07:03
yanyanhuhttp://docs.openstack.org/infra/system-config/running-your-own.html07:04
yanyanhuthis is a good one07:04
XueFengOK, this doc seems good07:05
yanyanhuand this is the catalogue for all contents about OpenStack CI07:05
yanyanhuhttp://docs.openstack.org/infra/system-config/07:05
yanyanhuyep, the latter one is even better, just much more huge :)07:05
yanyanhudefinitely worthy to read07:05
yanyanhuok, about the patch07:06
yanyanhuthe first file need to change is "/jenkins/jobs/projects.yaml"07:06
XueFengWill read. So the first thing is to study the patch and the articles07:06
yanyanhuyep07:07
yanyanhuevery projects are required to list the jobs they want to run in gate in projects.yaml07:07
yanyanhue.g. for senlin service, here is the list: http://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/projects.yaml#n1313807:09
yanyanhusomething like "- python-jobs"07:09
yanyanhuor "openstack-releasenotes-jobs" are default jobs which could be run by all projects07:10
yanyanhuand some ones are defined specifically for senlin project, like '{pipeline}-senlin-dsvm-tempest-{test_type}{suffix}'07:10
yanyanhuand '{pipeline}-senlin-dsvm-tempest-{test_type}{suffix}'07:10
yanyanhuthe job name can include a regex07:12
yanyanhue.g. {pipeline}, {test_type}07:12
yanyanhuin tempest test07:13
yanyanhufor example ,test_type can be api, functional, integration07:13
XueFengI see07:13
yanyanhuso basically, this is the place you define which jobs you want to run07:14
yanyanhuwhen a new patch is posted to gerrit07:14
yanyanhuor reverify/recheck is triggered07:14
yanyanhuand for senlinclient, here is the job list07:15
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/projects.yaml#n1236307:15
yanyanhuyou can add functional test job here07:15
yanyanhureferring to the one defined for openstack/senlin project07:15
yanyanhuyou can see, there are only 4 default jobs are enabled currently07:16
yanyanhu    jobs:07:16
yanyanhu      - python-jobs07:16
yanyanhu      - openstack-releasenotes-jobs07:16
yanyanhu      - pypi-jobs07:16
yanyanhu      - translation-jobs07:16
XueFengYes07:16
yanyanhuyou can add one for functional test07:16
yanyanhuok, then lets go to "jenkins/jobs/senlin.yaml"07:17
yanyanhuhere it is07:17
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/senlin.yaml07:17
XueFenggood07:17
yanyanhuhere, job templates are defined for every job you want to run07:17
yanyanhu(of course, for default jobs, we don't need to define them specifically)07:18
yanyanhugate will provide the definition07:18
yanyanhuso we just need to focus on those ones defined for senlin specifically07:18
yanyanhuthe first place need to notice is the job name07:18
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/senlin.yaml#n207:18
yanyanhulike this07:18
XueFengThat is to say, some jobs no need to update templates07:19
yanyanhuit is a regex that must match to the name of those jobs you listed in projects.yaml07:19
yanyanhuXueFeng, yes07:19
XueFengOK07:19
yanyanhuafter I introduce the senlin.yaml file, you will better understand it :)07:20
yanyanhuok, go back to job name07:20
XueFeng:)07:20
yanyanhuactually one job template can be used to match multiple jobs :)07:20
yanyanhubased on the regex07:20
yanyanhufor example, name: '{pipeline}-senlin-dsvm-tempest-{test_type}{suffix}'07:20
yanyanhuit will match both tempest api, functional and integration test jobs07:21
XueFengI see07:21
yanyanhuif you check the job names we defined in projects.yaml :)07:21
yanyanhuusually, we will try to match as many as jobs using a simple template07:22
yanyanhuto reduce the code duplication07:22
yanyanhuhowever, if you find it is really difficult to match a new job logic into any existing template, it's fine to define a new ont07:22
yanyanhus/ont/one07:22
XueFengOK07:22
yanyanhuok, so let check the content of the template07:23
yanyanhumost part are the same for all test jobs07:23
yanyanhuwe just need to pay more attention on those places need to customize07:23
yanyanhue.g. timeout: 13007:23
XueFengI see07:24
yanyanhuand the most important part is the -shell section07:24
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/senlin.yaml#n1407:24
yanyanhuhere07:24
XueFenggot it07:24
yanyanhuif you have installed openstack using devstack, you may have understood what it is for :)07:24
yanyanhubasically, it is for setting up the devstack options and environment variables to let devstack-gate to know which services you want to enable during the test07:25
yanyanhuand where to get them07:25
yanyanhujust like what we do manually before running devstack locally07:26
XueFengYes, not very diffculty07:26
yanyanhuyep07:26
yanyanhue.g. tempest is enabled: http://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/senlin.yaml#n1907:26
yanyanhusenlin is enabled too :)07:27
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/senlin.yaml#n2307:27
yanyanhufor we are adding a test job for senlinclient, so I think you need to add senlinclient to the enabled service list07:27
yanyanhuas a plugin as what we did for other service, like heat, zaqar07:28
yanyanhuyou can also refer to the job templates of those services who have already enabled functional test for client07:30
yanyanhulike heat, http://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/heat.yaml#n18907:30
XueFengAlso add senlinclient plugin in senlin.yaml?07:30
XueFengCan't found selinclient.yaml07:31
yanyanhuyes, add senlinclient plugin07:31
yanyanhuno need to add senlinclient.yaml07:31
yanyanhujust defining a new job in senlin.yaml is ok07:31
XueFengOK07:32
yanyanhuI think this is a good example07:32
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/heat.yaml#n18907:32
yanyanhuanother place need to pay attention is here: http://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/senlin.yaml#n5007:33
yanyanhudevstack-gate allows you to define hooks which will be run BEFORE and AFTER devstack installation07:34
yanyanhuso this one is pre-test-hook07:34
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/senlin.yaml#n5007:34
XueFengI see07:34
yanyanhuand this is the posr-test-one07:34
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/senlin.yaml#n5607:34
XueFengOK07:35
yanyanhuhere is the pre_test_hook defined in senlin repo07:35
yanyanhuhttp://git.openstack.org/cgit/openstack/senlin/tree/senlin/tests/tempest/pre_test_hook.sh07:35
XueFengAsk a question, where is the server to run the job?07:35
yanyanhuactually this script customizes the local.conf07:36
yanyanhuwhich will be used by devstack during installation07:36
yanyanhuXueFeng, oh, those servers are maintained by infrastructure team07:36
yanyanhuand are donated by different sponsors07:36
yanyanhuto support OpenStack CI07:36
yanyanhuthat is a great system :)07:36
yanyanhuvery execllent07:37
XueFengOK07:37
XueFeng:)07:37
yanyanhufor project maintainer, we don't need to worry about it :)07:37
XueFengGot it07:37
yanyanhuwe just need to know gate will perform test jobs per our requests07:38
yanyanhuoh, of course, for the resource is limitation, so we should consider carefully to reduce the overhead of running test as much as possible07:38
yanyanhue.g. for doc related change, we don't need to run api / functional test :)07:39
yanyanhuand if we only need to test senlin and senlinclient, we don't need to install some services unrelated07:39
XueFengI see.07:39
yanyanhugreat :)07:39
yanyanhuso this is the job template07:39
yanyanhuoh, sorry forgot the post_test_hook script07:40
yanyanhuthis one07:40
yanyanhuhttp://git.openstack.org/cgit/openstack/senlin/tree/senlin/tests/tempest/post_test_hook.sh07:40
yanyanhuthis script will be run AFTER devstack installation is done at gate side, but BEFORE test job is running07:41
yanyanhufor senlin test, there is no special operation need to do, we just export some standard path and source openrc07:42
XueFengHmm, the script is in  the same directory with senlin.yaml07:42
yanyanhuyou mean this script?07:42
yanyanhuhttp://git.openstack.org/cgit/openstack/senlin/tree/senlin/tests/tempest/post_test_hook.sh07:42
yanyanhuno, those two scripts are defined in senlin rpo07:42
yanyanhurepo07:42
XueFengOh ,no .There is a cd command07:42
yanyanhuyes, devstack-gate will git clone senlin repo first07:43
yanyanhuand then jump to the dir for the scripts07:43
XueFengOK07:43
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/senlin.yaml#n5107:43
yanyanhuhere07:43
yanyanhuok, so after job template is defined, the patch have almost been done07:44
yanyanhuthe last thing is to change zuul/layout.yaml07:44
XueFengyes07:44
yanyanhuthis file defines the rule to run each job07:45
yanyanhue.g. for senlin07:45
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/zuul/layout.yaml#n1659007:45
yanyanhuthere are several sections here07:45
yanyanhutemplate is the default one07:46
yanyanhucheck is for the first time patch is proposed and also recheck is triggered07:46
yanyanhugate is for workflow is triggered(in case you workflow+1 a patch :)07:46
yanyanhuand experimental is for the case "check experimental" is triggered in gerrit review07:47
yanyanhuso these are different timings to run test jobs07:47
yanyanhuand for senlin, these file jobs will be run if a new patchset is proposed or recheck is triggered:07:48
yanyanhu      - senlin-coverage-ubuntu-trusty07:48
yanyanhu      - senlin-coverage-ubuntu-xenial07:48
yanyanhu      - gate-senlin-dsvm-tempest-api07:48
yanyanhu      - gate-senlin-dsvm-tempest-functional07:48
yanyanhu      - gate-senlin-dsvm-tempest-integration-nv07:48
yanyanhus/file/five07:48
yanyanhuand for workflow +1, we only run these two extra jobs:07:48
yanyanhu      - gate-senlin-dsvm-tempest-api07:48
yanyanhu      - gate-senlin-dsvm-tempest-functional07:48
XueFengGot it07:48
yanyanhuthose jobs defined in "template" section will always be run07:49
yanyanhuyou can see, for senlinclient, we just run default jobs07:49
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/zuul/layout.yaml#n1583407:49
yanyanhuwhat we need to do is adding functional test for check/gate07:50
yanyanhuof course, at the beginning, you'd better add functional test job for senlinclient to "experimental" section07:50
yanyanhuthen you can manually trigger it and verify it works as expected07:50
yanyanhuafter you can ensure it works well, you can move it from experimental section to check and gate sections07:51
openstackgerritMerged openstack/senlin: Bump API micro-version to 1.5  https://review.openstack.org/41777107:51
XueFengOK07:51
yanyanhuanother thing need attention is all jobs by default will VOTE for a change07:52
XueFengYes07:52
yanyanhuthat means, once that test fails, jenkins will mark a patch to verify failure status07:53
yanyanhuso you can change the vote status of a job to FALSE07:53
yanyanhuto avoid it blocks the gate07:53
yanyanhulike this07:53
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/zuul/layout.yaml#n193507:53
yanyanhuthe job name also includes regex for matching07:54
yanyanhuonce you want it to vote, you can just remove this definition07:54
XueFengOk, need set False before new gate can be ran ok.07:55
yanyanhuanother useful feature is running test jobs with filter07:55
yanyanhuXueFeng, exactly07:55
yanyanhulook at here07:55
yanyanhuhttp://git.openstack.org/cgit/openstack-infra/project-config/tree/zuul/layout.yaml#n323907:55
yanyanhuthis definition means the senlin tempest test jobs will be skipped once the change is made on the following files07:56
yanyanhuthat is what I said, we don't need to perform tempest test for doc only changes :)07:57
XueFengI see07:57
yanyanhuso, that's all I know about how to setup test jobs in gate :)07:58
yanyanhuyou can have a try07:59
XueFengOK, thanks YanYan.07:59
yanyanhuand please ping me if you meet any further issues07:59
yanyanhumy pleasure :)07:59
yanyanhuit could cost a while for setting up the job successfully07:59
yanyanhufor it is not easy to verify it locally07:59
XueFengYes08:00
yanyanhuso before the patch works, you'd better to mark it as workflow -108:00
XueFengWill try ASAP08:00
yanyanhuto reduce the review overhead of infra team08:00
XueFengOK08:00
yanyanhuXueFeng, great, thanks a lot for working on this :)08:00
XueFengYanYan, thanks for detailing explanation again.If there is any question will ping you again:)08:03
yanyanhuXueFeng, ok :)08:04
*** guoshan has joined #senlin08:08
ruijiehi yanyanhu, noticed you just talked about the test jobs08:10
ruijieI saw an new workitem in etherpad which is about improving the tempest api test08:11
openstackgerritXueFeng Liu proposed openstack/senlin: Fix cluster-check cannot work problem  https://review.openstack.org/41769708:12
openstackgerritXueFeng Liu proposed openstack/senlin: Fix cluster-check cannot work problem  https://review.openstack.org/41769708:17
yanyanhuhi, ruijie, sorry just left for a while08:23
yanyanhuyes, there is a work item for enhancing tempest api test08:23
yanyanhubut didn't got time to work on it08:23
yanyanhuthe basic idea is adding the exception message verification to ensure the exception raised is what we expect08:24
ruijieyes yanyanhu08:25
ruijieI mean we are using the tempest lib08:25
ruijiethe exception types in that lib may not match what we are using in Senlin08:26
ruijieso we just assert the message raised, but not the exception types, right?08:26
yanyanhuruijie, yes, that is a potential issue. actually tempest rest client will make exception convert08:26
yanyanhuruijie, actually we want to verify the exception message :)08:27
yanyanhusince it contains more information08:27
ruijieseems not a hard work :)08:28
yanyanhue.g. exception message of a failed scaling request could include the following string "The target capacity (%(d)s) is less than the cluster's min_size (%(m)s)."08:28
yanyanhuwe just need to match it08:28
yanyanhuruijie, yes, technically, not difficult :)08:28
yanyanhujust need to tell those different failure reasons08:29
ruijieokay yanyanhu08:29
ruijieand btw, out meetup is a team meeting or and public meeting?08:30
ruijieour :)08:30
yanyanhua team meeting, but anyone who are interested in are welcome to join08:30
yanyanhu:)08:30
yanyanhuso you can treat it as a public meeting as well :)08:31
yanyanhujust we don't make advertisement :)08:31
ruijiethanks yanyanhu, cz one of my colleagues want to join, but I am not sure if it is an public one :)08:32
yanyanhudefinitely welcome :)08:32
yanyanhuso please encourage them to come and discuss with us08:32
ruijiethanks yanyanhu, will tell him this msg :)08:33
yanyanhugreat, thanks08:33
*** lixinhui has quit IRC09:21
wllabsnewton verstion of heat don't have LBaaS resource type ?09:28
*** zhurong has quit IRC09:44
*** yanyanhu has quit IRC09:54
*** AlexeyAbashkin has joined #senlin10:17
*** zhurong has joined #senlin10:25
*** elynn__ has quit IRC10:39
*** Jeffrey4l__ is now known as Jeffrey4l10:58
*** guoshan has quit IRC10:59
*** zhurong has quit IRC11:15
*** guoshan has joined #senlin12:00
*** guoshan has quit IRC12:04
openstackgerritXueFeng Liu proposed openstack/senlin: Fix cluster-check cannot work problem  https://review.openstack.org/41769712:19
wllabsi am attach senlin.policy.health to cluster, then nova delete node,12:55
wllabsthe health policy don't react12:55
wllabswhy?12:56
Qimingwllabs, it could be that nova didn't emit events13:12
Qimingit could be you have things misconfigured in health policy13:13
*** ruijie has quit IRC13:15
*** AlexeyAbashkin has quit IRC13:59
*** guoshan has joined #senlin14:01
*** AlexeyAbashkin has joined #senlin14:02
*** guoshan has quit IRC14:05
*** wllabs has quit IRC14:14
*** AlexeyAbashkin has quit IRC14:45
*** AlexeyAbashkin has joined #senlin15:28
*** ruijie has joined #senlin15:39
*** AlexeyAbashkin has quit IRC16:27
*** Drago has joined #senlin16:37
*** AlexeyAbashkin has joined #senlin17:59
*** openstackgerrit has quit IRC18:33
*** AlexeyAbashkin has quit IRC18:55
*** AlexeyAbashkin has joined #senlin18:59
*** AlexeyAbashkin has quit IRC19:01
*** guoshan has joined #senlin19:05
*** guoshan has quit IRC19:10
-openstackstatus- NOTICE: Gerrit will be offline between now and 20:30 for scheduled maintenance: http://lists.openstack.org/pipermail/openstack-dev/2017-January/109910.html20:11
*** ChanServ changes topic to "Gerrit will be offline between now and 20:30 for scheduled maintenance: http://lists.openstack.org/pipermail/openstack-dev/2017-January/109910.html"20:11
-openstackstatus- NOTICE: Updated: Gerrit will be offline until 20:45 for scheduled maintenance (running longer than anticipated): http://lists.openstack.org/pipermail/openstack-dev/2017-January/109910.html20:36
*** ChanServ changes topic to "Updated: Gerrit will be offline until 20:45 for scheduled maintenance (running longer than anticipated): http://lists.openstack.org/pipermail/openstack-dev/2017-January/109910.html"20:36
*** AlexeyAbashkin has joined #senlin20:44
*** ChanServ changes topic to "IRCLog: http://eavesdrop.openstack.org/irclogs/%23senlin/ | Bugs: bugs.launchpad.net/senlin | Review: https://review.openstack.org/#/q/project:openstack/senlin,n,z"20:54
*** AlexeyAbashkin has quit IRC20:59
*** Jeffrey4l has quit IRC21:34
*** Drago has quit IRC22:37
*** Drago has joined #senlin23:08
*** Jeffrey4l has joined #senlin23:37

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