Skip to content

Commit f4ee1c1

Browse files
committed
- Added - Support for ExaCC GI upgrade
1 parent ef2cb8a commit f4ee1c1

11 files changed

+1068
-3
lines changed

oci/database_vm_cluster_resource.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,10 @@ func DatabaseVmClusterResource() *schema.Resource {
4747
ForceNew: true,
4848
},
4949
"gi_version": {
50-
Type: schema.TypeString,
51-
Required: true,
52-
ForceNew: true,
50+
Type: schema.TypeString,
51+
Required: true,
52+
ForceNew: true,
53+
DiffSuppressFunc: giVersionDiffSuppress,
5354
},
5455
"ssh_public_keys": {
5556
Type: schema.TypeSet,
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
// Copyright (c) 2017, 2021, 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-plugin-sdk/helper/schema"
10+
oci_database "github.com/oracle/oci-go-sdk/v44/database"
11+
)
12+
13+
func init() {
14+
RegisterDatasource("oci_database_vm_cluster_update", DatabaseVmClusterUpdateDataSource())
15+
}
16+
17+
func DatabaseVmClusterUpdateDataSource() *schema.Resource {
18+
return &schema.Resource{
19+
Read: readSingularDatabaseVmClusterUpdate,
20+
Schema: map[string]*schema.Schema{
21+
"update_id": {
22+
Type: schema.TypeString,
23+
Required: true,
24+
},
25+
"vm_cluster_id": {
26+
Type: schema.TypeString,
27+
Required: true,
28+
},
29+
// Computed
30+
"available_actions": {
31+
Type: schema.TypeList,
32+
Computed: true,
33+
Elem: &schema.Schema{
34+
Type: schema.TypeString,
35+
},
36+
},
37+
"description": {
38+
Type: schema.TypeString,
39+
Computed: true,
40+
},
41+
"last_action": {
42+
Type: schema.TypeString,
43+
Computed: true,
44+
},
45+
"lifecycle_details": {
46+
Type: schema.TypeString,
47+
Computed: true,
48+
},
49+
"state": {
50+
Type: schema.TypeString,
51+
Computed: true,
52+
},
53+
"time_released": {
54+
Type: schema.TypeString,
55+
Computed: true,
56+
},
57+
"update_type": {
58+
Type: schema.TypeString,
59+
Computed: true,
60+
},
61+
"version": {
62+
Type: schema.TypeString,
63+
Computed: true,
64+
},
65+
},
66+
}
67+
}
68+
69+
func readSingularDatabaseVmClusterUpdate(d *schema.ResourceData, m interface{}) error {
70+
sync := &DatabaseVmClusterUpdateDataSourceCrud{}
71+
sync.D = d
72+
sync.Client = m.(*OracleClients).databaseClient()
73+
74+
return ReadResource(sync)
75+
}
76+
77+
type DatabaseVmClusterUpdateDataSourceCrud struct {
78+
D *schema.ResourceData
79+
Client *oci_database.DatabaseClient
80+
Res *oci_database.GetVmClusterUpdateResponse
81+
}
82+
83+
func (s *DatabaseVmClusterUpdateDataSourceCrud) VoidState() {
84+
s.D.SetId("")
85+
}
86+
87+
func (s *DatabaseVmClusterUpdateDataSourceCrud) Get() error {
88+
request := oci_database.GetVmClusterUpdateRequest{}
89+
90+
if updateId, ok := s.D.GetOkExists("update_id"); ok {
91+
tmp := updateId.(string)
92+
request.UpdateId = &tmp
93+
}
94+
95+
if vmClusterId, ok := s.D.GetOkExists("vm_cluster_id"); ok {
96+
tmp := vmClusterId.(string)
97+
request.VmClusterId = &tmp
98+
}
99+
100+
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "database")
101+
102+
response, err := s.Client.GetVmClusterUpdate(context.Background(), request)
103+
if err != nil {
104+
return err
105+
}
106+
107+
s.Res = &response
108+
return nil
109+
}
110+
111+
func (s *DatabaseVmClusterUpdateDataSourceCrud) SetData() error {
112+
if s.Res == nil {
113+
return nil
114+
}
115+
116+
s.D.SetId(*s.Res.Id)
117+
118+
s.D.Set("available_actions", s.Res.AvailableActions)
119+
120+
if s.Res.Description != nil {
121+
s.D.Set("description", *s.Res.Description)
122+
}
123+
124+
s.D.Set("last_action", s.Res.LastAction)
125+
126+
if s.Res.LifecycleDetails != nil {
127+
s.D.Set("lifecycle_details", *s.Res.LifecycleDetails)
128+
}
129+
130+
s.D.Set("state", s.Res.LifecycleState)
131+
132+
if s.Res.TimeReleased != nil {
133+
s.D.Set("time_released", s.Res.TimeReleased.String())
134+
}
135+
136+
s.D.Set("update_type", s.Res.UpdateType)
137+
138+
if s.Res.Version != nil {
139+
s.D.Set("version", *s.Res.Version)
140+
}
141+
142+
return nil
143+
}
Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
// Copyright (c) 2017, 2021, 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-plugin-sdk/helper/schema"
10+
oci_database "github.com/oracle/oci-go-sdk/v44/database"
11+
)
12+
13+
func init() {
14+
RegisterDatasource("oci_database_vm_cluster_update_history_entries", DatabaseVmClusterUpdateHistoryEntriesDataSource())
15+
}
16+
17+
func DatabaseVmClusterUpdateHistoryEntriesDataSource() *schema.Resource {
18+
return &schema.Resource{
19+
Read: readDatabaseVmClusterUpdateHistoryEntries,
20+
Schema: map[string]*schema.Schema{
21+
"filter": dataSourceFiltersSchema(),
22+
"state": {
23+
Type: schema.TypeString,
24+
Optional: true,
25+
},
26+
"update_type": {
27+
Type: schema.TypeString,
28+
Optional: true,
29+
},
30+
"vm_cluster_id": {
31+
Type: schema.TypeString,
32+
Required: true,
33+
},
34+
"vm_cluster_update_history_entries": {
35+
Type: schema.TypeList,
36+
Computed: true,
37+
Elem: &schema.Resource{
38+
Schema: map[string]*schema.Schema{
39+
// Required
40+
41+
// Optional
42+
43+
// Computed
44+
"id": {
45+
Type: schema.TypeString,
46+
Computed: true,
47+
},
48+
"lifecycle_details": {
49+
Type: schema.TypeString,
50+
Computed: true,
51+
},
52+
"state": {
53+
Type: schema.TypeString,
54+
Computed: true,
55+
},
56+
"time_completed": {
57+
Type: schema.TypeString,
58+
Computed: true,
59+
},
60+
"time_started": {
61+
Type: schema.TypeString,
62+
Computed: true,
63+
},
64+
"update_action": {
65+
Type: schema.TypeString,
66+
Computed: true,
67+
},
68+
"update_id": {
69+
Type: schema.TypeString,
70+
Computed: true,
71+
},
72+
"update_type": {
73+
Type: schema.TypeString,
74+
Computed: true,
75+
},
76+
},
77+
},
78+
},
79+
},
80+
}
81+
}
82+
83+
func readDatabaseVmClusterUpdateHistoryEntries(d *schema.ResourceData, m interface{}) error {
84+
sync := &DatabaseVmClusterUpdateHistoryEntriesDataSourceCrud{}
85+
sync.D = d
86+
sync.Client = m.(*OracleClients).databaseClient()
87+
88+
return ReadResource(sync)
89+
}
90+
91+
type DatabaseVmClusterUpdateHistoryEntriesDataSourceCrud struct {
92+
D *schema.ResourceData
93+
Client *oci_database.DatabaseClient
94+
Res *oci_database.ListVmClusterUpdateHistoryEntriesResponse
95+
}
96+
97+
func (s *DatabaseVmClusterUpdateHistoryEntriesDataSourceCrud) VoidState() {
98+
s.D.SetId("")
99+
}
100+
101+
func (s *DatabaseVmClusterUpdateHistoryEntriesDataSourceCrud) Get() error {
102+
request := oci_database.ListVmClusterUpdateHistoryEntriesRequest{}
103+
104+
if state, ok := s.D.GetOkExists("state"); ok {
105+
request.LifecycleState = oci_database.VmClusterUpdateHistoryEntrySummaryLifecycleStateEnum(state.(string))
106+
}
107+
108+
if updateType, ok := s.D.GetOkExists("update_type"); ok {
109+
request.UpdateType = oci_database.ListVmClusterUpdateHistoryEntriesUpdateTypeEnum(updateType.(string))
110+
}
111+
112+
if vmClusterId, ok := s.D.GetOkExists("vm_cluster_id"); ok {
113+
tmp := vmClusterId.(string)
114+
request.VmClusterId = &tmp
115+
}
116+
117+
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "database")
118+
119+
response, err := s.Client.ListVmClusterUpdateHistoryEntries(context.Background(), request)
120+
if err != nil {
121+
return err
122+
}
123+
124+
s.Res = &response
125+
request.Page = s.Res.OpcNextPage
126+
127+
for request.Page != nil {
128+
listResponse, err := s.Client.ListVmClusterUpdateHistoryEntries(context.Background(), request)
129+
if err != nil {
130+
return err
131+
}
132+
133+
s.Res.Items = append(s.Res.Items, listResponse.Items...)
134+
request.Page = listResponse.OpcNextPage
135+
}
136+
137+
return nil
138+
}
139+
140+
func (s *DatabaseVmClusterUpdateHistoryEntriesDataSourceCrud) SetData() error {
141+
if s.Res == nil {
142+
return nil
143+
}
144+
145+
s.D.SetId(GenerateDataSourceHashID("DatabaseVmClusterUpdateHistoryEntriesDataSource-", DatabaseVmClusterUpdateHistoryEntriesDataSource(), s.D))
146+
resources := []map[string]interface{}{}
147+
148+
for _, r := range s.Res.Items {
149+
vmClusterUpdateHistoryEntry := map[string]interface{}{}
150+
151+
if r.Id != nil {
152+
vmClusterUpdateHistoryEntry["id"] = *r.Id
153+
}
154+
155+
if r.LifecycleDetails != nil {
156+
vmClusterUpdateHistoryEntry["lifecycle_details"] = *r.LifecycleDetails
157+
}
158+
159+
vmClusterUpdateHistoryEntry["state"] = r.LifecycleState
160+
161+
if r.TimeCompleted != nil {
162+
vmClusterUpdateHistoryEntry["time_completed"] = r.TimeCompleted.String()
163+
}
164+
165+
if r.TimeStarted != nil {
166+
vmClusterUpdateHistoryEntry["time_started"] = r.TimeStarted.String()
167+
}
168+
169+
vmClusterUpdateHistoryEntry["update_action"] = r.UpdateAction
170+
171+
if r.UpdateId != nil {
172+
vmClusterUpdateHistoryEntry["update_id"] = *r.UpdateId
173+
}
174+
175+
vmClusterUpdateHistoryEntry["update_type"] = r.UpdateType
176+
177+
resources = append(resources, vmClusterUpdateHistoryEntry)
178+
}
179+
180+
if f, fOk := s.D.GetOkExists("filter"); fOk {
181+
resources = ApplyFilters(f.(*schema.Set), resources, DatabaseVmClusterUpdateHistoryEntriesDataSource().Schema["vm_cluster_update_history_entries"].Elem.(*schema.Resource).Schema)
182+
}
183+
184+
if err := s.D.Set("vm_cluster_update_history_entries", resources); err != nil {
185+
return err
186+
}
187+
188+
return nil
189+
}

0 commit comments

Comments
 (0)