From 4efef1e5ec1f357c62c7636af5499288177d98d8 Mon Sep 17 00:00:00 2001 From: Arkadiusz Galwas Date: Mon, 8 Jul 2024 11:53:42 +0200 Subject: [PATCH 01/11] Scaffolding for comparator app --- {internal => pkg}/testing/shoot/matcher.go | 0 {internal => pkg}/testing/shoot/matcher_test.go | 2 +- {internal => pkg}/testing/shoot/suite_test.go | 0 tools/shoot-comparator/cmd/main.go | 4 ++++ 4 files changed, 5 insertions(+), 1 deletion(-) rename {internal => pkg}/testing/shoot/matcher.go (100%) rename {internal => pkg}/testing/shoot/matcher_test.go (98%) rename {internal => pkg}/testing/shoot/suite_test.go (100%) create mode 100644 tools/shoot-comparator/cmd/main.go diff --git a/internal/testing/shoot/matcher.go b/pkg/testing/shoot/matcher.go similarity index 100% rename from internal/testing/shoot/matcher.go rename to pkg/testing/shoot/matcher.go diff --git a/internal/testing/shoot/matcher_test.go b/pkg/testing/shoot/matcher_test.go similarity index 98% rename from internal/testing/shoot/matcher_test.go rename to pkg/testing/shoot/matcher_test.go index d52981db..4f6226ba 100644 --- a/internal/testing/shoot/matcher_test.go +++ b/pkg/testing/shoot/matcher_test.go @@ -2,7 +2,7 @@ package shoot_test import ( "github.com/gardener/gardener/pkg/apis/core/v1beta1" - "github.com/kyma-project/infrastructure-manager/internal/testing/shoot" + "github.com/kyma-project/infrastructure-manager/pkg/testing/shoot" . "github.com/onsi/ginkgo/v2" //nolint:revive . "github.com/onsi/gomega" //nolint:revive corev1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/internal/testing/shoot/suite_test.go b/pkg/testing/shoot/suite_test.go similarity index 100% rename from internal/testing/shoot/suite_test.go rename to pkg/testing/shoot/suite_test.go diff --git a/tools/shoot-comparator/cmd/main.go b/tools/shoot-comparator/cmd/main.go new file mode 100644 index 00000000..d07a5746 --- /dev/null +++ b/tools/shoot-comparator/cmd/main.go @@ -0,0 +1,4 @@ +package cmd + +func main() { +} From 20fcfa58e3754d2cbc48e3616698a9679ce96b60 Mon Sep 17 00:00:00 2001 From: Arkadiusz Galwas Date: Mon, 8 Jul 2024 15:43:41 +0200 Subject: [PATCH 02/11] Added command for comparing files, and folders --- .../cmd/comparator/comparator.go | 22 +++ .../cmd/comparator/directories.go | 48 ++++++ .../shoot-comparator/cmd/comparator/files.go | 35 ++++ tools/shoot-comparator/cmd/main.go | 7 +- tools/shoot-comparator/go.mod | 39 +++++ tools/shoot-comparator/go.sum | 157 ++++++++++++++++++ .../directories/direcotries_comparator.go | 20 +++ .../internal/files/files_comparator.go | 5 + .../shoot-comparator/pkg}/shoot/matcher.go | 0 .../pkg}/shoot/matcher_test.go | 2 +- .../shoot-comparator/pkg}/shoot/suite_test.go | 0 11 files changed, 333 insertions(+), 2 deletions(-) create mode 100644 tools/shoot-comparator/cmd/comparator/comparator.go create mode 100644 tools/shoot-comparator/cmd/comparator/directories.go create mode 100644 tools/shoot-comparator/cmd/comparator/files.go create mode 100644 tools/shoot-comparator/go.mod create mode 100644 tools/shoot-comparator/go.sum create mode 100644 tools/shoot-comparator/internal/directories/direcotries_comparator.go create mode 100644 tools/shoot-comparator/internal/files/files_comparator.go rename {pkg/testing => tools/shoot-comparator/pkg}/shoot/matcher.go (100%) rename {pkg/testing => tools/shoot-comparator/pkg}/shoot/matcher_test.go (97%) rename {pkg/testing => tools/shoot-comparator/pkg}/shoot/suite_test.go (100%) diff --git a/tools/shoot-comparator/cmd/comparator/comparator.go b/tools/shoot-comparator/cmd/comparator/comparator.go new file mode 100644 index 00000000..e2d11a43 --- /dev/null +++ b/tools/shoot-comparator/cmd/comparator/comparator.go @@ -0,0 +1,22 @@ +package comparator + +import ( + "fmt" + "os" + + "github.com/spf13/cobra" +) + +var rootCmd = &cobra.Command{ + Use: "shoot-comparator", + Short: "shoot-comparator - tool for comparing whether shoots generated by KIM,and Provisioner are the same.", + Run: func(cmd *cobra.Command, args []string) { + }, +} + +func Execute() { + if err := rootCmd.Execute(); err != nil { + fmt.Fprintf(os.Stderr, "Failed to execute shoot comparator: '%s'", err) + os.Exit(1) + } +} diff --git a/tools/shoot-comparator/cmd/comparator/directories.go b/tools/shoot-comparator/cmd/comparator/directories.go new file mode 100644 index 00000000..385d8a1c --- /dev/null +++ b/tools/shoot-comparator/cmd/comparator/directories.go @@ -0,0 +1,48 @@ +package comparator + +import ( + "fmt" + "github.com/kyma-project/infrastructure-manager/tools/shoot-comparator/internal/directories" + "github.com/spf13/cobra" +) + +var directoriesCmd = &cobra.Command{ + Use: "dirs", + Aliases: []string{"d"}, + Short: "Compare directories", + Args: cobra.ExactArgs(2), + Run: func(cmd *cobra.Command, args []string) { + leftDir := args[0] + rightDir := args[1] + + fmt.Printf("Comparing directories: %s and %s \n", leftDir, rightDir) + result, err := directories.CompareDirectories(leftDir, rightDir) + if err != nil { + fmt.Printf("Failed to compare directories: %s \n", err.Error()) + return + } + fmt.Printf("Numer of files in %s directory = %d \n", leftDir, result.LeftDirFilesCount) + fmt.Printf("Numer of files in %s directory = %d \n", rightDir, result.RightDirFilesCount) + + if result.Equal { + fmt.Print("Directories are equal \n") + } else { + fmt.Print("Directories are NOT equal \n") + if len(result.LeftOnly) != 0 { + fmt.Printf("Files existing in %s folder only: %s", leftDir, result.LeftOnly) + } + + if len(result.RightOnly) != 0 { + fmt.Printf("Files existing in %s folder only: %s", rightDir, result.RightOnly) + } + + if len(result.Diff) != 0 { + fmt.Printf("Differences found: %s", result.Diff) + } + } + }, +} + +func init() { + rootCmd.AddCommand(directoriesCmd) +} diff --git a/tools/shoot-comparator/cmd/comparator/files.go b/tools/shoot-comparator/cmd/comparator/files.go new file mode 100644 index 00000000..e38b0d81 --- /dev/null +++ b/tools/shoot-comparator/cmd/comparator/files.go @@ -0,0 +1,35 @@ +package comparator + +import ( + "fmt" + "github.com/kyma-project/infrastructure-manager/tools/shoot-comparator/internal/files" + "github.com/spf13/cobra" +) + +var filesCmd = &cobra.Command{ + Use: "files", + Aliases: []string{"f"}, + Short: "Compare files", + Args: cobra.ExactArgs(2), + Run: func(cmd *cobra.Command, args []string) { + firstFile := args[0] + secondFile := args[1] + + fmt.Printf("Comparing files: %s and %s \n", firstFile, secondFile) + equal, err := files.CompareFiles(firstFile, secondFile) + if err != nil { + fmt.Printf("Failed to compare files: %s", err.Error()) + return + } + + if equal { + fmt.Print("Shoot files are equal") + } else { + fmt.Print("Shoot files are NOT equal") + } + }, +} + +func init() { + rootCmd.AddCommand(filesCmd) +} diff --git a/tools/shoot-comparator/cmd/main.go b/tools/shoot-comparator/cmd/main.go index d07a5746..16e05af5 100644 --- a/tools/shoot-comparator/cmd/main.go +++ b/tools/shoot-comparator/cmd/main.go @@ -1,4 +1,9 @@ -package cmd +package main + +import ( + "github.com/kyma-project/infrastructure-manager/tools/shoot-comparator/cmd/comparator" +) func main() { + comparator.Execute() } diff --git a/tools/shoot-comparator/go.mod b/tools/shoot-comparator/go.mod new file mode 100644 index 00000000..406a3266 --- /dev/null +++ b/tools/shoot-comparator/go.mod @@ -0,0 +1,39 @@ +module github.com/kyma-project/infrastructure-manager/tools/shoot-comparator + +go 1.22.5 + +require ( + github.com/gardener/gardener v1.98.0 + github.com/onsi/ginkgo/v2 v2.19.0 + github.com/onsi/gomega v1.33.1 + github.com/spf13/cobra v1.8.1 + k8s.io/apimachinery v0.29.6 + sigs.k8s.io/yaml v1.4.0 +) + +require ( + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-task/slim-sprig/v3 v3.0.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/spf13/pflag v1.0.5 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.22.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/api v0.29.6 // indirect + k8s.io/apiextensions-apiserver v0.29.6 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect +) diff --git a/tools/shoot-comparator/go.sum b/tools/shoot-comparator/go.sum new file mode 100644 index 00000000..6b6abdbf --- /dev/null +++ b/tools/shoot-comparator/go.sum @@ -0,0 +1,157 @@ +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI= +github.com/evanphx/json-patch/v5 v5.8.0 h1:lRj6N9Nci7MvzrXuX6HFzU8XjmhPiXPlsKEy1u0KQro= +github.com/evanphx/json-patch/v5 v5.8.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= +github.com/gardener/gardener v1.98.0 h1:tu9ntrn6+rpJw8wscr8+TbDYr2pgQem9KbFw80nIXP8= +github.com/gardener/gardener v1.98.0/go.mod h1:EfvKbBF53a52Wz16/Qe8hhpTZTaJ/P+CRWRr35BVVq0= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= +github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/api v0.29.6 h1:eDxIl8+PeEpwbe2YyS5RXJ9vdn4hnKWMBf4WUJP9DQM= +k8s.io/api v0.29.6/go.mod h1:ZuUPMhJV74DJXapldbg6upaHfiOjrBb+0ffUbBi1jaw= +k8s.io/apiextensions-apiserver v0.29.6 h1:tUu1N6Zt9GT8KVcPF5aGDqfISz1mveM4yFh7eL5bxmE= +k8s.io/apiextensions-apiserver v0.29.6/go.mod h1:iw1EbwZat08I219qrQKoFMHGo7J9KxPqMpVKxCbNbCs= +k8s.io/apimachinery v0.29.6 h1:CLjJ5b0hWW7531n/njRE3rnusw3rhVGCFftPfnG54CI= +k8s.io/apimachinery v0.29.6/go.mod h1:i3FJVwhvSp/6n8Fl4K97PJEP8C+MM+aoDq4+ZJBf70Y= +k8s.io/client-go v0.29.6 h1:5E2ebuB/p0F0THuQatyvhDvPL2SIeqwTPrtnrwKob/8= +k8s.io/client-go v0.29.6/go.mod h1:jHZcrQqDplyv20v7eu+iFM4gTpglZSZoMVcKrh8sRGg= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= +k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.17.5 h1:1FI9Lm7NiOOmBsgTV36/s2XrEFXnO2C4sbg/Zme72Rw= +sigs.k8s.io/controller-runtime v0.17.5/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/tools/shoot-comparator/internal/directories/direcotries_comparator.go b/tools/shoot-comparator/internal/directories/direcotries_comparator.go new file mode 100644 index 00000000..8d458167 --- /dev/null +++ b/tools/shoot-comparator/internal/directories/direcotries_comparator.go @@ -0,0 +1,20 @@ +package directories + +type Result struct { + Equal bool + LeftOnly []string + RightOnly []string + LeftDirFilesCount int + RightDirFilesCount int + Diff []Difference +} + +type Difference struct { + LeftFile string + RightFile string + Message string +} + +func CompareDirectories(leftDir, rightDir string) (Result, error) { + return Result{}, nil +} diff --git a/tools/shoot-comparator/internal/files/files_comparator.go b/tools/shoot-comparator/internal/files/files_comparator.go new file mode 100644 index 00000000..adbec2f0 --- /dev/null +++ b/tools/shoot-comparator/internal/files/files_comparator.go @@ -0,0 +1,5 @@ +package files + +func CompareFiles(leftFile, rightFile string) (bool, error) { + return true, nil +} diff --git a/pkg/testing/shoot/matcher.go b/tools/shoot-comparator/pkg/shoot/matcher.go similarity index 100% rename from pkg/testing/shoot/matcher.go rename to tools/shoot-comparator/pkg/shoot/matcher.go diff --git a/pkg/testing/shoot/matcher_test.go b/tools/shoot-comparator/pkg/shoot/matcher_test.go similarity index 97% rename from pkg/testing/shoot/matcher_test.go rename to tools/shoot-comparator/pkg/shoot/matcher_test.go index 4f6226ba..616f5982 100644 --- a/pkg/testing/shoot/matcher_test.go +++ b/tools/shoot-comparator/pkg/shoot/matcher_test.go @@ -2,7 +2,7 @@ package shoot_test import ( "github.com/gardener/gardener/pkg/apis/core/v1beta1" - "github.com/kyma-project/infrastructure-manager/pkg/testing/shoot" + "github.com/kyma-project/infrastructure-manager/tools/shoot-comparator/pkg/shoot" . "github.com/onsi/ginkgo/v2" //nolint:revive . "github.com/onsi/gomega" //nolint:revive corev1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/pkg/testing/shoot/suite_test.go b/tools/shoot-comparator/pkg/shoot/suite_test.go similarity index 100% rename from pkg/testing/shoot/suite_test.go rename to tools/shoot-comparator/pkg/shoot/suite_test.go From bd9e220958840965a3b6f57a464dbe0c4073d2d4 Mon Sep 17 00:00:00 2001 From: Arkadiusz Galwas Date: Tue, 9 Jul 2024 16:01:52 +0200 Subject: [PATCH 03/11] Modified comparator to skip finalizer, and ownerReference comparison --- .../shoot-comparator/cmd/comparator/files.go | 7 ++-- .../internal/files/files_comparator.go | 38 ++++++++++++++++++- tools/shoot-comparator/pkg/shoot/matcher.go | 10 ----- .../pkg/shoot/matcher_test.go | 31 --------------- 4 files changed, 40 insertions(+), 46 deletions(-) diff --git a/tools/shoot-comparator/cmd/comparator/files.go b/tools/shoot-comparator/cmd/comparator/files.go index e38b0d81..ce53908b 100644 --- a/tools/shoot-comparator/cmd/comparator/files.go +++ b/tools/shoot-comparator/cmd/comparator/files.go @@ -16,16 +16,17 @@ var filesCmd = &cobra.Command{ secondFile := args[1] fmt.Printf("Comparing files: %s and %s \n", firstFile, secondFile) - equal, err := files.CompareFiles(firstFile, secondFile) + equal, matcherErrorMessage, err := files.CompareFiles(firstFile, secondFile) if err != nil { fmt.Printf("Failed to compare files: %s", err.Error()) return } if equal { - fmt.Print("Shoot files are equal") + fmt.Println("Shoot files are equal") } else { - fmt.Print("Shoot files are NOT equal") + fmt.Println("Shoot files are NOT equal") + fmt.Println(matcherErrorMessage) } }, } diff --git a/tools/shoot-comparator/internal/files/files_comparator.go b/tools/shoot-comparator/internal/files/files_comparator.go index adbec2f0..0c1acafe 100644 --- a/tools/shoot-comparator/internal/files/files_comparator.go +++ b/tools/shoot-comparator/internal/files/files_comparator.go @@ -1,5 +1,39 @@ package files -func CompareFiles(leftFile, rightFile string) (bool, error) { - return true, nil +import ( + "github.com/gardener/gardener/pkg/apis/core/v1beta1" + "github.com/kyma-project/infrastructure-manager/tools/shoot-comparator/pkg/shoot" + "os" + "sigs.k8s.io/yaml" +) + +func CompareFiles(leftFile, rightFile string) (bool, string, error) { + var leftObject, rightObject v1beta1.Shoot + err := readYaml(leftFile, &leftObject) + if err != nil { + return false, "", err + } + + err = readYaml(rightFile, &rightObject) + if err != nil { + return false, "", err + } + + matcher := shoot.NewMatcher(leftObject) + + success, err := matcher.Match(rightObject) + if err != nil { + return false, "", err + } + + return success, matcher.FailureMessage(nil), nil +} + +func readYaml(path string, shoot *v1beta1.Shoot) error { + bytes, err := os.ReadFile(path) + if err != nil { + return err + } + + return yaml.Unmarshal(bytes, shoot) } diff --git a/tools/shoot-comparator/pkg/shoot/matcher.go b/tools/shoot-comparator/pkg/shoot/matcher.go index 89cfc59e..4bf39f2c 100644 --- a/tools/shoot-comparator/pkg/shoot/matcher.go +++ b/tools/shoot-comparator/pkg/shoot/matcher.go @@ -89,16 +89,6 @@ func (m *Matcher) Match(actual interface{}) (success bool, err error) { expected: aShoot.Annotations, path: "metadata/annotations", }, - { - GomegaMatcher: gomega.Equal(eShoot.OwnerReferences), - expected: aShoot.OwnerReferences, - path: "metadata/ownerReferences", - }, - { - GomegaMatcher: gomega.Equal(eShoot.Finalizers), - expected: aShoot.Finalizers, - path: "metadata/finalizers", - }, { GomegaMatcher: gomega.Equal(eShoot.Spec), expected: aShoot.Spec, diff --git a/tools/shoot-comparator/pkg/shoot/matcher_test.go b/tools/shoot-comparator/pkg/shoot/matcher_test.go index 616f5982..21963428 100644 --- a/tools/shoot-comparator/pkg/shoot/matcher_test.go +++ b/tools/shoot-comparator/pkg/shoot/matcher_test.go @@ -5,7 +5,6 @@ import ( "github.com/kyma-project/infrastructure-manager/tools/shoot-comparator/pkg/shoot" . "github.com/onsi/ginkgo/v2" //nolint:revive . "github.com/onsi/gomega" //nolint:revive - corev1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) type deepCpOpts = func(*v1beta1.Shoot) @@ -28,18 +27,6 @@ func withLabels(labels map[string]string) deepCpOpts { } } -func withFinalizers(finalizers []string) deepCpOpts { - return func(s *v1beta1.Shoot) { - s.Finalizers = finalizers - } -} - -func withOwnerReferences(ownerReferences []corev1.OwnerReference) deepCpOpts { - return func(s *v1beta1.Shoot) { - s.OwnerReferences = ownerReferences - } -} - func withAnnotations(annotations map[string]string) deepCpOpts { return func(s *v1beta1.Shoot) { s.Annotations = annotations @@ -123,24 +110,6 @@ var _ = Describe(":: shoot matcher :: ", func() { deepCp(empty, withAnnotations(map[string]string{"test": "it"})), false, ), - Entry( - "should detect differences in finalizers", - deepCp(empty, withFinalizers([]string{"test", "me"})), - deepCp(empty, withFinalizers([]string{"test", "me 2"})), - false, - ), - Entry( - "should detect differences in owner references", - deepCp(empty, withOwnerReferences([]corev1.OwnerReference{ - {Name: "test1", UID: "1"}, - {Name: "test2", UID: "2"}, - })), - deepCp(empty, withOwnerReferences([]corev1.OwnerReference{ - {Name: "test1", UID: "1"}, - {Name: "test3", UID: "3"}, - })), - false, - ), Entry( "should detect differences in spec", deepCp(empty, withShootSpec(v1beta1.ShootSpec{ From 9a254c568da3634ebfa572c380d4abcc7b8a5bf2 Mon Sep 17 00:00:00 2001 From: Arkadiusz Galwas Date: Tue, 9 Jul 2024 16:49:21 +0200 Subject: [PATCH 04/11] Minor fix for directories comparison --- tools/shoot-comparator/cmd/comparator/directories.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/shoot-comparator/cmd/comparator/directories.go b/tools/shoot-comparator/cmd/comparator/directories.go index 385d8a1c..9ed48062 100644 --- a/tools/shoot-comparator/cmd/comparator/directories.go +++ b/tools/shoot-comparator/cmd/comparator/directories.go @@ -25,9 +25,9 @@ var directoriesCmd = &cobra.Command{ fmt.Printf("Numer of files in %s directory = %d \n", rightDir, result.RightDirFilesCount) if result.Equal { - fmt.Print("Directories are equal \n") + fmt.Println("Directories are equal") } else { - fmt.Print("Directories are NOT equal \n") + fmt.Println("Directories are NOT equal") if len(result.LeftOnly) != 0 { fmt.Printf("Files existing in %s folder only: %s", leftDir, result.LeftOnly) } From feeacb9076f246792aa46741d7b3f097e9839bda Mon Sep 17 00:00:00 2001 From: Arkadiusz Galwas Date: Tue, 9 Jul 2024 16:50:56 +0200 Subject: [PATCH 05/11] Minor fix for directories comparison --- tools/shoot-comparator/cmd/comparator/directories.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/shoot-comparator/cmd/comparator/directories.go b/tools/shoot-comparator/cmd/comparator/directories.go index 9ed48062..78856dab 100644 --- a/tools/shoot-comparator/cmd/comparator/directories.go +++ b/tools/shoot-comparator/cmd/comparator/directories.go @@ -29,15 +29,15 @@ var directoriesCmd = &cobra.Command{ } else { fmt.Println("Directories are NOT equal") if len(result.LeftOnly) != 0 { - fmt.Printf("Files existing in %s folder only: %s", leftDir, result.LeftOnly) + fmt.Printf("Files existing in %s folder only: %s \n", leftDir, result.LeftOnly) } if len(result.RightOnly) != 0 { - fmt.Printf("Files existing in %s folder only: %s", rightDir, result.RightOnly) + fmt.Printf("Files existing in %s folder only: %s \n", rightDir, result.RightOnly) } if len(result.Diff) != 0 { - fmt.Printf("Differences found: %s", result.Diff) + fmt.Printf("Differences found: %s \n", result.Diff) } } }, From c6dca3fa1c993d8f9c62c26499d25a917e9c49e3 Mon Sep 17 00:00:00 2001 From: Arkadiusz Galwas Date: Tue, 9 Jul 2024 16:53:34 +0200 Subject: [PATCH 06/11] Minor fix for files comparison --- tools/shoot-comparator/cmd/comparator/files.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/shoot-comparator/cmd/comparator/files.go b/tools/shoot-comparator/cmd/comparator/files.go index ce53908b..4936af9b 100644 --- a/tools/shoot-comparator/cmd/comparator/files.go +++ b/tools/shoot-comparator/cmd/comparator/files.go @@ -12,11 +12,11 @@ var filesCmd = &cobra.Command{ Short: "Compare files", Args: cobra.ExactArgs(2), Run: func(cmd *cobra.Command, args []string) { - firstFile := args[0] - secondFile := args[1] + leftFile := args[0] + rightFile := args[1] - fmt.Printf("Comparing files: %s and %s \n", firstFile, secondFile) - equal, matcherErrorMessage, err := files.CompareFiles(firstFile, secondFile) + fmt.Printf("Comparing files: %s and %s \n", leftFile, rightFile) + equal, matcherErrorMessage, err := files.CompareFiles(leftFile, rightFile) if err != nil { fmt.Printf("Failed to compare files: %s", err.Error()) return From 1628295838c5ed35dbb296c92e817a024c32b01a Mon Sep 17 00:00:00 2001 From: Arkadiusz Galwas Date: Fri, 19 Jul 2024 15:17:22 +0200 Subject: [PATCH 07/11] Comparator tool moved to the hack folder --- hack/shoot-comparator/README.md | 22 +++++++++++++++++++ .../cmd/comparator/comparator.go | 0 .../cmd/comparator/directories.go | 0 .../shoot-comparator/cmd/comparator/files.go | 0 {tools => hack}/shoot-comparator/cmd/main.go | 0 {tools => hack}/shoot-comparator/go.mod | 0 {tools => hack}/shoot-comparator/go.sum | 0 .../directories/direcotries_comparator.go | 0 .../internal/files/files_comparator.go | 0 .../shoot-comparator/pkg/shoot/matcher.go | 0 .../pkg/shoot/matcher_test.go | 7 +++--- .../shoot-comparator/pkg/shoot/suite_test.go | 0 12 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 hack/shoot-comparator/README.md rename {tools => hack}/shoot-comparator/cmd/comparator/comparator.go (100%) rename {tools => hack}/shoot-comparator/cmd/comparator/directories.go (100%) rename {tools => hack}/shoot-comparator/cmd/comparator/files.go (100%) rename {tools => hack}/shoot-comparator/cmd/main.go (100%) rename {tools => hack}/shoot-comparator/go.mod (100%) rename {tools => hack}/shoot-comparator/go.sum (100%) rename {tools => hack}/shoot-comparator/internal/directories/direcotries_comparator.go (100%) rename {tools => hack}/shoot-comparator/internal/files/files_comparator.go (100%) rename {tools => hack}/shoot-comparator/pkg/shoot/matcher.go (100%) rename {tools => hack}/shoot-comparator/pkg/shoot/matcher_test.go (93%) rename {tools => hack}/shoot-comparator/pkg/shoot/suite_test.go (100%) diff --git a/hack/shoot-comparator/README.md b/hack/shoot-comparator/README.md new file mode 100644 index 00000000..e8946c2d --- /dev/null +++ b/hack/shoot-comparator/README.md @@ -0,0 +1,22 @@ +[![REUSE status](https://api.reuse.software/badge/github.com/kyma-project/infrastructure-manager)](https://api.reuse.software/info/github.com/kyma-project/infrastructure-manager) + +# Shoot comparator + +## Overview + +This tool compares shoot files created by KIM, and Provisioner. It was created to ensure the KIM generated exactly the same shoots as Provisioner does. +For more details, please refer to the following issues: +- https://github.com/kyma-project/infrastructure-manager/issues/185 +- https://github.com/kyma-project/infrastructure-manager/issues/250 + +## Build +``` +CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o ./bin/comparator ./cmd +``` + +## Run + +In order to compare files execute the following command: +``` +comparator files +``` \ No newline at end of file diff --git a/tools/shoot-comparator/cmd/comparator/comparator.go b/hack/shoot-comparator/cmd/comparator/comparator.go similarity index 100% rename from tools/shoot-comparator/cmd/comparator/comparator.go rename to hack/shoot-comparator/cmd/comparator/comparator.go diff --git a/tools/shoot-comparator/cmd/comparator/directories.go b/hack/shoot-comparator/cmd/comparator/directories.go similarity index 100% rename from tools/shoot-comparator/cmd/comparator/directories.go rename to hack/shoot-comparator/cmd/comparator/directories.go diff --git a/tools/shoot-comparator/cmd/comparator/files.go b/hack/shoot-comparator/cmd/comparator/files.go similarity index 100% rename from tools/shoot-comparator/cmd/comparator/files.go rename to hack/shoot-comparator/cmd/comparator/files.go diff --git a/tools/shoot-comparator/cmd/main.go b/hack/shoot-comparator/cmd/main.go similarity index 100% rename from tools/shoot-comparator/cmd/main.go rename to hack/shoot-comparator/cmd/main.go diff --git a/tools/shoot-comparator/go.mod b/hack/shoot-comparator/go.mod similarity index 100% rename from tools/shoot-comparator/go.mod rename to hack/shoot-comparator/go.mod diff --git a/tools/shoot-comparator/go.sum b/hack/shoot-comparator/go.sum similarity index 100% rename from tools/shoot-comparator/go.sum rename to hack/shoot-comparator/go.sum diff --git a/tools/shoot-comparator/internal/directories/direcotries_comparator.go b/hack/shoot-comparator/internal/directories/direcotries_comparator.go similarity index 100% rename from tools/shoot-comparator/internal/directories/direcotries_comparator.go rename to hack/shoot-comparator/internal/directories/direcotries_comparator.go diff --git a/tools/shoot-comparator/internal/files/files_comparator.go b/hack/shoot-comparator/internal/files/files_comparator.go similarity index 100% rename from tools/shoot-comparator/internal/files/files_comparator.go rename to hack/shoot-comparator/internal/files/files_comparator.go diff --git a/tools/shoot-comparator/pkg/shoot/matcher.go b/hack/shoot-comparator/pkg/shoot/matcher.go similarity index 100% rename from tools/shoot-comparator/pkg/shoot/matcher.go rename to hack/shoot-comparator/pkg/shoot/matcher.go diff --git a/tools/shoot-comparator/pkg/shoot/matcher_test.go b/hack/shoot-comparator/pkg/shoot/matcher_test.go similarity index 93% rename from tools/shoot-comparator/pkg/shoot/matcher_test.go rename to hack/shoot-comparator/pkg/shoot/matcher_test.go index 21963428..82dfaadd 100644 --- a/tools/shoot-comparator/pkg/shoot/matcher_test.go +++ b/hack/shoot-comparator/pkg/shoot/matcher_test.go @@ -1,8 +1,7 @@ -package shoot_test +package shoot import ( "github.com/gardener/gardener/pkg/apis/core/v1beta1" - "github.com/kyma-project/infrastructure-manager/tools/shoot-comparator/pkg/shoot" . "github.com/onsi/ginkgo/v2" //nolint:revive . "github.com/onsi/gomega" //nolint:revive ) @@ -49,13 +48,13 @@ func deepCp(s v1beta1.Shoot, opts ...deepCpOpts) v1beta1.Shoot { } func testInvalidArgs(actual, expected interface{}) { - matcher := shoot.NewMatcher(expected) + matcher := NewMatcher(expected) _, err := matcher.Match(actual) Expect(err).To(HaveOccurred()) } func testResults(actual, expected interface{}, expectedMatch bool) { - matcher := shoot.NewMatcher(expected) + matcher := NewMatcher(expected) actualMatch, err := matcher.Match(actual) Expect(err).ShouldNot(HaveOccurred()) Expect(actualMatch).Should(Equal(expectedMatch), matcher.FailureMessage(actual)) diff --git a/tools/shoot-comparator/pkg/shoot/suite_test.go b/hack/shoot-comparator/pkg/shoot/suite_test.go similarity index 100% rename from tools/shoot-comparator/pkg/shoot/suite_test.go rename to hack/shoot-comparator/pkg/shoot/suite_test.go From 4694035a5397e4481d71d098016c869e59e60fa2 Mon Sep 17 00:00:00 2001 From: Arkadiusz Galwas Date: Fri, 19 Jul 2024 15:21:54 +0200 Subject: [PATCH 08/11] Comparator tool moved to the hack folder --- hack/shoot-comparator/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/hack/shoot-comparator/README.md b/hack/shoot-comparator/README.md index e8946c2d..20097455 100644 --- a/hack/shoot-comparator/README.md +++ b/hack/shoot-comparator/README.md @@ -1,5 +1,3 @@ -[![REUSE status](https://api.reuse.software/badge/github.com/kyma-project/infrastructure-manager)](https://api.reuse.software/info/github.com/kyma-project/infrastructure-manager) - # Shoot comparator ## Overview From 8877d947cac35bd8a3f7120dc90c9f35585ab55e Mon Sep 17 00:00:00 2001 From: Arkadiusz Galwas Date: Fri, 19 Jul 2024 15:23:06 +0200 Subject: [PATCH 09/11] Typo --- hack/shoot-comparator/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/shoot-comparator/README.md b/hack/shoot-comparator/README.md index 20097455..f18bd464 100644 --- a/hack/shoot-comparator/README.md +++ b/hack/shoot-comparator/README.md @@ -2,7 +2,7 @@ ## Overview -This tool compares shoot files created by KIM, and Provisioner. It was created to ensure the KIM generated exactly the same shoots as Provisioner does. +This tool compares shoot files created by KIM, and Provisioner. It was created to ensure the KIM generates exactly the same shoots as Provisioner does. For more details, please refer to the following issues: - https://github.com/kyma-project/infrastructure-manager/issues/185 - https://github.com/kyma-project/infrastructure-manager/issues/250 From 9d6fa0425a90c53eaf8afc382477a6fce2497405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=27Disper=27=20Drzewiecki?= Date: Mon, 22 Jul 2024 08:52:53 +0200 Subject: [PATCH 10/11] Update hack/shoot-comparator/README.md Co-authored-by: Grzegorz Karaluch --- hack/shoot-comparator/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/shoot-comparator/README.md b/hack/shoot-comparator/README.md index f18bd464..d3735f95 100644 --- a/hack/shoot-comparator/README.md +++ b/hack/shoot-comparator/README.md @@ -2,7 +2,7 @@ ## Overview -This tool compares shoot files created by KIM, and Provisioner. It was created to ensure the KIM generates exactly the same shoots as Provisioner does. +This tool compares shoot files created by KIM and Provisioner. It was created to ensure that KIM generates exactly the same shoots as Provisioner does. For more details, please refer to the following issues: - https://github.com/kyma-project/infrastructure-manager/issues/185 - https://github.com/kyma-project/infrastructure-manager/issues/250 From 4012b3d6370fdc3ae29bd7ceb70f7b0bb46ea78b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=27Disper=27=20Drzewiecki?= Date: Mon, 22 Jul 2024 08:52:58 +0200 Subject: [PATCH 11/11] Update hack/shoot-comparator/README.md Co-authored-by: Grzegorz Karaluch --- hack/shoot-comparator/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/shoot-comparator/README.md b/hack/shoot-comparator/README.md index d3735f95..d63442ba 100644 --- a/hack/shoot-comparator/README.md +++ b/hack/shoot-comparator/README.md @@ -14,7 +14,7 @@ CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o ./bin/comparator ./cmd ## Run -In order to compare files execute the following command: +To compare files, execute the following command: ``` comparator files ``` \ No newline at end of file