Add more reconcileMinioSource test cases
Signed-off-by: Sunny <darkowlzz@protonmail.com>
This commit is contained in:
parent
ec03a6ae2e
commit
8384ced601
|
@ -263,13 +263,14 @@ func (r *BucketReconciler) reconcileStorage(ctx context.Context, obj *sourcev1.B
|
||||||
//
|
//
|
||||||
// The caller should assume a failure if an error is returned, or the Result is zero.
|
// The caller should assume a failure if an error is returned, or the Result is zero.
|
||||||
func (r *BucketReconciler) reconcileSource(ctx context.Context, obj *sourcev1.Bucket, artifact *sourcev1.Artifact, dir string) (ctrl.Result, error) {
|
func (r *BucketReconciler) reconcileSource(ctx context.Context, obj *sourcev1.Bucket, artifact *sourcev1.Artifact, dir string) (ctrl.Result, error) {
|
||||||
var secret corev1.Secret
|
var secret *corev1.Secret
|
||||||
if obj.Spec.SecretRef != nil {
|
if obj.Spec.SecretRef != nil {
|
||||||
secretName := types.NamespacedName{
|
secretName := types.NamespacedName{
|
||||||
Namespace: obj.GetNamespace(),
|
Namespace: obj.GetNamespace(),
|
||||||
Name: obj.Spec.SecretRef.Name,
|
Name: obj.Spec.SecretRef.Name,
|
||||||
}
|
}
|
||||||
if err := r.Get(ctx, secretName, &secret); err != nil {
|
secret = &corev1.Secret{}
|
||||||
|
if err := r.Get(ctx, secretName, secret); err != nil {
|
||||||
conditions.MarkTrue(obj, sourcev1.FetchFailedCondition, sourcev1.AuthenticationFailedReason,
|
conditions.MarkTrue(obj, sourcev1.FetchFailedCondition, sourcev1.AuthenticationFailedReason,
|
||||||
"Failed to get secret '%s': %s", secretName.String(), err.Error())
|
"Failed to get secret '%s': %s", secretName.String(), err.Error())
|
||||||
r.Eventf(obj, corev1.EventTypeWarning, sourcev1.AuthenticationFailedReason,
|
r.Eventf(obj, corev1.EventTypeWarning, sourcev1.AuthenticationFailedReason,
|
||||||
|
@ -281,9 +282,9 @@ func (r *BucketReconciler) reconcileSource(ctx context.Context, obj *sourcev1.Bu
|
||||||
|
|
||||||
switch obj.Spec.Provider {
|
switch obj.Spec.Provider {
|
||||||
case sourcev1.GoogleBucketProvider:
|
case sourcev1.GoogleBucketProvider:
|
||||||
return r.reconcileGCPSource(ctx, obj, artifact, &secret, dir)
|
return r.reconcileGCPSource(ctx, obj, artifact, secret, dir)
|
||||||
default:
|
default:
|
||||||
return r.reconcileMinioSource(ctx, obj, artifact, &secret, dir)
|
return r.reconcileMinioSource(ctx, obj, artifact, secret, dir)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -382,6 +382,85 @@ func TestBucketReconciler_reconcileMinioSource(t *testing.T) {
|
||||||
*conditions.TrueCondition(sourcev1.ArtifactOutdatedCondition, "NewRevision", "New upstream revision '94992ae8fb8300723e970e304ea3414266cb414e364ba3f570bb09069f883100'"),
|
*conditions.TrueCondition(sourcev1.ArtifactOutdatedCondition, "NewRevision", "New upstream revision '94992ae8fb8300723e970e304ea3414266cb414e364ba3f570bb09069f883100'"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "spec.ignore overrides .sourceignore",
|
||||||
|
bucketName: "dummy",
|
||||||
|
beforeFunc: func(obj *sourcev1.Bucket) {
|
||||||
|
ignore := "included/file.txt"
|
||||||
|
obj.Spec.Ignore = &ignore
|
||||||
|
},
|
||||||
|
bucketObjects: []*s3MockObject{
|
||||||
|
{
|
||||||
|
Key: ".sourceignore",
|
||||||
|
Content: []byte("ignored/file.txt"),
|
||||||
|
ContentType: "text/plain",
|
||||||
|
LastModified: time.Now(),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Key: "ignored/file.txt",
|
||||||
|
Content: []byte("ignored/file.txt"),
|
||||||
|
ContentType: "text/plain",
|
||||||
|
LastModified: time.Now(),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Key: "included/file.txt",
|
||||||
|
Content: []byte("included/file.txt"),
|
||||||
|
ContentType: "text/plain",
|
||||||
|
LastModified: time.Now(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
assertArtifact: sourcev1.Artifact{
|
||||||
|
Path: "bucket/test-bucket/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.tar.gz",
|
||||||
|
Revision: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||||
|
},
|
||||||
|
assertConditions: []metav1.Condition{
|
||||||
|
*conditions.TrueCondition(sourcev1.ArtifactOutdatedCondition, "NewRevision", "New upstream revision 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "up-to-date artifact",
|
||||||
|
bucketName: "dummy",
|
||||||
|
beforeFunc: func(obj *sourcev1.Bucket) {
|
||||||
|
obj.Status.Artifact = &sourcev1.Artifact{
|
||||||
|
Revision: "f0467900d3cede8323f3e61a1467f7cd370d1c0d942ff990a1a7be1eb1a231e8",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
bucketObjects: []*s3MockObject{
|
||||||
|
{
|
||||||
|
Key: "test.txt",
|
||||||
|
Content: []byte("test"),
|
||||||
|
ContentType: "text/plain",
|
||||||
|
LastModified: time.Now(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
assertArtifact: sourcev1.Artifact{
|
||||||
|
Path: "bucket/test-bucket/f0467900d3cede8323f3e61a1467f7cd370d1c0d942ff990a1a7be1eb1a231e8.tar.gz",
|
||||||
|
Revision: "f0467900d3cede8323f3e61a1467f7cd370d1c0d942ff990a1a7be1eb1a231e8",
|
||||||
|
},
|
||||||
|
assertConditions: []metav1.Condition{},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Removes FetchFailedCondition after reconciling source",
|
||||||
|
bucketName: "dummy",
|
||||||
|
beforeFunc: func(obj *sourcev1.Bucket) {
|
||||||
|
conditions.MarkTrue(obj, sourcev1.FetchFailedCondition, sourcev1.BucketOperationFailedReason, "Failed to read test file")
|
||||||
|
},
|
||||||
|
bucketObjects: []*s3MockObject{
|
||||||
|
{
|
||||||
|
Key: "test.txt",
|
||||||
|
Content: []byte("test"),
|
||||||
|
ContentType: "text/plain",
|
||||||
|
LastModified: time.Now(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
assertArtifact: sourcev1.Artifact{
|
||||||
|
Path: "bucket/test-bucket/f0467900d3cede8323f3e61a1467f7cd370d1c0d942ff990a1a7be1eb1a231e8.tar.gz",
|
||||||
|
Revision: "f0467900d3cede8323f3e61a1467f7cd370d1c0d942ff990a1a7be1eb1a231e8",
|
||||||
|
},
|
||||||
|
assertConditions: []metav1.Condition{
|
||||||
|
*conditions.TrueCondition(sourcev1.ArtifactOutdatedCondition, "NewRevision", "New upstream revision 'f0467900d3cede8323f3e61a1467f7cd370d1c0d942ff990a1a7be1eb1a231e8'"),
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue