Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to go-swagger 0.12.0 #91

Merged
merged 1 commit into from
Nov 6, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ BUILD_ARGS+= --build-arg http_proxy=$(http_proxy) --build-arg https_proxy=$(http
endif

HAS_GLIDE := $(shell command -v glide;)
GO_SWAGGER_VERSION := 0.11.0
GO_SWAGGER_VERSION := 0.12.0
SWAGGER_BIN := bin/$(GOOS)/swagger-$(GO_SWAGGER_VERSION)

.PHONY: all clean code-gen client-gen informer-gen lister-gen
Expand Down Expand Up @@ -76,8 +76,9 @@ swagger-generate:
# --existing-models github.com/sapcc/kubernikus/pkg/api/models seems not to work in our case
pkg/client/kubernikus_generated/kubernikus_client.go: swagger.yml
ifneq (,$(wildcard $(SWAGGER_BIN)))
$(SWAGGER_BIN) generate client --name kubernikus --target pkg/client --client-package kubernikus_generated \
--principal models.Principal
$(SWAGGER_BIN) generate client --name kubernikus --target pkg/api --client-package client \
--existing-models github.com/sapcc/kubernikus/pkg/api/models \
--principal models.Principal
else
$(warning WARNING: $(SWAGGER_BIN) missing. Run `make bootstrap` to fix.)
endif
Expand Down
105 changes: 105 additions & 0 deletions cmd/go-swagger-deps/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
// This command is a helper functions that looks up dependency revisions
// for the packages used by the go-swagger generated code
//
// It lists the dependencies used be a given package and looks
// for matching entries in go-swaggers Gopkg.lock file
package main

import (
"bufio"
"bytes"
"flag"
"fmt"
"log"
"net/http"
"os/exec"
"regexp"
"strings"

"github.com/BurntSushi/toml"
"github.com/spf13/pflag"
)

type Project struct {
Name string
Branch string
Packages []string
Revision string
}

type Deps struct {
Projects []Project
}

var (
blacklist []string
version string
)

func main() {
pflag.StringVarP(&version, "version", "v", "0.12.0", "go-swagger version")
pflag.StringArrayVarP(&blacklist, "blacklist", "b", []string{"golang.org/x/net", "golang.org/x/text"}, "don't consider the given dependencies")

pflag.Parse()
packages := flag.Args()
if len(packages) == 0 {
packages = []string{"github.com/sapcc/kubernikus/pkg/api/rest/operations"}
}

url := fmt.Sprintf("https://raw.githubusercontent.com/go-swagger/go-swagger/%s/Gopkg.lock", version)
log.Println("Fetching ", url)

resp, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
if resp.StatusCode >= 400 {
log.Fatal("Failed to fetch Gopkg.lock: %s", resp.Status)
}

var deps Deps

_, err = toml.DecodeReader(resp.Body, &deps)
if err != nil {
log.Fatal(err)
}

cmd := exec.Command("go", append([]string{"list", "-f", `{{ join .Deps "\n" }}`}, packages...)...)
log.Printf("Running %v", cmd.Args)
output, err := cmd.CombinedOutput()
if err != nil {
log.Fatal(err)
}
result := map[string]string{}
scanner := bufio.NewScanner(bytes.NewReader(output))
re := regexp.MustCompile(`kubernikus/vendor/(.+)`)
for scanner.Scan() {
dep := scanner.Text()
if matches := re.FindStringSubmatch(dep); matches != nil {
for _, p := range deps.Projects {
if blacklisted(p.Name) {
continue
}
if strings.HasPrefix(matches[1], p.Name) {
result[p.Name] = p.Revision
break
}
}
}
}
fmt.Printf("# Dependencies extracted from go-swagger %s\n", version)
for pkg, rev := range result {
fmt.Printf("- package: %s\n", pkg)
fmt.Printf(" version: %s\n", rev)
}

}

func blacklisted(dep string) bool {
for _, entry := range blacklist {
if entry == dep {
return true
}
}
return false
}
32 changes: 19 additions & 13 deletions glide.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 35 additions & 15 deletions glide.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,6 @@ import:
version: v2.5.0
- package: k8s.io/apiextensions-apiserver
version: release-1.7
# k8s.io/client-go carries some outdated depencencies in its Godeps.json
# that don't fly with swagger.
# We don't import these dependencies via the go-client so this should be ok
- package: github.com/go-openapi/runtime
version: 73a94727f26953a79ffd70902d0f24977b6297d1
- package: github.com/go-openapi/jsonpointer
version: 779f45308c19820f1a69e9a4cd965f496e0da10f
- package: github.com/go-openapi/jsonreference
version: 36d33bfe519efae5632669801b180bf1a245da3b
- package: github.com/go-openapi/spec
version: e51c28f07047ad90caff03f6450908720d337e0c
- package: github.com/go-openapi/swag
version: e43299b4afa7bc7f22e5e82e3d48607230e4c177
- package: github.com/mailru/easyjson
version: 44c0351a5bc860bcb2608d54aa03ea686c4e7b25
- package: k8s.io/code-generator
- package: k8s.io/utils
- package: k8s.io/gengo
Expand All @@ -36,3 +21,38 @@ import:
- package: github.com/imdario/mergo
version: 0.2.2
- package: github.com/databus23/guttle
# Dependencies extracted from go-swagger 0.12.0
- package: github.com/go-openapi/jsonpointer
version: 779f45308c19820f1a69e9a4cd965f496e0da10f
- package: github.com/go-openapi/loads
version: a80dea3052f00e5f032e860dd7355cd0cc67e24d
- package: gopkg.in/yaml.v2
version: eb3733d160e74a9c7e442f435eb3bea458e1d19f
- package: github.com/PuerkitoBio/urlesc
version: de5bf2ad457846296e2031421a34e2568e304e35
- package: github.com/go-openapi/analysis
version: 8ed83f2ea9f00f945516462951a288eaa68bf0d6
- package: github.com/go-openapi/swag
version: f3f9494671f93fcff853e3c6e9e948b3eb71e590
- package: github.com/mailru/easyjson
version: 2a92e673c9a6302dd05c3a691ae1f24aef46457d
- package: gopkg.in/mgo.v2
version: 3f83fa5005286a7fe593b055f0d7771a7dce4655
- package: github.com/PuerkitoBio/purell
version: 0bcb03f4b4d0a9428594752bd2a3b9aa0a9d4bd4
- package: github.com/go-openapi/strfmt
version: 610b6cacdcde6852f4de68998bd20ce1dac85b22
- package: github.com/go-openapi/validate
version: 8a82927c942c94794a5cd8b8b50ce2f48a955c0c
- package: github.com/go-openapi/runtime
version: bf2ff8f7150788b1c7256abb0805ba0410cbbabb
- package: github.com/go-openapi/spec
version: 3faa0055dbbf2110abc1f3b4e3adbb22721e96e7
- package: github.com/mitchellh/mapstructure
version: d0303fe809921458f417bcf828397a65db30a7e4
- package: github.com/asaskevich/govalidator
version: 73945b6115bfbbcc57d89b7316e28109364124e1
- package: github.com/go-openapi/errors
version: 03cfca65330da08a5a440053faf994a3c682b5bf
- package: github.com/go-openapi/jsonreference
version: 36d33bfe519efae5632669801b180bf1a245da3b

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading