From 7248c0861da31c3c6e0155c9df478cc0b4a22804 Mon Sep 17 00:00:00 2001
From: Justin Lecher <jlec@gentoo.org>
Date: Fri, 9 Jan 2015 16:07:42 +0100
Subject: [PATCH 1/2] Allow disabling of autorefresh for zypper repositories

In case of release repositories or other special cases you might not
need the autorefreshing of the repos. This patch adds a configure
option instead of hard enabling this.

Signed-off-by: Justin Lecher <jlec@gentoo.org>
---
 packaging/os/zypper_repository.py | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/packaging/os/zypper_repository.py b/packaging/os/zypper_repository.py
index 5e41683734b..44a0ed6029c 100644
--- a/packaging/os/zypper_repository.py
+++ b/packaging/os/zypper_repository.py
@@ -2,6 +2,7 @@
 # encoding: utf-8
 
 # (c) 2013, Matthias Vogelgesang <matthias.vogelgesang@gmail.com>
+# (c) 2014, Justin Lecher <jlec@gentoo.org>
 #
 # This file is part of Ansible
 #
@@ -58,6 +59,13 @@ options:
         default: "no"
         choices: [ "yes", "no" ]
         aliases: []
+    refresh:
+       description:
+           - Enable autorefresh of the repository.
+        required: false
+        default: "no"
+        choices: [ "yes", "no" ]
+        aliases: []
 notes: []
 requirements: [ zypper ]
 '''
@@ -145,11 +153,11 @@ def repo_exists(module, old_zypper, **kwargs):
     return False
 
 
-def add_repo(module, repo, alias, description, disable_gpg_check, old_zypper):
+def add_repo(module, repo, alias, description, disable_gpg_check, old_zypper, refresh):
     if old_zypper:
         cmd = ['/usr/bin/zypper', 'sa']
     else:
-        cmd = ['/usr/bin/zypper', 'ar', '--check', '--refresh']
+        cmd = ['/usr/bin/zypper', 'ar', '--check']
 
     if repo.startswith("file:/") and old_zypper:
         cmd.extend(['-t', 'Plaindir'])
@@ -162,6 +170,9 @@ def add_repo(module, repo, alias, description, disable_gpg_check, old_zypper):
     if disable_gpg_check and not old_zypper:
         cmd.append('--no-gpgcheck')
 
+    if refresh:
+        cmd.append('--refresh')
+
     cmd.append(repo)
 
     if not repo.endswith('.repo'):
@@ -216,6 +227,7 @@ def main():
             state=dict(choices=['present', 'absent'], default='present'),
             description=dict(required=False),
             disable_gpg_check = dict(required=False, default='no', type='bool'),
+            refresh = dict(required=False, default='yes', type='bool'),
         ),
         supports_check_mode=False,
     )
@@ -225,6 +237,7 @@ def main():
     name = module.params['name']
     description = module.params['description']
     disable_gpg_check = module.params['disable_gpg_check']
+    refresh = module.params['refresh']
 
     def exit_unchanged():
         module.exit_json(changed=False, repo=repo, state=state, name=name)
@@ -260,7 +273,7 @@ def main():
         if exists:
             exit_unchanged()
 
-        changed = add_repo(module, repo, name, description, disable_gpg_check, old_zypper)
+        changed = add_repo(module, repo, name, description, disable_gpg_check, old_zypper, refresh)
     elif state == 'absent':
         if not exists:
             exit_unchanged()

From 8658b6783a7c2e8d292ac170eb636662bd01bee3 Mon Sep 17 00:00:00 2001
From: Justin Lecher <jlec@gentoo.org>
Date: Wed, 14 Jan 2015 15:50:18 +0100
Subject: [PATCH 2/2] Keep default behaviour for refresh

Signed-off-by: Justin Lecher <jlec@gentoo.org>
---
 packaging/os/zypper_repository.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packaging/os/zypper_repository.py b/packaging/os/zypper_repository.py
index 44a0ed6029c..9cdce3ee4f3 100644
--- a/packaging/os/zypper_repository.py
+++ b/packaging/os/zypper_repository.py
@@ -63,7 +63,7 @@ options:
        description:
            - Enable autorefresh of the repository.
         required: false
-        default: "no"
+        default: "yes"
         choices: [ "yes", "no" ]
         aliases: []
 notes: []