From f33efc929a87fb3b206c106eeda70153e546b740 Mon Sep 17 00:00:00 2001
From: Rene Moser <mail@renemoser.net>
Date: Sat, 6 Jun 2015 09:42:56 +0200
Subject: [PATCH] puppet: add --environment support

---
 system/puppet.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/system/puppet.py b/system/puppet.py
index 46a5ea58d4f..49ccfaf3cbd 100644
--- a/system/puppet.py
+++ b/system/puppet.py
@@ -59,6 +59,11 @@ options:
       - Basename of the facter output file
     required: false
     default: ansible
+  environment:
+    desciption:
+      - Puppet environment to be used.
+    required: false
+    default: None
 requirements: [ puppet ]
 author: Monty Taylor
 '''
@@ -69,6 +74,9 @@ EXAMPLES = '''
 
 # Run puppet and timeout in 5 minutes
 - puppet: timeout=5m
+
+# Run puppet using a different environment
+- puppet: environment=testing
 '''
 
 
@@ -104,6 +112,7 @@ def main():
                 default=False, aliases=['show-diff'], type='bool'),
             facts=dict(default=None),
             facter_basename=dict(default='ansible'),
+            environment=dict(required=False, default=None),
         ),
         supports_check_mode=True,
         required_one_of=[
@@ -154,10 +163,14 @@ def main():
                    puppetmaster=pipes.quote(p['puppetmaster']))
         if p['show_diff']:
             cmd += " --show-diff"
+        if p['environment']:
+            cmd += " --environment '%s'" % p['environment']
         if module.check_mode:
             cmd += " --noop"
     else:
         cmd = "%s apply --detailed-exitcodes " % base_cmd
+        if p['environment']:
+            cmd += "--environment '%s' " % p['environment']
         if module.check_mode:
             cmd += "--noop "
         cmd += pipes.quote(p['manifest'])