Details
-
Task
-
Status: Closed
-
Normal
-
Resolution: Won't Do
-
None
-
None
-
None
-
- Mcollective daemon no longer depends on the win32-service gem.
-
Coremunity
Description
MCO uses the win32-service gem to manage its daemon code. The dependency on win32-service may make use of ANSI API calls, and for Puppet 5, the intent is to reduce any Windows specific gem dependencies as a part of the larger "Remove Windows Gems" epic.
A grep for win32 reveals the following spots that may need modification within MCO.
https://github.com/puppetlabs/marionette-collective/search?utf8=%E2%9C%93&q=win32&type=
One thing that should be given consideration is whether or not to use FFI (which would introduce a new dependency) or to use Fiddle which is already built into Ruby and wraps the FFI that Ruby vendors. A cleaner approach for managing dependencies would be to use Fiddle, though the resulting code may be slightly more difficult to maintain. A fiddle based approach was used in Hiera - see HI-346 / https://github.com/puppetlabs/hiera/pull/393
This ticket should involve replacing API calls internally where applicable, and PUP-5758 involves the mechanics of removing the gems from puppet-win32-ruby / puppet-agent packaging.