Skip to content
This repository was archived by the owner on Dec 6, 2024. It is now read-only.

Commit 15c86ae

Browse files
authored
Merge pull request #31 from wlan0/master
Update API based on latest spec
2 parents 491fb1e + a171504 commit 15c86ae

18 files changed

+320
-389
lines changed

Diff for: apis/objectstorage.k8s.io/v1alpha1/openapi_generated.go

+115-136
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: apis/objectstorage.k8s.io/v1alpha1/protocol_types.go

+32-54
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package v1alpha1
1919
import (
2020
"errors"
2121

22-
osspec "sigs.k8s.io/container-object-storage-interface-spec"
22+
cosi "sigs.k8s.io/container-object-storage-interface-spec"
2323
)
2424

2525
type ProtocolName string
@@ -29,84 +29,62 @@ const (
2929
ProtocolNameAzure ProtocolName = "azureBlob"
3030
ProtocolNameGCS ProtocolName = "gcs"
3131

32-
MissingS3Protocol = "missing s3 in protocol"
33-
MissingAzureProtocol = "missing azure in protocol"
34-
MissingGCSProtocol = "missing gcs in protocol"
35-
InvalidProtocolName = "invalid protocol name"
32+
InvalidProtocol = "invalid protocol"
3633
)
3734

3835
type Protocol struct {
39-
// +kubebuilder:validation:Enum:={s3,azureBlob,gcs}
40-
Name ProtocolName `json:"name"`
41-
// +optional
42-
Version string `json:"version,omitempty"`
4336
// +optional
4437
S3 *S3Protocol `json:"s3,omitempty"`
38+
4539
// +optional
4640
AzureBlob *AzureProtocol `json:"azureBlob,omitempty"`
41+
4742
// +optional
4843
GCS *GCSProtocol `json:"gcs,omitempty"`
4944
}
5045

51-
func (in *Protocol) ConvertToExternal() (*osspec.Protocol, error) {
52-
external := &osspec.Protocol{
53-
Version: in.Version,
54-
}
46+
func (in *Protocol) ConvertToExternal() (*cosi.Protocol, error) {
47+
external := &cosi.Protocol{}
5548

56-
switch in.Name {
57-
case ProtocolNameS3:
58-
if in.S3 == nil {
59-
return nil, errors.New(MissingS3Protocol)
60-
}
61-
external.Name = osspec.ProtocolName_S3
49+
protoFound := false
50+
if in.S3 != nil {
51+
protoFound = true
6252
external.Type = in.S3.ConvertToExternal()
63-
case ProtocolNameAzure:
64-
if in.AzureBlob == nil {
65-
return nil, errors.New(MissingAzureProtocol)
66-
}
67-
external.Name = osspec.ProtocolName_AZURE
53+
}
54+
if in.AzureBlob != nil {
55+
protoFound = true
6856
external.Type = in.AzureBlob.ConvertToExternal()
69-
case ProtocolNameGCS:
70-
if in.GCS == nil {
71-
return nil, errors.New(MissingGCSProtocol)
72-
}
73-
external.Name = osspec.ProtocolName_GCS
57+
}
58+
if in.GCS != nil {
59+
protoFound = true
7460
external.Type = in.GCS.ConvertToExternal()
75-
default:
76-
external.Name = osspec.ProtocolName_UnknownProtocol
77-
return external, errors.New(InvalidProtocolName)
61+
}
7862

63+
if !protoFound {
64+
return external, errors.New(InvalidProtocol)
7965
}
8066

8167
return external, nil
8268
}
8369

84-
func ConvertFromProtocolExternal(external *osspec.Protocol) (*Protocol, error) {
70+
func ConvertFromProtocolExternal(external *cosi.Protocol) (*Protocol, error) {
8571
in := &Protocol{}
86-
in.Version = external.Version
87-
88-
switch external.Name {
89-
case osspec.ProtocolName_S3:
90-
if external.GetS3() == nil {
91-
return nil, errors.New(MissingS3Protocol)
92-
}
93-
in.Name = ProtocolNameS3
72+
73+
protoFound := false
74+
if external.GetS3() != nil {
75+
protoFound = true
9476
in.S3 = ConvertFromS3External(external.GetS3())
95-
case osspec.ProtocolName_AZURE:
96-
if external.GetAzureBlob() == nil {
97-
return nil, errors.New(MissingAzureProtocol)
98-
}
99-
in.Name = ProtocolNameAzure
77+
}
78+
if external.GetAzureBlob() != nil {
79+
protoFound = true
10080
in.AzureBlob = ConvertFromAzureExternal(external.GetAzureBlob())
101-
case osspec.ProtocolName_GCS:
102-
if external.GetGcs() == nil {
103-
return nil, errors.New(MissingGCSProtocol)
104-
}
105-
in.Name = ProtocolNameGCS
81+
}
82+
if external.GetGcs() != nil {
83+
protoFound = true
10684
in.GCS = ConvertFromGCSExternal(external.GetGcs())
107-
default:
108-
// TODO - Do we to set the protocol Name to specific value here?
109-
return nil, errors.New(InvalidProtocolName)
85+
}
86+
if !protoFound {
87+
return nil, errors.New(InvalidProtocol)
11088
}
11189

11290
return in, nil

0 commit comments

Comments
 (0)