13:01:44 #startmeeting 13:01:44 Meeting started Wed Jul 17 13:01:44 2013 UTC. The chair is aglitke. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:01:44 Useful Commands: #action #agreed #help #info #idea #link #topic. 13:01:50 Hi all 13:01:54 #meetingname scrum 13:01:54 The meeting name has been set to 'scrum' 13:02:13 Not kimchi-scrum? 13:02:50 hlwanghl: :) 13:02:51 #info Agenda: * Build process * Open issues * ISO Scanning * Round table 13:02:59 Who has other topics? 13:03:17 template update? 13:03:24 #info customer trip 13:03:25 +1 13:03:34 hlwanghl: The only meetings held in #kimchi are for kimchi, so that would be redundant in the meeting name. 13:03:45 aglitke: OK :-) 13:03:50 #info template update 13:03:55 ok 13:04:02 AdamKingIT: Anything from your end? 13:04:30 Mobile support 13:04:31 Maybe IE support should be covered? 13:04:40 #info i18n for customer trip 13:04:40 where is AdamKingIT? 13:05:08 sorry, on the other mtg I usually have at this hour. ill be more engaged when I get done 13:05:24 AdamKingIT: Any other topics to add from you? 13:05:37 we can add them at the end of the agenda 13:06:15 Ok. let's get started. 13:06:17 #info cache? AdamKingIT 13:06:33 #topic Open Issues 13:07:06 Thanks to everyone for your hard work on bugs. It's really making a positive impact. 13:07:15 aglitke, you can close this one: https://github.com/kimchi-project/kimchi/issues/28 13:07:15 #info I have 5 issues ,3 of them send patchs ,2 left. 13:07:19 it is already fixed and merged 13:07:22 Also, I appreciate you filing new issues as you discover them. 13:07:34 alinefm: thanks. 13:07:42 I was going to ask about which can be closed. 13:08:02 Right now only maintainers can close issues but I am working on a way to resolve that. 13:08:32 aglitke: yes ,I think it will be better 13:08:50 We can have a fake maintainer with close issue rights only:) 13:08:53 Feel free to contact me by email directly later if you have issues for me to close. 13:09:11 royce: The permissions are not that granular 13:09:22 You can basically have admin or not 13:09:48 alright... 13:10:03 #topic template update 13:10:08 shaohef: Please go ahead. 13:10:15 #32can be closes 13:11:35 aglitke: yes. we should need a template update 13:11:43 aglitke: also we need vm update 13:12:05 shaohef: your update template patches already reviewed, right? 13:12:20 aglitke: I think, we need a general PUT method for update 13:12:25 hlwanghl: yes. 13:12:37 hlwanghl: I resend the patch. 13:12:47 shaohef: Yes, I agree. We need a way for each resource to declare the fields which can be updated. 13:12:50 sahohef:+1 user can update the memory of a VM when more memory is needed. 13:13:17 if a user specifies a field which cannot be updated then we must deny the whole request with 405 13:13:42 we need to be careful about this because updates can be tricky. 13:14:04 We may consider what update granularity we want to authorize for... 13:14:13 aglitke: agree. 13:14:15 when you reduce the memory amount what does it mean? balloon? or redefine the VM and changes will take place on next reboot? 13:14:28 Giving a user the auth to update their VMname is one thing, letting them take all the memory is another 13:14:36 AdamKingIT: agree 13:15:05 I think we are talking about static config update, isn't it? aglitke 13:15:06 aglitje: I think it is redefing the VM and changes will take place on next reboot. 13:15:12 I have never been a big fan of the PUT method 13:15:21 sming: I agree. 13:15:30 aglitke: about the name for update. should we allow modify the name of resource? 13:15:41 Only do the updating when VM is stopped. 13:15:53 shaohef: Yes, I think name is fine. 13:16:09 Do we have room for a comment or notes field? 13:16:10 I've already sent patches about vm rename 13:16:11 Templates can allow all fields to be updates. 13:16:16 updated/ 13:16:19 aglitke: but the URL will change 13:16:41 shaohef: Yes, that is why a redirect happens after a put request. 13:16:48 if the vm fields changed, so the template will changed too? 13:17:05 zhoumeina, I don't think so... 13:17:16 aglitke: yes, it will change permanently 13:17:16 zhoumeina: No. Once a VM is created from a template, the vm no longer has any relationship with the template. 13:17:26 ok 13:17:47 so they are seperate 13:18:14 got it , go ahead all 13:18:23 shaohef: First I would like to see a generic design in the Resource class that allows child clases to declare the changeable fields 13:18:37 I would think of the template as a cookie cutter. Once you cut the cookie out of the dough, you can reshape it w. your fingers without affecting the shape of the cutter 13:18:47 AdamKingIT: yep 13:19:05 and if you reshape the cutter, the already cut cookies wont change either. 13:19:27 yep 13:19:36 great , very clear 13:19:37 AdamKingIT: not sure what is cookie cutter. 13:19:42 good metaphor:) 13:19:51 let me find a pic 13:20:21 https://en.wikipedia.org/wiki/Cookie_cutter 13:20:22 I guess, it's a tool to shape cookie 13:20:32 AdamKingIT: Got it. 13:20:46 shaohef: For the design, the backend will be called with the dict of new values only if all values are allowed to be changed. 13:20:49 can 13:21:08 aglitke: agree 13:21:40 the backend will then make the requested changes and then return the identifier of the resource (since it may or may not have changed). 13:21:49 aglitke: It's a validation step. Both server- and client-side need it. 13:22:11 We can think it together for backend and frontend. 13:22:28 yeah, I want to join too 13:22:41 ok 13:22:51 aglitke, I'm little bit worried when fields become a lot, the dict in resource are difficult to maintain, and we may need to validate the field 13:22:54 are we good on that topic. 13:22:58 As we get to authorization checks, I'd rather not let the user enter data that the backend isn't going to accept from them 13:23:20 Make the dict be easy to convert to JSON should be helpful 13:23:27 aglitke: how about the authority on the change fields? 13:23:33 yes, always json 13:23:51 cool 13:23:51 shaohef: Right now, any authenticated user can change anything. 13:24:20 aglitke: got it 13:24:28 at present that is true, but we don't want it to always be true. Trying to think ahead a little 13:24:30 shaohef: Authority is another topic. 13:24:56 Should map users/roles to resources, etc. 13:25:17 yeah... Not ready for that discussion right now. 13:25:21 y. Will get interesting as we try to define granularity on those resources 13:25:41 can we shift gears to another topic now? 13:25:51 OK 13:25:54 Now that AdamKingIT is here I want to discuss the build process 13:25:57 aglitke: please 13:26:02 #topic Build process 13:26:31 I have been working hard on revamping the build system in kimchi to make it uniform and standard 13:26:46 The first patch set I sent had some issues and todos 13:26:56 The next one will be much better. 13:27:20 But I would first like to see if anyone has any concerns with adopting an autotools based build 13:27:22 aglitke: the patch is too huge. 13:27:40 shaohef: It is a lot of boiler-plate generated code. 13:27:49 I can try to break it up better for final submission. 13:27:53 aglitke: split it? 13:27:58 But there will be a lot of code imported. 13:28:05 shaohef: Yes, not a problem. 13:28:06 aglitke: that's fine. 13:28:23 If you would indulge my ignorance. Can you describe advantages/disadvantages? 13:28:45 Advantages of autotools build is automatic discovery of dependencies in the build. 13:28:57 ./configure can give you an error if your cherrypy is too old 13:29:07 etc/ 13:29:08 ... 13:29:13 AdamKingIT, I think it can handle different build env easily 13:29:15 Another + is: 13:29:25 ./configure && make && make install 13:29:30 a standard build 13:29:31 aglitke: setup.py also can automatic discovery of dependencies 13:29:46 instead of the distutils build + some Makefiles for generating packages. 13:30:14 aglitke: ./configure && make && make install, GNU standard build? 13:30:15 Also, trying to write python code for dependency tracking seems strange when there is a tool that does it natively. 13:30:23 aglitke, will we still use makefiles to create rpm/deb packages or not? 13:30:26 make knows when things need to be rebuilt or cleaned. 13:30:47 alinefm: That is a different topic that I want to address separately. 13:30:56 ok 13:30:57 alinefm: we need automake? aglitke, right? 13:30:57 right after this. 13:31:04 yes 13:31:44 disadvantages? 13:31:45 aglitke: what can I help for the autotools? 13:32:00 AdamKingIT: Another advantage is that autotools-enabled projects have standardized make rules that can be useful 13:32:14 AdamKingIT: eg. make dist 13:32:25 and it has builtin gettext support 13:32:42 disadvantages: another build system to learn 13:32:53 can be more complex than distutils 13:33:23 I have done mom autobuild system, I can help if you need~ 13:33:27 those are the main ones I can think of./ 13:33:46 AdamKingIT: I think one of the advantages is the makefile and ./configure files generated are quite complex and hard to understand. 13:33:47 yep, we have some experience with it/ 13:33:56 Many other example projects that use it. 13:34:19 sming: you should only read configure.ac and Makefile.am 13:34:29 aglitke: I have learned the autotools, autoconf and automake. :) 13:34:31 the Makefile.in and Makefile files are considered output files. 13:34:42 they are not meant to be read 13:35:04 aglitke: Sometimes, I need read the final files to understand the errors. 13:35:14 Sorry to have to ask. I have a lot of recent experience with Ant (and derivatives) but haven't used make in this millenium 13:35:33 aglitke: sming: AdamKingIT: also, a lot of macro, we should to learn 13:35:56 shaohef: We may be able to avoid writing our own m4 macros 13:36:09 AdamKingIT: No worries, what is your question about make? 13:36:23 sming: yes. we need to read the final files some times. 13:37:17 I guess I would summarize the proposal as advantage: allow more developers can contribute/build without making adjustments to t heir env. disadvantage: anyone needing to make build updates will face a higher hurdle 13:37:32 fair? 13:38:17 Yeah, I'd say so. Once the infrastructure is in place, it's pretty easy to understand how to modify the Makefile.am files for common tasks. 13:38:38 usually we are just adding a new file to the system 13:38:42 AdamKingIT: another advantage is it is platform-independent. 13:38:52 k. Seems like an easy decision 13:39:21 I will keep plugging away at these patches and try to break them up a bit. 13:39:27 sming: platform-independant? 13:39:48 Then, just like coding style patches. when they go in it is a bit disruptive at first. 13:40:05 People may experience some issues with building or rebasing patches, etc. 13:40:44 alinefm: I would like to talk about packaging. 13:40:48 hlwanghl: Yes, you can use the same .ac, .am files to generate makefiles in different Linux/Unix distos. 13:40:55 hlwanghl, I think sming means it can compatible with multiple linux distro. 13:41:16 aglitke, sure 13:41:19 For mature projects, the packaging artifacts are not stored in the upstream package 13:41:23 royce: sming: OK :) 13:41:40 ie. for mom, the spec file we use for fedora is maintained in a fedora-specific git repo 13:41:56 I believe the same holds true for debian/ubuntu. 13:42:08 We are not a mature project _yet_. 13:42:36 In this situation, I believe we should place all of the platform/packaging files in a contrib directory 13:42:50 aglitke: we just generate the tar ball without the rpm or deb package? 13:42:56 I think we should split the spec file into a redhat file and a suse file 13:43:24 aglitke: creating another contrib directory under Kimchi? 13:43:28 for rpm building here is how the process should work. 13:43:39 ./configure && make dist 13:43:47 this generates a tarball of the current code. 13:43:57 copy tarball to ~/rpmbuild/SOURCES 13:44:17 copy contrib/kimchi-redhat.spec to ~/rpmbuild/SPEC 13:44:32 rpmbuild -ba ~/rpmbuild/SPEC/kimchi.spec 13:44:44 aglitke, those steps will be manual? 13:44:46 this is how kimchi will be made in fedora 13:45:11 until we are officially part of fedora we can make this easier by creating a shell script in contrib 13:45:59 then to build rpms you would just run ./contrib/make-rpm.sh 13:46:16 if I understand the flow, it seems like a lot of steps. Can we not have a target to accomplish same? 13:46:40 I also would like a single target to create the package 13:46:44 AdamKingIT: Sure. We can add targets in the top-level Makefile to call this script 13:47:10 but eventually those would go away once packaging is taken over by the official packagers. 13:47:42 if you look at qemu / libvirt / ... none of these projects have package building infrastructure that is used anymore. 13:47:56 but we need to bridge the gap 13:48:36 So for now, we will make it easy to build packages but we will use the process that the distros themselves will eventually use. 13:48:48 to make the transition easier 13:48:51 seems like its worth it during startup mode. Present the lowest barrier to contributing until we have enough momentum to be picked up by the distros 13:49:13 aglitke, got it 13:49:20 I already have a good start on the scripts we'll need for this. 13:49:27 aglitke, I can help on that 13:49:27 aglitke: seems a manual configure in qemu 13:49:28 Will submit as part of the next series. 13:49:50 aglitke, is it blocked for autotools scritps? 13:50:09 alinefm: Yeah. you need the build infra in place first. 13:50:17 I will send something out soon. 13:50:36 Hope to squeeze it in today yet. 13:50:50 ok... next topic (running out of time quickly!) 13:50:54 aglitke, ok 13:50:57 #topic ISO Scanning 13:51:26 shaohef / hlwanghl: You guys submitted a poc for iso scanning some time ago 13:51:51 I was wondering if you could rebase on top of the merged async tasks API. 13:52:19 I think we have some design issues to work out with how it should work (especially the front ens) 13:52:20 Let me check. It's about template creation? 13:52:23 front end 13:52:26 aglitke: sure. 13:52:35 aglitke, its dingxin... 13:52:42 hlwanghl: yes, create multiple templates from a search for isos 13:52:52 royce: Oh sorry. Bad memory. 13:53:06 royce: I think you also post something about ISO scanning? 13:53:11 aglitke: royce: I'll tell Xin 13:53:23 aglitke, it works with previous design of expose /ISO 13:53:24 We would like to use an asynctask to scan for isos and create templates 13:53:35 I have already tested and rebased 13:53:39 royce: Yes, I am concerned about exposing /iso 13:54:01 what are the rules for expiration of the ISOs collection? 13:54:08 are iso images moved to a directory? 13:54:13 I rebased with automatically template generating, front end seems not done 13:54:45 As last time we decided not to expose /iso 13:54:55 ok. 13:55:12 so now templates will be created automatically from all found isos 13:55:12 I rebased this series to be scan and auto template generating 13:55:15 ok 13:55:17 royce: Then you can work with Xin about that. I remember Xin had code dealing with it. 13:55:37 The next issue is to decide how the user can manage all of the newly created templates. 13:55:57 Getting this working will be better than not having it, but I am less comfortable with the autogeneration without user input as we had mocked earlier 13:55:57 Maybe they want an intermediate step where then can select the templates that they would like to keep 13:56:02 I discussed with dingxin this Monday, I can work with him if guys agree with these design 13:57:16 aglitke, and dingxin and I really think for single iso the input of full path is painfull... 13:57:20 aglitke: +1, we should manage the automatically created templates and mark the necessary ones. 13:57:43 I am not sure what the best way to converge on an API design is. 13:58:02 I can think of a way to handle /isos collections as well but I am not sure if I want to do it. 13:58:07 I prefer the intermediate step as well. It will require some "progress" feedback to the user though 13:58:13 royce: agree. I like to have a file browser. 13:58:31 file browsers can reveal too much information about the internals of the server 13:58:36 a scan is better 13:58:45 There are a couple places where a 'file browser' motif through the browser would be handy, including this 13:59:00 If taged as necessary, it means newly created template are deleted imediately... 13:59:14 file browser is useful and the admin knows which iso he/she would like to include 13:59:29 necessary/unnecessary 13:59:30 if it is only one/two isos why yse san? 14:00:04 the 'file browser' could be used to select a specific dir, to scope the scan as well 14:00:47 I am trying to think of a RESTful way to expose a directory hierarchy 14:00:56 obvious negative being the complication of dealing with all the permissions 14:01:18 Have you used GSA tools? 14:01:19 Yes, it's a potential security nightmare 14:01:28 AdamKingIT: yes 14:01:47 and will you pls review my patchset about scan? aglitke? 14:01:58 royce: sure 14:02:32 after that I can work with front end to make it work~ 14:02:36 How should we have a discussion about the frontend design for approving found isos? 14:03:04 There is a design mockup posted on the community. comments? 14:03:07 I think we need to agree on an API before we waste too much time writing throw-away implementations. 14:03:17 Is that public 14:03:31 absolutely, aglitke 14:03:53 n, though it will get more public this week if not public public. 14:04:07 Ok, then we can not use it for the discussion 14:04:35 If it can be posted in a wiki page on github, then we could try to start there. 14:04:53 the mock is based on exposing /iso, by the way... 14:05:16 alright... we have reached the top of the hour now. thanks everyone 14:05:20 #endmeeting