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 | |
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')
-rw-r--r-- | src/orchestrator/utils/utils.go | 66 | ||||
-rw-r--r-- | src/orchestrator/utils/utils_test.go | 74 |
2 files changed, 0 insertions, 140 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 -} diff --git a/src/orchestrator/utils/utils_test.go b/src/orchestrator/utils/utils_test.go deleted file mode 100644 index 63230e49..00000000 --- a/src/orchestrator/utils/utils_test.go +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2018 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 ( - "bytes" - "testing" -) - -func TestIsTarGz(t *testing.T) { - - t.Run("Valid tar.gz", func(t *testing.T) { - content := []byte{ - 0x1f, 0x8b, 0x08, 0x08, 0xb0, 0x6b, 0xf4, 0x5b, - 0x00, 0x03, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x74, - 0x61, 0x72, 0x00, 0xed, 0xce, 0x41, 0x0a, 0xc2, - 0x30, 0x10, 0x85, 0xe1, 0xac, 0x3d, 0x45, 0x4e, - 0x50, 0x12, 0xd2, 0xc4, 0xe3, 0x48, 0xa0, 0x01, - 0x4b, 0x52, 0x0b, 0xed, 0x88, 0x1e, 0xdf, 0x48, - 0x11, 0x5c, 0x08, 0xa5, 0x8b, 0x52, 0x84, 0xff, - 0xdb, 0xbc, 0x61, 0x66, 0x16, 0x4f, 0xd2, 0x2c, - 0x8d, 0x3c, 0x45, 0xed, 0xc8, 0x54, 0x21, 0xb4, - 0xef, 0xb4, 0x67, 0x6f, 0xbe, 0x73, 0x61, 0x9d, - 0xb2, 0xce, 0xd5, 0x55, 0xf0, 0xde, 0xd7, 0x3f, - 0xdb, 0xd6, 0x49, 0x69, 0xb3, 0x67, 0xa9, 0x8f, - 0xfb, 0x2c, 0x71, 0xd2, 0x5a, 0xc5, 0xee, 0x92, - 0x73, 0x8e, 0x43, 0x7f, 0x4b, 0x3f, 0xff, 0xd6, - 0xee, 0x7f, 0xea, 0x9a, 0x4a, 0x19, 0x1f, 0xe3, - 0x54, 0xba, 0xd3, 0xd1, 0x55, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1b, 0xbc, 0x00, 0xb5, 0xe8, - 0x4a, 0xf9, 0x00, 0x28, 0x00, 0x00, - } - - err := IsTarGz(bytes.NewBuffer(content)) - if err != nil { - t.Errorf("Error reading valid tar.gz file %s", err.Error()) - } - }) - - t.Run("Invalid tar.gz", func(t *testing.T) { - content := []byte{ - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xf2, 0x48, 0xcd, - } - - err := IsTarGz(bytes.NewBuffer(content)) - if err == nil { - t.Errorf("Error should NOT be nil") - } - }) - - t.Run("Empty tar.gz", func(t *testing.T) { - content := []byte{} - err := IsTarGz(bytes.NewBuffer(content)) - if err == nil { - t.Errorf("Error should NOT be nil") - } - }) -} |