tpgtools/ignored_handwritten/common_set_hash.go (47 lines of code) (raw):

package google import ( "bytes" "fmt" "sort" "strings" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-google/google/tpgresource" ) func resourceComputeFirewallRuleHash(v interface{}) int { var buf bytes.Buffer m := v.(map[string]interface{}) buf.WriteString(fmt.Sprintf("%s-", strings.ToLower(m["protocol"].(string)))) // We need to make sure to sort the strings below so that we always // generate the same hash code no matter what is in the set. if v, ok := m["ports"]; ok && v != nil { s := convertStringArr(v.([]interface{})) sort.Strings(s) for _, v := range s { buf.WriteString(fmt.Sprintf("%s-", v)) } } return hashcode(buf.String()) } func resourceDNSManagedZoneNetworkHash(v interface{}) int { if v == nil { return 0 } raw := v.(map[string]interface{}) if url, ok := raw["network_url"]; ok { return selfLinkNameHash(url) } var buf bytes.Buffer schema.SerializeResourceForHash(&buf, raw, DnsManagedZonePrivateVisibilityConfigNetworksSchema()) return hashcode(buf.String()) } func resourceSourceRepoRepositoryPubSubConfigsHash(v interface{}) int { if v == nil { return 0 } var buf bytes.Buffer m := v.(map[string]interface{}) buf.WriteString(fmt.Sprintf("%s-", tpgresource.GetResourceNameFromSelfLink(m["topic"].(string)))) buf.WriteString(fmt.Sprintf("%s-", m["message_format"].(string))) if v, ok := m["service_account_email"]; ok { buf.WriteString(fmt.Sprintf("%s-", v.(string))) } return hashcode(buf.String()) }