Skip to content

Commit e16b559

Browse files
committed
Support for mysql service added
1 parent 248a77c commit e16b559

File tree

101 files changed

+12265
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+12265
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## 3.82.0 (Unreleased)
22

33
### Added
4+
- Support for MySQL service added
45
- Support harvesting sources with Private IPs for resource `datacatalog`
56
- Support `dataflow_archive_uri` for service `dataflow`
67
- Support for Data Integration Service

examples/mysql/main.tf

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
// Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
2+
3+
variable "tenancy_ocid" {}
4+
variable "user_ocid" {}
5+
variable "fingerprint" {}
6+
variable "private_key_path" {}
7+
variable "region" {}
8+
variable "compartment_ocid" {}
9+
10+
provider "oci" {
11+
tenancy_ocid = "${var.tenancy_ocid}"
12+
user_ocid = "${var.user_ocid}"
13+
fingerprint = "${var.fingerprint}"
14+
private_key_path = "${var.private_key_path}"
15+
region = "${var.region}"
16+
}
17+
18+
resource "oci_core_subnet" "test_subnet" {
19+
cidr_block = "10.0.0.0/24"
20+
compartment_id = "${var.compartment_ocid}"
21+
vcn_id = "${oci_core_vcn.test_vcn.id}"
22+
}
23+
24+
resource "oci_core_vcn" "test_vcn" {
25+
cidr_block = "10.0.0.0/16"
26+
compartment_id = "${var.compartment_ocid}"
27+
}
28+
29+
resource "oci_mysql_mysql_backup" "test_mysql_backup" {
30+
db_system_id = "${oci_mysql_mysql_db_system.test_mysql_backup_db_system.id}"
31+
}
32+
33+
resource "oci_mysql_mysql_db_system" "test_mysql_backup_db_system" {
34+
#Required
35+
admin_password = "BEstrO0ng_#11"
36+
admin_username = "adminUser"
37+
availability_domain = "${data.oci_identity_availability_domains.test_availability_domains.availability_domains.0.name}"
38+
compartment_id = "${var.compartment_ocid}"
39+
configuration_id = "${data.oci_mysql_mysql_configurations.test_mysql_configurations.configurations.0.id}"
40+
shape_name = "VM.Standard.E2.2"
41+
subnet_id = "${oci_core_subnet.test_subnet.id}"
42+
43+
#Optional
44+
data_storage_size_in_gb = "50"
45+
}
46+
47+
resource "oci_mysql_mysql_db_system" "test_mysql_db_system" {
48+
#Required
49+
admin_password = "BEstrO0ng_#11"
50+
admin_username = "adminUser"
51+
availability_domain = "${data.oci_identity_availability_domains.test_availability_domains.availability_domains.0.name}"
52+
compartment_id = "${var.compartment_ocid}"
53+
configuration_id = "${data.oci_mysql_mysql_configurations.test_mysql_configurations.configurations.0.id}"
54+
shape_name = "VM.Standard.E2.2"
55+
subnet_id = "${oci_core_subnet.test_subnet.id}"
56+
57+
#Optional
58+
backup_policy {
59+
is_enabled = "false"
60+
retention_in_days = "10"
61+
window_start_time = "01:00-00:00"
62+
}
63+
64+
#defined_tags = "${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "${var.mysql_defined_tags_value}")}"
65+
#freeform_tags = "${var.mysql_freeform_tags}"
66+
description = "MySQL Database Service"
67+
68+
display_name = "DBSystem001"
69+
fault_domain = "FAULT-DOMAIN-1"
70+
hostname_label = "hostnameLabel"
71+
ip_address = "10.0.0.8"
72+
73+
maintenance {
74+
window_start_time = "sun 01:00"
75+
}
76+
77+
mysql_version = "${data.oci_mysql_mysql_versions.test_mysql_versions.versions.0.versions.0.version}"
78+
port = "3306"
79+
port_x = "33306"
80+
81+
# Creating DB System using a backup
82+
source {
83+
backup_id = "${oci_mysql_mysql_backup.test_mysql_backup.id}"
84+
source_type = "BACKUP"
85+
}
86+
}
87+
88+
data "oci_mysql_mysql_versions" "test_mysql_versions" {
89+
compartment_id = "${var.compartment_ocid}"
90+
}
91+
92+
data "oci_mysql_mysql_configurations" "test_mysql_configurations" {
93+
compartment_id = "${var.compartment_ocid}"
94+
95+
#Optional
96+
state = "ACTIVE"
97+
display_name = "VM.Standard.E2.2.Built-in"
98+
shape_name = "VM.Standard.E2.2"
99+
}
100+
101+
data "oci_mysql_shapes" "test_shapes" {
102+
compartment_id = "${var.compartment_ocid}"
103+
availability_domain = "${lower("${data.oci_identity_availability_domains.test_availability_domains.availability_domains.0.name}")}"
104+
}
105+
106+
data "oci_identity_availability_domains" "test_availability_domains" {
107+
compartment_id = "${var.tenancy_ocid}"
108+
}
109+
110+
output "version_value" {
111+
value = "${data.oci_mysql_mysql_versions.test_mysql_versions.versions.0.versions.0.version}"
112+
}
113+
114+
output "configuration_id" {
115+
value = "${data.oci_mysql_mysql_configurations.test_mysql_configurations.configurations.0.id}"
116+
}

oci/helpers.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ variable "InstanceImageOCID" {
5959
}
6060
}
6161
`
62+
MysqlConfigurationIdVariable = `
63+
variable "MysqlConfigurationOCID" {
64+
type = "map"
65+
default = {
66+
us-ashburn-1 = "ocid1.mysqlconfiguration.oc1..aaaaaaaah6o6qu3gdbxnqg6aw56amnosmnaycusttaa7abyq2tdgpgubvsgj"
67+
}
68+
}
69+
`
6270
OciWindowsImageIdsVariable = `
6371
variable "InstanceImageOCID" {
6472
type = "map"

oci/mysql_clients.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package oci
5+
6+
import (
7+
oci_mysql "github.com/oracle/oci-go-sdk/mysql"
8+
9+
oci_common "github.com/oracle/oci-go-sdk/common"
10+
)
11+
12+
func init() {
13+
RegisterOracleClient("oci_mysql.DbBackupsClient", &OracleClient{initClientFn: initMysqlDbBackupsClient})
14+
RegisterOracleClient("oci_mysql.DbSystemClient", &OracleClient{initClientFn: initMysqlDbSystemClient})
15+
RegisterOracleClient("oci_mysql.MysqlaasClient", &OracleClient{initClientFn: initMysqlMysqlaasClient})
16+
}
17+
18+
func initMysqlDbBackupsClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient) (interface{}, error) {
19+
client, err := oci_mysql.NewDbBackupsClientWithConfigurationProvider(configProvider)
20+
if err != nil {
21+
return nil, err
22+
}
23+
err = configureClient(&client.BaseClient)
24+
if err != nil {
25+
return nil, err
26+
}
27+
return &client, nil
28+
}
29+
30+
func (m *OracleClients) dbBackupsClient() *oci_mysql.DbBackupsClient {
31+
return m.GetClient("oci_mysql.DbBackupsClient").(*oci_mysql.DbBackupsClient)
32+
}
33+
34+
func initMysqlDbSystemClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient) (interface{}, error) {
35+
client, err := oci_mysql.NewDbSystemClientWithConfigurationProvider(configProvider)
36+
if err != nil {
37+
return nil, err
38+
}
39+
err = configureClient(&client.BaseClient)
40+
if err != nil {
41+
return nil, err
42+
}
43+
return &client, nil
44+
}
45+
46+
func (m *OracleClients) dbSystemClient() *oci_mysql.DbSystemClient {
47+
return m.GetClient("oci_mysql.DbSystemClient").(*oci_mysql.DbSystemClient)
48+
}
49+
50+
func initMysqlMysqlaasClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient) (interface{}, error) {
51+
client, err := oci_mysql.NewMysqlaasClientWithConfigurationProvider(configProvider)
52+
if err != nil {
53+
return nil, err
54+
}
55+
err = configureClient(&client.BaseClient)
56+
if err != nil {
57+
return nil, err
58+
}
59+
return &client, nil
60+
}
61+
62+
func (m *OracleClients) mysqlaasClient() *oci_mysql.MysqlaasClient {
63+
return m.GetClient("oci_mysql.MysqlaasClient").(*oci_mysql.MysqlaasClient)
64+
}
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
// Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package oci
5+
6+
import (
7+
"context"
8+
9+
"github.com/hashicorp/terraform/helper/schema"
10+
oci_mysql "github.com/oracle/oci-go-sdk/mysql"
11+
)
12+
13+
func init() {
14+
RegisterDatasource("oci_mysql_mysql_backup", MysqlMysqlBackupDataSource())
15+
}
16+
17+
func MysqlMysqlBackupDataSource() *schema.Resource {
18+
fieldMap := make(map[string]*schema.Schema)
19+
fieldMap["backup_id"] = &schema.Schema{
20+
Type: schema.TypeString,
21+
Required: true,
22+
}
23+
return GetSingularDataSourceItemSchema(MysqlMysqlBackupResource(), fieldMap, readSingularMysqlMysqlBackup)
24+
}
25+
26+
func readSingularMysqlMysqlBackup(d *schema.ResourceData, m interface{}) error {
27+
sync := &MysqlMysqlBackupDataSourceCrud{}
28+
sync.D = d
29+
sync.Client = m.(*OracleClients).dbBackupsClient()
30+
31+
return ReadResource(sync)
32+
}
33+
34+
type MysqlMysqlBackupDataSourceCrud struct {
35+
D *schema.ResourceData
36+
Client *oci_mysql.DbBackupsClient
37+
Res *oci_mysql.GetBackupResponse
38+
}
39+
40+
func (s *MysqlMysqlBackupDataSourceCrud) VoidState() {
41+
s.D.SetId("")
42+
}
43+
44+
func (s *MysqlMysqlBackupDataSourceCrud) Get() error {
45+
request := oci_mysql.GetBackupRequest{}
46+
47+
if backupId, ok := s.D.GetOkExists("backup_id"); ok {
48+
tmp := backupId.(string)
49+
request.BackupId = &tmp
50+
}
51+
52+
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "mysql")
53+
54+
response, err := s.Client.GetBackup(context.Background(), request)
55+
if err != nil {
56+
return err
57+
}
58+
59+
s.Res = &response
60+
return nil
61+
}
62+
63+
func (s *MysqlMysqlBackupDataSourceCrud) SetData() error {
64+
if s.Res == nil {
65+
return nil
66+
}
67+
68+
s.D.SetId(*s.Res.Id)
69+
70+
if s.Res.BackupSizeInGBs != nil {
71+
s.D.Set("backup_size_in_gbs", *s.Res.BackupSizeInGBs)
72+
}
73+
74+
s.D.Set("backup_type", s.Res.BackupType)
75+
76+
if s.Res.CompartmentId != nil {
77+
s.D.Set("compartment_id", *s.Res.CompartmentId)
78+
}
79+
80+
s.D.Set("creation_type", s.Res.CreationType)
81+
82+
if s.Res.DataStorageSizeInGBs != nil {
83+
s.D.Set("data_storage_size_in_gb", *s.Res.DataStorageSizeInGBs)
84+
}
85+
86+
if s.Res.DbSystemId != nil {
87+
s.D.Set("db_system_id", *s.Res.DbSystemId)
88+
}
89+
90+
if s.Res.DefinedTags != nil {
91+
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
92+
}
93+
94+
if s.Res.Description != nil {
95+
s.D.Set("description", *s.Res.Description)
96+
}
97+
98+
if s.Res.DisplayName != nil {
99+
s.D.Set("display_name", *s.Res.DisplayName)
100+
}
101+
102+
s.D.Set("freeform_tags", s.Res.FreeformTags)
103+
104+
if s.Res.LifecycleDetails != nil {
105+
s.D.Set("lifecycle_details", *s.Res.LifecycleDetails)
106+
}
107+
108+
if s.Res.MysqlVersion != nil {
109+
s.D.Set("mysql_version", *s.Res.MysqlVersion)
110+
}
111+
112+
if s.Res.RetentionInDays != nil {
113+
s.D.Set("retention_in_days", *s.Res.RetentionInDays)
114+
}
115+
116+
if s.Res.ShapeName != nil {
117+
s.D.Set("shape_name", *s.Res.ShapeName)
118+
}
119+
120+
s.D.Set("state", s.Res.LifecycleState)
121+
122+
if s.Res.TimeCreated != nil {
123+
s.D.Set("time_created", s.Res.TimeCreated.String())
124+
}
125+
126+
if s.Res.TimeUpdated != nil {
127+
s.D.Set("time_updated", s.Res.TimeUpdated.String())
128+
}
129+
130+
return nil
131+
}

0 commit comments

Comments
 (0)