13:00:28 <aglitke> #startmeeting
13:00:28 <kimchi-bot> Meeting started Wed Aug 21 13:00:28 2013 UTC.  The chair is aglitke. Information about MeetBot at http://wiki.debian.org/MeetBot.
13:00:28 <kimchi-bot> Useful Commands: #action #agreed #help #info #idea #link #topic.
13:00:40 <aglitke> #meetingname scrum
13:00:40 <kimchi-bot> The meeting name has been set to 'scrum'
13:00:41 <bing_bu> Hi,all
13:00:56 <aglitke> #info Agenda:
13:01:11 <aglitke> #info Roundtable / Open Discussion
13:01:15 <aglitke> others?
13:01:24 <aglitke> I will also add:
13:01:33 <aglitke> #info September Release
13:02:22 <royce> arrangement next week?
13:02:41 <aglitke> yep.  AdamKingIT will host the scrum next week in my absense
13:03:14 <ming> upstream maintain in aglitke's vacation?
13:03:36 <aglitke> There will be no commits to the tree next week,
13:03:46 <ming> Why?
13:04:19 <aglitke> It's a good time to dive into those deep features and get the code into great shape.  You all can review each other's code on the list without me.
13:04:21 <zhoumeina> I dont know too
13:04:48 <aglitke> Because I said so :)
13:05:16 <aglitke> I believe that is the best option.
13:05:19 <ming> aglitke, then let's define what are those deep features.
13:05:28 <zhoumeina> But I think the code also need to be merged. Can Adam King take that?
13:05:39 <aglitke> #topic September Release
13:05:54 <alinefm> we can get the code ready to merge this week and work in new code next week
13:05:56 <aglitke> Here are the main things that I want to see upstream for the Sept release
13:06:01 <alinefm> then we will need to review a lot of patches =)
13:06:09 <aglitke> You can reference https://github.com/kimchi-project/kimchi/wiki/Todo
13:06:25 <aglitke> #info ISO Streaming
13:06:36 <aglitke> #info ISO Scanning
13:06:55 <aglitke> #info SSL and Authentication
13:06:58 <AdamKingIT> #info Storage
13:07:08 <AdamKingIT> #info Network
13:07:19 <aglitke> yes, agree
13:07:47 <aglitke> That seems like a big enough list so the extended is all out the window in my opinion,.
13:07:51 <AdamKingIT> #info "cleanup" for lack of a better term
13:08:16 <ming> Storage and network don't define specific features.
13:08:36 <zhoumeina> the mock up of storage is ready
13:08:37 <ming> I think we need define what are those specific features for storage and network.
13:08:43 <aglitke> ming: We are looking for a basic storage mgmt ui
13:08:56 <aglitke> zhoumeina: Looked nice by the way :)
13:09:20 <AdamKingIT> zhoumeina has a mockup of the basics for storage
13:09:20 <aglitke> I also want to add:
13:09:26 <aglitke> #info KPI replacement
13:09:28 <zhoumeina> I think I will send a patch of the feature of storage pools.
13:09:50 <AdamKingIT> I was lumping KPI replacement under cleanup :-)
13:09:57 <aglitke> ok
13:10:31 <AdamKingIT> But agreed, we need that.
13:10:41 <zhoumeina> ming:I will send you the mockup , so that you can know the feature of that.
13:11:04 <royce> what is the iso streaming one? I assume we already have it ,don't we?
13:11:30 <ming> zhoumeina: thanks
13:11:31 <aglitke> My goal is to have feature freeze by Sept 15 to allow 2 weeks for testing and bug fixing.
13:11:41 <aglitke> This is going to be our first widely used release.
13:11:45 <aglitke> hopefully.
13:12:38 <aglitke> We will want to start packaging this up for official inclusion into distrros.
13:12:58 <aglitke> royce: alinefm is working on streaming.
13:13:14 <royce> aglitke, I'll try to have shallow scan ready in this week before your vacation, may ping you constantly for review in next two days, hope you don't mind:P
13:13:20 <alinefm> aglitke, about iso streaming: the libvirt patch is ready! I will send to  the libvirt list after our meeting
13:13:27 <aglitke> It's being able to pass a http://... url in as the cdrom and have qemu streaming the iso on demand.
13:13:32 <alinefm> after that, I will make the changes need in kimchi
13:13:39 <alinefm> as the xml will be a little bit different
13:13:47 <aglitke> royce: Not at all.  Whatever it takes to get it merged.
13:14:04 <aglitke> alinefm: any idea on how to support legacy libvirt?
13:14:20 <zhoumeina> aglitke:I wonder How long of your vocation? one week?
13:14:34 <aglitke> should we use a qemu command line hack if libvirt cannot support your schema?
13:14:46 <aglitke> zhoumeina: It's a 1 week furlough.
13:14:53 <aglitke> not my choice.
13:15:24 <alinefm> aglitke, I will investigate if we can get the iso stream support info easily from qemu/libvirt capacities
13:15:30 <alinefm> then we can decide on that
13:15:38 <royce> so it is libvirt support shortage prevent us from using iso streaming, I assume?
13:15:46 <alinefm> maybe we need to disable this option when the qemu does not have this support
13:16:09 <ming> alinefm, that need a qemu interface to query that.
13:16:09 <aglitke> royce: Yes, the feature will have to be disabled.
13:16:28 <aglitke> we actually need to query qemu and libvirt.
13:16:50 <aglitke> So we are going to need a flexible mechanism for doing runtime feature checks.
13:17:20 <aglitke> almost like a set of functional tests that run when kimchi starts up.
13:17:48 <alinefm> aglitke, yeap! it will be needed
13:17:59 <royce> Ok
13:18:02 <ming> I hope qemu can have a capability report interface.
13:18:18 <aglitke> ming: check how libvirt does it.
13:18:43 <alinefm> libvirt has an API getCapacities or something like that
13:18:46 <aglitke> In the beginning we could have a features section in the config file
13:18:50 <ming> aglitke: sure. Bothe Qemu and libvit must have.
13:19:10 <aglitke> and streaming could be off by default
13:19:21 <aglitke> and you would have to enable it in the config file.
13:19:47 <aglitke> Eventually we'd want the capabilities tests to be able to select the proper default based on what software is available.
13:19:59 <alinefm> right! and we need to remove the iso stream option from UI when it is disabled
13:20:07 <aglitke> yep.
13:20:20 <aglitke> so we need a capabilities REST API
13:20:28 <aglitke> #info capabilities REST API
13:20:30 <AdamKingIT> I was about to say that
13:20:49 <aglitke> lots of work ahead!
13:20:59 <alinefm> If I am not making a mistake I've already seen some patches related to it
13:21:09 <AdamKingIT> I thought so too
13:21:19 <AdamKingIT> but I haven't reviewed them
13:21:20 <aglitke> I have submitted a /config patch
13:21:30 <aglitke> it shows the server http_port
13:21:41 <aglitke> It can be extended to /config/capabilities
13:22:52 <aglitke> Any other discussion on the Sept release?
13:23:34 <ming> About the storage, I think bingbug submitted iSCSI storage support.
13:23:39 <alinefm> the storage usage
13:23:42 <alinefm> https://github.com/kimchi-project/kimchi/issues/12
13:23:49 <ming> s/bingbug/bingbu
13:23:56 <alinefm> I have suggested to replace it to disk IO rate
13:24:00 <alinefm> but any comments up to now =)
13:24:45 <aglitke> alinefm: could you resend your post to the list.  This time I am sure you will get some better discussion :)
13:25:00 <alinefm> sure!
13:25:10 <aglitke> ming: I don't think iSCSI is on the list of important features for the Sept release.
13:25:27 <aglitke> bing_bu: Please hold onto those patches for later.
13:25:41 <bing_bu> aglitke: ok
13:26:05 <aglitke> anything else for September release?
13:26:37 <ming> For network support, I think we should support NAT and bridge network at least.
13:26:44 <alinefm> display network traffic?
13:26:49 <zhoumeina> yuxin still doesn't know who can take the back end of network
13:26:49 <alinefm> anyone working on that?
13:26:50 <aglitke> That won't make it for September.
13:27:02 <aglitke> ming: ^ network configuration
13:27:09 <YuXin> for network, 2 levels of configuration
13:27:10 <bing_bu> aglitke: I have finished the code and testcase, so always need rebase
13:27:43 <aglitke> bing_bu: I understand.  Best to wait a bit and do one rebase when it is a better time to submit,.
13:27:46 <ming> aglitke: ^?
13:27:50 <shaohef> I can take  the back end of network
13:28:00 <shaohef> aglitke: ^ means not?
13:28:02 <YuXin> host level: libvert has a default virtual network which is NAT based
13:28:05 <shaohef> :)
13:28:11 <aglitke> ming: Network config is too complex to make it in time for september.
13:28:24 <aglitke> We need to focus on the items outlined above first.
13:28:43 <YuXin> Bridged network need some special configuration
13:28:58 <aglitke> YuXin: Yes and it's highly distro specific.
13:29:12 <aglitke> and error prone.
13:29:23 <YuXin> at guest level, when create a VM, the network need to be selected
13:29:50 <AdamKingIT> we want some network capability that will cover the most basic case for sept, and not be too distro unique
13:29:55 <shaohef> YuXin: we can just use the default network now.
13:30:10 <YuXin> it can be used
13:30:15 <ming> aglitke: I think we can add some level support of NAT and bridge network, not necessary a perfect  implementaion.
13:30:24 <aglitke> I don't think we have time for any network stuff for sept.  I think it is going to be hard enough to get the current list done.
13:30:46 <royce> which is infrastructure provided by libvirt, YuXin
13:31:10 <YuXin> http://wiki.libvirt.org/page/Networking#Host_configuration
13:31:21 <aglitke> YuXin: That only works on Fedora
13:31:47 <AdamKingIT> we have networking as part of our base content, and one of the STG projects needs something there. What could we reasonably do?
13:32:16 <aglitke> AdamKingIT: I've thought about it and based on the number of people working on the project -- nothing.
13:32:24 <aglitke> Unless we drop something else.
13:33:19 <aglitke> We have just over 3 weeks until code freeze.
13:34:03 <AdamKingIT> maybe if we step back and look at our project plan, we might find a path
13:34:49 <AdamKingIT> I can think on it and make a suggestion... 1st stop is the things we already have inflight
13:34:51 <aglitke> I am not sure I agree that networking config is higher priority than any of the basic vm operations that we have in plan.
13:35:32 <aglitke> Anyway... We won't solve that here so let's move on.
13:35:34 <AdamKingIT> Did I not mention I am a feature pig?
13:35:41 <aglitke> heh
13:35:59 <royce> feature pig?
13:36:05 <zhoumeina> hehe
13:36:39 <ming> aglitke, if we don't support those networking config, the user can not use the VM well on his network.
13:36:42 <AdamKingIT> a joke. Means I always want one more feature
13:37:14 <royce> got u, AdamKingIT:D
13:37:14 <aglitke> ming: It works pretty well with NAT right now.
13:37:48 <ming> AdamKingIT,  user always want one more feature.
13:38:16 <aglitke> I think networking is important but I am being realistic on what I think this team can accomplish in 3 weeks.
13:39:18 <YuXin> so now, when a VM is created in Kimchi, NAT is used by default for network?
13:39:23 <aglitke> #topic Round table / Open DIscussion
13:39:36 <aglitke> YuXin: Yes, however the 'default' network is configured.
13:40:50 <zhoumeina> #info: UI needs better format
13:41:07 <ming> Even for NAT network support, we need allow the user to create his own NAT network besides default one.
13:41:22 <ming> And the user can attach the VM to the new network.
13:41:30 <aglitke> eventually, but not in September
13:42:15 <zhoumeina> I think may be we can talk about network next meeting.
13:42:30 <aglitke> Templates can already specify alternate networks via the rest api
13:42:37 <zhoumeina> Since it not urgent
13:42:53 <aglitke> We can talk on list about it as much as we like.
13:43:02 <aglitke> That is the most inclusive place.
13:44:02 <AdamKingIT> One last question about network before moving on. Is there any REST API already implemented for network creation?
13:44:12 <aglitke> nope.  not yet
13:44:32 <ming> AdamKingIT, that's what I talked just now.
13:44:39 <aglitke> Virtual network apis won't be hard.  It's basically wrapping the libvirt api
13:45:01 <aglitke> but the UI will be harder
13:45:19 <aglitke> Host networking will be one of the hardest kimchi features to get right.
13:45:30 <royce> I want to mention something we discussed last week, to export remote links as net-template, ming's good idea
13:46:11 <AdamKingIT> Meaning if something in network were containable, it would be guest network definition.
13:46:19 <AdamKingIT> k. I think I got it
13:46:20 <aglitke> Can you explain the idea in a bit more detail?
13:46:30 <aglitke> royce: ^
13:46:41 <aglitke> this is a different topic from networking
13:47:12 <royce> Ok, we specify the os_distro and version now uses the remote isolink provided by osinfo.py
13:47:15 <shaohef> aglitke: what does  ^ mean?
13:47:36 <royce> ming suggests we make them to be net-template at the startup of kimchi
13:47:40 <aglitke> shaohef: it points to the line above (indicating I was saying it to royce)
13:47:54 <royce> so that users can use them directly to create vm
13:48:33 <aglitke> yep.  It's a good idea.  I am trying to think of how to store them.  Maybe the DB is not the best place.
13:49:01 <aglitke> It would be nice if administrators could install their own net-templates onto the system for deployment.
13:49:02 <royce> yeah, I saw you proposed the /etc/...
13:49:20 <aglitke> In fact, maybe all templates should be stored this way.
13:49:45 <aglitke> so even when a rest api creates a template, a file gets written to disk in /etc/
13:49:52 <royce> to avoid crash ?
13:50:02 <aglitke> That is what libvirt does for domain xmls
13:50:31 <ming> royce, thanks for bring it up.  I almost forgot that.
13:51:01 <shaohef> aglitke: seem libvirt has two xml path. static path, and runtime path.
13:51:06 <aglitke> The disadvantage is that file IO might be more error prone and have less performance.
13:51:25 <aglitke> but the advantage is that templates can be "installed"
13:53:19 <aglitke> The UI would have to filter out streaming templates if the iso streaming feature is off though.
13:53:59 <royce> the advantage of "install" is? may I ask? since we just store vm config now
13:54:04 <AdamKingIT> would we ever want to see a streaming template if qemu didn't support streamng?
13:54:15 <aglitke> AdamKingIT: No.
13:54:18 <aglitke> it would fail
13:55:09 <ming> aglitke, We can classify templates in the backend.
13:55:13 <AdamKingIT> k, so the REST API could/should filter them out, like it might for templates a user isn't authorized to use (pending a resource based authorization model)
13:55:24 <aglitke> royce: Someone could create a distro package that just installs some templates for a given site.  For example, IBM could create kimchi-templates.rpm that depends on kimchi.  It would only install some templates that are accessible to IBM employees on the intranet.
13:55:37 <aglitke> you just install the package and you have access to those templates in kimchi.
13:56:04 <aglitke> AdamKingIT: True
13:56:15 <AdamKingIT> sounds kinda cool. Something we want to tackle for Sept?
13:56:33 <royce> aglitke, that make sense
13:56:54 <aglitke> AdamKingIT: I don;t know.  Royce is already looking at it as a part of her local scanning patches.
13:57:48 <aglitke> It means we need to change the model logic for storing templates to writing external .json files instead of using the ObjectStore
13:58:24 <AdamKingIT> could we eliminate the use of the objectstore?
13:58:30 <AdamKingIT> less is always more
13:58:51 <aglitke> We may be able to.  Right now we also use it for storing vm metadata.
13:59:06 <aglitke> but we could write files in a similar manner for that too.
13:59:26 <aglitke> royce: Maybe you could just replace the ObjectStore implementation with a file writing backend.
13:59:53 <aglitke> Then the code can continue to use the object store like a db interface but files are read and written behind the scenes.
13:59:58 <ming> aglitke, external .json files will be mess if we don't have a right directory arch.
14:00:08 <AdamKingIT> Which would put is in better long term position if we later wanted to support small "clusters"
14:00:08 <aglitke> yep.
14:00:11 <royce> OK, that would be in net-template I think
14:00:22 <aglitke> /etc/kimchi/json
14:00:29 <aglitke> under that you have
14:00:39 <aglitke> <object>/
14:00:41 <aglitke> ie.
14:00:47 <aglitke> vm / template / etc
14:00:54 <aglitke> under each of those you have:
14:01:04 <aglitke> <ident>.json
14:01:32 <aglitke> It is the same data model as we have in the db today
14:01:46 <royce> true
14:01:48 <aglitke> should be easy to rewrite objectstore to use a filewriter backend.
14:02:27 <aglitke> Then kimchi can just ship some example files to drop into /etc/kimchi/json/templates/
14:02:46 <ming> I do find bugs in objectstore in multi-threading environment.
14:03:23 <aglitke> We'll still need to be careful with locking for this approach too.
14:04:01 <aglitke> ok...
14:04:04 <ming> It seems time is out.
14:04:09 <aglitke> Thanks for bringing that up
14:04:27 <aglitke> I will end the meeting now but feel free to continue the discussions...
14:04:29 <aglitke> #endmeeting