=== natorious is now known as zz_natorious [08:47] hi all [08:48] i have a config drive with a network_info.json [08:48] but does not work [08:48] how do i reference this file ? [14:00] claudiupopa: smoser: smatzek: harlowja: Meeting? [14:02] claudiupopa, is not available. [14:02] Odd_Bloke, yeah. [14:04] yeah [14:05] Here, I presume? [14:06] yeah. [14:06] ok. lets start. [14:08] http://bit.ly/cloudinit-reviews-public [14:08] claudiupopa, had the only review open [14:08] i can respond there on the review [14:09] i'll try to justify what i was thinking, and see if i can teas a response / thought from odd_bloke [14:09] so my feeling was that if i'm loading a datasource, i quite likely am passing it some variables . rather than just NewDataSource() [14:10] ie: NewDataSource(datasource_config=config, os=) [14:11] and if we ever change that signature, then i'd like to have given the thing returning classes the ability to say "well i can only do version 1 signature" [14:11] we could definitely just change that from arguments to the class's __init__ to a 'set_config' or something [14:11] but it seems that they are more properly in the __init__ [14:12] s/are more properly/fit more properly/ [14:12] where as claudiupopa's solution woudl then have all the classes instantiated (for all possible versions) and then have to deal some other way with providing each class the datasource_config value [14:13] or the instance get that data somehow [14:13] thoughts ? [14:13] I'm just reminding myself how the loading works. :) [14:18] smoser: So it depends a little what we mean by "version", I think. [14:19] If we're talking about different internal-to-cloud-init versions of the DataSource implementation, then I think we can do either claudiupopa's way or your way. [14:19] right. [14:19] the point of the 'version' flag was to allow out-of-tree things [14:19] (which is also the point of the dyanmic loading :) [14:19] Version will have to be an attribute on the class of DataSource. [14:21] And then DataSourceLoader could just do 'for data_source in data_sources: if data_source.version == 1: elif data_source.version == 2: else: ' [14:21] (Where on line 97, at the moment, it just does 'data_sources = (data_source() for data_source in data_sources)') [14:24] Odd_Bloke, yeah, i hadnt thought of that. [14:24] any other thoughts? because other wise, i think either way is fine [14:25] And we'd still have to do something like this, because the contract of module_providing_a_source.data_sources won't necessarily be static. [14:25] you think ? [14:26] Well, if we're talking about instantiating data sources differently, then the thing which instantiates them might need different information with which to instantiate them. [14:26] I like Odd_Bloke's idea. I think it handles smoser's concern and allows claudiupopa's code to be unchanged, right? [14:27] For now it wouldn't need to be changed, yeah. [14:27] i suppose.. [14:28] then is ther ea sane way that we an do something reasonably smart now [14:28] so that we can avoid [14:28] if hasattr(class, 'data_sources_v1'): [14:28] data_sources_v1() [14:28] elif hasattr(class, 'data_sources_v2'): [14:28] data_sources_v2(name1=value) [14:29] or just live with that. [14:29] Well, we'd do: [14:29] if cls.version == '1': [14:29] cls() [14:29] elif cls.version == '2': [14:29] cls(name1=value) [14:30] right. [14:30] but then you said that 'data_sources' might be versioned [14:30] need to be versioned [14:31] I don't think it will need to be if it's just returning classes. [14:31] It was when it was potentially going to be instantiating them that it would need more info. [14:31] If all else fails, we can do: [14:32] module_version = getattr(mod, 'version', 1) [14:32] if module_version == 1: [14:32] datasources() [14:32] elif module_version == 2: [14:32] datasources(name1=value) [14:33] We can expect DataSources to have attributes, because they should inherit from an abstract class. [14:35] But the beauty of a dynamic language is that we can defer that until later. [14:36] oh. i read code wrong. [14:36] yeah. [14:36] ol. [14:36] so i'm ok wi think with what is there. [14:36] Odd_Bloke, you ahve anything else ? [14:36] I do not. [14:36] i still have some reporter/webhook changes to get back into 2 [14:38] smatzek, ? [14:38] anyting from you? [14:38] I don't have anything else. [14:40] Meeting ends? [14:44] meeting ends. [14:44] Thanks everyone. :) [15:18] smoser: If you have time to cut a new wily release, that's be much appreciated; we're just about ready to push up the SRUs for that fix. [15:18] k [15:19] And the SRU team get fussy if they aren't actual backports. ;) === zz_natorious is now known as natorious [18:18] Merged stackforge/cloud-init: Add a version filtering strategy https://review.openstack.org/219220 [19:02] weekly meeting anyone? === blitz_ is now known as blitz___ === natorious is now known as zz_natorious [19:33] zz_natorious, Wed, 14:00:00 +0000 [19:34] UTC 14:00 === zz_natorious is now known as natorious === natorious is now known as zz_natorious === zz_natorious is now known as natorious [20:13] smoser: yep, missed the UTC part for some reason. There is another dev from Rackspace, Ben Roble, who's been approved to work on the project as well. [20:14] what timezone are you? [20:14] I'm CST and he's EST [20:14] the zzz confused me [20:14] er.. zz [20:15] yeah, thats znc doing its thing. /me looks into how disable [20:16] ah [20:17] I'm gonna go thru the review backlog just to familiar myself w/ master a bit. We have some req's from different product segments which I'll hold of on adding blueprints on till then. [20:18] with this being dual license, would Ben need to sign the Canonical license agreement? [20:18] or just the Openstack dev agreement? [20:57] natorious, canonical license agreement. [20:57] openstack dev agreement has nothing to do with it [20:57] (which is admittedly confusing due to using stackforge) === natorious is now known as zz_natorious