From f40847dd78b2e2b563e2021c811c46f718359acc Mon Sep 17 00:00:00 2001
From: Clark Boylan <clark.boylan@gmail.com>
Date: Thu, 4 Oct 2012 16:34:23 -0700
Subject: [PATCH] Kill trailing whitespace.

Killed trailing whitespace in the puppet repo files using
`sed -r 's/\s+$//'`. Skip binary files and html templates for lodgeit
and mailman.

Change-Id: Ib43493161d8f0e8fae1426b22fb1737832ca14cd
Reviewed-on: https://review.openstack.org/12969
Reviewed-by: Paul Belanger <paul.belanger@polybeacon.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
---
 doc/source/gerrit.rst                         | 36 ++++-----
 doc/source/meetbot.rst                        |  2 +-
 doc/source/puppet_modules.rst                 | 36 ++++-----
 doc/source/systems.rst                        |  2 +-
 doc/source/third_party.rst                    |  2 +-
 .../slave_scripts/baremetal-os-install.sh     | 30 ++++----
 .../files/slave_scripts/gerrit-git-prep.sh    |  4 +-
 modules/jenkins/manifests/jenkinsuser.pp      |  4 +-
 .../mediawiki/templates/apache/mediawiki.erb  |  4 +-
 modules/meetbot/templates/supybot.conf.erb    | 74 +++++++++---------
 .../files/jenkins/jenkins.default             |  2 +-
 .../jenkins_job_builder/config/manuals.yaml   |  4 +-
 .../jenkins_job_builder/config/projects.yaml  | 76 +++++++++----------
 .../config/python-bitrot-jobs.yaml            | 10 +--
 .../config/python-jobs.yaml                   | 10 +--
 .../jenkins_job_builder/config/release.yaml   |  2 +-
 .../files/review.projects.yaml                |  2 +-
 modules/openstack_project/manifests/review.pp |  2 +-
 .../openstack_project/manifests/template.pp   |  2 +-
 modules/pypimirror/files/pull-repo.sh         |  2 +-
 modules/pypimirror/manifests/init.pp          |  6 +-
 modules/snmpd/manifests/init.pp               |  2 +-
 modules/ssh/manifests/init.pp                 |  2 +-
 .../files/50unattended-upgrades               |  8 +-
 modules/unattended_upgrades/manifests/init.pp |  2 +-
 modules/user/manifests/virtual.pp             |  2 +-
 26 files changed, 164 insertions(+), 164 deletions(-)

diff --git a/doc/source/gerrit.rst b/doc/source/gerrit.rst
index 59eeb297d6..f130f39c6d 100644
--- a/doc/source/gerrit.rst
+++ b/doc/source/gerrit.rst
@@ -261,7 +261,7 @@ Here are the SQL commands to set it up:
   'OpenStack CLA via Echosign', 'static/echosign-cla.html', 1);
 
   insert into account_group_agreements values (
-  now(), 'V', 1, now(), NULL, 
+  now(), 'V', 1, now(), NULL,
   (select group_id from account_group_names where name='openstack-cla'),
   1);
 
@@ -278,58 +278,58 @@ Create: /etc/apache2/sites-available/gerrit:
 
   <VirtualHost *:80>
     ServerAdmin webmaster@localhost
-  
+
     ErrorLog ${APACHE_LOG_DIR}/gerrit-error.log
-  
+
     LogLevel warn
-  
+
     CustomLog ${APACHE_LOG_DIR}/gerrit-access.log combined
-  
+
     Redirect / https://review-dev.openstack.org/
-  
+
   </VirtualHost>
-  
+
   <IfModule mod_ssl.c>
   <VirtualHost _default_:443>
     ServerAdmin webmaster@localhost
-  
+
     ErrorLog ${APACHE_LOG_DIR}/gerrit-ssl-error.log
-  
+
     LogLevel warn
-  
+
     CustomLog ${APACHE_LOG_DIR}/gerrit-ssl-access.log combined
-  
+
     SSLEngine on
-  
+
     SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
     SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
     #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt
-  
+
     <FilesMatch "\.(cgi|shtml|phtml|php)$">
         SSLOptions +StdEnvVars
     </FilesMatch>
     <Directory /usr/lib/cgi-bin>
         SSLOptions +StdEnvVars
     </Directory>
-  
+
     BrowserMatch "MSIE [2-6]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
     # MSIE 7 and newer should be able to use keepalive
     BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
-  
+
     RewriteEngine on
     RewriteCond %{HTTP_HOST} !review-dev.openstack.org
     RewriteRule ^.*$ https://review-dev.openstack.org/
-  
+
         ProxyPassReverse / http://localhost:8081/
         <Location />
           Order allow,deny
           Allow from all
           ProxyPass http://localhost:8081/ retry=0
         </Location>
-  
-  
+
+
   </VirtualHost>
   </IfModule>
 
diff --git a/doc/source/meetbot.rst b/doc/source/meetbot.rst
index 7fc86cd3db..9322a5581b 100644
--- a/doc/source/meetbot.rst
+++ b/doc/source/meetbot.rst
@@ -28,7 +28,7 @@ a configuration and documentation for that module is at
 One important config setting is ``supybot.reply.whenAddressedBy.chars``, which
 sets the prefix character for this bot. This should be set to something other
 than ``#`` as ``#`` will conflict with Meetbot (you can leave the setting blank
-if you don't want a prefix character). 
+if you don't want a prefix character).
 
 Meetbot
 -------
diff --git a/doc/source/puppet_modules.rst b/doc/source/puppet_modules.rst
index 9506313b54..1d28fe70d6 100644
--- a/doc/source/puppet_modules.rst
+++ b/doc/source/puppet_modules.rst
@@ -23,7 +23,7 @@ follows:
    doc_server::site { "swift": }
 
 In this example nginx will be configured to serve ``swift.openstack.org``
-from ``/srv/docs/swift`` and ``swift.openstack.org/tarballs/`` from 
+from ``/srv/docs/swift`` and ``swift.openstack.org/tarballs/`` from
 ``/srv/tarballs/swift``
 
 Lodgeit
@@ -302,55 +302,55 @@ master (if running in master/agent setup) or on the server itself if running
 MySQL will be configured by Puppet to listen on TCP 3306 of localhost and a
 database called ``etherpad-lite`` will be created for user ``eplite``. Also,
 this module does install the Abiword package. Knowing this, a good template for
-your config is: 
+your config is:
 
 ::
 
   /*
     This file must be valid JSON. But comments are allowed
-  
+
     Please edit settings.json, not settings.json.template
   */
   {
     //Ip and port which etherpad should bind at
     "ip": "127.0.0.1",
     "port" : 9001,
-    
+
     //The Type of the database. You can choose between dirty, sqlite and mysql
     //You should use mysql or sqlite for anything else than testing or development
     "dbType" : "mysql",
     //the database specific settings
     "dbSettings" : {
-                     "user"    : "eplite", 
-                     "host"    : "localhost", 
-                     "password": "changeme", 
+                     "user"    : "eplite",
+                     "host"    : "localhost",
+                     "password": "changeme",
                      "database": "etherpad-lite"
                    },
-    
+
     //the default text of a pad
     "defaultPadText" : "Welcome to Etherpad Lite!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nEtherpad Lite on Github: http:\/\/j.mp/ep-lite\n",
-    
+
     /* Users must have a session to access pads. This effectively allows only group pads to be accessed. */
     "requireSession" : false,
-  
+
     /* Users may edit pads but not create new ones. Pad creation is only via the API. This applies both to group pads and regular pads. */
     "editOnly" : false,
-    
-    /* if true, all css & js will be minified before sending to the client. This will improve the loading performance massivly, 
+
+    /* if true, all css & js will be minified before sending to the client. This will improve the loading performance massivly,
        but makes it impossible to debug the javascript/css */
     "minify" : true,
-  
+
     /* How long may clients use served javascript code? Without versioning this
       is may cause problems during deployment. */
     "maxAge" : 21600000, // 6 hours
-    
+
     /* This is the path to the Abiword executable. Setting it to null, disables abiword.
-       Abiword is needed to enable the import/export of pads*/  
+       Abiword is needed to enable the import/export of pads*/
     "abiword" : "/usr/bin/abiword",
-    
+
     /* This setting is used if you need http basic auth */
     // "httpAuth" : "user:pass",
-  
+
     /* The log level we are using, can be: DEBUG, INFO, WARN, ERROR */
     "loglevel": "INFO"
   }
@@ -366,7 +366,7 @@ The reverse proxy is configured to talk to Etherpad Lite over localhost:9001.
 Nginx listens on TCP 443 for HTTPS connections. Because HTTPS is used you will
 need SSL certificates. These files are not directly managed by Puppet (again
 because of the sensitive nature of these files), but Puppet will look for
-``/root/secret-files/eplite.crt`` and ``/root/secret-files/eplite.key`` and 
+``/root/secret-files/eplite.crt`` and ``/root/secret-files/eplite.key`` and
 copy them to ``/etc/nginx/ssl/eplite.crt`` and ``/etc/nginx/ssl/eplite.key``,
 which is where Nginx expects them to be.
 
diff --git a/doc/source/systems.rst b/doc/source/systems.rst
index 5dd29b79ed..4c3306048a 100644
--- a/doc/source/systems.rst
+++ b/doc/source/systems.rst
@@ -78,7 +78,7 @@ On the backup servers::
 
   sudo su -
   BUPUSER=bup-<short-servername>  # eg, bup-jenkins-dev
-  useradd -r $BUPUSER -s /bin/bash -m 
+  useradd -r $BUPUSER -s /bin/bash -m
   cd /home/$BUPUSER
   mkdir .ssh
   cat >.ssh/authorized_keys
diff --git a/doc/source/third_party.rst b/doc/source/third_party.rst
index 631e1a3024..01808a0c0f 100644
--- a/doc/source/third_party.rst
+++ b/doc/source/third_party.rst
@@ -141,7 +141,7 @@ should configure as follows::
 
   Trigger on Patchset Uploaded: ticked
   (the rest unticked)
-  
+
   Type: Plain
   Pattern: openstack/project-name (where project-name is the name of the project)
   Branches:
diff --git a/modules/jenkins/files/slave_scripts/baremetal-os-install.sh b/modules/jenkins/files/slave_scripts/baremetal-os-install.sh
index 473f975da7..4511be0f6c 100755
--- a/modules/jenkins/files/slave_scripts/baremetal-os-install.sh
+++ b/modules/jenkins/files/slave_scripts/baremetal-os-install.sh
@@ -3,20 +3,20 @@
 set -x
 sudo cobbler sync
 sudo cobbler system edit --netboot-enabled=Y --name=baremetal1
-sudo cobbler system edit --netboot-enabled=Y --name=baremetal2 
-sudo cobbler system edit --netboot-enabled=Y --name=baremetal3 
-sudo cobbler system edit --netboot-enabled=Y --name=baremetal4 
-sudo cobbler system edit --netboot-enabled=Y --name=baremetal5 
+sudo cobbler system edit --netboot-enabled=Y --name=baremetal2
+sudo cobbler system edit --netboot-enabled=Y --name=baremetal3
+sudo cobbler system edit --netboot-enabled=Y --name=baremetal4
+sudo cobbler system edit --netboot-enabled=Y --name=baremetal5
 sudo cobbler system edit --netboot-enabled=Y --name=baremetal6
 sudo cobbler system edit --netboot-enabled=Y --name=baremetal7
-sudo cobbler system edit --netboot-enabled=Y --name=baremetal8 
-sudo cobbler system edit --netboot-enabled=Y --name=baremetal9 
-sudo cobbler system reboot --name=baremetal1 
-sudo cobbler system reboot --name=baremetal2 
-sudo cobbler system reboot --name=baremetal3 
-sudo cobbler system reboot --name=baremetal4 
-sudo cobbler system reboot --name=baremetal5 
-sudo cobbler system reboot --name=baremetal6 
-sudo cobbler system reboot --name=baremetal7 
-sudo cobbler system reboot --name=baremetal8 
-sudo cobbler system reboot --name=baremetal9 
+sudo cobbler system edit --netboot-enabled=Y --name=baremetal8
+sudo cobbler system edit --netboot-enabled=Y --name=baremetal9
+sudo cobbler system reboot --name=baremetal1
+sudo cobbler system reboot --name=baremetal2
+sudo cobbler system reboot --name=baremetal3
+sudo cobbler system reboot --name=baremetal4
+sudo cobbler system reboot --name=baremetal5
+sudo cobbler system reboot --name=baremetal6
+sudo cobbler system reboot --name=baremetal7
+sudo cobbler system reboot --name=baremetal8
+sudo cobbler system reboot --name=baremetal9
diff --git a/modules/jenkins/files/slave_scripts/gerrit-git-prep.sh b/modules/jenkins/files/slave_scripts/gerrit-git-prep.sh
index ee9bb8fc6e..6c9fa6e51f 100755
--- a/modules/jenkins/files/slave_scripts/gerrit-git-prep.sh
+++ b/modules/jenkins/files/slave_scripts/gerrit-git-prep.sh
@@ -78,7 +78,7 @@ function merge_changes {
 	IFS=':'
 	change_array=($change)
 	IFS=$OIFS2
-   
+
 	CHANGE_PROJECT=${change_array[0]}
 	CHANGE_BRANCH=${change_array[1]}
 	CHANGE_REFSPEC=${change_array[2]}
@@ -109,7 +109,7 @@ then
     git reset --hard remotes/origin/$GERRIT_BRANCH
     git clean -x -f -d -q
 
-    if [ ! -z "$GERRIT_REFSPEC" ]    
+    if [ ! -z "$GERRIT_REFSPEC" ]
     then
         merge_change $GERRIT_PROJECT $GERRIT_REFSPEC
     else
diff --git a/modules/jenkins/manifests/jenkinsuser.pp b/modules/jenkins/manifests/jenkinsuser.pp
index 89af893df8..15a0aa4859 100644
--- a/modules/jenkins/manifests/jenkinsuser.pp
+++ b/modules/jenkins/manifests/jenkinsuser.pp
@@ -29,7 +29,7 @@ class jenkins::jenkinsuser($ensure = present, $sudo = false, $ssh_key) {
     ensure => 'directory',
     require => User['jenkins']
   }
-    
+
   file { 'jenkinspipdir':
     name => '/home/jenkins/.pip',
     owner => 'jenkins',
@@ -63,7 +63,7 @@ class jenkins::jenkinsuser($ensure = present, $sudo = false, $ssh_key) {
     source => "puppet:///modules/jenkins/gitconfig",
     require => File['jenkinshome'],
   }
-   
+
   file { 'jenkinssshdir':
     name => '/home/jenkins/.ssh',
     owner => 'jenkins',
diff --git a/modules/mediawiki/templates/apache/mediawiki.erb b/modules/mediawiki/templates/apache/mediawiki.erb
index 4a60debc22..3a2f9fa20c 100644
--- a/modules/mediawiki/templates/apache/mediawiki.erb
+++ b/modules/mediawiki/templates/apache/mediawiki.erb
@@ -58,10 +58,10 @@
 	<Directory "<%= scope.lookupvar('mediawiki::mediawiki_location') %>/images">
 		# Ignore .htaccess files
 		AllowOverride None
- 
+
 		# Serve HTML as plaintext, don't execute SHTML
 		AddType text/plain .html .htm .shtml .php
- 
+
 		# Don't run arbitrary PHP code.
 		php_admin_flag engine off
 	</Directory>
diff --git a/modules/meetbot/templates/supybot.conf.erb b/modules/meetbot/templates/supybot.conf.erb
index 3828d401db..4c22d5a41e 100644
--- a/modules/meetbot/templates/supybot.conf.erb
+++ b/modules/meetbot/templates/supybot.conf.erb
@@ -29,14 +29,14 @@ supybot.ident: <%= nick %>
 # the current version of the bot will be generated if this is left
 # empty.
 #
-# Default value: 
+# Default value:
 ###
 supybot.user: <%= nick %>
 
 ###
 # Determines what networks the bot will connect to.
 #
-# Default value:  
+# Default value:
 ###
 supybot.networks: <%= network %>
 
@@ -45,32 +45,32 @@ supybot.networks: <%= network %>
 # technically passwords are server-specific and not network-specific,
 # but this is the best we can do right now.
 #
-# Default value: 
+# Default value:
 ###
-supybot.networks.<%= network %>.password: 
+supybot.networks.<%= network %>.password:
 
 ###
 # Determines what servers the bot will connect to for FreeNode. Each
 # will be tried in order, wrapping back to the first when the cycle is
 # completed.
 #
-# Default value: 
+# Default value:
 ###
 supybot.networks.<%= network %>.servers: <%= server %>
 
 ###
 # Determines what channels the bot will join only on network.
 #
-# Default value:  
+# Default value:
 ###
 supybot.networks.<%= network %>.channels: <%= channels %>
 
 ###
 # Determines what key (if any) will be used to join the channel.
 #
-# Default value: 
+# Default value:
 ###
-supybot.networks.<%= network %>.channels.key: 
+supybot.networks.<%= network %>.channels.key:
 
 ###
 # Determines whether the bot will attempt to connect with SSL sockets to
@@ -273,7 +273,7 @@ supybot.reply.showSimpleSyntax: False
 # simultaneously, and if any one of them is used as a prefix the bot
 # will assume it is being addressed.
 #
-# Default value: 
+# Default value:
 ###
 supybot.reply.whenAddressedBy.chars: !
 
@@ -284,9 +284,9 @@ supybot.reply.whenAddressedBy.chars: !
 # space-separated list of strings, so you can set something like '@@ ??'
 # and the bot will reply when a message is prefixed by either @@ or ??.
 #
-# Default value:  
+# Default value:
 ###
-supybot.reply.whenAddressedBy.strings:  
+supybot.reply.whenAddressedBy.strings:
 
 ###
 # Determines whether the bot will reply when people address it by its
@@ -308,9 +308,9 @@ supybot.reply.whenAddressedBy.nick.atEnd: False
 # Determines what extra nicks the bot will always respond to when
 # addressed by, even if its current nick is something else.
 #
-# Default value:  
+# Default value:
 ###
-supybot.reply.whenAddressedBy.nicks:  
+supybot.reply.whenAddressedBy.nicks:
 
 ###
 # Determines whether the bot will unidentify someone when that person
@@ -526,9 +526,9 @@ supybot.commands.defaultPlugins.unignore: Admin
 # Determines what commands are currently disabled. Such commands will
 # not appear in command lists, etc. They will appear not even to exist.
 #
-# Default value:  
+# Default value:
 ###
-supybot.commands.disabled:  
+supybot.commands.disabled:
 
 ###
 # Determines whether the bot will defend itself against command-
@@ -649,7 +649,7 @@ supybot.directories.backup: /var/lib/meetbot/<%= name %>/backup
 # can say: bot: 'config supybot.directories.plugins [config
 # supybot.directories.plugins], newPluginDirectory'.
 #
-# Default value:  
+# Default value:
 ###
 supybot.directories.plugins: /usr/share/pyshared/supybot/plugins
 
@@ -663,7 +663,7 @@ supybot.directories.log: /var/lib/meetbot/<%= name %>/logs
 ###
 # Determines what plugins will be loaded.
 #
-# Default value:  
+# Default value:
 ###
 supybot.plugins: MeetBot Admin ChannelLogger Misc Owner User Services Config Channel
 
@@ -911,9 +911,9 @@ supybot.plugins.Owner.public: True
 # value is empty, the nick of the person giving the quit command will be
 # used.
 #
-# Default value: 
+# Default value:
 ###
-supybot.plugins.Owner.quitMsg: 
+supybot.plugins.Owner.quitMsg:
 
 ###
 # Determines whether this plugin is loaded by default.
@@ -930,7 +930,7 @@ supybot.plugins.Services.public: True
 ###
 # Determines what nicks the bot will use with services.
 #
-# Default value:  
+# Default value:
 ###
 supybot.plugins.Services.nicks: <%= nick %>
 
@@ -962,31 +962,31 @@ supybot.plugins.Services.ghostDelay: 60
 ###
 # Determines what nick the 'NickServ' service has.
 #
-# Default value: 
+# Default value:
 ###
 supybot.plugins.Services.NickServ: NickServ
 
 ###
 # Determines what password the bot will use with NickServ.
 #
-# Default value: 
+# Default value:
 ###
-supybot.plugins.Services.NickServ.password: 
+supybot.plugins.Services.NickServ.password:
 supybot.plugins.Services.NickServ.password.<%= nick %>: <%= nickpass %>
 
 ###
 # Determines what nick the 'ChanServ' service has.
 #
-# Default value: 
+# Default value:
 ###
 supybot.plugins.Services.ChanServ: ChanServ
 
 ###
 # Determines what password the bot will use with ChanServ.
 #
-# Default value: 
+# Default value:
 ###
-supybot.plugins.Services.ChanServ.password: 
+supybot.plugins.Services.ChanServ.password:
 
 ###
 # Determines whether the bot will request to get opped by the ChanServ
@@ -1043,7 +1043,7 @@ supybot.plugins.alwaysLoadImportant: True
 #
 # Default value: anydbm cdb flat pickle
 ###
-supybot.databases: 
+supybot.databases:
 
 ###
 # Determines what filename will be used for the users database. This
@@ -1169,17 +1169,17 @@ supybot.protocols.irc.strictRfc: False
 # +x, which indicates to the auth services on those networks that you
 # should be given a fake host.
 #
-# Default value: 
+# Default value:
 ###
-supybot.protocols.irc.umodes: 
+supybot.protocols.irc.umodes:
 
 ###
 # Determines what vhost the bot will bind to before connecting to the
 # IRC server.
 #
-# Default value: 
+# Default value:
 ###
-supybot.protocols.irc.vhost: 
+supybot.protocols.irc.vhost:
 
 ###
 # Determines how many old messages the bot will keep around in its
@@ -1251,9 +1251,9 @@ supybot.protocols.http.peekSize: 4096
 # Determines what proxy all HTTP requests should go through. The value
 # should be of the form 'host:port'.
 #
-# Default value: 
+# Default value:
 ###
-supybot.protocols.http.proxy: 
+supybot.protocols.http.proxy:
 
 ###
 # Determines whether the bot will ignore unregistered users by default.
@@ -1269,9 +1269,9 @@ supybot.defaultIgnore: False
 # string, the bot will attempt to find out its IP dynamically (though
 # sometimes that doesn't work, hence this variable).
 #
-# Default value: 
+# Default value:
 ###
-supybot.externalIP: 
+supybot.externalIP:
 
 ###
 # Determines what the default timeout for socket objects will be. This
@@ -1289,9 +1289,9 @@ supybot.defaultSocketTimeout: 10
 # then no PID file will be written. A restart is required for changes to
 # this variable to take effect.
 #
-# Default value: 
+# Default value:
 ###
-supybot.pidFile: 
+supybot.pidFile:
 
 ###
 # Determines whether the bot will automatically thread all commands.
diff --git a/modules/openstack_project/files/jenkins/jenkins.default b/modules/openstack_project/files/jenkins/jenkins.default
index 42038c1e6d..a5aa88f71b 100644
--- a/modules/openstack_project/files/jenkins/jenkins.default
+++ b/modules/openstack_project/files/jenkins/jenkins.default
@@ -44,7 +44,7 @@ HTTP_PORT=8080
 # port for AJP connector (disabled by default)
 AJP_PORT=-1
 
-# servlet context, important if you want to use apache proxying  
+# servlet context, important if you want to use apache proxying
 PREFIX=/jenkins
 
 # arguments to pass to jenkins.
diff --git a/modules/openstack_project/files/jenkins_job_builder/config/manuals.yaml b/modules/openstack_project/files/jenkins_job_builder/config/manuals.yaml
index 165e173605..c353b7397f 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/manuals.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/manuals.yaml
@@ -124,7 +124,7 @@
           target: 'api/openstack-image-service/2.0/'
           remove-prefix: 'doc/target/docbkx/webhelp/images-api-2.0/'
           excludes: '**/*.xml,**/null*'
-          
+
 - job:
     name: openstackapi-programming
     project-type: maven
@@ -190,7 +190,7 @@
           source: 'doc/src/docbkx/common/glossary/target/docbkx/webhelp/openstack-glossary/**'
           target: 'glossary'
           remove-prefix: 'doc/src/docbkx/common/glossary/target/docbkx/webhelp/openstack-glossary/'
-          excludes: '**/*.xml,**/null*'    
+          excludes: '**/*.xml,**/null*'
 
 - job:
     name: openstack-admin-manual-compute
diff --git a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
index ad60f2e375..531d8e97bb 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
@@ -2,7 +2,7 @@
     name: ceilometer
     github-org: stackforge
     node: oneiric
-    
+
     jobs:
       - python-jobs
 
@@ -13,7 +13,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - openstack-publish-jobs
@@ -25,7 +25,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - api-jobs
       - openstack-compute-api-doc
@@ -35,7 +35,7 @@
     name: devstack-gate
     github-org: openstack-ci
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
 
@@ -44,7 +44,7 @@
     name: devstack
     github-org: openstack-dev
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
 
@@ -53,7 +53,7 @@
     name: gerrit-verification-status-plugin
     github-org: openstack-ci
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
 
@@ -62,7 +62,7 @@
     name: gerrit
     github-org: openstack-ci
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
 
@@ -73,7 +73,7 @@
     node: precise
     doc-publisher-site: ci.openstack.org
     tarball-publisher-site: 173.203.107.207
-    
+
     jobs:
       - gate-{name}-merge
       - gate-{name}-pep8
@@ -88,7 +88,7 @@
     node: precise
     doc-publisher-site: ci.openstack.org
     tarball-publisher-site: nova.openstack.org
-    
+
     jobs:
       - gate-{name}-merge
       - gate-{name}-pep8
@@ -111,7 +111,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - python-diablo-bitrot-jobs
@@ -124,7 +124,7 @@
     name: heat
     github-org: heat-api
     node: oneiric
-    
+
     jobs:
       - python-jobs
 
@@ -135,7 +135,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - python-diablo-bitrot-jobs
@@ -150,7 +150,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - api-jobs
       - identity-api-v20
@@ -162,7 +162,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - api-jobs
       - image-api-v11
@@ -172,7 +172,7 @@
     name: jenkins-job-builder
     github-org: openstack-ci
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
       - gate-{name}-pep8
@@ -185,7 +185,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - python-diablo-bitrot-jobs
@@ -218,7 +218,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - api-jobs
       - network-api-v10
@@ -254,7 +254,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - python-diablo-bitrot-jobs
@@ -269,7 +269,7 @@
     name: ci-puppet
     github-org: openstack
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
 
@@ -280,7 +280,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - api-jobs
       - openstack-object-api-doc
@@ -292,7 +292,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - openstack-publish-jobs
@@ -304,7 +304,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - gate-{name}-merge
 
@@ -315,7 +315,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - gate-{name}-merge
 
@@ -344,7 +344,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - pypi-jobs
@@ -381,7 +381,7 @@
     name: pypi-mirror
     github-org: openstack-ci
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
       - gate-{name}-pyflakes
@@ -393,7 +393,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - pypi-jobs
@@ -405,7 +405,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - pypi-jobs
@@ -417,7 +417,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - pypi-jobs
@@ -429,7 +429,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - pypi-jobs
@@ -441,7 +441,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - pypi-jobs
@@ -453,7 +453,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - pypi-jobs
@@ -465,7 +465,7 @@
     node: precise
     tarball-publisher-site: swift.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - pypi-jobs
@@ -477,7 +477,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - openstack-publish-jobs
@@ -487,7 +487,7 @@
     name: reddwarf
     github-org: stackforge
     node: oneiric
-    
+
     jobs:
       - python-jobs
 
@@ -496,7 +496,7 @@
     name: requirements
     github-org: openstack
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
 
@@ -505,7 +505,7 @@
     name: sandbox
     github-org: openstack-dev
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
 
@@ -516,7 +516,7 @@
     node: precise
     tarball-publisher-site: nova.openstack.org
     doc-publisher-site: docs.openstack.org
-    
+
     jobs:
       - python-jobs
       - python-diablo-bitrot-jobs
@@ -529,7 +529,7 @@
     name: tempest
     github-org: openstack-ci
     node: precise
-    
+
     jobs:
       - gate-{name}-merge
       - gate-{name}-pep8
diff --git a/modules/openstack_project/files/jenkins_job_builder/config/python-bitrot-jobs.yaml b/modules/openstack_project/files/jenkins_job_builder/config/python-bitrot-jobs.yaml
index 120d374a62..b55912be56 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/python-bitrot-jobs.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/python-bitrot-jobs.yaml
@@ -18,14 +18,14 @@
       - console-log-periodic
 
     scm:
-      - git: 
+      - git:
           url: 'git://github.com/{github-org}/{name}.git'
           branches:
             - 'origin/{branch}'
 
     # >= precise does not have python2.6
     node: oneiric
-  
+
 
 - job-template:
     name: 'periodic-{name}-python27-{branch-name}'
@@ -47,13 +47,13 @@
       - console-log-periodic
 
     scm:
-      - git: 
+      - git:
           url: 'git://github.com/{github-org}/{name}.git'
           branches:
             - 'origin/{branch}'
 
     node: '{node}'
-  
+
 
 - job-template:
     name: 'periodic-{name}-docs-{branch-name}'
@@ -68,7 +68,7 @@
       - console-log-periodic
 
     scm:
-      - git: 
+      - git:
           url: 'git://github.com/{github-org}/{name}.git'
           branches:
             - 'origin/{branch}'
diff --git a/modules/openstack_project/files/jenkins_job_builder/config/python-jobs.yaml b/modules/openstack_project/files/jenkins_job_builder/config/python-jobs.yaml
index 7842596b44..35f511f8b6 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/python-jobs.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/python-jobs.yaml
@@ -19,7 +19,7 @@
       - console-log-post
 
     node: '{node}'
-  
+
 
 - job-template:
     name: 'gate-{name}-pep8'
@@ -36,7 +36,7 @@
       - console-log
 
     node: '{node}'
-  
+
 
 - job-template:
     name: 'gate-{name}-pylint'
@@ -77,7 +77,7 @@
 
     # >= precise does not have python2.6
     node: oneiric
-  
+
 
 - job-template:
     name: 'gate-{name}-python27'
@@ -106,7 +106,7 @@
       - console-log
 
     node: '{node}'
-  
+
 
 - job-template:
     name: 'gate-{name}-merge'
@@ -138,7 +138,7 @@
 
     node: '{node}'
 
-  
+
 - job-template:
     name: 'gate-{name}-pyflakes'
     node: precise
diff --git a/modules/openstack_project/files/jenkins_job_builder/config/release.yaml b/modules/openstack_project/files/jenkins_job_builder/config/release.yaml
index c5da2f69bb..772ba6d5ad 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/release.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/release.yaml
@@ -31,6 +31,6 @@
       - string:
           name: VALUE
           description: 'The milestone value to set for this branch.  E.g., "e4" or "rc1".'
-          
+
     builders:
       - shell: "/usr/local/jenkins/slave_scripts/bump-milestone.sh"
diff --git a/modules/openstack_project/files/review.projects.yaml b/modules/openstack_project/files/review.projects.yaml
index a52164b378..341e4ed3e2 100644
--- a/modules/openstack_project/files/review.projects.yaml
+++ b/modules/openstack_project/files/review.projects.yaml
@@ -7,7 +7,7 @@
 - project: openstack-ci/gerrit
   options:
   - close-pull
-  remote: https://gerrit.googlesource.com/gerrit 
+  remote: https://gerrit.googlesource.com/gerrit
 - project: openstack-ci/gerrit-verification-status-plugin
   options:
   - close-pull
diff --git a/modules/openstack_project/manifests/review.pp b/modules/openstack_project/manifests/review.pp
index a8d8565432..65fe626da8 100644
--- a/modules/openstack_project/manifests/review.pp
+++ b/modules/openstack_project/manifests/review.pp
@@ -4,7 +4,7 @@
 # This limit must be several units higher than the total number of
 # httpd and sshd threads as some request processing code paths may need
 # multiple connections.
-# database.poolLimit = 1 + max(sshd.threads,sshd.batchThreads) + sshd.streamThreads + sshd.commandStartThreads + httpd.acceptorThreads + httpd.maxThreads 
+# database.poolLimit = 1 + max(sshd.threads,sshd.batchThreads) + sshd.streamThreads + sshd.commandStartThreads + httpd.acceptorThreads + httpd.maxThreads
 # http://groups.google.com/group/repo-discuss/msg/4c2809310cd27255
 # or "2x sshd.threads"
 # http://groups.google.com/group/repo-discuss/msg/269024c966e05d6a
diff --git a/modules/openstack_project/manifests/template.pp b/modules/openstack_project/manifests/template.pp
index 04893224ac..ab02b0555e 100644
--- a/modules/openstack_project/manifests/template.pp
+++ b/modules/openstack_project/manifests/template.pp
@@ -7,7 +7,7 @@ class openstack_project::template (
   include ssh
   include snmpd
   include unattended_upgrades
-  
+
   class { 'iptables':
     public_tcp_ports => $iptables_public_tcp_ports,
   }
diff --git a/modules/pypimirror/files/pull-repo.sh b/modules/pypimirror/files/pull-repo.sh
index 46873935b2..4c1b12d672 100644
--- a/modules/pypimirror/files/pull-repo.sh
+++ b/modules/pypimirror/files/pull-repo.sh
@@ -23,7 +23,7 @@ for branch in `git branch -a | grep remotes.origin | grep -v origin.HEAD | awk '
     echo "Fetching pip requires for $project:$branch"
     for requires_file in tools/pip-requires tools/test-requires ; do
         if [ -f ${requires_file} ] ; then
-            $pip_command -r $requires_file 
+            $pip_command -r $requires_file
         fi
     done
 done
diff --git a/modules/pypimirror/manifests/init.pp b/modules/pypimirror/manifests/init.pp
index da0a008972..29a8a728cc 100644
--- a/modules/pypimirror/manifests/init.pp
+++ b/modules/pypimirror/manifests/init.pp
@@ -27,21 +27,21 @@ class pypimirror ( $vhost_name = $fqdn,
     owner => 'root',
     group => 'root',
   }
-    
+
   file { $pip_download:
     ensure => 'directory',
     mode => 755,
     owner => 'root',
     group => 'root',
   }
-    
+
   file { $pip_cache:
     ensure => 'directory',
     mode => 755,
     owner => 'root',
     group => 'root',
   }
-    
+
   file { '/etc/openstackci':
     ensure => "directory",
     owner => "root",
diff --git a/modules/snmpd/manifests/init.pp b/modules/snmpd/manifests/init.pp
index 168596af75..97553fa67a 100644
--- a/modules/snmpd/manifests/init.pp
+++ b/modules/snmpd/manifests/init.pp
@@ -1,6 +1,6 @@
 class snmpd {
     package { snmpd: ensure => present }
-    service { snmpd: 
+    service { snmpd:
       ensure          => running,
       hasrestart      => true,
       require => [File["/etc/snmp/snmpd.conf"],
diff --git a/modules/ssh/manifests/init.pp b/modules/ssh/manifests/init.pp
index b3f17bd8c9..d88911f6ba 100644
--- a/modules/ssh/manifests/init.pp
+++ b/modules/ssh/manifests/init.pp
@@ -1,6 +1,6 @@
 class ssh {
     package { openssh-server: ensure => present }
-    service { ssh: 
+    service { ssh:
       ensure          => running,
       hasrestart      => true,
       subscribe       => File["/etc/ssh/sshd_config"],
diff --git a/modules/unattended_upgrades/files/50unattended-upgrades b/modules/unattended_upgrades/files/50unattended-upgrades
index 0a09ce0396..5faa45e60d 100644
--- a/modules/unattended_upgrades/files/50unattended-upgrades
+++ b/modules/unattended_upgrades/files/50unattended-upgrades
@@ -1,5 +1,5 @@
 // Automatically upgrade packages from these (origin, archive) pairs
-Unattended-Upgrade::Allowed-Origins {    
+Unattended-Upgrade::Allowed-Origins {
     // ${distro_id} and ${distro_codename} will be automatically expanded
     "${distro_id} stable";
     "${distro_id} ${distro_codename}-security";
@@ -16,7 +16,7 @@ Unattended-Upgrade::Package-Blacklist {
 };
 
 // Send email to this address for problems or packages upgrades
-// If empty or unset then no email is sent, make sure that you 
+// If empty or unset then no email is sent, make sure that you
 // have a working mail setup on your system. The package 'mailx'
 // must be installed or anything that provides /usr/bin/mail.
 Unattended-Upgrade::Mail "root";
@@ -25,6 +25,6 @@ Unattended-Upgrade::Mail "root";
 // (equivalent to apt-get autoremove)
 //Unattended-Upgrade::Remove-Unused-Dependencies "false";
 
-// Automatically reboot *WITHOUT CONFIRMATION* if a 
-// the file /var/run/reboot-required is found after the upgrade 
+// Automatically reboot *WITHOUT CONFIRMATION* if a
+// the file /var/run/reboot-required is found after the upgrade
 //Unattended-Upgrade::Automatic-Reboot "false";
diff --git a/modules/unattended_upgrades/manifests/init.pp b/modules/unattended_upgrades/manifests/init.pp
index 74b6e95121..15b79315f7 100644
--- a/modules/unattended_upgrades/manifests/init.pp
+++ b/modules/unattended_upgrades/manifests/init.pp
@@ -24,5 +24,5 @@ class unattended_upgrades($ensure = present) {
     source => "puppet:///modules/unattended_upgrades/50unattended-upgrades",
     replace => 'true',
   }
-  
+
 }
diff --git a/modules/user/manifests/virtual.pp b/modules/user/manifests/virtual.pp
index 27b772e15e..5631e6d2fc 100644
--- a/modules/user/manifests/virtual.pp
+++ b/modules/user/manifests/virtual.pp
@@ -15,7 +15,7 @@ class user::virtual {
       managehome => true,  # creates the home directory (does not actually manage it)
       require => Group[$title],
     }
-    
+
     file { "${title}_sshdir":
       name => "/home/$title/.ssh",
       owner => $title,