From d08b7efcb335d892f0eb6f2c8e4a7d406a9b27fc Mon Sep 17 00:00:00 2001 From: Eric Multanen Date: Wed, 18 Mar 2020 17:33:27 -0700 Subject: Add more validation methods Add more validation methods and move to package orchestration/infra/validation Issue-ID: MULTICLOUD-1029 Signed-off-by: Eric Multanen Change-Id: Id37bbb73fff9ab115ec49c88cdd3e08ee6be3098 --- src/orchestrator/utils/utils.go | 66 ----------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 src/orchestrator/utils/utils.go (limited to 'src/orchestrator/utils/utils.go') diff --git a/src/orchestrator/utils/utils.go b/src/orchestrator/utils/utils.go deleted file mode 100644 index 44cf5120..00000000 --- a/src/orchestrator/utils/utils.go +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2020 Intel Corporation, Inc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package utils - -import ( - "archive/tar" - "compress/gzip" - "io" - - pkgerrors "github.com/pkg/errors" -) - -func IsTarGz(r io.Reader) error { - //Check if it is a valid gz - gzf, err := gzip.NewReader(r) - if err != nil { - return pkgerrors.Wrap(err, "Invalid gzip format") - } - - //Check if it is a valid tar file - //Unfortunately this can only be done by inspecting all the tar contents - tarR := tar.NewReader(gzf) - first := true - - for true { - header, err := tarR.Next() - - if err == io.EOF { - //Check if we have just a gzip file without a tar archive inside - if first { - return pkgerrors.New("Empty or non-existant Tar file found") - } - //End of archive - break - } - - if err != nil { - return pkgerrors.Errorf("Error reading tar file %s", err.Error()) - } - - //Check if files are of type directory and regular file - if header.Typeflag != tar.TypeDir && - header.Typeflag != tar.TypeReg { - return pkgerrors.Errorf("Unknown header in tar %s, %s", - header.Name, string(header.Typeflag)) - } - - first = false - } - - return nil -} -- cgit 1.2.3-korg