@@ -32,12 +32,12 @@ import (
32
32
pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/compute/v1"
33
33
)
34
34
35
- type networkEdgeSecurityServices struct {
35
+ type networkEdgeSecurityServicesV1 struct {
36
36
* MockService
37
37
pb.UnimplementedNetworkEdgeSecurityServicesServer
38
38
}
39
39
40
- func (s * networkEdgeSecurityServices ) Get (ctx context.Context , req * pb.GetNetworkEdgeSecurityServiceRequest ) (* pb.NetworkEdgeSecurityService , error ) {
40
+ func (s * networkEdgeSecurityServicesV1 ) Get (ctx context.Context , req * pb.GetNetworkEdgeSecurityServiceRequest ) (* pb.NetworkEdgeSecurityService , error ) {
41
41
reqName := fmt .Sprintf ("projects/%s/regions/%s/networkEdgeSecurityServices/%s" , req .GetProject (), req .GetRegion (), req .GetNetworkEdgeSecurityService ())
42
42
name , err := s .parseNetworkEdgeSecurityServiceName (reqName )
43
43
if err != nil {
@@ -48,36 +48,39 @@ func (s *networkEdgeSecurityServices) Get(ctx context.Context, req *pb.GetNetwor
48
48
obj := & pb.NetworkEdgeSecurityService {}
49
49
if err := s .storage .Get (ctx , fqn , obj ); err != nil {
50
50
if status .Code (err ) == codes .NotFound {
51
- return nil , status .Errorf (codes .NotFound , "NetworkEdgeSecurityService %q not found" , name )
51
+ return nil , status .Errorf (codes .NotFound , "The resource '%s' was not found" , name )
52
52
}
53
53
return nil , err
54
54
}
55
55
56
56
return obj , nil
57
57
}
58
58
59
- func (s * networkEdgeSecurityServices ) Insert (ctx context.Context , req * pb.InsertNetworkEdgeSecurityServiceRequest ) (* pb.Operation , error ) {
59
+ func (s * networkEdgeSecurityServicesV1 ) Insert (ctx context.Context , req * pb.InsertNetworkEdgeSecurityServiceRequest ) (* pb.Operation , error ) {
60
60
reqName := fmt .Sprintf ("projects/%s/regions/%s/networkEdgeSecurityServices/%s" , req .GetProject (), req .GetRegion (), req .GetNetworkEdgeSecurityServiceResource ().GetName ())
61
61
name , err := s .parseNetworkEdgeSecurityServiceName (reqName )
62
62
if err != nil {
63
63
return nil , err
64
64
}
65
65
fqn := name .String ()
66
+ id := s .generateID ()
66
67
67
68
obj := proto .Clone (req .GetNetworkEdgeSecurityServiceResource ()).(* pb.NetworkEdgeSecurityService )
68
69
obj .Id = proto .Uint64 (s .generateID ())
69
70
obj .SelfLink = PtrTo (buildComputeSelfLink (ctx , fqn ))
71
+ obj .SelfLinkWithId = PtrTo (buildComputeSelfLink (ctx , fmt .Sprintf ("projects/%s/regions/%s/networkEdgeSecurityServices/%d" , name .Project .ID , name .Region , id )))
70
72
obj .Kind = PtrTo ("compute#networkEdgeSecurityService" )
71
73
obj .CreationTimestamp = PtrTo (s .nowString ())
72
74
obj .Region = PtrTo (fmt .Sprintf ("https://www.googleapis.com/compute/v1/projects/%s/regions/%s" , name .Project .ID , name .Region ))
73
- obj .Fingerprint = PtrTo (computeCRC32C (obj ))
75
+ // hard-code generated fingerprint
76
+ obj .Fingerprint = PtrTo ("abcdef0123A=" )
74
77
75
78
if err := s .storage .Create (ctx , fqn , obj ); err != nil {
76
79
return nil , err
77
80
}
78
81
79
82
op := & pb.Operation {
80
- OperationType : PtrTo ("insert " ),
83
+ OperationType : PtrTo ("createNetworkEdgeSecurityService " ),
81
84
TargetId : obj .Id ,
82
85
TargetLink : obj .SelfLink ,
83
86
@@ -87,7 +90,7 @@ func (s *networkEdgeSecurityServices) Insert(ctx context.Context, req *pb.Insert
87
90
})
88
91
}
89
92
90
- func (s * networkEdgeSecurityServices ) Patch (ctx context.Context , req * pb.PatchNetworkEdgeSecurityServiceRequest ) (* pb.Operation , error ) {
93
+ func (s * networkEdgeSecurityServicesV1 ) Patch (ctx context.Context , req * pb.PatchNetworkEdgeSecurityServiceRequest ) (* pb.Operation , error ) {
91
94
reqName := fmt .Sprintf ("projects/%s/regions/%s/networkEdgeSecurityServices/%s" , req .GetProject (), req .GetRegion (), req .GetNetworkEdgeSecurityService ())
92
95
name , err := s .parseNetworkEdgeSecurityServiceName (reqName )
93
96
if err != nil {
@@ -99,17 +102,28 @@ func (s *networkEdgeSecurityServices) Patch(ctx context.Context, req *pb.PatchNe
99
102
if err := s .storage .Get (ctx , fqn , obj ); err != nil {
100
103
return nil , err
101
104
}
102
-
103
- // TODO: Apply field mask.
104
105
proto .Merge (obj , req .GetNetworkEdgeSecurityServiceResource ())
105
- obj .Fingerprint = PtrTo (computeCRC32C (obj ))
106
+ // hard-code generated fingerprint
107
+ obj .Fingerprint = PtrTo ("abcdef0123A=" )
108
+
109
+ paths := strings .Split (req .GetUpdateMask (), "," )
110
+ for _ , path := range paths {
111
+ switch path {
112
+ case "description" :
113
+ obj .Description = req .GetNetworkEdgeSecurityServiceResource ().Description
114
+ case "security_policy" :
115
+ obj .SecurityPolicy = req .GetNetworkEdgeSecurityServiceResource ().SecurityPolicy
116
+ default :
117
+ return nil , status .Errorf (codes .InvalidArgument , "update_mask path %q not valid" , path )
118
+ }
119
+ }
106
120
107
121
if err := s .storage .Update (ctx , fqn , obj ); err != nil {
108
122
return nil , err
109
123
}
110
124
111
125
op := & pb.Operation {
112
- OperationType : PtrTo ("patch " ),
126
+ OperationType : PtrTo ("updateNetworkEdgeSecurityService " ),
113
127
TargetId : obj .Id ,
114
128
TargetLink : obj .SelfLink ,
115
129
@@ -119,7 +133,7 @@ func (s *networkEdgeSecurityServices) Patch(ctx context.Context, req *pb.PatchNe
119
133
})
120
134
}
121
135
122
- func (s * networkEdgeSecurityServices ) Delete (ctx context.Context , req * pb.DeleteNetworkEdgeSecurityServiceRequest ) (* pb.Operation , error ) {
136
+ func (s * networkEdgeSecurityServicesV1 ) Delete (ctx context.Context , req * pb.DeleteNetworkEdgeSecurityServiceRequest ) (* pb.Operation , error ) {
123
137
reqName := fmt .Sprintf ("projects/%s/regions/%s/networkEdgeSecurityServices/%s" , req .GetProject (), req .GetRegion (), req .GetNetworkEdgeSecurityService ())
124
138
name , err := s .parseNetworkEdgeSecurityServiceName (reqName )
125
139
if err != nil {
@@ -133,7 +147,7 @@ func (s *networkEdgeSecurityServices) Delete(ctx context.Context, req *pb.Delete
133
147
}
134
148
135
149
op := & pb.Operation {
136
- OperationType : PtrTo ("delete " ),
150
+ OperationType : PtrTo ("deleteNetworkEdgeSecurityService " ),
137
151
TargetId : deleted .Id ,
138
152
TargetLink : deleted .SelfLink ,
139
153
0 commit comments