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.
|
||||
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 {
|
||||
secretName := types.NamespacedName{
|
||||
Namespace: obj.GetNamespace(),
|
||||
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,
|
||||
"Failed to get secret '%s': %s", secretName.String(), err.Error())
|
||||
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 {
|
||||
case sourcev1.GoogleBucketProvider:
|
||||
return r.reconcileGCPSource(ctx, obj, artifact, &secret, dir)
|
||||
return r.reconcileGCPSource(ctx, obj, artifact, secret, dir)
|
||||
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'"),
|
||||
},
|
||||
},
|
||||
{
|
||||
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 {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue