func setNodesTable(target **stingray.NodesTable, d *schema.ResourceData, key string) { if _, ok := d.GetOk(key); ok { var nodes []string if v := d.Get(key).(*schema.Set); v.Len() > 0 { nodes = make([]string, v.Len()) for i, v := range v.List() { nodes[i] = v.(string) } } nodesTable := nodesToNodesTable(nodes) *target = &nodesTable } }
func resourceVirtualServerSet(d *schema.ResourceData, meta interface{}) error { c := meta.(*providerConfig).client r := stingray.NewVirtualServer(d.Get("name").(string)) setString(&r.ConnectionErrors.ErrorFile, d, "connection_errors_error_file") setInt(&r.Connection.KeepaliveTimeout, d, "connection_keepalive_timeout") setInt(&r.Connection.Timeout, d, "connection_timeout") setInt(&r.Basic.ConnectTimeout, d, "connect_timeout") setBool(&r.Basic.Enabled, d, "enabled") // NOTE: Set default for gzip_include_mime // // Default does not work for sets (only for primitive types), // so we must use GetOK. This means we will get the default // value if the parameter is unset OR set to the empty value. if _, ok := d.GetOk("gzip_include_mime"); ok { setStringSet(&r.Gzip.IncludeMIME, d, "gzip_include_mime") } else { r.Gzip.IncludeMIME = &[]string{"text/html", "text/plain"} } setBool(&r.Gzip.Enabled, d, "gzip_enabled") setString(&r.HTTP.LocationRewrite, d, "http_location_rewrite") setBool(&r.Basic.ListenOnAny, d, "listen_on_any") setStringSet(&r.Basic.ListenOnTrafficIPs, d, "listen_on_traffic_ips") setBool(&r.Log.Enabled, d, "log_enabled") setString(&r.Log.Filename, d, "log_filename") setString(&r.Log.Format, d, "log_format") setBool(&r.Log.ServerConnectionFailures, d, "log_server_connection_failures") setString(&r.Basic.Note, d, "note") setString(&r.Basic.Pool, d, "pool") setInt(&r.Basic.Port, d, "port") setString(&r.Basic.Protocol, d, "protocol") setBool(&r.RecentConnections.SaveAll, d, "recent_connections_save_all") setStringList(&r.Basic.RequestRules, d, "request_rules") setStringList(&r.Basic.ResponseRules, d, "response_rules") setBool(&r.SSL.AddHTTPHeaders, d, "ssl_add_http_headers") setBool(&r.Basic.SSLDecrypt, d, "ssl_decrypt") setString(&r.SSL.ServerCertDefault, d, "ssl_server_cert_default") setServerCertHostMappingTable(&r.SSL.ServerCertHostMapping, d, "ssl_server_cert_host_mapping") setString(&r.Syslog.Format, d, "syslog_format") setBool(&r.WebCache.Enabled, d, "web_cache_enabled") setInt(&r.WebCache.MaxTime, d, "web_cache_max_time") _, err := c.Set(r) if err != nil { return err } d.SetId(d.Get("name").(string)) return nil }
func setServerCertHostMappingTable(target **stingray.ServerCertHostMappingTable, d *schema.ResourceData, key string) { if _, ok := d.GetOk(key); ok { table := d.Get(key).(*schema.Set).List() *target, _ = expandServerCertHostMappingTable(table) } }
func setScriptArgumentsTable(target **stingray.ScriptArgumentsTable, d *schema.ResourceData, key string) { if _, ok := d.GetOk(key); ok { table := d.Get(key).(*schema.Set).List() *target, _ = expandScriptArgumentsTable(table) } }