@@ -36,6 +36,7 @@ import (
36
36
"github.com/vmware-tanzu/velero/pkg/builder"
37
37
"github.com/vmware-tanzu/velero/pkg/kuberesource"
38
38
velerotest "github.com/vmware-tanzu/velero/pkg/test"
39
+ "github.com/vmware-tanzu/velero/pkg/util/boolptr"
39
40
"github.com/vmware-tanzu/velero/pkg/util/collections"
40
41
)
41
42
@@ -724,7 +725,8 @@ func TestGetPodExecRestoreHookFromAnnotations(t *testing.T) {
724
725
podRestoreHookCommandAnnotationKey : "/usr/bin/foo" ,
725
726
},
726
727
expected : & velerov1api.ExecRestoreHook {
727
- Command : []string {"/usr/bin/foo" },
728
+ Command : []string {"/usr/bin/foo" },
729
+ WaitForReady : boolptr .False (),
728
730
},
729
731
},
730
732
{
@@ -733,7 +735,8 @@ func TestGetPodExecRestoreHookFromAnnotations(t *testing.T) {
733
735
podRestoreHookCommandAnnotationKey : `["a","b","c"]` ,
734
736
},
735
737
expected : & velerov1api.ExecRestoreHook {
736
- Command : []string {"a" , "b" , "c" },
738
+ Command : []string {"a" , "b" , "c" },
739
+ WaitForReady : boolptr .False (),
737
740
},
738
741
},
739
742
{
@@ -743,8 +746,9 @@ func TestGetPodExecRestoreHookFromAnnotations(t *testing.T) {
743
746
podRestoreHookOnErrorAnnotationKey : string (velerov1api .HookErrorModeContinue ),
744
747
},
745
748
expected : & velerov1api.ExecRestoreHook {
746
- Command : []string {"/usr/bin/foo" },
747
- OnError : velerov1api .HookErrorModeContinue ,
749
+ Command : []string {"/usr/bin/foo" },
750
+ OnError : velerov1api .HookErrorModeContinue ,
751
+ WaitForReady : boolptr .False (),
748
752
},
749
753
},
750
754
{
@@ -754,8 +758,9 @@ func TestGetPodExecRestoreHookFromAnnotations(t *testing.T) {
754
758
podRestoreHookOnErrorAnnotationKey : string (velerov1api .HookErrorModeFail ),
755
759
},
756
760
expected : & velerov1api.ExecRestoreHook {
757
- Command : []string {"/usr/bin/foo" },
758
- OnError : velerov1api .HookErrorModeFail ,
761
+ Command : []string {"/usr/bin/foo" },
762
+ OnError : velerov1api .HookErrorModeFail ,
763
+ WaitForReady : boolptr .False (),
759
764
},
760
765
},
761
766
{
@@ -766,9 +771,10 @@ func TestGetPodExecRestoreHookFromAnnotations(t *testing.T) {
766
771
podRestoreHookWaitTimeoutAnnotationKey : "1h" ,
767
772
},
768
773
expected : & velerov1api.ExecRestoreHook {
769
- Command : []string {"/usr/bin/foo" },
770
- ExecTimeout : metav1.Duration {Duration : 45 * time .Second },
771
- WaitTimeout : metav1.Duration {Duration : time .Hour },
774
+ Command : []string {"/usr/bin/foo" },
775
+ ExecTimeout : metav1.Duration {Duration : 45 * time .Second },
776
+ WaitTimeout : metav1.Duration {Duration : time .Hour },
777
+ WaitForReady : boolptr .False (),
772
778
},
773
779
},
774
780
{
@@ -778,8 +784,9 @@ func TestGetPodExecRestoreHookFromAnnotations(t *testing.T) {
778
784
podRestoreHookContainerAnnotationKey : "my-app" ,
779
785
},
780
786
expected : & velerov1api.ExecRestoreHook {
781
- Command : []string {"/usr/bin/foo" },
782
- Container : "my-app" ,
787
+ Command : []string {"/usr/bin/foo" },
788
+ Container : "my-app" ,
789
+ WaitForReady : boolptr .False (),
783
790
},
784
791
},
785
792
{
@@ -790,9 +797,10 @@ func TestGetPodExecRestoreHookFromAnnotations(t *testing.T) {
790
797
podRestoreHookTimeoutAnnotationKey : "none" ,
791
798
},
792
799
expected : & velerov1api.ExecRestoreHook {
793
- Command : []string {"/usr/bin/foo" },
794
- Container : "my-app" ,
795
- ExecTimeout : metav1.Duration {Duration : 0 },
800
+ Command : []string {"/usr/bin/foo" },
801
+ Container : "my-app" ,
802
+ ExecTimeout : metav1.Duration {Duration : 0 },
803
+ WaitForReady : boolptr .False (),
796
804
},
797
805
},
798
806
{
@@ -803,9 +811,10 @@ func TestGetPodExecRestoreHookFromAnnotations(t *testing.T) {
803
811
podRestoreHookWaitTimeoutAnnotationKey : "none" ,
804
812
},
805
813
expected : & velerov1api.ExecRestoreHook {
806
- Command : []string {"/usr/bin/foo" },
807
- Container : "my-app" ,
808
- ExecTimeout : metav1.Duration {Duration : 0 },
814
+ Command : []string {"/usr/bin/foo" },
815
+ Container : "my-app" ,
816
+ ExecTimeout : metav1.Duration {Duration : 0 },
817
+ WaitForReady : boolptr .False (),
809
818
},
810
819
},
811
820
}
@@ -842,6 +851,7 @@ func TestGroupRestoreExecHooks(t *testing.T) {
842
851
podRestoreHookOnErrorAnnotationKey , string (velerov1api .HookErrorModeContinue ),
843
852
podRestoreHookTimeoutAnnotationKey , "1s" ,
844
853
podRestoreHookWaitTimeoutAnnotationKey , "1m" ,
854
+ podRestoreHookWaitForReadyAnnotationKey , "true" ,
845
855
)).
846
856
Containers (& corev1api.Container {
847
857
Name : "container1" ,
@@ -853,11 +863,12 @@ func TestGroupRestoreExecHooks(t *testing.T) {
853
863
HookName : "<from-annotation>" ,
854
864
HookSource : "annotation" ,
855
865
Hook : velerov1api.ExecRestoreHook {
856
- Container : "container1" ,
857
- Command : []string {"/usr/bin/foo" },
858
- OnError : velerov1api .HookErrorModeContinue ,
859
- ExecTimeout : metav1.Duration {Duration : time .Second },
860
- WaitTimeout : metav1.Duration {Duration : time .Minute },
866
+ Container : "container1" ,
867
+ Command : []string {"/usr/bin/foo" },
868
+ OnError : velerov1api .HookErrorModeContinue ,
869
+ ExecTimeout : metav1.Duration {Duration : time .Second },
870
+ WaitTimeout : metav1.Duration {Duration : time .Minute },
871
+ WaitForReady : boolptr .True (),
861
872
},
862
873
},
863
874
},
@@ -883,11 +894,12 @@ func TestGroupRestoreExecHooks(t *testing.T) {
883
894
HookName : "<from-annotation>" ,
884
895
HookSource : "annotation" ,
885
896
Hook : velerov1api.ExecRestoreHook {
886
- Container : "container1" ,
887
- Command : []string {"/usr/bin/foo" },
888
- OnError : velerov1api .HookErrorModeContinue ,
889
- ExecTimeout : metav1.Duration {Duration : time .Second },
890
- WaitTimeout : metav1.Duration {Duration : time .Minute },
897
+ Container : "container1" ,
898
+ Command : []string {"/usr/bin/foo" },
899
+ OnError : velerov1api .HookErrorModeContinue ,
900
+ ExecTimeout : metav1.Duration {Duration : time .Second },
901
+ WaitTimeout : metav1.Duration {Duration : time .Minute },
902
+ WaitForReady : boolptr .False (),
891
903
},
892
904
},
893
905
},
@@ -923,11 +935,12 @@ func TestGroupRestoreExecHooks(t *testing.T) {
923
935
HookName : "hook1" ,
924
936
HookSource : "backupSpec" ,
925
937
Hook : velerov1api.ExecRestoreHook {
926
- Container : "container1" ,
927
- Command : []string {"/usr/bin/foo" },
928
- OnError : velerov1api .HookErrorModeContinue ,
929
- ExecTimeout : metav1.Duration {Duration : time .Second },
930
- WaitTimeout : metav1.Duration {Duration : time .Minute },
938
+ Container : "container1" ,
939
+ Command : []string {"/usr/bin/foo" },
940
+ OnError : velerov1api .HookErrorModeContinue ,
941
+ ExecTimeout : metav1.Duration {Duration : time .Second },
942
+ WaitTimeout : metav1.Duration {Duration : time .Minute },
943
+ WaitForReady : boolptr .False (),
931
944
},
932
945
},
933
946
},
@@ -962,11 +975,12 @@ func TestGroupRestoreExecHooks(t *testing.T) {
962
975
HookName : "hook1" ,
963
976
HookSource : "backupSpec" ,
964
977
Hook : velerov1api.ExecRestoreHook {
965
- Container : "container1" ,
966
- Command : []string {"/usr/bin/foo" },
967
- OnError : velerov1api .HookErrorModeContinue ,
968
- ExecTimeout : metav1.Duration {Duration : time .Second },
969
- WaitTimeout : metav1.Duration {Duration : time .Minute },
978
+ Container : "container1" ,
979
+ Command : []string {"/usr/bin/foo" },
980
+ OnError : velerov1api .HookErrorModeContinue ,
981
+ ExecTimeout : metav1.Duration {Duration : time .Second },
982
+ WaitTimeout : metav1.Duration {Duration : time .Minute },
983
+ WaitForReady : boolptr .False (),
970
984
},
971
985
},
972
986
},
@@ -1009,11 +1023,12 @@ func TestGroupRestoreExecHooks(t *testing.T) {
1009
1023
HookName : "<from-annotation>" ,
1010
1024
HookSource : "annotation" ,
1011
1025
Hook : velerov1api.ExecRestoreHook {
1012
- Container : "container1" ,
1013
- Command : []string {"/usr/bin/foo" },
1014
- OnError : velerov1api .HookErrorModeContinue ,
1015
- ExecTimeout : metav1.Duration {Duration : time .Second },
1016
- WaitTimeout : metav1.Duration {Duration : time .Minute },
1026
+ Container : "container1" ,
1027
+ Command : []string {"/usr/bin/foo" },
1028
+ OnError : velerov1api .HookErrorModeContinue ,
1029
+ ExecTimeout : metav1.Duration {Duration : time .Second },
1030
+ WaitTimeout : metav1.Duration {Duration : time .Minute },
1031
+ WaitForReady : boolptr .False (),
1017
1032
},
1018
1033
},
1019
1034
},
@@ -1105,11 +1120,12 @@ func TestGroupRestoreExecHooks(t *testing.T) {
1105
1120
RestoreHooks : []velerov1api.RestoreResourceHook {
1106
1121
{
1107
1122
Exec : & velerov1api.ExecRestoreHook {
1108
- Container : "container1" ,
1109
- Command : []string {"/usr/bin/aaa" },
1110
- OnError : velerov1api .HookErrorModeContinue ,
1111
- ExecTimeout : metav1.Duration {Duration : time .Second * 4 },
1112
- WaitTimeout : metav1.Duration {Duration : time .Minute * 4 },
1123
+ Container : "container1" ,
1124
+ Command : []string {"/usr/bin/aaa" },
1125
+ OnError : velerov1api .HookErrorModeContinue ,
1126
+ ExecTimeout : metav1.Duration {Duration : time .Second * 4 },
1127
+ WaitTimeout : metav1.Duration {Duration : time .Minute * 4 },
1128
+ WaitForReady : boolptr .True (),
1113
1129
},
1114
1130
},
1115
1131
},
@@ -1126,33 +1142,36 @@ func TestGroupRestoreExecHooks(t *testing.T) {
1126
1142
HookName : "hook1" ,
1127
1143
HookSource : "backupSpec" ,
1128
1144
Hook : velerov1api.ExecRestoreHook {
1129
- Container : "container1" ,
1130
- Command : []string {"/usr/bin/foo" },
1131
- OnError : velerov1api .HookErrorModeFail ,
1132
- ExecTimeout : metav1.Duration {Duration : time .Second },
1133
- WaitTimeout : metav1.Duration {Duration : time .Minute },
1145
+ Container : "container1" ,
1146
+ Command : []string {"/usr/bin/foo" },
1147
+ OnError : velerov1api .HookErrorModeFail ,
1148
+ ExecTimeout : metav1.Duration {Duration : time .Second },
1149
+ WaitTimeout : metav1.Duration {Duration : time .Minute },
1150
+ WaitForReady : boolptr .False (),
1134
1151
},
1135
1152
},
1136
1153
{
1137
1154
HookName : "hook1" ,
1138
1155
HookSource : "backupSpec" ,
1139
1156
Hook : velerov1api.ExecRestoreHook {
1140
- Container : "container1" ,
1141
- Command : []string {"/usr/bin/bar" },
1142
- OnError : velerov1api .HookErrorModeContinue ,
1143
- ExecTimeout : metav1.Duration {Duration : time .Second * 2 },
1144
- WaitTimeout : metav1.Duration {Duration : time .Minute * 2 },
1157
+ Container : "container1" ,
1158
+ Command : []string {"/usr/bin/bar" },
1159
+ OnError : velerov1api .HookErrorModeContinue ,
1160
+ ExecTimeout : metav1.Duration {Duration : time .Second * 2 },
1161
+ WaitTimeout : metav1.Duration {Duration : time .Minute * 2 },
1162
+ WaitForReady : boolptr .False (),
1145
1163
},
1146
1164
},
1147
1165
{
1148
1166
HookName : "hook2" ,
1149
1167
HookSource : "backupSpec" ,
1150
1168
Hook : velerov1api.ExecRestoreHook {
1151
- Container : "container1" ,
1152
- Command : []string {"/usr/bin/aaa" },
1153
- OnError : velerov1api .HookErrorModeContinue ,
1154
- ExecTimeout : metav1.Duration {Duration : time .Second * 4 },
1155
- WaitTimeout : metav1.Duration {Duration : time .Minute * 4 },
1169
+ Container : "container1" ,
1170
+ Command : []string {"/usr/bin/aaa" },
1171
+ OnError : velerov1api .HookErrorModeContinue ,
1172
+ ExecTimeout : metav1.Duration {Duration : time .Second * 4 },
1173
+ WaitTimeout : metav1.Duration {Duration : time .Minute * 4 },
1174
+ WaitForReady : boolptr .True (),
1156
1175
},
1157
1176
},
1158
1177
},
@@ -1161,11 +1180,12 @@ func TestGroupRestoreExecHooks(t *testing.T) {
1161
1180
HookName : "hook1" ,
1162
1181
HookSource : "backupSpec" ,
1163
1182
Hook : velerov1api.ExecRestoreHook {
1164
- Container : "container2" ,
1165
- Command : []string {"/usr/bin/baz" },
1166
- OnError : velerov1api .HookErrorModeContinue ,
1167
- ExecTimeout : metav1.Duration {Duration : time .Second * 3 },
1168
- WaitTimeout : metav1.Duration {Duration : time .Second * 3 },
1183
+ Container : "container2" ,
1184
+ Command : []string {"/usr/bin/baz" },
1185
+ OnError : velerov1api .HookErrorModeContinue ,
1186
+ ExecTimeout : metav1.Duration {Duration : time .Second * 3 },
1187
+ WaitTimeout : metav1.Duration {Duration : time .Second * 3 },
1188
+ WaitForReady : boolptr .False (),
1169
1189
},
1170
1190
},
1171
1191
},
0 commit comments