Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kubespy for openSUSE:Factory checked in at 2023-04-26 17:26:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kubespy (Old) and /work/SRC/openSUSE:Factory/.kubespy.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubespy" Wed Apr 26 17:26:52 2023 rev:2 rq:1082986 version:0.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/kubespy/kubespy.changes 2023-04-17 17:41:22.450247799 +0200 +++ /work/SRC/openSUSE:Factory/.kubespy.new.1533/kubespy.changes 2023-04-26 17:26:56.526176554 +0200 @@ -1,0 +2,10 @@ +Wed Apr 26 08:42:36 UTC 2023 - ka...@b1-systems.de + +- Update to version 0.6.2: + * Bump golang.org/x/net from 0.0.0-20220906165146-f3363e06e74c to + 0.7.0 (#84) + * Clean up changes command (#55) + * Add record command (#56) + * Bump golang.org/x/text from 0.3.7 to 0.3.8 + +------------------------------------------------------------------- Old: ---- kubespy-0.6.1.obscpio New: ---- kubespy-0.6.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kubespy.spec ++++++ --- /var/tmp/diff_new_pack.1dQl3A/_old 2023-04-26 17:26:57.382181548 +0200 +++ /var/tmp/diff_new_pack.1dQl3A/_new 2023-04-26 17:26:57.386181572 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: kubespy -Version: 0.6.1 +Version: 0.6.2 Release: 0 Summary: Tools for observing Kubernetes resources in real time, powered by Pulumi License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.1dQl3A/_old 2023-04-26 17:26:57.422181782 +0200 +++ /var/tmp/diff_new_pack.1dQl3A/_new 2023-04-26 17:26:57.426181806 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/pulumi/kubespy</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.6.1</param> + <param name="revision">v0.6.2</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.1dQl3A/_old 2023-04-26 17:26:57.450181945 +0200 +++ /var/tmp/diff_new_pack.1dQl3A/_new 2023-04-26 17:26:57.454181968 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/pulumi/kubespy</param> - <param name="changesrevision">b943461d8d7bf60eb1c4a71344da0b81481a50c3</param></service></servicedata> + <param name="changesrevision">d9bd822e1b0766953eb02828ee5fb4f3ccea3940</param></service></servicedata> (No newline at EOF) ++++++ kubespy-0.6.1.obscpio -> kubespy-0.6.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubespy-0.6.1/README.md new/kubespy-0.6.2/README.md --- old/kubespy-0.6.1/README.md 2022-09-07 06:09:34.000000000 +0200 +++ new/kubespy-0.6.2/README.md 2023-04-25 22:23:39.000000000 +0200 @@ -58,7 +58,7 @@ ## Usage -`kubespy` has three commands: +`kubespy` has four commands: - `status <apiVersion> <kind> [<namespace>/]<name>`, which in real time emits all changes made to the `.status` field of an arbitrary Kubernetes resource, as a JSON diff. @@ -67,6 +67,8 @@ - `trace <kind> [<namespace>/]<name>`, which "traces" the changes a complex Kubernetes resource makes throughout a cluster, and aggregates them into a high-level summary, which is updated in real time. +- `record <apiVersion> <kind> [<namespace>/]<name>`, which in real time emits all changes to any + field in a Kubernetes resource, as a JSON array. Several more commands are planned as well. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubespy-0.6.1/cmd/changes.go new/kubespy-0.6.2/cmd/changes.go --- old/kubespy-0.6.1/cmd/changes.go 2022-09-07 06:09:34.000000000 +0200 +++ new/kubespy-0.6.2/cmd/changes.go 2023-04-25 22:23:39.000000000 +0200 @@ -11,6 +11,7 @@ "github.com/yudai/gojsondiff" "github.com/yudai/gojsondiff/formatter" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + apiwatch "k8s.io/apimachinery/pkg/watch" ) func init() { @@ -41,7 +42,8 @@ select { case e := <-events: o := e.Object.(*unstructured.Unstructured) - if last == nil { + switch e.Type { + case apiwatch.Added: heading.Println("CREATED") ojson, err := json.MarshalIndent(o.Object, "", " ") @@ -49,7 +51,7 @@ log.Fatal(err) } fmt.Println(color.GreenString(string(ojson))) - } else { + case apiwatch.Modified: heading.Println(string(e.Type)) diff := gojsondiff.New().CompareObjects(last.Object, o.Object) @@ -62,6 +64,8 @@ } fmt.Println(text) } + case apiwatch.Deleted: + heading.Println(string(e.Type)) } last = o } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubespy-0.6.1/cmd/record.go new/kubespy-0.6.2/cmd/record.go --- old/kubespy-0.6.1/cmd/record.go 1970-01-01 01:00:00.000000000 +0100 +++ new/kubespy-0.6.2/cmd/record.go 2023-04-25 22:23:39.000000000 +0200 @@ -0,0 +1,102 @@ +// Copyright 2016-2019, Pulumi Corporation. +// +// 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 cmd + +import ( + "encoding/json" + "fmt" + "log" + "os" + "os/signal" + "syscall" + + "github.com/pulumi/kubespy/watch" + "github.com/spf13/cobra" + "github.com/yudai/gojsondiff" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + apiwatch "k8s.io/apimachinery/pkg/watch" +) + +func init() { + rootCmd.AddCommand(recordCmd) +} + +// SetupCloseHandler catches the ctrl+c signal and properly terminates the JSON array before exiting. +func SetupCloseHandler() { + c := make(chan os.Signal, 2) + signal.Notify(c, os.Interrupt, syscall.SIGTERM) + go func() { + <-c + fmt.Println("\n]") + os.Exit(0) + }() +} + +var recordCmd = &cobra.Command{ + Use: "record <apiVersion> <kind> [<namespace>/]<name>", + Short: "Displays events generated by a Kubernetes resource in real time. Emitted as a JSON array.", + Args: cobra.ExactArgs(3), + Run: func(cmd *cobra.Command, args []string) { + namespace, name, err := parseObjID(args[2]) + if err != nil { + log.Fatal(err) + } + + events, err := watch.Forever(args[0], args[1], watch.ThisObject(namespace, name)) + if err != nil { + log.Fatal(err) + } + + fmt.Print("[\n ") + + var last *unstructured.Unstructured + for { + select { + case e := <-events: + o := e.Object.(*unstructured.Unstructured) + switch e.Type { + case apiwatch.Added: + if last != nil { + fmt.Println(",") + } + + SetupCloseHandler() + + if output, err := json.MarshalIndent(o.Object, " ", " "); err != nil { + log.Fatal(err) + } else { + fmt.Print(string(output)) + } + case apiwatch.Modified: + diff := gojsondiff.New().CompareObjects(last.Object, o.Object) + if diff.Modified() { + if last != nil { + fmt.Println(",") + } + fmt.Print(" ") + if output, err := json.MarshalIndent(o.Object, " ", " "); err != nil { + log.Fatal(err) + } else { + fmt.Print(string(output)) + } + } + case apiwatch.Deleted: + // Nothing to print. + } + last = o + } + } + }, +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubespy-0.6.1/go.mod new/kubespy-0.6.2/go.mod --- old/kubespy-0.6.1/go.mod 2022-09-07 06:09:34.000000000 +0200 +++ new/kubespy-0.6.2/go.mod 2023-04-25 22:23:39.000000000 +0200 @@ -103,11 +103,11 @@ go.starlark.net v0.0.0-20220817180228-f738f5508c12 // indirect go.uber.org/atomic v1.10.0 // indirect golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect - golang.org/x/net v0.0.0-20220906165146-f3363e06e74c // indirect + golang.org/x/net v0.7.0 // indirect golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094 // indirect - golang.org/x/sys v0.0.0-20220906165534-d0df966e6959 // indirect - golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect - golang.org/x/text v0.3.7 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/term v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20220902135211-223410557253 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubespy-0.6.1/go.sum new/kubespy-0.6.2/go.sum --- old/kubespy-0.6.1/go.sum 2022-09-07 06:09:34.000000000 +0200 +++ new/kubespy-0.6.2/go.sum 2023-04-25 22:23:39.000000000 +0200 @@ -384,8 +384,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220906165146-f3363e06e74c h1:yKufUcDwucU5urd+50/Opbt4AYpqthk7wHpHok8f1lo= -golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094 h1:2o1E+E8TpNLklK9nHiPiK1uzIYrIHt+cQx3ynCwq9V8= @@ -431,18 +431,18 @@ golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220906165534-d0df966e6959 h1:qSa+Hg9oBe6UJXrznE+yYvW51V9UbyIj/nj/KpDigo8= -golang.org/x/sys v0.0.0-20220906165534-d0df966e6959/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 h1:ftMN5LMiBFjbzleLqtoBZk7KdJwhuybIU+FckUHgoyQ= golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++++++ kubespy.obsinfo ++++++ --- /var/tmp/diff_new_pack.1dQl3A/_old 2023-04-26 17:26:57.674183252 +0200 +++ /var/tmp/diff_new_pack.1dQl3A/_new 2023-04-26 17:26:57.678183275 +0200 @@ -1,5 +1,5 @@ name: kubespy -version: 0.6.1 -mtime: 1662523774 -commit: b943461d8d7bf60eb1c4a71344da0b81481a50c3 +version: 0.6.2 +mtime: 1682454219 +commit: d9bd822e1b0766953eb02828ee5fb4f3ccea3940 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/kubespy/vendor.tar.gz /work/SRC/openSUSE:Factory/.kubespy.new.1533/vendor.tar.gz differ: char 5, line 1