Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jan 31, 2012
Commits on Jan 30, 2012
  1. @rgevaert @ripienaar

    8601 - Installation error in Solaris 10

    rgevaert authored ripienaar committed
    Update Solaris packaging for single application framework
Commits on Jan 27, 2012
  1. @ripienaar

    12084 - STDIN detection in mco rpc fails when run non interactively

    ripienaar authored
    When running mco rpc from at, scripts, jenkins etc STDIN would not
    be a tty but there would be no data on STDIN.
    In the past it would assume there was discovery data on STDIN in
    this scenario and fail.  Now it checks if the data read is empty
    and does a normal discovery if it is
  2. @ripienaar

    maint: Tests that set expectations on STDERR failed in some cases

    ripienaar authored
    so this commit moves to using IO.any_instance which seems to keep
    all versions of Rspec happy
Commits on Jan 25, 2012
  1. @ripienaar

    12109 - set the syslog facility via config file

    ripienaar authored
    Tweak the supplied syslog_logger patches a bit for style
    and to not use a instance variable to communicate information
    between methods.
    Update documentation
    Provide test coverage of Syslog_logger class
  2. @ripienaar

    12109 - Make the syslog facility configurable

    Derek Olsen authored ripienaar committed
    Added the "logfacility" configuration key.   This allows users who are logging
    to syslog the ability to set the desired facility.  Syslog defaults to LOG_USER
    aka user when no facility is specified.
    The value for "logfacility" is expected to be the shorthand common facility
    names such as local5, daemon, mail, etc.  The "LOG_" prefix get's prepended
    automatically when the syslog handle get's initialized.
Commits on Jan 18, 2012
  1. @thinkfr @ripienaar

    11752 - Improved doc on MCollective more complex agents

    thinkfr authored ripienaar committed
    Clarify the use of utility classes with agents
  2. @thinkfr @ripienaar

    11822 - Improved doc on Application Plugin

    thinkfr authored ripienaar committed
    Clarify the contents of the Application plugin documentation
    and ensure they work with the RPC agent from the docs
Commits on Jan 13, 2012
  1. @ripienaar

    11935 - agent validators should support lists

    ripienaar authored
    Add a simple agent validator that can validate input against a list
    of valid values
       validate :foo, ["one", "two", "three"]
    will ensure that the request[:foo] is one of ["one", "two", "three"]
Commits on Jan 10, 2012
  1. @ripienaar

    11012 - Empty strings in RPC results doesnt display correctly with pr…

    ripienaar authored
    The display helper would split a string on new lines and then print each
    resulting line padded appropriately.
    In the case of an empty line splitting on new lines would return an
    empty array and so no output will be produced - not even a new line -
    thus resulting in a badly formatted table.
  2. @ripienaar

    11251 - mcollective `rake doc` fails on rdoc.gem > v2.3.0

    ripienaar authored
    Ruby 1.9 removed the html template for rdoc instead using one called
    darkfish, the Rakefile specifically requests the use of the html
    We didn't actually need to specify a specific template since rdoc does
    the right thing by default on ruby 1.8.6 and newer.  So this commit
    removes the explicit template name relying on the defaults.
  3. @ripienaar

    11280 - mco should exit != 0 when no nodes are found

    ripienaar authored
    There are various failure states for a typical client and the unix
    convention is that failure should be indicated by non 0 exit code
    This commit introduce a halt() helper on the Applications class and
    changes all the built in application plugins to use this helper to
    standardize the exit codes as per the list:
     * Exit with 0 if nodes were discovered and all passed
     * Exit with 0 if no discovery were done and > 0 responses were received
     * Exit with 1 if no nodes were discovered
     * Exit with 2 if nodes were discovered but some RPC requests failed
     * Exit with 3 if no responses were received but discovery were done
     * Exit with 4 if no discovery were done and no responses were received
Commits on Jan 9, 2012
  1. @ripienaar

    maint: The pluginlist returns keys from a hash which is not in any

    ripienaar authored
           guaranteed order especially on older ruby.  Sort the list
           while doing the test compare to avoid failures on 1.8.6
Commits on Nov 21, 2011
  1. @ripienaar

    10992 - ActiveMQ connector has an unresolved dependency on pp

    ripienaar authored
    For debugging purposes we log the headers for subscriptions and
    publishing in the ActiveMQ connector unfortunately this was done using
    pretty_inspect, this changes it to plain inspect
Commits on Nov 17, 2011
  1. @ripienaar

    9847 - Messages should support arbitrary destinations

    ripienaar authored
    Add reply_to handling to the message object, option parsing and
    rpc client.
    Messages with reply_to set will be treated like fire and forget
    ones since the clients will never get the results anyway
  2. @ripienaar

    10830 - Release 1.3.2

    ripienaar authored
    Fix release date
  3. @ripienaar

    10830 - Release 1.3.2

    ripienaar authored
    Update release notes and versions.  Also a small cosmetic fix to output
Commits on Nov 16, 2011
  1. @ripienaar

    10883 - Syntax errors in Applications not correctly parse and display…

    ripienaar authored
    …ed to the user
    Change the behavior of the PluginManager to raise errors as well as log
    errors when a file fails to load.  This behavior is optional so we're
    able to maintain old behavior in places where getting exceptions might
    be problematic.
    The Applications#run method now show a friendly error and backtrace
    which would hopefully help users get to the bottom of the problem
  2. @ripienaar

    10864 - Add an optional ping distribution graph to the ping application

    ripienaar authored
    Small update to the sparklines logic.  Add encoding hints to the top
    of the file needed for ruby 1.9 compat
  3. @ripienaar

    10864 - Add an optional ping distribution graph to the ping application

    ripienaar authored
    Allow the ping graph to be enabled using the config file
Commits on Nov 15, 2011
  1. @ripienaar

    7772 - Allow random pickup of discovered in the client class

    ripienaar authored
    Add a #limit_method= method to the RPC Client.  Add tests for
    limit_target= and some small optimizations to how that method works
  2. @ripienaar

    10864 - Add an optional ping distribution graph to the ping application

    ripienaar authored
    Add a --graph option that uses a small single line spark line to
    indicate response distribution
    The sparklines idea is initially from
    but this implimentation is using a slightly different algo
    main: fix some whitespace issues
  3. @ripienaar

    7899 - Create an ActiveMQ specific plugin

    ripienaar authored
    Small change to optimize the amount of queues being created, a process
    will now reuse the same queue for discovery and the eventual RPC request
    this is fine since it's not multi threaded anyway
Commits on Nov 14, 2011
  1. @ripienaar

    7899 - Create an ActiveMQ specific plugin

    ripienaar authored
    Update example ActiveMQ configs to support direct addressing and
    the ActiveMQ connector plugin.
    Remove the Mesh example as it's not working 100%
  2. @ripienaar

    7899 - Create an ActiveMQ specific plugin

    ripienaar authored
    Add an ActiveMQ connector, tests and docs.
    This connector use the following queues and topics:
     - A topic per agent and collective - <collective>.<agent name>.agent
     - Replies goes into short lived queues - <collective>.replies.<unique string>
     - Each node subscribe to a queue with a JMS selector matching its
       identify - <collective>.nodes
    The model of replies require the use of gcInactiveDestinations in
    ActiveMQ to purge old unused short lived queues.  The hope is that we
    will use actual temp queues in future but there's some issues
    configuring these reliably in ActiveMQ
    Each node subscribes to the nodes queue and use a JMS selector, this
    requires a queue specific connection for broker to broker comms that
    has conduitSubscriptions disabled.
Commits on Nov 12, 2011
  1. @ripienaar

    5939 - mc-rpc should have native batching

    ripienaar authored
    Add native batching to RPC::Client instances by adding a special case
    runner that use the new direct addressing mode.
    Clients can activate this in 2 ways:
       client = rpcclient("rpcutil")
       client.batch_size = 10
       client.batch_sleep_time = 1
    An alternative approach would be:
       client = rpcclient("rpcutil")
   => 10, :batch_sleep_time => 1)
  2. @ripienaar

    5939 - mc-rpc should have native batching

    ripienaar authored
    Move Array#in_groups_of monkey patch into main set of monkey patches
    that always gets applied.
    Avoid applying our monkey patches if ruby provides the functionality
    already - latest ruby has sortable symbols already.
    Add tests for our monkey patches
Commits on Nov 11, 2011
  1. @ripienaar

    10670 - MC::Client should unsubscribe from topics it does not need an…

    ripienaar authored
    The client subscribes to topics for replies but never unsubscribes,
    further each client instance track what it is subscribed too.
    This caused a few problems:
     - badly written connectors could in some cases have multiple
       subscriptions causing multiple replies to be received
     - while the client is idle messages are still being pushed into its
       buffer which would result in a lot of messages being processed we
       really should not care for
    We now unsubscribe from topics when we're done with them avoiding most
    of these problems
Commits on Nov 10, 2011
  1. @ripienaar

    10671 - Security plugins should not decrypt messages for other clients

    ripienaar authored
    Fix a failing test for ruby 1.9.2
  2. @ripienaar

    10671 - Security plugins should not decrypt messages for other clients

    ripienaar authored
    Create a helper function on the MC::Security::Base that security plugins
    can use to decide if they should do all the hard work.
    The basic structure of a security plugins decode phase is:
      msg = deserialize(payload)
      decrypt or decode(msg)
    the 2nd step is generally the really expensive step where SSL or RSA
    comes into play, these plugins can now use the should_process_msg?
    helper to raise an appropriate exception if the message is not for us
    before doing the expensive work
  3. @ripienaar

    10669 - Security plugins should know which msgid they are receiving

    ripienaar authored
    The MC::Message object can now store an expected_msgid for messages
    of type :reply.  This can later be read by security plugins as a hint
    but they should deal with the fact that it might be nil.
    The MC::Client sets this when appropriate
Commits on Nov 9, 2011
  1. @ripienaar

    10672 - tests fail on rspec 2.7.0

    ripienaar authored
    We used to do require for the spec_helper based on __FILE__ but this
    casues problems because ruby require will keep track of things it has
    required before based on the path passed to require.
    RSpec 2.7.0 has made calling its config blocks more than once a critical
    error so the combination of doing requires with different paths triggers
    this error.
    Switched to just using require 'spec_helper' instead
Commits on Oct 28, 2011
  1. @ripienaar

    10352 - Should support ruby-1.9.2-p290 and ruby-1.9.3-rc1

    ripienaar authored
    - Make the SSL test case less fragile by checking the exception
      type and not the text
    - Handle changes introduced in the SSL API in a way that should cover
      ruby 1.8.6 - 1.9.3
    - Update vendored systemu to the latest to avoid RbConfig warnings
      printed to STDERR
Commits on Oct 27, 2011
  1. @ripienaar

    10327 - callerids and identitied should only allow a limited set of c…

    ripienaar authored
    To be certain we never attempt to read/write files we shouldn't for
    example in naive registration plugins the framework now ensures that
    callerids and identities can only be /\w\.\-/
    There's a new method valid_callerid? on the security base class so
    if there's some weird and wonderful need a security plugin could
    override this check but generally the current setting should be
    left alone as is.
Commits on Oct 25, 2011
  1. @ripienaar

    10265 - When supplying discovery data to RPC::Client#discover always …

    ripienaar authored
    …call reset
    Improve test isolation by allowing mock STDERR and STDOUT in the client
Something went wrong with that request. Please try again.