16:01:01 #startmeeting fuel 16:01:01 #chair xarses 16:01:02 Todays Agenda: 16:01:02 #link https://etherpad.openstack.org/p/fuel-weekly-meeting-agenda 16:01:02 Who's here? 16:01:02 Meeting started Thu Aug 4 16:01:01 2016 UTC and is due to finish in 60 minutes. The chair is xarses. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:01:03 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:01:05 The meeting name has been set to 'fuel' 16:01:06 hi 16:01:06 Current chairs: xarses 16:01:07 o/ thanks 16:01:10 hello 16:01:12 hi 16:01:12 o/ 16:01:13 o/ 16:01:14 Hi 16:01:16 Hi! 16:01:32 hi 16:01:38 Hi! 16:01:58 hi 16:02:23 #topic CSV and YAML output from handlers in nailgun (https://blueprints.launchpad.net/fuel/+spec/ui-deployment-history) (dguryanov) 16:02:41 o/ 16:03:10 oops, looks like dguryanov2 is afk 16:03:17 Hi! 16:03:20 ok 16:03:37 #topic Removing old fuel CLI (romcheg) 16:03:45 Hi everyone! 16:03:48 About CSV format! 16:04:02 dguryanov2: we'll come back 16:04:02 I let's allow dguryanov2 to comment on his topic 16:04:09 dguryanov2: let's postpone your topic 16:04:09 erm hang on then 16:04:17 #topic CSV and YAML output from handlers in nailgun (https://blueprints.launchpad.net/fuel/+spec/ui-deployment-history) (dguryanov) 16:04:22 ok, go ahead 16:04:27 Thanks! 16:04:47 I have 2 patches, one of them splits decorator @content 16:05:36 Into the one, which handles http errors, second does validation and the last one converts return value from hanlders to string 16:05:51 could you please share links to the patches? 16:05:54 And second patch adds support of CSV format 16:05:57 Sure 16:06:09 Hi! 16:06:11 https://review.openstack.org/346957 and https://review.openstack.org/348419 16:07:05 I've also added ability to export data in YAML, if client provides header Accept: application/x-yaml 16:07:05 so looks like splitting decorator is refactoring 16:07:29 and it isn;t directly related to CSV export 16:07:43 remember, we are now under xenial code freeze (no mergers until freeze is lifted) 16:08:19 Yes, it's sort of refactoring, but it's much erasier to implement CSV with this patch 16:08:33 so what do you need from the group? 16:08:47 refactoring is welcome, of course if you have enough time 16:09:06 Yes, without this refactoring we have all output logic melted in the @content decorator and it's hard to aply only part of the @content logic. 16:09:50 kozhukalov: The patch is ready for review 16:09:55 ikutukov: dguryanov2 please just make sure we don't introduce any regressions, please build custom bvt and run some tests 16:10:04 second patch failed to pass pep8 16:10:24 kozhukalov: I'll fix it today 16:10:28 We have a capacity reports handler with existing and very custom CSV output implementation. Does anyone know do we have to support this function or not? 16:10:39 Who use this? 16:11:17 maximov: no need to build custom bvt, we run deployment tests on every nailgun patch 16:11:18 I was wondering why we support multiple output's in api too, I figured the client would convert it 16:12:23 dguryanov2: what is the ask from the group here? 16:12:31 xarses: fuel ui is another client, i don't consider a good idea to implement convertion to yaml on the client side 16:13:28 xarses: just wanted to discuss implemented approach and ask to review :) 16:13:29 my 50 cent is that we are about to introduce a layer violation 16:13:31 in this case we have to re-implement serialisation on each client. Moreover json->yaml->json is possible to automatically without any logic, but in many cases it is not possible to convert json(tree structure) to CSV automatically having usable output. 16:14:05 Layer of client or Nailgun? ) 16:14:45 API is responsible for taking data from users and returning a result 16:15:03 why should it care about how user needs to convert that data? 16:15:34 mvc 16:15:58 I remember we had a lot of problems supporting this feature in Neutron 16:16:02 because many products providing API do, we are slightly boosting integration ability with relatively no cost. 16:16:06 why do you think it is a layer violation& 16:16:10 why do you think it is a layer violation? 16:16:45 moving on? 16:16:49 we need to move along 16:16:58 ikutukov: regarding capacity report, I don't know actually, maybe we need to consider removing this capacity report feature if nobody uses it. I don't remember any feedback about it. can you send a link to this handler, just want to check? 16:17:02 we can discuss more in #fuel or on the ML 16:17:08 kk 16:17:16 ok, let's move on 16:17:17 ... or moving to extension/plugin 16:17:30 #topic Removing old fuel CLI (romcheg) 16:17:31 lets shift that to #fuel or to the ml 16:17:58 So I've just realized I cleared my buffer so I have to type that again :) 16:18:12 https://github.com/openstack/fuel-web/blob/acbb7370052ffb4526429b4255f26a9c13d4e7c7/nailgun/nailgun/api/v1/handlers/capacity.py#L105 16:18:32 I would like to announce we have finally found resources to consolidate features from the old and the new CLIs 16:18:43 \o/ 16:19:08 that is awesome 16:19:10 so what are the plans there? 16:19:19 As the result will have 'fuel' command that will start the new cliff based application which is now available as fuel2 16:19:51 The first step is to implement several commands in fuel2 that are still missing 16:20:18 That is mostly done. The patches that are to merge are available under the deprecate_old_cli topic in Gerrit 16:20:52 I work closely with the QA team to resolve any dependencies and remove the old CLI on the next week 16:20:57 #link https://review.openstack.org/#/q/topic:deprecate_old_cli,n,z 16:21:04 xarses: thanks! 16:21:07 romcheg: great, awesome news! Are we going to land it in 9.1? 16:21:15 ashtokolov: yes we are 16:21:24 thanks! 16:21:30 romcheg: some of our users tends to use fuel client for automation purposes and their automation scripts depend on fuel cli and even depend on output of particular commands 16:21:41 #note If someone has their scripts that use the old fuel command, it's time to update them 16:22:02 maximov: old fuel cli is still installable from PyPi 16:22:05 maximov: it's a wrong approach to use CLI for it, they should use API 16:22:10 first we need to land it onto master and then onto mitaka 16:22:37 did we explicitly mention it in spec that old cli will be deprecated in newton ? 16:22:47 there is no spec for this 16:22:52 ashtokolov: no, you are wrong 16:23:04 ashtokolov: we didn't document our API unfortinatly 16:23:19 client's intent is exactly to provide python binding to API 16:23:19 maximov: probably not 16:23:21 I mean, there is a spec, but it is old and it says that the old CLI is going to be removed soon 16:23:24 romcheg: we need to create spec which reflects all these details 16:24:09 romcheg: ok, but if we are ready to get rid of old cli then let's have this spec "deprecation of old fuel cli" 16:24:12 kozhukalov: the CLI output can be changed, but API should be backward compatible 16:24:53 yes, i mean CLI is optional, CLI itself uses python binding to API 16:24:54 ok, romcheg do you have good idea of the next steps? 16:25:08 maximov: ok, probably it's a good idea, at least we will be able to create a table with old and new commands 16:25:21 yes, users should use python not shell commands if they do automation 16:25:24 romcheg: yes. 16:25:32 ashtokolov: our API is not documented so it is hard to use it 16:25:44 but not REST directly 16:25:56 I will comment on API vs shell later 16:25:59 re: steps 16:26:07 maximov: that's the problem, but not the CLI backward compatibility 16:26:15 Wi are trying to merge remaining patches ASAP 16:26:51 then I help the QA team to update fuel-qa and then we get rid of the old CLI 16:26:53 guys, let's not worry about CLI / python bindings / API users will use what they do 16:26:54 in master 16:27:14 romcheg: we probably have to keep it for newton if we didn't mark it as deprecated 16:27:15 romcheg only after xenial code freeze is lifted 16:27:37 kozhukalov: is that code freeze relevant to python-fuelclient? 16:27:43 kozhukalov: we are very close to lift freeze, I guess it will happen tomorrow 16:27:55 re: API 16:28:44 to avoid any ambigoities, yes 16:28:53 the new fuel client also provides convenient API wrapper that allows to use python-fuelclient as a library, supports parallel connections and does more useful stuff as for a library 16:29:01 kozhukalov: makes sense 16:29:57 It ever supports API versioning (which is pretty useless now) :) 16:30:11 ok, moving on? 16:30:16 +1 16:30:23 #topic Discuss http://lists.openstack.org/pipermail/openstack-dev/2016-June/097558.html [openstack-dev] [Fuel] It is impossible to queue UpdateDnsmasqTask (gkibardin) 16:30:25 romcheg: thanks for update 16:30:36 16:30:36 I sent this http://lists.openstack.org/pipermail/openstack-dev/2016-June/097558.html some time ago but almost nobody has shown any particular interest so I've decided to bump it here. I need more input to make a decision, probably more ways to solve the problem. The option 1 is considered a mitigation not a fix. The option 4, as it turned out, doesn't work. 16:31:07 so any input is welcome 16:32:17 gkibardin: can you provide example (scenario) when user can run into this issue? 16:32:31 delete two clusters near the same time? 16:32:39 exactly 16:33:04 maybe it is easier just to prohibit deletion of two cluster in parallel 16:33:20 it isn't very frequent operations 16:33:28 with an error "come again later"? 16:33:55 I agree this doesn't happen frequently 16:33:55 maximov: that would be weird from api point of view 16:34:09 however, we may face other problems 16:34:12 from UI we can just show error message instantly 16:34:27 with master node tasks from different env clashing 16:35:01 solution 1 suggest to put the second env to an error state 16:35:08 so that it could be retried later 16:35:28 shouldn't we just prevent the master node from running more than one task at a time 16:35:37 maybe to update dnsmasq via dbus 16:35:59 that would be much more reliable (no need to restart) 16:36:09 yes, it is option 2 - queue things in Nailgun 16:36:50 gkibardin: what if I cancel operation 16:36:58 what queue?! 16:37:30 maximov: you mean in case it clashes with another one? 16:38:02 ikutukov: we need to either queue clashing operation or report an error 16:38:09 if you queue something (some task) and then you cancel deployment you should remove this task from queue 16:38:16 how does the flow work now? isn't the task sent to amqp and picked up by astute anyway? and astute runs in on the master node? 16:38:18 sure 16:38:45 xarces: yes 16:38:51 but Nailgun prevent this 16:39:12 why? won't astute just queue it because the master executor is busy? 16:39:18 two UpdateDnsmask tasks to run at the same time 16:39:34 astute doesn't queue it, it executes them in parallel 16:40:01 and this may cause problems 16:40:10 hmm, seems that it shouldn't 16:40:10 what we do in UpdateDnsmask ? 16:40:26 exactly 16:40:36 update the dhcp pool data in /etc/cobbler/dnsmasq.template 16:40:49 yes, using puppet 16:41:02 and uploading a network list before that 16:41:03 based on cfg for multiple fwadmin networks 16:42:23 it seems like we should fix astute to be globally sensative to number of parallel execution on master node in some cases 16:42:43 this is option 3 16:42:46 and nailgun should tell astute that this task can only run one at a time 16:43:19 the only downside - it is relatively hard to implement 16:43:33 astute spawn several workers 16:43:43 they know nothing about each other 16:43:51 looks like we need synchronization primitive for syncing tasks for different clusters 16:43:54 but we can give it this context in the deployment graph 16:44:04 why cant we do that here? 16:44:26 like yaql 16:44:50 yes, i mean in graph 16:45:08 well, we could just send a magic cluster ID for stuff that isn't really bound to a cluster so it can sort them with out too much change 16:45:12 yes, we can mark it with some tag in a graph so that asutute queue all tasks with the same tag 16:46:02 yes, its also an option ashtokolov proposed to use cluster_id 0 16:46:55 gkibardin: ok, looks reasonable. what are drawbacks? 16:47:28 astute gets more complicated, its workers must synchornize somehow 16:47:49 but it is feasible 16:48:02 gkibardin: we often use cluster_id=0 in tests, so we should use it carrefully 16:48:34 let's use id=-1 then 16:48:37 ashtokolov: well, we can use -1 16:48:38 ashtokolov: I would also think about avoiding using cluster id 16:48:45 ))) 16:49:07 +1 to -1 ;) 16:49:21 but anyway, these are details, I like that we almost agreed on choosing at least a direction 16:49:55 gkibardin: so lets look more at trying to fix astute, it seems like the correct place 16:50:10 don't shift the range of identifiers, please) 16:50:22 moving on? 16:50:33 ikutukov: I'll try 16:50:38 yes, thanks everybody! 16:50:53 #topic http://bit.ly/1RD6JLR need review 16:51:05 dpyzhov: is this part of your topic? 16:51:12 nope 16:51:19 it is mine 16:51:21 k 16:51:41 it is just a link to review requests that need attention 16:51:50 please help to review 16:51:54 thanks 16:52:02 ya, there are a lot open =) 16:52:12 or =/ evne 16:52:16 even 16:52:24 #topic Bugs triage for 9.1 https://etherpad.openstack.org/p/fuel-9-1-bugs-triage (dpyzhov) 16:52:53 Guys, I'm trying to setup a flow for proposing bugs for stable/mitaka 16:53:21 As I see we have only 7 minutes left so there is no sense to review particular bugs 16:53:34 let's talk about approach 16:54:15 I guess I can mark all product bugs with special tags and send an e-mail for discussion 16:54:22 so what are we looking to do here? 16:54:36 and if someone have disagreements then we can find a consensus ) 16:55:20 What I want is to limit scope for stable/mitaka 16:55:21 and how much does it change if we decouple the fuel-library 9.1 release and deploy it with current master 16:56:55 xarses: for what reason? 16:57:14 because we can? 16:57:20 because with https://review.openstack.org/#/c/346143 we can 16:57:22 and should 16:57:49 we make many releases of fuel from master 16:58:14 and 9.x library release can consume what it needs 16:58:16 I'm trying to understand how it relates to bugfix scope 16:58:31 you don't backport non library fixes 16:58:42 you take them from master 16:58:54 But we will have chaos in tests. 16:59:26 why? we'd test both the mitaka library and newton 16:59:34 xarses: so you propose to not backport any patches except library and rely on this feature? 16:59:55 dpyzhov: in the long term yes, it's too late for 9.1 17:00:02 * hyakuhei_ waves 17:00:13 thanks 17:00:13 o/ 17:00:23 we are over time, we can discuss more on #fuel 17:00:24 hi 17:00:35 #endmeeting