First - thanks for your proxy plugin work Dmitri, it looks really good
to me!
My question is, how would one go about packaging, installing, and
enabling an external module? Say I've got a git repo like [1] - what
should the directory structure look like and what should I do to enable
the module after I install it as a ruby gem?
Thanks,
Martin Milata
[1] https://github.com/mmilata/smart-proxy_hello
Hey Martin,
You’ll need to package your plugin as a gem. Smart-proxy relies on
Bundler for dependency loading; to make a dependency available to
smart-proxy you need to create a new group (see [2] for example) and
re-run bundler install. Make sure that the name of the group is the
same as the name of the plugin, or use ‘bundler_group :my_hello’ in
the plugin definition ([3] in your case). You already have a settings
file which you’ll need to copy into the main settings.d.
Hope this helps,
-d
[2] https://github.com/theforeman/smart-proxy/blob/develop/bundler.d/chef.rb
[3] https://github.com/mmilata/smart-proxy_hello/blob/master/hello/hello_plugin.rb
···
On Wed, Jun 25, 2014 at 3:02 PM, Martin Milata wrote:
> First - thanks for your proxy plugin work Dmitri, it looks really good
> to me!
>
> My question is, how would one go about packaging, installing, and
> enabling an external module? Say I've got a git repo like [1] - what
> should the directory structure look like and what should I do to enable
> the module after I install it as a ruby gem?
>
> Thanks,
> Martin Milata
>
> [1] https://github.com/mmilata/smart-proxy_hello
>
> --
> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
Another question: how should I structure and run my plugin's unit tests?
Looks like I have to supply smart-proxy repo directory to the plugin (or
vice versa) somehow. (Feel free to point me to a relevant document if
this is some standard Ruby pattern.)
Thanks,
Martin
Thanks, it seems I've got it working now. Couple of questions:
-
To enable the plugin, I've got to install the gem and put
"gem 'plugin_gem_name'" in Gemfile.in or somewhere in bundler.d, not
enclosed in a group block. The bundler group is for dependencies of
the plugin, not the plugin gem itself. Is that correct?
-
The bundler gems are loaded before most of the smart proxy modules and
as a consequence, I've got to manually require 'proxy/log' and
'proxy/plugin' before defining the plugin [4]. Is it intentional?
Thanks,
Martin
[4] https://github.com/mmilata/smart-proxy_hello/blob/master/lib/smart_proxy_hello/hello_plugin.rb
···
On Wed, Jun 25, 2014 at 16:52:39 +0100, Dmitri Dolguikh wrote:
> Hey Martin,
>
> You’ll need to package your plugin as a gem. Smart-proxy relies on
> Bundler for dependency loading; to make a dependency available to
> smart-proxy you need to create a new group (see [2] for example) and
> re-run bundler install. Make sure that the name of the group is the
> same as the name of the plugin, or use ‘bundler_group :my_hello’ in
> the plugin definition ([3] in your case). You already have a settings
> file which you’ll need to copy into the main settings.d.
>
> Hope this helps,
> -d
>
> [2] https://github.com/theforeman/smart-proxy/blob/develop/bundler.d/chef.rb
> [3] https://github.com/mmilata/smart-proxy_hello/blob/master/hello/hello_plugin.rb
>
> On Wed, Jun 25, 2014 at 3:02 PM, Martin Milata wrote:
> > First - thanks for your proxy plugin work Dmitri, it looks really good
> > to me!
> >
> > My question is, how would one go about packaging, installing, and
> > enabling an external module? Say I've got a git repo like [1] - what
> > should the directory structure look like and what should I do to enable
> > the module after I install it as a ruby gem?
> >
> > Thanks,
> > Martin Milata
> >
> > [1] https://github.com/mmilata/smart-proxy_hello
> >
> > --
> > You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
Hey Martin,
I just pushed a PR [1] that enables testing of non-core plugins. To
test a plugin:
- add smart-proxy dependency to the project, I used ‘development’ gem
group: “gem ‘smart_proxy’, ‘version => 1.6.0’, :path =>
…/smart-proxy”
- in your tests (probably in test_helper), add: “require
‘smart_proxy_for_testing’”
- profit!
Hope this helps,
-d
[1]. https://github.com/theforeman/smart-proxy/pull/183
···
On Mon, Jul 7, 2014 at 6:30 PM, Martin Milata wrote:
> Another question: how should I structure and run my plugin's unit tests?
> Looks like I have to supply smart-proxy repo directory to the plugin (or
> vice versa) somehow. (Feel free to point me to a relevant document if
> this is some standard Ruby pattern.)
>
> Thanks,
> Martin
>
> --
> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
Please see comments below…
> Thanks, it seems I've got it working now. Couple of questions:
>
> * To enable the plugin, I've got to install the gem and put
> "gem 'plugin_gem_name'" in Gemfile.in or somewhere in bundler.d, not
> enclosed in a group block. The bundler group is for dependencies of
> the plugin, not the plugin gem itself. Is that correct?
The assumption is that the plugin gem and its dependencies reside
within the same group (as opposed to root-level). As I mentioned
before the gem group name should be the same as the plugin name
(unless you override it in the plugin). You shouldn’t need to change
anything in the main Gemfile. Please note that Gemfile.in is only
being used in rpm/deb installs, and only in the presence of
bundler_ext.
>
> * The bundler gems are loaded before most of the smart proxy modules and
> as a consequence, I've got to manually require 'proxy/log' and
> 'proxy/plugin' before defining the plugin [4]. Is it intentional?
This is a consequence of adding dependencies to the Gemfile directly.
The problem should go away if you put plugin gems in a group in a file
in bundler.d dir.
Cheers,
-d
···
On Fri, Jun 27, 2014 at 4:53 PM, Martin Milata wrote:
Thanks,
Martin
[4] https://github.com/mmilata/smart-proxy_hello/blob/master/lib/smart_proxy_hello/hello_plugin.rb
On Wed, Jun 25, 2014 at 16:52:39 +0100, Dmitri Dolguikh wrote:
Hey Martin,
You’ll need to package your plugin as a gem. Smart-proxy relies on
Bundler for dependency loading; to make a dependency available to
smart-proxy you need to create a new group (see [2] for example) and
re-run bundler install. Make sure that the name of the group is the
same as the name of the plugin, or use ‘bundler_group :my_hello’ in
the plugin definition ([3] in your case). You already have a settings
file which you’ll need to copy into the main settings.d.
Hope this helps,
-d
[2] https://github.com/theforeman/smart-proxy/blob/develop/bundler.d/chef.rb
[3] https://github.com/mmilata/smart-proxy_hello/blob/master/hello/hello_plugin.rb
On Wed, Jun 25, 2014 at 3:02 PM, Martin Milata mmilata@redhat.com wrote:
First - thanks for your proxy plugin work Dmitri, it looks really good
to me!
My question is, how would one go about packaging, installing, and
enabling an external module? Say I’ve got a git repo like [1] - what
should the directory structure look like and what should I do to enable
the module after I install it as a ruby gem?
Thanks,
Martin Milata
[1] https://github.com/mmilata/smart-proxy_hello
–
You received this message because you are subscribed to the Google Groups “foreman-dev” group.
To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
–
You received this message because you are subscribed to the Google Groups “foreman-dev” group.
To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
–
You received this message because you are subscribed to the Google Groups “foreman-dev” group.
To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
I'm sorry, I still don't get it.
I was using foreman-proxy installed through RPM (specfile from the
foreman-packaging repo) and thus used Gemfile.in and bundler_ext. This
may have contributed to the confusion, I switched to running
foreman-proxy directly from the repo now which should use bundler.
Now, If I drop the bundler file [5] into the bundler.d dir, the proxy
does not load the plugin. Given that the plugin gem is now in the :hello
group, I don't understand how it is supposed to get registered (by
deriving the Proxy::Plugin class). BundlerHelper.require_groups is
called in two places - first in lib/smart_proxy.rb with :default group,
meaning it does not load the plugin, and second in lib/plugin.rb in
configure_plugin, but this is for plugins that already are
loaded/registered.
What am I missing? Please bear with me, I'm a little Ruby-challenged …
Martin
[5] https://github.com/mmilata/smart-proxy_hello/blob/master/bundler.d/hello.rb
···
On Fri, Jun 27, 2014 at 17:22:53 +0100, Dmitri Dolguikh wrote:
> Please see comments below...
>
> On Fri, Jun 27, 2014 at 4:53 PM, Martin Milata wrote:
> > Thanks, it seems I've got it working now. Couple of questions:
> >
> > * To enable the plugin, I've got to install the gem and put
> > "gem 'plugin_gem_name'" in Gemfile.in or somewhere in bundler.d, not
> > enclosed in a group block. The bundler group is for dependencies of
> > the plugin, not the plugin gem itself. Is that correct?
>
> The assumption is that the plugin gem and its dependencies reside
> within the same group (as opposed to root-level). As I mentioned
> before the gem group name should be the same as the plugin name
> (unless you override it in the plugin). You shouldn’t need to change
> anything in the main Gemfile. Please note that Gemfile.in is only
> being used in rpm/deb installs, and only in the presence of
> bundler_ext.
>
> >
> > * The bundler gems are loaded before most of the smart proxy modules and
> > as a consequence, I've got to manually require 'proxy/log' and
> > 'proxy/plugin' before defining the plugin [4]. Is it intentional?
>
> This is a consequence of adding dependencies to the Gemfile directly.
> The problem should go away if you put plugin gems in a group in a file
> in bundler.d dir.
>
> Cheers,
> -d
>
> >
> > Thanks,
> > Martin
> >
> > [4] https://github.com/mmilata/smart-proxy_hello/blob/master/lib/smart_proxy_hello/hello_plugin.rb
> >
> > On Wed, Jun 25, 2014 at 16:52:39 +0100, Dmitri Dolguikh wrote:
> >> Hey Martin,
> >>
> >> You’ll need to package your plugin as a gem. Smart-proxy relies on
> >> Bundler for dependency loading; to make a dependency available to
> >> smart-proxy you need to create a new group (see [2] for example) and
> >> re-run bundler install. Make sure that the name of the group is the
> >> same as the name of the plugin, or use ‘bundler_group :my_hello’ in
> >> the plugin definition ([3] in your case). You already have a settings
> >> file which you’ll need to copy into the main settings.d.
> >>
> >> Hope this helps,
> >> -d
> >>
> >> [2] https://github.com/theforeman/smart-proxy/blob/develop/bundler.d/chef.rb
> >> [3] https://github.com/mmilata/smart-proxy_hello/blob/master/hello/hello_plugin.rb
> >>
> >> On Wed, Jun 25, 2014 at 3:02 PM, Martin Milata wrote:
> >> > First - thanks for your proxy plugin work Dmitri, it looks really good
> >> > to me!
> >> >
> >> > My question is, how would one go about packaging, installing, and
> >> > enabling an external module? Say I've got a git repo like [1] - what
> >> > should the directory structure look like and what should I do to enable
> >> > the module after I install it as a ruby gem?
> >> >
> >> > Thanks,
> >> > Martin Milata
> >> >
> >> > [1] https://github.com/mmilata/smart-proxy_hello
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> >> > To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> >> > For more options, visit https://groups.google.com/d/optout.
> >>
> >> --
> >> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> >> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> >> For more options, visit https://groups.google.com/d/optout.
> >
> > --
> > You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
Hey Martin,
I owe you an apology — your original description of how to enable a
plugin was indeed correct. Plugin gem needs to be put in the :default
group and its dependencies in the plugin-specific group. You found a
bug in plugin loading [6], which has been fixed in [7], and should be
in develop branch soon.
Regards,
-d
[6] Bug #6436: Modularized proxy attempts to load plugins before loading core modules - Foreman
[7] https://github.com/theforeman/smart-proxy/pull/176
···
On Mon, Jun 30, 2014 at 12:10 PM, Martin Milata wrote:
> I'm sorry, I still don't get it.
>
> I was using foreman-proxy installed through RPM (specfile from the
> foreman-packaging repo) and thus used Gemfile.in and bundler_ext. This
> may have contributed to the confusion, I switched to running
> foreman-proxy directly from the repo now which should use bundler.
>
> Now, If I drop the bundler file [5] into the bundler.d dir, the proxy
> does not load the plugin. Given that the plugin gem is now in the :hello
> group, I don't understand how it is supposed to get registered (by
> deriving the Proxy::Plugin class). BundlerHelper.require_groups is
> called in two places - first in lib/smart_proxy.rb with :default group,
> meaning it does not load the plugin, and second in lib/plugin.rb in
> configure_plugin, but this is for plugins that already are
> loaded/registered.
>
> What am I missing? Please bear with me, I'm a little Ruby-challenged ...
>
> Martin
>
> [5] https://github.com/mmilata/smart-proxy_hello/blob/master/bundler.d/hello.rb
>
> On Fri, Jun 27, 2014 at 17:22:53 +0100, Dmitri Dolguikh wrote:
>> Please see comments below...
>>
>> On Fri, Jun 27, 2014 at 4:53 PM, Martin Milata wrote:
>> > Thanks, it seems I've got it working now. Couple of questions:
>> >
>> > * To enable the plugin, I've got to install the gem and put
>> > "gem 'plugin_gem_name'" in Gemfile.in or somewhere in bundler.d, not
>> > enclosed in a group block. The bundler group is for dependencies of
>> > the plugin, not the plugin gem itself. Is that correct?
>>
>> The assumption is that the plugin gem and its dependencies reside
>> within the same group (as opposed to root-level). As I mentioned
>> before the gem group name should be the same as the plugin name
>> (unless you override it in the plugin). You shouldn’t need to change
>> anything in the main Gemfile. Please note that Gemfile.in is only
>> being used in rpm/deb installs, and only in the presence of
>> bundler_ext.
>>
>> >
>> > * The bundler gems are loaded before most of the smart proxy modules and
>> > as a consequence, I've got to manually require 'proxy/log' and
>> > 'proxy/plugin' before defining the plugin [4]. Is it intentional?
>>
>> This is a consequence of adding dependencies to the Gemfile directly.
>> The problem should go away if you put plugin gems in a group in a file
>> in bundler.d dir.
>>
>> Cheers,
>> -d
>>
>> >
>> > Thanks,
>> > Martin
>> >
>> > [4] https://github.com/mmilata/smart-proxy_hello/blob/master/lib/smart_proxy_hello/hello_plugin.rb
>> >
>> > On Wed, Jun 25, 2014 at 16:52:39 +0100, Dmitri Dolguikh wrote:
>> >> Hey Martin,
>> >>
>> >> You’ll need to package your plugin as a gem. Smart-proxy relies on
>> >> Bundler for dependency loading; to make a dependency available to
>> >> smart-proxy you need to create a new group (see [2] for example) and
>> >> re-run bundler install. Make sure that the name of the group is the
>> >> same as the name of the plugin, or use ‘bundler_group :my_hello’ in
>> >> the plugin definition ([3] in your case). You already have a settings
>> >> file which you’ll need to copy into the main settings.d.
>> >>
>> >> Hope this helps,
>> >> -d
>> >>
>> >> [2] https://github.com/theforeman/smart-proxy/blob/develop/bundler.d/chef.rb
>> >> [3] https://github.com/mmilata/smart-proxy_hello/blob/master/hello/hello_plugin.rb
>> >>
>> >> On Wed, Jun 25, 2014 at 3:02 PM, Martin Milata wrote:
>> >> > First - thanks for your proxy plugin work Dmitri, it looks really good
>> >> > to me!
>> >> >
>> >> > My question is, how would one go about packaging, installing, and
>> >> > enabling an external module? Say I've got a git repo like [1] - what
>> >> > should the directory structure look like and what should I do to enable
>> >> > the module after I install it as a ruby gem?
>> >> >
>> >> > Thanks,
>> >> > Martin Milata
>> >> >
>> >> > [1] https://github.com/mmilata/smart-proxy_hello
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed to the Google Groups "foreman-dev" group.
>> >> > To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
>> >> > For more options, visit https://groups.google.com/d/optout.
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
>> >> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
>> >> For more options, visit https://groups.google.com/d/optout.
>> >
>> > --
>> > You received this message because you are subscribed to the Google Groups "foreman-dev" group.
>> > To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
No problem, I'm glad that everything cleared up now:)
Martin
···
On Mon, Jun 30, 2014 at 12:59:37 +0100, Dmitri Dolguikh wrote:
> Hey Martin,
>
> I owe you an apology — your original description of how to enable a
> plugin was indeed correct. Plugin gem needs to be put in the :default
> group and its dependencies in the plugin-specific group. You found a
> bug in plugin loading [6], which has been fixed in [7], and should be
> in develop branch soon.
>
> Regards,
> -d
>
> [6] http://projects.theforeman.org/issues/6436
> [7] https://github.com/theforeman/smart-proxy/pull/176
>
> On Mon, Jun 30, 2014 at 12:10 PM, Martin Milata wrote:
> > I'm sorry, I still don't get it.
> >
> > I was using foreman-proxy installed through RPM (specfile from the
> > foreman-packaging repo) and thus used Gemfile.in and bundler_ext. This
> > may have contributed to the confusion, I switched to running
> > foreman-proxy directly from the repo now which should use bundler.
> >
> > Now, If I drop the bundler file [5] into the bundler.d dir, the proxy
> > does not load the plugin. Given that the plugin gem is now in the :hello
> > group, I don't understand how it is supposed to get registered (by
> > deriving the Proxy::Plugin class). BundlerHelper.require_groups is
> > called in two places - first in lib/smart_proxy.rb with :default group,
> > meaning it does not load the plugin, and second in lib/plugin.rb in
> > configure_plugin, but this is for plugins that already are
> > loaded/registered.
> >
> > What am I missing? Please bear with me, I'm a little Ruby-challenged ...
> >
> > Martin
> >
> > [5] https://github.com/mmilata/smart-proxy_hello/blob/master/bundler.d/hello.rb
> >
> > On Fri, Jun 27, 2014 at 17:22:53 +0100, Dmitri Dolguikh wrote:
> >> Please see comments below...
> >>
> >> On Fri, Jun 27, 2014 at 4:53 PM, Martin Milata wrote:
> >> > Thanks, it seems I've got it working now. Couple of questions:
> >> >
> >> > * To enable the plugin, I've got to install the gem and put
> >> > "gem 'plugin_gem_name'" in Gemfile.in or somewhere in bundler.d, not
> >> > enclosed in a group block. The bundler group is for dependencies of
> >> > the plugin, not the plugin gem itself. Is that correct?
> >>
> >> The assumption is that the plugin gem and its dependencies reside
> >> within the same group (as opposed to root-level). As I mentioned
> >> before the gem group name should be the same as the plugin name
> >> (unless you override it in the plugin). You shouldn’t need to change
> >> anything in the main Gemfile. Please note that Gemfile.in is only
> >> being used in rpm/deb installs, and only in the presence of
> >> bundler_ext.
> >>
> >> >
> >> > * The bundler gems are loaded before most of the smart proxy modules and
> >> > as a consequence, I've got to manually require 'proxy/log' and
> >> > 'proxy/plugin' before defining the plugin [4]. Is it intentional?
> >>
> >> This is a consequence of adding dependencies to the Gemfile directly.
> >> The problem should go away if you put plugin gems in a group in a file
> >> in bundler.d dir.
> >>
> >> Cheers,
> >> -d
> >>
> >> >
> >> > Thanks,
> >> > Martin
> >> >
> >> > [4] https://github.com/mmilata/smart-proxy_hello/blob/master/lib/smart_proxy_hello/hello_plugin.rb
> >> >
> >> > On Wed, Jun 25, 2014 at 16:52:39 +0100, Dmitri Dolguikh wrote:
> >> >> Hey Martin,
> >> >>
> >> >> You’ll need to package your plugin as a gem. Smart-proxy relies on
> >> >> Bundler for dependency loading; to make a dependency available to
> >> >> smart-proxy you need to create a new group (see [2] for example) and
> >> >> re-run bundler install. Make sure that the name of the group is the
> >> >> same as the name of the plugin, or use ‘bundler_group :my_hello’ in
> >> >> the plugin definition ([3] in your case). You already have a settings
> >> >> file which you’ll need to copy into the main settings.d.
> >> >>
> >> >> Hope this helps,
> >> >> -d
> >> >>
> >> >> [2] https://github.com/theforeman/smart-proxy/blob/develop/bundler.d/chef.rb
> >> >> [3] https://github.com/mmilata/smart-proxy_hello/blob/master/hello/hello_plugin.rb
> >> >>
> >> >> On Wed, Jun 25, 2014 at 3:02 PM, Martin Milata wrote:
> >> >> > First - thanks for your proxy plugin work Dmitri, it looks really good
> >> >> > to me!
> >> >> >
> >> >> > My question is, how would one go about packaging, installing, and
> >> >> > enabling an external module? Say I've got a git repo like [1] - what
> >> >> > should the directory structure look like and what should I do to enable
> >> >> > the module after I install it as a ruby gem?
> >> >> >
> >> >> > Thanks,
> >> >> > Martin Milata
> >> >> >
> >> >> > [1] https://github.com/mmilata/smart-proxy_hello
> >> >> >
> >> >> > --
> >> >> > You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> >> >> > To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> >> >> > For more options, visit https://groups.google.com/d/optout.
> >> >>
> >> >> --
> >> >> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> >> >> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> >> >> For more options, visit https://groups.google.com/d/optout.
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> >> > To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> >> > For more options, visit https://groups.google.com/d/optout.
> >>
> >> --
> >> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> >> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> >> For more options, visit https://groups.google.com/d/optout.
> >
> > --
> > You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "foreman-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to foreman-dev+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.