From d7f65af6d934759b1c53bbeef010d03d99da241b Mon Sep 17 00:00:00 2001
From: dagnello <dagnello@hp.com>
Date: Fri, 19 Jun 2015 10:45:12 -0700
Subject: [PATCH 1/3] Resolving secgroup.id issue in this module

secgroup['id'] was not being returned in all cases where the
specified security group exists.
---
 cloud/openstack/os_security_group.py | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/cloud/openstack/os_security_group.py b/cloud/openstack/os_security_group.py
index 51e7df772a1..86e6de0b023 100644
--- a/cloud/openstack/os_security_group.py
+++ b/cloud/openstack/os_security_group.py
@@ -48,6 +48,8 @@ options:
        - Should the resource be present or absent.
      choices: [present, absent]
      default: present
+
+requirements: ["shade"]
 '''
 
 EXAMPLES = '''
@@ -114,24 +116,24 @@ def main():
         if module.check_mode:
             module.exit_json(changed=_system_state_change(module, secgroup))
 
-        changed = False
         if state == 'present':
             if not secgroup:
                 secgroup = cloud.create_security_group(name, description)
-                changed = True
+                module.exit_json(changed=True, id=secgroup['id'])
             else:
                 if _needs_update(module, secgroup):
                     secgroup = cloud.update_security_group(
                         secgroup['id'], description=description)
-                    changed = True
-            module.exit_json(
-                changed=changed, id=secgroup.id, secgroup=secgroup)
+                    module.exit_json(changed=True, id=secgroup['id'])
+                else:
+                    module.exit_json(changed=False, id=secgroup['id'])
 
         if state == 'absent':
-            if secgroup:
+            if not secgroup:
+                module.exit_json(changed=False)
+            else:
                 cloud.delete_security_group(secgroup['id'])
-                changed=True
-            module.exit_json(changed=changed)
+                module.exit_json(changed=True)
 
     except shade.OpenStackCloudException as e:
         module.fail_json(msg=e.message)

From 94a8b6dcccfcceb6cbec876ad957ed2c0a105c19 Mon Sep 17 00:00:00 2001
From: Monty Taylor <mordred@inaugust.com>
Date: Fri, 19 Jun 2015 17:06:12 -0400
Subject: [PATCH 2/3] Make sure we're always returning objects too

---
 cloud/openstack/os_security_group.py | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/cloud/openstack/os_security_group.py b/cloud/openstack/os_security_group.py
index 86e6de0b023..7fba28c8cb9 100644
--- a/cloud/openstack/os_security_group.py
+++ b/cloud/openstack/os_security_group.py
@@ -116,24 +116,24 @@ def main():
         if module.check_mode:
             module.exit_json(changed=_system_state_change(module, secgroup))
 
+        changed = False
         if state == 'present':
             if not secgroup:
                 secgroup = cloud.create_security_group(name, description)
-                module.exit_json(changed=True, id=secgroup['id'])
+                changed = True
             else:
                 if _needs_update(module, secgroup):
                     secgroup = cloud.update_security_group(
                         secgroup['id'], description=description)
-                    module.exit_json(changed=True, id=secgroup['id'])
-                else:
-                    module.exit_json(changed=False, id=secgroup['id'])
+                    changed = True
+            module.exit_json(
+                changed=changed, id=secgroup['id'], secgroup=secgroup)
 
         if state == 'absent':
-            if not secgroup:
-                module.exit_json(changed=False)
-            else:
+            if secgroup:
                 cloud.delete_security_group(secgroup['id'])
-                module.exit_json(changed=True)
+                changed = True
+            module.exit_json(changed=changed)
 
     except shade.OpenStackCloudException as e:
         module.fail_json(msg=e.message)

From 850ed126e2500265a4f43c5ee5c8aa00de39796a Mon Sep 17 00:00:00 2001
From: Monty Taylor <mordred@inaugust.com>
Date: Fri, 19 Jun 2015 17:39:57 -0400
Subject: [PATCH 3/3] Remove duplicate shade requirement

---
 cloud/openstack/os_security_group.py | 2 --
 1 file changed, 2 deletions(-)

diff --git a/cloud/openstack/os_security_group.py b/cloud/openstack/os_security_group.py
index 7fba28c8cb9..e42b7f938f5 100644
--- a/cloud/openstack/os_security_group.py
+++ b/cloud/openstack/os_security_group.py
@@ -48,8 +48,6 @@ options:
        - Should the resource be present or absent.
      choices: [present, absent]
      default: present
-
-requirements: ["shade"]
 '''
 
 EXAMPLES = '''