On Feb 22, 2011, at 1:44 PM, Trevor Vaughan wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> So, I got this working and have played around with it a bit. My feedback is
> below.
>
> 1) You need to include the 'interface' lib path before the puppet lib path in
> RUBYLIB to get this to work.
I've added this to the README.
> 2) puppet catalog - doesn't seem to do anything gives the message "Could not
> prepare for execution: Action select already defined for
> Puppet::Interface::Catalog"
Hmm. I definitely don't get this behavior. I either get a failure describing
what I should be doing (if I've passed no args) or I get the expected results.
Can you send a stack trace.
> 3) Overall, this interface is too slow. I'm thinking this is due to having it
> run the entire puppet codebase startup before delving into things.
> Perhaps this can't be avoided.
What target should we be shooting for? I was expecting that as long as simple
things ran in ~ 1s it'd be fine, which is about what I'm seeing.
In general, I think Puppet loads more than it should, and I agree startup time
should generally be better. That's probably a case of general optimization in
Puppet, rather than anything an external module can do.
> One of the things that I would like to see is a fast way of digging into the
> catalog and running system configuration. I'm thinking that fact parsing
> could be avoided for many of these calls and this may provide the reaction
> time that I'm looking for.
What kinds of digging do you want to do?
> I think that the tool does have potential but, for now, the wait time to get
> information out of it is just too high compared with hacking something
> together that can run multiple commands in the same instance and manipulate
> the results.
One of the specific goals of this is to make it easy to hack something together
in an instance. Note that we're not just providing CLI applications, we're
also providing ruby Interfaces that provide their back-end.
E.g., the goal is to be able to replace the current Agent class with something
that looks more like this:
# Set our constant search path
class Puppet::Interface
Agent.action :run do
Plugin.download
Facts.upload
catalog = Catalog.download
report = Catalog.apply(catalog)
Report.upload(report)
end
end
This kind of thing is already possible, it's just not that not all of the
methods exist, nor does this actually fully capture the complexity of the
current Agent's behavior (for better or worse).
In other words, even if your goals are to hack something up in a single
process, this should make that much, much easier.
--
Smoking is one of the leading causes of statistics. -- Fletcher Knebel
---------------------------------------------------------------------
Luke Kanies -|- http://puppetlabs.com -|- +1(615)594-8199
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.