@@ -276,7 +276,7 @@ type {{.WrapType}} interface {
276
276
{{.WrapTypeOps}}
277
277
{{- end}}
278
278
{{- if .GenerateGet}}
279
- Get(ctx context.Context, key meta.Key) (*{{.FQObjectType}}, error)
279
+ Get(ctx context.Context, key * meta.Key) (*{{.FQObjectType}}, error)
280
280
{{- end -}}
281
281
{{- if .GenerateList}}
282
282
{{- if .KeyIsGlobal}}
@@ -290,10 +290,10 @@ type {{.WrapType}} interface {
290
290
{{- end -}}
291
291
{{- end -}}
292
292
{{- if .GenerateInsert}}
293
- Insert(ctx context.Context, key meta.Key, obj *{{.FQObjectType}}) error
293
+ Insert(ctx context.Context, key * meta.Key, obj *{{.FQObjectType}}) error
294
294
{{- end -}}
295
295
{{- if .GenerateDelete}}
296
- Delete(ctx context.Context, key meta.Key) error
296
+ Delete(ctx context.Context, key * meta.Key) error
297
297
{{- end -}}
298
298
{{- if .AggregatedList}}
299
299
AggregatedList(ctx context.Context, fl *filter.F) (map[string][]*{{.FQObjectType}}, error)
@@ -352,7 +352,7 @@ type {{.MockWrapType}} struct {
352
352
// execution flow of the mock. Return (false, nil, nil) to continue with
353
353
// normal mock behavior/ after the hook function executes.
354
354
{{- if .GenerateGet}}
355
- GetHook func(m *{{.MockWrapType}}, ctx context.Context, key meta.Key) (bool, *{{.FQObjectType}}, error)
355
+ GetHook func(m *{{.MockWrapType}}, ctx context.Context, key * meta.Key) (bool, *{{.FQObjectType}}, error)
356
356
{{- end -}}
357
357
{{- if .GenerateList}}
358
358
{{- if .KeyIsGlobal}}
@@ -366,10 +366,10 @@ type {{.MockWrapType}} struct {
366
366
{{- end}}
367
367
{{- end -}}
368
368
{{- if .GenerateInsert}}
369
- InsertHook func(m *{{.MockWrapType}}, ctx context.Context, key meta.Key, obj *{{.FQObjectType}}) (bool, error)
369
+ InsertHook func(m *{{.MockWrapType}}, ctx context.Context, key * meta.Key, obj *{{.FQObjectType}}) (bool, error)
370
370
{{- end -}}
371
371
{{- if .GenerateDelete}}
372
- DeleteHook func(m *{{.MockWrapType}}, ctx context.Context, key meta.Key) (bool, error)
372
+ DeleteHook func(m *{{.MockWrapType}}, ctx context.Context, key * meta.Key) (bool, error)
373
373
{{- end -}}
374
374
{{- if .AggregatedList}}
375
375
AggregatedListHook func(m *{{.MockWrapType}}, ctx context.Context, fl *filter.F) (bool, map[string][]*{{.FQObjectType}}, error)
@@ -388,7 +388,7 @@ type {{.MockWrapType}} struct {
388
388
389
389
{{- if .GenerateGet}}
390
390
// Get returns the object from the mock.
391
- func (m *{{.MockWrapType}}) Get(ctx context.Context, key meta.Key) (*{{.FQObjectType}}, error) {
391
+ func (m *{{.MockWrapType}}) Get(ctx context.Context, key * meta.Key) (*{{.FQObjectType}}, error) {
392
392
if m.GetHook != nil {
393
393
if intercept, obj, err := m.GetHook(m, ctx, key); intercept {
394
394
glog.V(5).Infof("{{.MockWrapType}}.Get(%v, %s) = %+v, %v", ctx, key, obj ,err)
@@ -399,11 +399,11 @@ func (m *{{.MockWrapType}}) Get(ctx context.Context, key meta.Key) (*{{.FQObject
399
399
m.Lock.Lock()
400
400
defer m.Lock.Unlock()
401
401
402
- if err, ok := m.GetError[key]; ok {
402
+ if err, ok := m.GetError[* key]; ok {
403
403
glog.V(5).Infof("{{.MockWrapType}}.Get(%v, %s) = nil, %v", ctx, key, err)
404
404
return nil, err
405
405
}
406
- if obj, ok := m.Objects[key]; ok {
406
+ if obj, ok := m.Objects[* key]; ok {
407
407
typedObj := obj.To{{.VersionTitle}}()
408
408
glog.V(5).Infof("{{.MockWrapType}}.Get(%v, %s) = %+v, nil", ctx, key, typedObj)
409
409
return typedObj, nil
@@ -503,7 +503,7 @@ func (m *{{.MockWrapType}}) List(ctx context.Context, zone string, fl *filter.F)
503
503
504
504
{{- if .GenerateInsert}}
505
505
// Insert is a mock for inserting/creating a new object.
506
- func (m *{{.MockWrapType}}) Insert(ctx context.Context, key meta.Key, obj *{{.FQObjectType}}) error {
506
+ func (m *{{.MockWrapType}}) Insert(ctx context.Context, key * meta.Key, obj *{{.FQObjectType}}) error {
507
507
if m.InsertHook != nil {
508
508
if intercept, err := m.InsertHook(m, ctx, key, obj); intercept {
509
509
glog.V(5).Infof("{{.MockWrapType}}.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
@@ -514,11 +514,11 @@ func (m *{{.MockWrapType}}) Insert(ctx context.Context, key meta.Key, obj *{{.FQ
514
514
m.Lock.Lock()
515
515
defer m.Lock.Unlock()
516
516
517
- if err, ok := m.InsertError[key]; ok {
517
+ if err, ok := m.InsertError[* key]; ok {
518
518
glog.V(5).Infof("{{.MockWrapType}}.Insert(%v, %v, %+v) = %v", ctx, key, obj, err)
519
519
return err
520
520
}
521
- if _, ok := m.Objects[key]; ok {
521
+ if _, ok := m.Objects[* key]; ok {
522
522
err := &googleapi.Error{
523
523
Code: http.StatusConflict,
524
524
Message: fmt.Sprintf("{{.MockWrapType}} %v exists", key),
@@ -532,15 +532,15 @@ func (m *{{.MockWrapType}}) Insert(ctx context.Context, key meta.Key, obj *{{.FQ
532
532
obj.SelfLink = SelfLink(meta.Version{{.VersionTitle}}, "mock-project", "{{.Resource}}", key)
533
533
}
534
534
535
- m.Objects[key] = &Mock{{.Service}}Obj{obj}
535
+ m.Objects[* key] = &Mock{{.Service}}Obj{obj}
536
536
glog.V(5).Infof("{{.MockWrapType}}.Insert(%v, %v, %+v) = nil", ctx, key, obj)
537
537
return nil
538
538
}
539
539
{{- end}}
540
540
541
541
{{- if .GenerateDelete}}
542
542
// Delete is a mock for deleting the object.
543
- func (m *{{.MockWrapType}}) Delete(ctx context.Context, key meta.Key) error {
543
+ func (m *{{.MockWrapType}}) Delete(ctx context.Context, key * meta.Key) error {
544
544
if m.DeleteHook != nil {
545
545
if intercept, err := m.DeleteHook(m, ctx, key); intercept {
546
546
glog.V(5).Infof("{{.MockWrapType}}.Delete(%v, %v) = %v", ctx, key, err)
@@ -551,11 +551,11 @@ func (m *{{.MockWrapType}}) Delete(ctx context.Context, key meta.Key) error {
551
551
m.Lock.Lock()
552
552
defer m.Lock.Unlock()
553
553
554
- if err, ok := m.DeleteError[key]; ok {
554
+ if err, ok := m.DeleteError[* key]; ok {
555
555
glog.V(5).Infof("{{.MockWrapType}}.Delete(%v, %v) = %v", ctx, key, err)
556
556
return err
557
557
}
558
- if _, ok := m.Objects[key]; !ok {
558
+ if _, ok := m.Objects[* key]; !ok {
559
559
err := &googleapi.Error{
560
560
Code: http.StatusNotFound,
561
561
Message: fmt.Sprintf("{{.MockWrapType}} %v not found", key),
@@ -564,7 +564,7 @@ func (m *{{.MockWrapType}}) Delete(ctx context.Context, key meta.Key) error {
564
564
return err
565
565
}
566
566
567
- delete(m.Objects, key)
567
+ delete(m.Objects, * key)
568
568
glog.V(5).Infof("{{.MockWrapType}}.Delete(%v, %v) = nil", ctx, key)
569
569
return nil
570
570
}
@@ -621,16 +621,21 @@ func (m *{{.MockWrapType}}) Obj(o *{{.FQObjectType}}) *Mock{{.Service}}Obj {
621
621
{{- range .}}
622
622
// {{.Name}} is a mock for the corresponding method.
623
623
func (m *{{.MockWrapType}}) {{.FcnArgs}} {
624
- {{- if eq .ReturnType "Operation" }}
624
+ {{- if .IsOperation }}
625
625
if m.{{.MockHookName}} != nil {
626
626
return m.{{.MockHookName}}(m, ctx, key {{.CallArgs}})
627
627
}
628
628
return nil
629
- {{- else}}
629
+ {{- else if .IsGet }}
630
630
if m.{{.MockHookName}} != nil {
631
631
return m.{{.MockHookName}}(m, ctx, key {{.CallArgs}})
632
632
}
633
633
return nil, fmt.Errorf("{{.MockHookName}} must be set")
634
+ {{- else if .IsPaged}}
635
+ if m.{{.MockHookName}} != nil {
636
+ return m.{{.MockHookName}}(m, ctx, key {{.CallArgs}}, fl)
637
+ }
638
+ return nil, nil
634
639
{{- end}}
635
640
}
636
641
{{end -}}
@@ -642,7 +647,7 @@ type {{.GCEWrapType}} struct {
642
647
643
648
{{- if .GenerateGet}}
644
649
// Get the {{.Object}} named by key.
645
- func (g *{{.GCEWrapType}}) Get(ctx context.Context, key meta.Key) (*{{.FQObjectType}}, error) {
650
+ func (g *{{.GCEWrapType}}) Get(ctx context.Context, key * meta.Key) (*{{.FQObjectType}}, error) {
646
651
projectID := g.s.ProjectRouter.ProjectID(ctx, "{{.Version}}", "{{.Service}}")
647
652
rk := &RateLimitKey{
648
653
ProjectID: projectID,
@@ -714,7 +719,7 @@ rk := &RateLimitKey{
714
719
715
720
{{- if .GenerateInsert}}
716
721
// Insert {{.Object}} with key of value obj.
717
- func (g *{{.GCEWrapType}}) Insert(ctx context.Context, key meta.Key, obj *{{.FQObjectType}}) error {
722
+ func (g *{{.GCEWrapType}}) Insert(ctx context.Context, key * meta.Key, obj *{{.FQObjectType}}) error {
718
723
projectID := g.s.ProjectRouter.ProjectID(ctx, "{{.Version}}", "{{.Service}}")
719
724
rk := &RateLimitKey{
720
725
ProjectID: projectID,
@@ -747,7 +752,7 @@ func (g *{{.GCEWrapType}}) Insert(ctx context.Context, key meta.Key, obj *{{.FQO
747
752
748
753
{{- if .GenerateDelete}}
749
754
// Delete the {{.Object}} referenced by key.
750
- func (g *{{.GCEWrapType}}) Delete(ctx context.Context, key meta.Key) error {
755
+ func (g *{{.GCEWrapType}}) Delete(ctx context.Context, key * meta.Key) error {
751
756
projectID := g.s.ProjectRouter.ProjectID(ctx, "{{.Version}}", "{{.Service}}")
752
757
rk := &RateLimitKey{
753
758
ProjectID: projectID,
@@ -823,7 +828,7 @@ func (g *{{.GCEWrapType}}) {{.FcnArgs}} {
823
828
Service: "{{.Service}}",
824
829
}
825
830
if err := g.s.RateLimiter.Accept(ctx, rk); err != nil {
826
- {{- if eq .ReturnType "Operation" }}
831
+ {{- if .IsOperation }}
827
832
return err
828
833
{{- else}}
829
834
return nil, err
@@ -838,15 +843,26 @@ func (g *{{.GCEWrapType}}) {{.FcnArgs}} {
838
843
{{- if .KeyIsZonal}}
839
844
call := g.s.{{.VersionTitle}}.{{.Service}}.{{.Name}}(projectID, key.Zone, key.Name {{.CallArgs}})
840
845
{{- end}}
846
+ {{- if .IsOperation}}
841
847
call.Context(ctx)
842
- {{- if eq .ReturnType "Operation"}}
843
848
op, err := call.Do()
844
849
if err != nil {
845
850
return err
846
851
}
847
852
return g.s.WaitForCompletion(ctx, op)
848
- {{- else}}
853
+ {{- else if .IsGet}}
854
+ call.Context(ctx)
849
855
return call.Do()
856
+ {{- else if .IsPaged}}
857
+ var all []*{{.Version}}.{{.ItemType}}
858
+ f := func(l *{{.Version}}.{{.ReturnType}}) error {
859
+ all = append(all, l.Items...)
860
+ return nil
861
+ }
862
+ if err := call.Pages(ctx, f); err != nil {
863
+ return nil, err
864
+ }
865
+ return all, nil
850
866
{{- end}}
851
867
}
852
868
{{end -}}
@@ -933,17 +949,17 @@ func Test{{.Service}}Group(t *testing.T) {
933
949
934
950
// Get not found.
935
951
{{- if .HasAlpha}}{{- if .Alpha.GenerateGet}}
936
- if _, err := mock.Alpha{{.Service}}().Get(ctx, * key); err == nil {
952
+ if _, err := mock.Alpha{{.Service}}().Get(ctx, key); err == nil {
937
953
t.Errorf("Alpha{{.Service}}().Get(%v, %v) = _, nil; want error", ctx, key)
938
954
}
939
955
{{- end}}{{- end}}
940
956
{{- if .HasBeta}}{{- if .Beta.GenerateGet}}
941
- if _, err := mock.Beta{{.Service}}().Get(ctx, * key); err == nil {
957
+ if _, err := mock.Beta{{.Service}}().Get(ctx, key); err == nil {
942
958
t.Errorf("Beta{{.Service}}().Get(%v, %v) = _, nil; want error", ctx, key)
943
959
}
944
960
{{- end}}{{- end}}
945
961
{{- if .HasGA}}{{- if .GA.GenerateGet}}
946
- if _, err := mock.{{.Service}}().Get(ctx, * key); err == nil {
962
+ if _, err := mock.{{.Service}}().Get(ctx, key); err == nil {
947
963
t.Errorf("{{.Service}}().Get(%v, %v) = _, nil; want error", ctx, key)
948
964
}
949
965
{{- end}}{{- end}}
@@ -952,41 +968,41 @@ func Test{{.Service}}Group(t *testing.T) {
952
968
{{- if .HasAlpha}}{{- if .Alpha.GenerateInsert}}
953
969
{
954
970
obj := &alpha.{{.Alpha.Object}}{}
955
- if err := mock.Alpha{{.Service}}().Insert(ctx, * keyAlpha, obj); err != nil {
956
- t.Errorf("Alpha{{.Service}}().Insert(%v, %v, %v) = %v; want nil", ctx, key , obj, err)
971
+ if err := mock.Alpha{{.Service}}().Insert(ctx, keyAlpha, obj); err != nil {
972
+ t.Errorf("Alpha{{.Service}}().Insert(%v, %v, %v) = %v; want nil", ctx, keyAlpha , obj, err)
957
973
}
958
974
}
959
975
{{- end}}{{- end}}
960
976
{{- if .HasBeta}}{{- if .Beta.GenerateInsert}}
961
977
{
962
978
obj := &beta.{{.Beta.Object}}{}
963
- if err := mock.Beta{{.Service}}().Insert(ctx, * keyBeta, obj); err != nil {
964
- t.Errorf("Beta{{.Service}}().Insert(%v, %v, %v) = %v; want nil", ctx, key , obj, err)
979
+ if err := mock.Beta{{.Service}}().Insert(ctx, keyBeta, obj); err != nil {
980
+ t.Errorf("Beta{{.Service}}().Insert(%v, %v, %v) = %v; want nil", ctx, keyBeta , obj, err)
965
981
}
966
982
}
967
983
{{- end}}{{- end}}
968
984
{{- if .HasGA}}{{- if .GA.GenerateInsert}}
969
985
{
970
986
obj := &ga.{{.GA.Object}}{}
971
- if err := mock.{{.Service}}().Insert(ctx, * keyGA, obj); err != nil {
972
- t.Errorf("{{.Service}}().Insert(%v, %v, %v) = %v; want nil", ctx, key , obj, err)
987
+ if err := mock.{{.Service}}().Insert(ctx, keyGA, obj); err != nil {
988
+ t.Errorf("{{.Service}}().Insert(%v, %v, %v) = %v; want nil", ctx, keyGA , obj, err)
973
989
}
974
990
}
975
991
{{- end}}{{- end}}
976
992
977
993
// Get across versions.
978
994
{{- if .HasAlpha}}{{- if .Alpha.GenerateInsert}}
979
- if obj, err := mock.Alpha{{.Service}}().Get(ctx, * key); err != nil {
995
+ if obj, err := mock.Alpha{{.Service}}().Get(ctx, key); err != nil {
980
996
t.Errorf("Alpha{{.Service}}().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
981
997
}
982
998
{{- end}}{{- end}}
983
999
{{- if .HasBeta}}{{- if .Beta.GenerateInsert}}
984
- if obj, err := mock.Beta{{.Service}}().Get(ctx, * key); err != nil {
1000
+ if obj, err := mock.Beta{{.Service}}().Get(ctx, key); err != nil {
985
1001
t.Errorf("Beta{{.Service}}().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
986
1002
}
987
1003
{{- end}}{{- end}}
988
1004
{{- if .HasGA}}{{- if .GA.GenerateInsert}}
989
- if obj, err := mock.{{.Service}}().Get(ctx, * key); err != nil {
1005
+ if obj, err := mock.{{.Service}}().Get(ctx, key); err != nil {
990
1006
t.Errorf("{{.Service}}().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
991
1007
}
992
1008
{{- end}}{{- end}}
@@ -1077,35 +1093,35 @@ func Test{{.Service}}Group(t *testing.T) {
1077
1093
1078
1094
// Delete across versions.
1079
1095
{{- if .HasAlpha}}{{- if .Alpha.GenerateDelete}}
1080
- if err := mock.Alpha{{.Service}}().Delete(ctx, * keyAlpha); err != nil {
1081
- t.Errorf("Alpha{{.Service}}().Delete(%v, %v) = %v; want nil", ctx, key , err)
1096
+ if err := mock.Alpha{{.Service}}().Delete(ctx, keyAlpha); err != nil {
1097
+ t.Errorf("Alpha{{.Service}}().Delete(%v, %v) = %v; want nil", ctx, keyAlpha , err)
1082
1098
}
1083
1099
{{- end}}{{- end}}
1084
1100
{{- if .HasBeta}}{{- if .Beta.GenerateDelete}}
1085
- if err := mock.Beta{{.Service}}().Delete(ctx, * keyBeta); err != nil {
1086
- t.Errorf("Beta{{.Service}}().Delete(%v, %v) = %v; want nil", ctx, key , err)
1101
+ if err := mock.Beta{{.Service}}().Delete(ctx, keyBeta); err != nil {
1102
+ t.Errorf("Beta{{.Service}}().Delete(%v, %v) = %v; want nil", ctx, keyBeta , err)
1087
1103
}
1088
1104
{{- end}}{{- end}}
1089
1105
{{- if .HasGA}}{{- if .GA.GenerateDelete}}
1090
- if err := mock.{{.Service}}().Delete(ctx, * keyGA); err != nil {
1091
- t.Errorf("{{.Service}}().Delete(%v, %v) = %v; want nil", ctx, key , err)
1106
+ if err := mock.{{.Service}}().Delete(ctx, keyGA); err != nil {
1107
+ t.Errorf("{{.Service}}().Delete(%v, %v) = %v; want nil", ctx, keyGA , err)
1092
1108
}
1093
1109
{{- end}}{{- end}}
1094
1110
1095
1111
// Delete not found.
1096
1112
{{- if .HasAlpha}}{{- if .Alpha.GenerateDelete}}
1097
- if err := mock.Alpha{{.Service}}().Delete(ctx, * keyAlpha); err == nil {
1098
- t.Errorf("Alpha{{.Service}}().Delete(%v, %v) = nil; want error", ctx, key )
1113
+ if err := mock.Alpha{{.Service}}().Delete(ctx, keyAlpha); err == nil {
1114
+ t.Errorf("Alpha{{.Service}}().Delete(%v, %v) = nil; want error", ctx, keyAlpha )
1099
1115
}
1100
1116
{{- end}}{{- end}}
1101
1117
{{- if .HasBeta}}{{- if .Beta.GenerateDelete}}
1102
- if err := mock.Beta{{.Service}}().Delete(ctx, * keyBeta); err == nil {
1103
- t.Errorf("Beta{{.Service}}().Delete(%v, %v) = nil; want error", ctx, key )
1118
+ if err := mock.Beta{{.Service}}().Delete(ctx, keyBeta); err == nil {
1119
+ t.Errorf("Beta{{.Service}}().Delete(%v, %v) = nil; want error", ctx, keyBeta )
1104
1120
}
1105
1121
{{- end}}{{- end}}
1106
1122
{{- if .HasGA}}{{- if .GA.GenerateDelete}}
1107
- if err := mock.{{.Service}}().Delete(ctx, * keyGA); err == nil {
1108
- t.Errorf("{{.Service}}().Delete(%v, %v) = nil; want error", ctx, key )
1123
+ if err := mock.{{.Service}}().Delete(ctx, keyGA); err == nil {
1124
+ t.Errorf("{{.Service}}().Delete(%v, %v) = nil; want error", ctx, keyGA )
1109
1125
}
1110
1126
{{- end}}{{- end}}
1111
1127
}
0 commit comments