mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-07-05 17:52:38 +00:00
Add support for Cloud SQL CA Cert (#635)
Expose the 'ServerCaCert' object from the Cloud SQL Instance[1] Related: #635 - Solves first point [1] https://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/instances#resource
This commit is contained in:
parent
cc5f77e32e
commit
6e101dd3b7
|
@ -344,7 +344,36 @@ func resourceSqlDatabaseInstance() *schema.Resource {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"server_ca_cert": &schema.Schema{
|
||||||
|
Type: schema.TypeList,
|
||||||
|
Computed: true,
|
||||||
|
Optional: true,
|
||||||
|
MaxItems: 1,
|
||||||
|
Elem: &schema.Resource{
|
||||||
|
Schema: map[string]*schema.Schema{
|
||||||
|
"cert": &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Computed: true,
|
||||||
|
},
|
||||||
|
"common_name": &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Computed: true,
|
||||||
|
},
|
||||||
|
"create_time": &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Computed: true,
|
||||||
|
},
|
||||||
|
"expiration_time": &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Computed: true,
|
||||||
|
},
|
||||||
|
"sha1_fingerprint": &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Computed: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
"self_link": &schema.Schema{
|
"self_link": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
|
@ -708,6 +737,10 @@ func resourceSqlDatabaseInstanceRead(d *schema.ResourceData, meta interface{}) e
|
||||||
log.Printf("[WARN] Failed to set SQL Database Instance IP Addresses")
|
log.Printf("[WARN] Failed to set SQL Database Instance IP Addresses")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := d.Set("server_ca_cert", flattenServerCaCert(instance.ServerCaCert)); err != nil {
|
||||||
|
log.Printf("[WARN] Failed to set SQL Database CA Certificate")
|
||||||
|
}
|
||||||
|
|
||||||
d.Set("master_instance_name", strings.TrimPrefix(instance.MasterInstanceName, project+":"))
|
d.Set("master_instance_name", strings.TrimPrefix(instance.MasterInstanceName, project+":"))
|
||||||
d.Set("project", project)
|
d.Set("project", project)
|
||||||
d.Set("self_link", instance.SelfLink)
|
d.Set("self_link", instance.SelfLink)
|
||||||
|
@ -1156,6 +1189,24 @@ func flattenIpAddresses(ipAddresses []*sqladmin.IpMapping) []map[string]interfac
|
||||||
return ips
|
return ips
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func flattenServerCaCert(caCert *sqladmin.SslCert) []map[string]interface{} {
|
||||||
|
var cert []map[string]interface{}
|
||||||
|
|
||||||
|
if caCert != nil {
|
||||||
|
data := map[string]interface{}{
|
||||||
|
"cert": caCert.Cert,
|
||||||
|
"common_name": caCert.CommonName,
|
||||||
|
"create_time": caCert.CreateTime,
|
||||||
|
"expiration_time": caCert.ExpirationTime,
|
||||||
|
"sha1_fingerprint": caCert.Sha1Fingerprint,
|
||||||
|
}
|
||||||
|
|
||||||
|
cert = append(cert, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
return cert
|
||||||
|
}
|
||||||
|
|
||||||
func instanceMutexKey(project, instance_name string) string {
|
func instanceMutexKey(project, instance_name string) string {
|
||||||
return fmt.Sprintf("google-sql-database-instance-%s-%s", project, instance_name)
|
return fmt.Sprintf("google-sql-database-instance-%s-%s", project, instance_name)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user