From f5feb7fbbb4f8db0b7ae88e17e8aad27d7c5dc8a Mon Sep 17 00:00:00 2001 From: Joe Topjian Date: Wed, 4 Mar 2015 04:41:15 +0000 Subject: [PATCH] Allows "self" to be discovered and recorded correctly. --- .../resource_openstack_compute_secgroup_v2.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go b/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go index cf00f7f1b8..3860dc69c0 100644 --- a/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go +++ b/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go @@ -72,6 +72,7 @@ func resourceComputeSecGroupV2() *schema.Resource { "self": &schema.Schema{ Type: schema.TypeBool, Optional: true, + Default: false, ForceNew: false, }, }, @@ -126,8 +127,16 @@ func resourceComputeSecGroupV2Read(d *schema.ResourceData, meta interface{}) err d.Set("region", d.Get("region").(string)) d.Set("name", sg.Name) d.Set("description", sg.Description) - log.Printf("[DEBUG] rulesToMap(sg.Rules): %+v", rulesToMap(sg.Rules)) - d.Set("rule", rulesToMap(sg.Rules)) + rtm := rulesToMap(sg.Rules) + for _, v := range rtm { + if v["group"] == d.Get("name") { + v["self"] = "1" + } else { + v["self"] = "0" + } + } + log.Printf("[DEBUG] rulesToMap(sg.Rules): %+v", rtm) + d.Set("rule", rtm) return nil } @@ -267,6 +276,7 @@ func rulesToMap(sgrs []secgroups.Rule) []map[string]interface{} { "to_port": sgr.ToPort, "ip_protocol": sgr.IPProtocol, "cidr": sgr.IPRange.CIDR, + "group": sgr.Group.Name, } } return sgrMap