Perl 6 - the future is here, just unevenly distributed

IRC log for #puppet-openstack, 2013-06-18

| Channels | #puppet-openstack index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 michchap_ joined #puppet-openstack
00:01 michchap_ joined #puppet-openstack
00:06 openstackgerrit Cody Herriges proposed a change to stackforge/puppet-keystone: Prepare repository for a Puppet Forge release  https://review.openstack.org/31360
00:24 odyi We as a project need to pay better attention to documentation.  Going over the old swift README again and it is fairly inaccruate.
00:33 openstackgerrit Simon Sellar proposed a change to stackforge/puppet-glance: Allow blank keystone flavor in glance configs  https://review.openstack.org/32835
00:59 dprince joined #puppet-openstack
01:43 otherwiseguy joined #puppet-openstack
02:23 openstackgerrit Cody Herriges proposed a change to stackforge/puppet-swift: Prepare repository for a Puppet Forge release  https://review.openstack.org/31362
02:43 prad joined #puppet-openstack
03:02 sean_s joined #puppet-openstack
03:29 digicloseup joined #puppet-openstack
04:17 openstackgerrit A change was merged to stackforge/puppet-keystone: Retry when keystone server refuses connections  https://review.openstack.org/33268
04:55 ikke-t joined #puppet-openstack
07:00 michchap joined #puppet-openstack
08:04 derekh joined #puppet-openstack
10:12 michchap joined #puppet-openstack
10:19 dmsimard joined #puppet-openstack
11:48 markvoelker joined #puppet-openstack
12:05 marun joined #puppet-openstack
12:50 openstackgerrit Maru Newby proposed a change to stackforge/puppet-quantum: Add quantum_network custom type.  https://review.openstack.org/31087
12:50 dprince joined #puppet-openstack
13:30 marun uh
13:30 marun bodepd: it looks like someone turned on a lint gate check without cleaning up the code first
13:30 marun bodepd: ?!
13:31 marun mgagne: do you know anything about this ^^
13:37 red_trela left #puppet-openstack
13:46 prad joined #puppet-openstack
13:53 otherwiseguy joined #puppet-openstack
13:57 michchap joined #puppet-openstack
14:33 michchap joined #puppet-openstack
15:10 michchap joined #puppet-openstack
15:33 openstackgerrit Maru Newby proposed a change to stackforge/puppet-quantum: Add quantum_router custom type.  https://review.openstack.org/33462
15:33 openstackgerrit Maru Newby proposed a change to stackforge/puppet-quantum: Add quantum_subnet custom type.  https://review.openstack.org/33360
15:37 openstackgerrit Mathieu Gagné proposed a change to stackforge/puppet-quantum: Fix syntax errors in quantum example  https://review.openstack.org/33465
15:39 hogepodge joined #puppet-openstack
15:42 mgagne puppet-lint is using rake lint (not bundle exec rake lint) so we don't have control over the version of puppet-lint
15:42 marun mgagne: uh, sure
15:42 marun mgagne: the issue is that it was turned on before the code was compliant
15:43 mgagne and it also seem to not setup modudulepath correctly: ERROR: XXX not in autoload module layout on line YY
15:43 marun mgagne: putting the onus on subsequent unrelated patches to fix the problem
15:43 mgagne puppet-lint isn't voting
15:43 marun mgagne: hmmm
15:43 marun mgagne: so the -1 that jenkins gave the review was for something else?
15:43 mgagne syntax check
15:44 mgagne puppet syntax check was run by myself before being activated but it seems some where added meanwhile or I did not check correctly
15:44 mgagne https://review.openstack.org/#/c/32663/1
15:44 marun ah, and your most recent review fixes that?
15:44 mgagne yes
15:44 mgagne I'm gonna fix puppet syntax errors when I see them
15:44 marun ah, ok, sorry for my annoyance
15:44 mgagne no, it's all right
15:45 marun while i have you here - completely unrelated question...
15:45 mgagne as for puppet-lint, it's an outgoing process, won't fix everything now. Furthermore, we (bodepd and I) want to tweak it
15:45 marun ok, cool
15:45 mgagne ongoing*
15:45 marun i'm a strong advocate for the pep8 checks on the openstack projects, and i think puppet-lint is just as important
15:45 marun i didn't want to have to do all the cleanup before merge though
15:46 marun so, the unrelated question
15:46 mgagne I'm not that strict regarding style (I hope) but I like consistency
15:46 marun consistency is good.  makes it easier to spot problems
15:46 mgagne about your question =)
15:47 marun yes.  the quantum_network type as you originally wrote it included features that were only enabled if the provider extension were enabled
15:47 mgagne true
15:47 marun is there a way to enable/disable a type based on an extension being present?
15:47 michchap joined #puppet-openstack
15:47 marun the router and router_interface types won't be available without the router extension
15:47 mgagne no, you check however check for features being available in the provider
15:47 marun ah, ok
15:47 mgagne see the source, that case should be already handled
15:47 marun but it's for a whole type
15:48 marun not just a property
15:48 marun (param)
15:48 mgagne I think it should be the same
15:48 mgagne your provider has to implement a feature required by the type.
15:48 mgagne I'll check
15:48 marun but the type itself is optional
15:49 mgagne I know that, you won't be able to "disable" the type, just throw errors if someone is using it without the "right" provider (quantum with router extension)
15:49 marun ah, ok
15:50 marun an example of how to throw the error would definitely be welcome
15:50 mgagne https://github.com/puppetlabs/puppet​/blob/master/lib/puppet/type/user.rb
15:50 mgagne https://github.com/puppetlabs/puppet/blo​b/master/lib/puppet/provider/user/pw.rb
15:50 mgagne see feature
15:50 mgagne I don't know how Puppet tells you that your provider doesn't support a feature, you will have to test. But the check is there.
15:51 hogepodge joined #puppet-openstack
15:52 marun ah, ok
15:52 marun so if there isn't a provider that supports all of a types features -> error
15:52 marun thank you!
15:52 mgagne I think so otherwise it would be pointless
15:53 mgagne had to do a lot of tries/errors ;)
15:56 marun agreed
16:25 michchap joined #puppet-openstack
16:49 hogepodge joined #puppet-openstack
16:53 bodepd mgagne: you turned on puppet-lint checks?
17:02 michchap joined #puppet-openstack
17:09 mgagne they merged it
17:09 mgagne non-voting
17:09 mgagne https://review.openstack.org/#/c/32663/1
17:11 mgagne bodepd: Please check https://review.openstack.org/#/c/33465/
17:31 openstackgerrit A change was merged to stackforge/puppet-quantum: Fix syntax errors in quantum example  https://review.openstack.org/33465
17:36 bodepd marun: looks like you are good to go
17:37 bodepd mgagne: so what all is running lint?
17:37 marun bodepd: awesome.
17:37 bodepd marun: next time I get a fresh environment spun up, I will give your code a spin
17:37 mgagne rake lint
17:37 marun bodepd: cool
17:40 michchap joined #puppet-openstack
17:44 bodepd mgagne: ah just looked. syntax is gating, but lint isn't.
17:44 bodepd mgagne: I cannot wait until the lint checks work!
17:44 bodepd no more having to reveiw and reject code with trailing whitespec!
17:44 mgagne will work on it
17:44 bodepd mgagne: no pressure :)
17:44 bodepd and also no hurry.
17:44 bodepd I would much prefer it happen when the cisco release stuff I am working on is done ;)
17:50 openstackgerrit A change was merged to stackforge/puppet-keystone: Prepare repository for a Puppet Forge release  https://review.openstack.org/31360
17:51 marun bpodepd: how do i test private provider methods?
17:51 marun bodepd: most of the heavy lifting of the quantum providers is in the base class's private methods and I'd really like to be testing it
17:57 mgagne They are private from the enduser point of view. If those methods were externalized in a library, they wouldn't be private anymore and we would test them.
17:58 marun mgagne: so how to externalize them?
17:59 marun mgagne: is there an example to point to?
17:59 openstackgerrit Cody Herriges proposed a change to stackforge/puppet-swift: Prepare repository for a Puppet Forge release  https://review.openstack.org/31362
17:59 mgagne probably the patch itself?
17:59 mgagne just move them to public
18:00 mgagne its a library used by us only
18:01 marun mgagne: ah, fair enough.
18:01 marun mgagne: we can always revisit if needed.
18:01 mgagne yes
18:01 marun (and this will likely change dramatically when we switch to fog
18:01 marun )
18:01 bodepd implement them as an external module
18:01 marun bodepd: example?
18:01 bodepd and include it in the parent class.
18:02 bodepd hmm....
18:02 marun bodepd: i'm still a ruby novice, i'm afraid
18:02 mgagne does fog authorize us to bundle it?
18:02 mgagne we can't ask the user to install fog manually
18:02 marun can't it just be a dependency installed the user?
18:02 marun why not?
18:02 mgagne what's the purpose of puppet if you have to install stuff manually?
18:03 marun isn't there a way for a module specify external dependencies that get automatically installed?
18:03 bodepd mgagne: I am pretty sure we can bundle it
18:03 mgagne I don't want to have to follow any manual step outside the installation of puppet itself
18:03 bodepd MIT license
18:04 bodepd marun: I always like the idea of curl-bashing scripts that the internet that bootstrap use deps
18:04 bodepd (although people often chuck rotten fruit at me when I recommend it)
18:04 bodepd odd
18:04 bodepd marun: just make the methods public
18:04 marun bodepd: will do
18:04 mgagne ^
18:05 bodepd no one is going to find them, more less use them
18:05 bodepd except the three of us :)
18:05 marun :)
18:05 bodepd I was thinking that when we move to fog, it would be a separate project.
18:05 bodepd and then have glance/nova/keystone/quantum native types as a separate project.
18:05 mgagne - guys! there is this quantum lib built-in in puppet-quantum! let's us it for our unrelated-to-puppet project! :D
18:06 mgagne use*
18:06 bodepd just put a disclaimer.
18:06 bodepd we are going to rewrite this later.
18:06 mgagne NOTE: Don't even think about it.
18:06 bodepd do done use it outside of the Puppet specific public methods
18:07 bodepd is it time to create a new stackforge repo called:
18:07 bodepd openstack_admin ?
18:07 mgagne worst name ever
18:07 bodepd so that we can start to collaborate on monitoring/collection
18:07 bodepd centralized logging and whatnot
18:08 bodepd mgagne: feeling snarky today aren't we :)
18:08 mgagne =)
18:08 bodepd what should it be called?
18:08 mgagne I thought it was related to quantum lib
18:08 bodepd ah. it's so stupid that everyone has their own modules for:
18:09 bodepd cobbler,nagios,grpahite,etc...
18:09 bodepd maybe we should be defaulting to use the ones from openstack-infra...
18:09 mgagne I feel it would need a better planning
18:09 bodepd hmmm.
18:09 bodepd you mean better than a glib comment while I wait for a test to finish?
18:09 mgagne I don't want 56 projects each trying to fix a problem everybody already tried to fix
18:09 bodepd does it get any better than that?
18:10 bodepd https://github.com/bodepd/libr​arian-puppet-simple/issues/16
18:10 bodepd mgagne: ^^^ would you even need something like that?
18:12 mgagne bodepd: Didn't really think about it, I update the Puppetfile and point to the new branch, end of story. Might not be the best idea ever.
18:13 mgagne example:
18:13 mgagne mod "inifile",
18:13 mgagne :git => "https://github.com/mgagne/puppetlabs-inifile.git",
18:13 mgagne :ref => "allow_empty_setting"
18:17 mgagne bodepd: Can you have duplicate declarations in Puppetfile?
18:18 michchap joined #puppet-openstack
18:20 bodepd I feel like I should know the answer to that b/c I wrote the code :)
18:20 bodepd let me look
18:22 bodepd it looks like it'll just override.
18:22 mgagne /join #librarian-puppet-simple
18:24 * mgagne tries to find an existing "pattern" in Bundler
18:25 mgagne So we don't come up with a "new" way to override stuff. Are people using Gemfile.overrides Gemfile.local to do the same with Bundler?
18:25 bodepd ah, gotcha.
18:26 mgagne I only find a case with Gemfile.local where you load an alternative Gemfile
18:26 mgagne and this file loads Gemfile and override some values
18:26 mgagne https://github.com/gerrywastaken/Gem​file.local/blob/master/Gemfile.local
18:26 bodepd I joined that other channel
18:27 mgagne was a joke :P
18:27 bodepd oh, I was so lonely in there :(
18:27 mgagne as the subject wasn't really related to openstack anymore :P
18:27 bodepd marun: I see one oddity in the quantum_network type
18:28 bodepd marun: I see lots of properties passed to the constructor in self.instances that do not show up when I run puppet resource
18:29 bodepd that is b/c some of the things passed to this method are parameters (and parameters would never have to be populated in this object)
18:29 bodepd also, the read-only concept does not make sense for parameters
18:29 bodepd like id
18:29 EmilienM Hi, it seems that puppetlabs/xinetd is missing as a dependency for puppet-swift module. How could I know with xinetd module version at least we should have as a dependency ?
18:30 bodepd the whole point of the read-only properties is so they can be queried dynamically at run-time
18:30 bodepd paraemeters cannot be queried
18:30 bodepd marun: ^^^
18:30 bodepd I think my tests were just using master.
18:30 bodepd EmilienM: ^^^
18:30 bodepd it definitely needs to be pinned at a revision.
18:30 bodepd I would just pick the last release
18:30 bodepd and use that
18:31 EmilienM bodepd: ok, could I make a small patch for the new dependency ?
18:33 EmilienM I do it :)
18:33 openstackgerrit Emilien Macchi proposed a change to stackforge/puppet-swift: Add xinetd puppetlabs module as a new dependency  https://review.openstack.org/33498
18:34 bodepd EmilienM: please do!
18:36 EmilienM bodepd: mgagne : I've almost finished the Heat puppet module, but some things are not working yet. Since I'm not yet a jedi in Puppet and I don't have enough time to finish shortly, what do you think ?
18:37 EmilienM https://github.com/enovance/puppet-heat
18:42 openstackgerrit A change was merged to stackforge/puppet-openstack: Fix test_nova.sh script for quantum.  https://review.openstack.org/33153
18:48 mgagne EmilienM: Sorry I don't have much time this week ^^'
18:49 EmilienM mgagne: no worries, same here :) a lot of deployments and not enough testers here
18:54 openstackgerrit Dan Bode proposed a change to stackforge/puppet-quantum: Add quantum_network custom type.  https://review.openstack.org/31087
18:54 bodepd marun: I made some minor edits to your code for quantum_network ^^^
18:54 bodepd all-in-all looks good and works
18:55 bodepd I assume that has to be merged for the other patches to even work?
18:55 bodepd if you +1, then I'll merge it
18:55 bodepd after lunch...
18:56 michchap joined #puppet-openstack
19:00 openstackgerrit A change was merged to stackforge/puppet-swift: Add xinetd puppetlabs module as a new dependency  https://review.openstack.org/33498
19:27 openstackgerrit Donald Talton proposed a change to stackforge/puppet-cinder: added rhel support for ceph. removed template tracking cinder volume init script in lieu of direct file manipulation. change ceph authentication type to bool.  https://review.openstack.org/33508
19:28 mgagne this commit message looks a bit too long :D
19:34 michchap joined #puppet-openstack
20:04 britthouser joined #puppet-openstack
20:12 michchap joined #puppet-openstack
20:16 openstackgerrit Donald Talton proposed a change to stackforge/puppet-cinder: formatting and added operatingsystem fact to spec  https://review.openstack.org/33517
20:23 finnx joined #puppet-openstack
20:46 otherwiseguy joined #puppet-openstack
20:49 michchap joined #puppet-openstack
20:49 openstackgerrit Daniel Gollub proposed a change to stackforge/puppet-quantum: Drop libvirt qemu configuration  https://review.openstack.org/33522
21:06 bodepd marun: tried to ping you earler :)
21:25 marun bodepd: hi!
21:25 marun bodepd: I'm clearly still confused about properties and parameters
21:26 bodepd sorry if I make it even more confusing.
21:26 michchap joined #puppet-openstack
21:26 bodepd I like to mark some things as what I call read only properties
21:26 bodepd puppet can not only manage, but also query for the states of things
21:26 bodepd only properties will be queried.
21:26 bodepd so, run:
21:26 marun bodepd: And by read-only, you mean they wouldn't be provided for either creation or updating?
21:26 bodepd puppet resource quantum_network
21:26 openstackgerrit A change was merged to stackforge/puppet-openstack: Prepare repository for a Puppet Forge release  https://review.openstack.org/31368
21:27 bodepd yeah, ro is probably a bit of a misusage (sorry, I was conflating things)
21:27 marun ok, that's where i was confused
21:27 bodepd they are things that can be queried, and set on creation,
21:27 bodepd but not managed
21:27 bodepd this is potentialy where I diverge a tiny bit from the rest of the world.
21:28 bodepd but when I run: puppet resource quanum_network
21:28 bodepd I want to be able to see everything relevent
21:28 bodepd and only properties are actually queried.
21:28 bodepd so, when I saw those values being passed to new() in instances but not show up when I ran that command
21:28 bodepd I flipped them to properties
21:29 bodepd and since I did not think they should be changed in teh resource exists.
21:29 bodepd I overrode their setters
21:29 bodepd (which are only called on update)
21:29 bodepd clear?
21:29 marun pretty much
21:29 bodepd the other benefit to them being properties is that:
21:30 marun what's the value of parameters then?
21:30 bodepd model.catalog.resource(Resource[title]).property
21:30 bodepd will be able to retrieve them from the catalog
21:30 bodepd which can be important for guids
21:30 bodepd or things that only exist after creation
21:30 marun ah, fair enough
21:30 bodepd so parameters, are things that are not managed
21:30 bodepd so, they are not inherit properties on a system to be managed
21:31 bodepd the cononical example is useradd -M
21:31 bodepd whether or not the home directory was created is not an inheritent property of the system
21:31 bodepd (maybe that is a slightly grey example, let me try again :) )
21:32 bodepd name is obviously a parameter b/c it cannot be discoverd, if you change it, the thing itself becomes differnet
21:32 bodepd ....
21:32 marun ok
21:32 bodepd ah, more
21:32 marun that helps
21:32 bodepd exec refreshonly
21:32 bodepd cannot be queried from the system
21:32 bodepd or service start,stop,restart
21:33 bodepd and to be clear, I use this distinction way more than others
21:33 marun so parameters are resource attributes, properties are more like resource directives?
21:33 bodepd so if you ask some other puppet guy, you may have to explain all of it to them
21:33 marun or other way around, sorry
21:33 bodepd I'm not so familiar with that terminology
21:34 bodepd the difference gets a little blurred b/c the puppet has manage and query states
21:34 bodepd and what things mean in those state is slighly differnet
21:34 marun i'm starting to get it
21:34 marun properties -> attributes
21:34 marun that makes sense to me
21:34 marun parameters -> configuration
21:35 bodepd if we are managing, then properties have getters and setters b/c they can be updated
21:35 bodepd yep
21:35 bodepd when querying, properties are things that can be queried
21:35 bodepd a parameter may effect how the querying is performed
21:36 marun ok
21:36 marun it's a pretty subtle distinction
21:36 marun not sure how it could be clearer, but i bet everyone gets tripped up
21:38 bodepd yeah. usually you would say that properties have getters/setters
21:38 bodepd but I also like to mark things that can be queried as properties
21:38 bodepd so they are queried
21:38 marun right
21:38 bodepd and then ensure they cannot be set
21:38 bodepd either in the type if they are not manageable (like id)
21:38 bodepd or in the provider if they are only used for create
21:38 marun ok, in that case, is your patch missing making the tenant_id read-only post-creation?
21:39 bodepd let me look at it
21:39 bodepd possibly :)
21:39 bodepd you can't update the tenant of something?
21:40 marun nope
21:40 bodepd ah.
21:40 bodepd then yes
21:41 marun do you want to submit a new patch or should i?
21:41 openstackgerrit Cody Herriges proposed a change to stackforge/puppet-swift: Prepare repository for a Puppet Forge release  https://review.openstack.org/31362
21:44 bodepd I woudl rather you do it. I don't have a test environment booted atm
21:45 marun bodepd: ok
21:45 marun bodepd: unrelated question
21:46 marun bodepd: I'm struggling with the quantum_router_interface type
21:46 marun bodepd: briefly a given router has ports
21:47 marun bodepd: a port is a relationship with a subnet
21:47 marun bodepd: either a port will be an interface to a subnet (manageable via router-interface-add/delete)
21:47 marun bodepd: or a port can be an interface to the gateway
21:49 marun bodepd: the gateway port is automatically created/destroyed in response to router-gateway-set/delete, in which a network is provided, and the gateway port is added for the first subnet of the network
21:49 marun bodepd: sorry, this is really obtuse, please feel free to ask questions
21:50 marun bodepd: i'm not sure i'm going to be able to explain this over irc
21:51 marun bodepd: the problem i'm seeing is that ensuring a router interface exists or not can conflict with setting the gateway port
21:52 marun bodepd: and i'm wondering whether to just let the quantum error bubble up if a user tries to manage the gateway port by accident, or whether to go to the trouble to detect the problem (which would increase execution time because of the lookups required to determine this)
21:52 marun bodepd: *phew* done
21:53 openstackgerrit Donald Talton proposed a change to stackforge/puppet-cinder: added ceph backend support  https://review.openstack.org/33132
22:00 bodepd tldr. let me finish something first
22:02 bodepd marun: and a router can have multiple subnets but only one gateway?
22:02 bodepd or multiples and multiples?
22:02 marun bodepd: correct
22:02 bodepd maybe two properties:
22:03 marun the gateway part is easy
22:03 bodepd gateway => Quantum_Gateway[foo]
22:03 marun no, that's not necessary
22:03 bodepd then true ?
22:03 marun i've implemented the gateway part already
22:03 bodepd and subnets => [Quantum_subnet[one], ...]
22:03 marun quantum_router.network_name
22:04 marun is it preferable to have a list like that?
22:04 bodepd preferable to what?
22:04 michchap joined #puppet-openstack
22:04 marun I was thinking of doing it like keystone_user_role
22:04 marun since a router interface is really a relationship between a router and a subnet
22:05 bodepd I'm ok with that.
22:05 marun so quantum_router_interface { name => "routername:subnetname"}
22:05 bodepd I was thinking it's more of assigning a subnet to a router
22:05 bodepd I'm ok with foreign keys
22:05 bodepd for this stuff and it obviously has precedent
22:05 marun what does foreign keys mean in this context?
22:06 bodepd sorry, I built that analogy for myself
22:06 bodepd I see if as being equivalent to a foreign key that joins to tables
22:06 bodepd it's just a modeling analogy that I created in my head
22:06 bodepd I wouldn't worry about it if it doesn't directly translate
22:07 marun so keystone_user_role and quantum_router_interface are like join tables containing foreign keys?
22:07 marun many to many in other words?
22:07 bodepd yeah, that is how I was thinking about it in the modeling context
22:07 marun yeah, that makes sense
22:07 bodepd and given that is a pervasive model, it seems sane
22:07 bodepd (sometimes we're all just making it up as we go along)
22:07 marun i think it's an easier fit than a property that accepts a list of subnets
22:07 bodepd I'm happy with either.
22:08 marun ok
22:08 marun so to my question....
22:08 bodepd to figure out the perfect way would take longer than I have atm
22:08 marun if i try to manage a router_interface that already exists as the gateway interface, quantum will report an error
22:08 marun is that ok for a first pass?
22:09 marun The nicer way would be finding out the error beforehand, but it could be expensive
22:09 marun (and i can explain why if you'd like but it's complicated)
22:32 marun bodepd: Error: Could not prefetch quantum_network provider 'quantum': private method `gsub' called for nil:NilClass
22:33 marun bdodepd: ???  i didn't see this error before your patch
22:33 marun bodepd: did you test it?
22:36 otherwiseguy joined #puppet-openstack
22:42 michchap joined #puppet-openstack
22:48 bodepd marun: i did not test it for the use case of when nothing exists
22:48 bodepd can I see --trace ?
22:49 bodepd I did some testing, but obviously not enough.
22:49 bodepd I don't think my changed would cause that, but i could be wrong
22:51 marun bodepd: ah, pebcak, sorry :(
22:59 dmsimard joined #puppet-openstack
23:06 openstackgerrit Donald Talton proposed a change to stackforge/puppet-cinder: added ceph backend support  https://review.openstack.org/33132
23:21 michchap joined #puppet-openstack
23:50 openstackgerrit A change was merged to stackforge/puppet-swift: Prepare repository for a Puppet Forge release  https://review.openstack.org/31362
23:59 michchap joined #puppet-openstack

| Channels | #puppet-openstack index | Today | | Search | Google Search | Plain-Text | summary