diff options
author | Eric Multanen <eric.w.multanen@intel.com> | 2020-03-18 17:33:27 -0700 |
---|---|---|
committer | Eric Multanen <eric.w.multanen@intel.com> | 2020-03-19 10:46:24 -0700 |
commit | d08b7efcb335d892f0eb6f2c8e4a7d406a9b27fc (patch) | |
tree | 3c1f7caae426c86eb1811595da9a0c09c0c1fe41 /src/orchestrator/utils/utils.go | |
parent | 7cb9c0b9e9ee87f962c1a678471f24b14b02ec85 (diff) |
Add more validation methods
Add more validation methods and move to package
orchestration/infra/validation
Issue-ID: MULTICLOUD-1029
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Change-Id: Id37bbb73fff9ab115ec49c88cdd3e08ee6be3098
Diffstat (limited to 'src/orchestrator/utils/utils.go')
-rw-r--r-- | src/orchestrator/utils/utils.go | 66 |
1 files changed, 0 insertions, 66 deletions
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 -} |