Skip to content

Commit 56eab3e

Browse files
Merge pull request #53 from MustWin/master
Fixes #42, Fixes #48, Fixes #45 (unable to repro with these changes), Fixes #43.
2 parents e8d3095 + 10bc0ad commit 56eab3e

File tree

68 files changed

+503
-378
lines changed

Some content is hidden

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

68 files changed

+503
-378
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ terraform-Oracle-BareMetal-Provider
3434
*.orig
3535
.idea
3636
terraform-Oracle-BareMetal-Provider.iml
37+
terraform-provider-baremetal.iml
3738
.env
3839
crash.log
3940
terraform-encrypted-des.sh

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ or meet us in the OBMCS forums
9696
https://community.oracle.com/community/cloud_computing/bare-metal
9797

9898
## Known serious bugs
99+
See [Issues.](https://github.com/oracle/terraform-provider-baremetal/issues)
100+
99101
There are 2 issues with the potential for unexpected data loss.
100102
1. [Issue #44, running apply in an enviroment where a subnet has multiple attached Security Lists can cause all of the instances in the subnet to be terminated and re-created.](https://github.com/oracle/terraform-provider-baremetal/issues/44)
101103
2. [Issue #45, not currently reproducible. Running apply in an enviroment with attached block volumes can cause all of the block volumes to be temporarily detatched and reattached. This leads to block volume IO interruption.](https://github.com/oracle/terraform-provider-baremetal/issues/45)

client/bare_metal_client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,6 @@ type BareMetalClient interface {
157157
UpdateUser(id string, opts *baremetal.UpdateIdentityOptions) (res *baremetal.User, e error)
158158
UpdateVirtualNetwork(id string, opts *baremetal.IfMatchDisplayNameOptions) (vcn *baremetal.VirtualNetwork, e error)
159159
UpdateVolume(id string, opts *baremetal.UpdateOptions) (res *baremetal.Volume, e error)
160-
UpdateVolumeBackup(id string, opts *baremetal.UpdateBackupOptions) (vol *baremetal.VolumeBackup, e error)
160+
UpdateVolumeBackup(id string, opts *baremetal.IfMatchDisplayNameOptions) (vol *baremetal.VolumeBackup, e error)
161161
UploadAPIKey(userID, key string, opts *baremetal.RetryTokenOptions) (apiKey *baremetal.APIKey, e error)
162162
}

client/mocks/bare_metal_client.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package mocks
22

33
import baremetal "github.com/MustWin/baremetal-sdk-go"
4-
import client "github.com/oracle/terraform-provider-baremetal/client"
4+
55
import mock "github.com/stretchr/testify/mock"
66

77
// BareMetalClient is an autogenerated mock type for the BareMetalClient type
@@ -2977,11 +2977,11 @@ func (_m *BareMetalClient) UpdateVolume(id string, opts *baremetal.UpdateOptions
29772977
}
29782978

29792979
// UpdateVolumeBackup provides a mock function with given fields: id, opts
2980-
func (_m *BareMetalClient) UpdateVolumeBackup(id string, opts *baremetal.UpdateBackupOptions) (*baremetal.VolumeBackup, error) {
2980+
func (_m *BareMetalClient) UpdateVolumeBackup(id string, opts *baremetal.IfMatchDisplayNameOptions) (*baremetal.VolumeBackup, error) {
29812981
ret := _m.Called(id, opts)
29822982

29832983
var r0 *baremetal.VolumeBackup
2984-
if rf, ok := ret.Get(0).(func(string, *baremetal.UpdateBackupOptions) *baremetal.VolumeBackup); ok {
2984+
if rf, ok := ret.Get(0).(func(string, *baremetal.IfMatchDisplayNameOptions) *baremetal.VolumeBackup); ok {
29852985
r0 = rf(id, opts)
29862986
} else {
29872987
if ret.Get(0) != nil {
@@ -2990,7 +2990,7 @@ func (_m *BareMetalClient) UpdateVolumeBackup(id string, opts *baremetal.UpdateB
29902990
}
29912991

29922992
var r1 error
2993-
if rf, ok := ret.Get(1).(func(string, *baremetal.UpdateBackupOptions) error); ok {
2993+
if rf, ok := ret.Get(1).(func(string, *baremetal.IfMatchDisplayNameOptions) error); ok {
29942994
r1 = rf(id, opts)
29952995
} else {
29962996
r1 = ret.Error(1)
@@ -3021,5 +3021,3 @@ func (_m *BareMetalClient) UploadAPIKey(userID string, key string, opts *baremet
30213021

30223022
return r0, r1
30233023
}
3024-
3025-
var _ client.BareMetalClient = (*BareMetalClient)(nil)

core/image_datasource.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ func ImageDatasource() *schema.Resource {
2424
Type: schema.TypeString,
2525
Optional: true,
2626
},
27+
"display_name": {
28+
Type: schema.TypeString,
29+
Optional: true,
30+
},
2731
"operating_system": {
2832
Type: schema.TypeString,
2933
Optional: true,

core/image_datasource_crud.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ func (s *ImageDatasourceCrud) Get() (e error) {
2626
if val, ok := s.D.GetOk("operating_system_version"); ok {
2727
opts.OperatingSystemVersion = val.(string)
2828
}
29+
if val, ok := s.D.GetOk("display_name"); ok {
30+
opts.DisplayName = val.(string)
31+
}
2932

3033
s.Res = &baremetal.ListImages{Images: []baremetal.Image{}}
3134

core/virtual_network_datasource_crud.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func (s *VirtualNetworkDatasourceCrud) SetData() {
5353
res := map[string]string{
5454
"cidr_block": v.CidrBlock,
5555
"compartment_id": v.CompartmentID,
56-
"default_routing_table_id": v.DefaultRoutingTableID,
56+
"default_route_table_id": v.DefaultRouteTableID,
5757
"default_security_list_id": v.DefaultSecurityListID,
5858
"display_name": v.DisplayName,
5959
"id": v.ID,

core/virtual_network_resource.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func VirtualNetworkResource() *schema.Resource {
2525
Required: true,
2626
ForceNew: true,
2727
},
28-
"default_routing_table_id": {
28+
"default_route_table_id": {
2929
Type: schema.TypeString,
3030
Computed: true,
3131
},

core/virtual_network_resource_crud.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func (s *VirtualNetworkResourceCrud) Update() (e error) {
6767
func (s *VirtualNetworkResourceCrud) SetData() {
6868
s.D.Set("cidr_block", s.Res.CidrBlock)
6969
s.D.Set("compartment_id", s.Res.CompartmentID)
70-
s.D.Set("default_routing_table_id", s.Res.DefaultRoutingTableID)
70+
s.D.Set("default_route_table_id", s.Res.DefaultRouteTableID)
7171
s.D.Set("default_security_list_id", s.Res.DefaultSecurityListID)
7272
s.D.Set("display_name", s.Res.DisplayName)
7373
s.D.Set("state", s.Res.State)

core/volume_attachment_resource.go

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
package core
44

55
import (
6+
"github.com/hashicorp/terraform/helper/schema"
7+
"github.com/hashicorp/terraform/helper/validation"
8+
69
"github.com/oracle/terraform-provider-baremetal/client"
710
"github.com/oracle/terraform-provider-baremetal/crud"
8-
"github.com/hashicorp/terraform/helper/schema"
911
)
1012

1113
func VolumeAttachmentResource() *schema.Resource {
@@ -14,33 +16,42 @@ func VolumeAttachmentResource() *schema.Resource {
1416
Read: readVolumeAttachment,
1517
Delete: deleteVolumeAttachment,
1618
Schema: map[string]*schema.Schema{
19+
//// Required ////
1720
"attachment_type": {
21+
Type: schema.TypeString,
22+
Required: true,
23+
ForceNew: true,
24+
ValidateFunc: validation.StringInSlice([]string{"iscsi"}, false),
25+
},
26+
"compartment_id": {
1827
Type: schema.TypeString,
1928
Required: true,
2029
ForceNew: true,
2130
},
22-
"availability_domain": {
31+
"instance_id": {
2332
Type: schema.TypeString,
24-
Computed: true,
33+
Required: true,
34+
ForceNew: true,
2535
},
26-
"compartment_id": {
36+
"volume_id": {
2737
Type: schema.TypeString,
2838
Required: true,
2939
ForceNew: true,
3040
},
31-
"display_name": {
41+
//// Computed ////
42+
"id": {
3243
Type: schema.TypeString,
3344
Computed: true,
3445
},
35-
"id": {
46+
"availability_domain": {
3647
Type: schema.TypeString,
3748
Computed: true,
3849
},
39-
"instance_id": {
50+
"display_name": {
4051
Type: schema.TypeString,
41-
Required: true,
42-
ForceNew: true,
52+
Computed: true,
4353
},
54+
// aka lifecycleState
4455
"state": {
4556
Type: schema.TypeString,
4657
Computed: true,
@@ -49,10 +60,27 @@ func VolumeAttachmentResource() *schema.Resource {
4960
Type: schema.TypeString,
5061
Computed: true,
5162
},
52-
"volume_id": {
63+
// The following are only computed if type == "iscsi"
64+
"chap_secret": {
5365
Type: schema.TypeString,
54-
Required: true,
55-
ForceNew: true,
66+
Computed: true,
67+
},
68+
"chap_username": {
69+
Type: schema.TypeString,
70+
Computed: true,
71+
},
72+
"ipv4": {
73+
Type: schema.TypeString,
74+
Computed: true,
75+
},
76+
"iqn": {
77+
// iSCSI Qualified Name per RFC 3720
78+
Type: schema.TypeString,
79+
Computed: true,
80+
},
81+
"port": {
82+
Type: schema.TypeInt,
83+
Computed: true,
5684
},
5785
},
5886
}

0 commit comments

Comments
 (0)