From 8e182446cfb6196d6ae04c1a1e7c45caf6170802 Mon Sep 17 00:00:00 2001 From: Andreas Grimmer Date: Tue, 1 Oct 2019 14:57:12 +0200 Subject: [PATCH 01/65] Create releasenotes_develop.md --- releasenotes/releasenotes_develop.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 releasenotes/releasenotes_develop.md diff --git a/releasenotes/releasenotes_develop.md b/releasenotes/releasenotes_develop.md new file mode 100644 index 00000000..5585fcea --- /dev/null +++ b/releasenotes/releasenotes_develop.md @@ -0,0 +1,7 @@ +# Release Notes x.x.x + +## New Features + +## Fixed Issues + +## Known Limitations From 2bf56e442746e6d67ad8cf46505eda559bcea594 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Fri, 4 Oct 2019 08:47:44 +0200 Subject: [PATCH 02/65] #876 Add event types --- pkg/events/keptnEvents.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/events/keptnEvents.go b/pkg/events/keptnEvents.go index 318f9e1b..45b7ea6c 100644 --- a/pkg/events/keptnEvents.go +++ b/pkg/events/keptnEvents.go @@ -32,6 +32,16 @@ const ConfigureMonitoringEventType = "sh.keptn.event.monitoring.configure" // TestsFinishedEventType is a CloudEvent for indicating that tests have finished const TestsFinishedEventType = "sh.keptn.event.tests.finished" +// TestFinishedEventType_0_5_0_Compatible is a CloudEvent for indicating that tests have finished +const TestFinishedEventType_0_5_0_Compatible = "sh.keptn.events.tests-finished" + +// EvaluationDoneEventType is a CloudEvent for indicating that the evaluation has finished +const EvaluationDoneEventType = "sh.keptn.events.evaluation-done" + +// DeploymentFinishedEventType is a CloudEvent for indicating that the deployment has finished +const DeploymentFinishedEventType = "sh.keptn.events.deployment-finished" + + // ProjectCreateEventData represents the data for creating a new project type ProjectCreateEventData struct { // Project is the name of the project From a750ef32fd9d2fdf80ce130cc0526661dc05f5e5 Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 7 Oct 2019 15:05:33 +0200 Subject: [PATCH 03/65] #893 Add model for Keptn API --- pkg/apimodels/channel_info.go | 81 +++++++++++++++ pkg/apimodels/contenttype.go | 19 ++++ pkg/apimodels/data.go | 10 ++ pkg/apimodels/error.go | 70 +++++++++++++ pkg/apimodels/event.go | 179 ++++++++++++++++++++++++++++++++++ pkg/apimodels/extensions.go | 10 ++ pkg/apimodels/id.go | 19 ++++ pkg/apimodels/project.go | 55 +++++++++++ pkg/apimodels/resource.go | 81 +++++++++++++++ pkg/apimodels/resources.go | 89 +++++++++++++++++ pkg/apimodels/service.go | 46 +++++++++ pkg/apimodels/source.go | 19 ++++ pkg/apimodels/specversion.go | 19 ++++ pkg/apimodels/time.go | 60 ++++++++++++ pkg/apimodels/type.go | 19 ++++ 15 files changed, 776 insertions(+) create mode 100644 pkg/apimodels/channel_info.go create mode 100644 pkg/apimodels/contenttype.go create mode 100644 pkg/apimodels/data.go create mode 100644 pkg/apimodels/error.go create mode 100644 pkg/apimodels/event.go create mode 100644 pkg/apimodels/extensions.go create mode 100644 pkg/apimodels/id.go create mode 100644 pkg/apimodels/project.go create mode 100644 pkg/apimodels/resource.go create mode 100644 pkg/apimodels/resources.go create mode 100644 pkg/apimodels/service.go create mode 100644 pkg/apimodels/source.go create mode 100644 pkg/apimodels/specversion.go create mode 100644 pkg/apimodels/time.go create mode 100644 pkg/apimodels/type.go diff --git a/pkg/apimodels/channel_info.go b/pkg/apimodels/channel_info.go new file mode 100644 index 00000000..2dbb3e42 --- /dev/null +++ b/pkg/apimodels/channel_info.go @@ -0,0 +1,81 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// ChannelInfo channel info +// swagger:model channelInfo +type ChannelInfo struct { + + // channel ID + // Required: true + ChannelID *string `json:"channelID"` + + // token + // Required: true + Token *string `json:"token"` +} + +// Validate validates this channel info +func (m *ChannelInfo) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateChannelID(formats); err != nil { + res = append(res, err) + } + + if err := m.validateToken(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *ChannelInfo) validateChannelID(formats strfmt.Registry) error { + + if err := validate.Required("channelID", "body", m.ChannelID); err != nil { + return err + } + + return nil +} + +func (m *ChannelInfo) validateToken(formats strfmt.Registry) error { + + if err := validate.Required("token", "body", m.Token); err != nil { + return err + } + + return nil +} + +// MarshalBinary interface implementation +func (m *ChannelInfo) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *ChannelInfo) UnmarshalBinary(b []byte) error { + var res ChannelInfo + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/apimodels/contenttype.go b/pkg/apimodels/contenttype.go new file mode 100644 index 00000000..06862b7d --- /dev/null +++ b/pkg/apimodels/contenttype.go @@ -0,0 +1,19 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" +) + +// Contenttype contenttype +// swagger:model contenttype +type Contenttype string + +// Validate validates this contenttype +func (m Contenttype) Validate(formats strfmt.Registry) error { + return nil +} diff --git a/pkg/apimodels/data.go b/pkg/apimodels/data.go new file mode 100644 index 00000000..ea6a59ba --- /dev/null +++ b/pkg/apimodels/data.go @@ -0,0 +1,10 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +// Data data +// swagger:model data +type Data interface{} diff --git a/pkg/apimodels/error.go b/pkg/apimodels/error.go new file mode 100644 index 00000000..b736973d --- /dev/null +++ b/pkg/apimodels/error.go @@ -0,0 +1,70 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// Error error +// swagger:model error +type Error struct { + + // code + Code int64 `json:"code,omitempty"` + + // fields + Fields string `json:"fields,omitempty"` + + // message + // Required: true + Message *string `json:"message"` +} + +// Validate validates this error +func (m *Error) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateMessage(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *Error) validateMessage(formats strfmt.Registry) error { + + if err := validate.Required("message", "body", m.Message); err != nil { + return err + } + + return nil +} + +// MarshalBinary interface implementation +func (m *Error) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *Error) UnmarshalBinary(b []byte) error { + var res Error + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/apimodels/event.go b/pkg/apimodels/event.go new file mode 100644 index 00000000..7a243057 --- /dev/null +++ b/pkg/apimodels/event.go @@ -0,0 +1,179 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" +) + +// Event event +// swagger:model event +type Event struct { + + // contenttype + Contenttype Contenttype `json:"contenttype,omitempty"` + + // data + Data Data `json:"data,omitempty"` + + // extensions + Extensions Extensions `json:"extensions,omitempty"` + + // id + // Required: true + ID ID `json:"id"` + + // source + // Required: true + Source Source `json:"source"` + + // specversion + // Required: true + Specversion Specversion `json:"specversion"` + + // time + // Format: date-time + Time Time `json:"time,omitempty"` + + // type + // Required: true + Type Type `json:"type"` +} + +// Validate validates this event +func (m *Event) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateContenttype(formats); err != nil { + res = append(res, err) + } + + if err := m.validateID(formats); err != nil { + res = append(res, err) + } + + if err := m.validateSource(formats); err != nil { + res = append(res, err) + } + + if err := m.validateSpecversion(formats); err != nil { + res = append(res, err) + } + + if err := m.validateTime(formats); err != nil { + res = append(res, err) + } + + if err := m.validateType(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *Event) validateContenttype(formats strfmt.Registry) error { + + if swag.IsZero(m.Contenttype) { // not required + return nil + } + + if err := m.Contenttype.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("contenttype") + } + return err + } + + return nil +} + +func (m *Event) validateID(formats strfmt.Registry) error { + + if err := m.ID.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("id") + } + return err + } + + return nil +} + +func (m *Event) validateSource(formats strfmt.Registry) error { + + if err := m.Source.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("source") + } + return err + } + + return nil +} + +func (m *Event) validateSpecversion(formats strfmt.Registry) error { + + if err := m.Specversion.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("specversion") + } + return err + } + + return nil +} + +func (m *Event) validateTime(formats strfmt.Registry) error { + + if swag.IsZero(m.Time) { // not required + return nil + } + + if err := m.Time.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("time") + } + return err + } + + return nil +} + +func (m *Event) validateType(formats strfmt.Registry) error { + + if err := m.Type.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("type") + } + return err + } + + return nil +} + +// MarshalBinary interface implementation +func (m *Event) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *Event) UnmarshalBinary(b []byte) error { + var res Event + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/apimodels/extensions.go b/pkg/apimodels/extensions.go new file mode 100644 index 00000000..0329d97d --- /dev/null +++ b/pkg/apimodels/extensions.go @@ -0,0 +1,10 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +// Extensions extensions +// swagger:model extensions +type Extensions interface{} diff --git a/pkg/apimodels/id.go b/pkg/apimodels/id.go new file mode 100644 index 00000000..b8a82d83 --- /dev/null +++ b/pkg/apimodels/id.go @@ -0,0 +1,19 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" +) + +// ID id +// swagger:model id +type ID string + +// Validate validates this id +func (m ID) Validate(formats strfmt.Registry) error { + return nil +} diff --git a/pkg/apimodels/project.go b/pkg/apimodels/project.go new file mode 100644 index 00000000..f88e63a3 --- /dev/null +++ b/pkg/apimodels/project.go @@ -0,0 +1,55 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/swag" +) + +// Project project +// swagger:model project +type Project struct { + + // git remote URL + GitRemoteURL string `json:"gitRemoteURL,omitempty"` + + // git token + GitToken string `json:"gitToken,omitempty"` + + // git user + GitUser string `json:"gitUser,omitempty"` + + // name + Name string `json:"name,omitempty"` + + // shipyard + Shipyard string `json:"shipyard,omitempty"` +} + +// Validate validates this project +func (m *Project) Validate(formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *Project) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *Project) UnmarshalBinary(b []byte) error { + var res Project + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/apimodels/resource.go b/pkg/apimodels/resource.go new file mode 100644 index 00000000..9b44dd0e --- /dev/null +++ b/pkg/apimodels/resource.go @@ -0,0 +1,81 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// Resource resource +// swagger:model resource +type Resource struct { + + // Resource content + // Required: true + ResourceContent *string `json:"resourceContent"` + + // Resource URI + // Required: true + ResourceURI *string `json:"resourceURI"` +} + +// Validate validates this resource +func (m *Resource) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateResourceContent(formats); err != nil { + res = append(res, err) + } + + if err := m.validateResourceURI(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *Resource) validateResourceContent(formats strfmt.Registry) error { + + if err := validate.Required("resourceContent", "body", m.ResourceContent); err != nil { + return err + } + + return nil +} + +func (m *Resource) validateResourceURI(formats strfmt.Registry) error { + + if err := validate.Required("resourceURI", "body", m.ResourceURI); err != nil { + return err + } + + return nil +} + +// MarshalBinary interface implementation +func (m *Resource) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *Resource) UnmarshalBinary(b []byte) error { + var res Resource + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/apimodels/resources.go b/pkg/apimodels/resources.go new file mode 100644 index 00000000..2c93560a --- /dev/null +++ b/pkg/apimodels/resources.go @@ -0,0 +1,89 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "strconv" + + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" +) + +// Resources resources +// swagger:model resources +type Resources struct { + + // Pointer to next page, base64 encoded + NextPageKey string `json:"nextPageKey,omitempty"` + + // Size of returned page + PageSize float64 `json:"pageSize,omitempty"` + + // resources + Resources []*Resource `json:"resources"` + + // Total number of resources + TotalCount float64 `json:"totalCount,omitempty"` +} + +// Validate validates this resources +func (m *Resources) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateResources(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *Resources) validateResources(formats strfmt.Registry) error { + + if swag.IsZero(m.Resources) { // not required + return nil + } + + for i := 0; i < len(m.Resources); i++ { + if swag.IsZero(m.Resources[i]) { // not required + continue + } + + if m.Resources[i] != nil { + if err := m.Resources[i].Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("resources" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// MarshalBinary interface implementation +func (m *Resources) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *Resources) UnmarshalBinary(b []byte) error { + var res Resources + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/apimodels/service.go b/pkg/apimodels/service.go new file mode 100644 index 00000000..cc03ff3a --- /dev/null +++ b/pkg/apimodels/service.go @@ -0,0 +1,46 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/swag" +) + +// Service service +// swagger:model service +type Service struct { + + // helm chart + HelmChart string `json:"helmChart,omitempty"` + + // service name + ServiceName string `json:"serviceName,omitempty"` +} + +// Validate validates this service +func (m *Service) Validate(formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *Service) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *Service) UnmarshalBinary(b []byte) error { + var res Service + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/apimodels/source.go b/pkg/apimodels/source.go new file mode 100644 index 00000000..bc05de54 --- /dev/null +++ b/pkg/apimodels/source.go @@ -0,0 +1,19 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" +) + +// Source source +// swagger:model source +type Source string + +// Validate validates this source +func (m Source) Validate(formats strfmt.Registry) error { + return nil +} diff --git a/pkg/apimodels/specversion.go b/pkg/apimodels/specversion.go new file mode 100644 index 00000000..e100ae55 --- /dev/null +++ b/pkg/apimodels/specversion.go @@ -0,0 +1,19 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" +) + +// Specversion specversion +// swagger:model specversion +type Specversion string + +// Validate validates this specversion +func (m Specversion) Validate(formats strfmt.Registry) error { + return nil +} diff --git a/pkg/apimodels/time.go b/pkg/apimodels/time.go new file mode 100644 index 00000000..352b68cc --- /dev/null +++ b/pkg/apimodels/time.go @@ -0,0 +1,60 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// Time time +// swagger:model time +type Time strfmt.DateTime + +// UnmarshalJSON sets a Time value from JSON input +func (m *Time) UnmarshalJSON(b []byte) error { + return ((*strfmt.DateTime)(m)).UnmarshalJSON(b) +} + +// MarshalJSON retrieves a Time value as JSON output +func (m Time) MarshalJSON() ([]byte, error) { + return (strfmt.DateTime(m)).MarshalJSON() +} + +// Validate validates this time +func (m Time) Validate(formats strfmt.Registry) error { + var res []error + + if err := validate.FormatOf("", "body", "date-time", strfmt.DateTime(m).String(), formats); err != nil { + return err + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +// MarshalBinary interface implementation +func (m *Time) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *Time) UnmarshalBinary(b []byte) error { + var res Time + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/apimodels/type.go b/pkg/apimodels/type.go new file mode 100644 index 00000000..e679d20b --- /dev/null +++ b/pkg/apimodels/type.go @@ -0,0 +1,19 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package apimodels + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" +) + +// Type type +// swagger:model type +type Type string + +// Validate validates this type +func (m Type) Validate(formats strfmt.Registry) error { + return nil +} From 7ed9d5b3c45dba4898761048a7c6b8d9f13ef820 Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 7 Oct 2019 15:43:41 +0200 Subject: [PATCH 04/65] #893 Provide handlers for project/service management --- pkg/{apimodels => api/models}/channel_info.go | 2 +- pkg/{apimodels => api/models}/contenttype.go | 2 +- pkg/{apimodels => api/models}/data.go | 2 +- pkg/{apimodels => api/models}/error.go | 2 +- pkg/{apimodels => api/models}/event.go | 2 +- pkg/{apimodels => api/models}/extensions.go | 2 +- pkg/{apimodels => api/models}/id.go | 2 +- pkg/{apimodels => api/models}/project.go | 2 +- pkg/{apimodels => api/models}/resource.go | 2 +- pkg/{apimodels => api/models}/resources.go | 2 +- pkg/{apimodels => api/models}/service.go | 2 +- pkg/{apimodels => api/models}/source.go | 2 +- pkg/{apimodels => api/models}/specversion.go | 2 +- pkg/{apimodels => api/models}/time.go | 2 +- pkg/{apimodels => api/models}/type.go | 2 +- pkg/api/utils/apiServiceUtils.go | 92 +++++++++++++ pkg/api/utils/projectUtils.go | 126 ++++++++++++++++++ pkg/api/utils/serviceUtils.go | 74 ++++++++++ 18 files changed, 307 insertions(+), 15 deletions(-) rename pkg/{apimodels => api/models}/channel_info.go (98%) rename pkg/{apimodels => api/models}/contenttype.go (95%) rename pkg/{apimodels => api/models}/data.go (92%) rename pkg/{apimodels => api/models}/error.go (98%) rename pkg/{apimodels => api/models}/event.go (99%) rename pkg/{apimodels => api/models}/extensions.go (93%) rename pkg/{apimodels => api/models}/id.go (95%) rename pkg/{apimodels => api/models}/project.go (98%) rename pkg/{apimodels => api/models}/resource.go (98%) rename pkg/{apimodels => api/models}/resources.go (99%) rename pkg/{apimodels => api/models}/service.go (98%) rename pkg/{apimodels => api/models}/source.go (95%) rename pkg/{apimodels => api/models}/specversion.go (95%) rename pkg/{apimodels => api/models}/time.go (98%) rename pkg/{apimodels => api/models}/type.go (95%) create mode 100644 pkg/api/utils/apiServiceUtils.go create mode 100644 pkg/api/utils/projectUtils.go create mode 100644 pkg/api/utils/serviceUtils.go diff --git a/pkg/apimodels/channel_info.go b/pkg/api/models/channel_info.go similarity index 98% rename from pkg/apimodels/channel_info.go rename to pkg/api/models/channel_info.go index 2dbb3e42..b0c7c711 100644 --- a/pkg/apimodels/channel_info.go +++ b/pkg/api/models/channel_info.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/contenttype.go b/pkg/api/models/contenttype.go similarity index 95% rename from pkg/apimodels/contenttype.go rename to pkg/api/models/contenttype.go index 06862b7d..1ab19ad2 100644 --- a/pkg/apimodels/contenttype.go +++ b/pkg/api/models/contenttype.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/data.go b/pkg/api/models/data.go similarity index 92% rename from pkg/apimodels/data.go rename to pkg/api/models/data.go index ea6a59ba..3c7d4098 100644 --- a/pkg/apimodels/data.go +++ b/pkg/api/models/data.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/error.go b/pkg/api/models/error.go similarity index 98% rename from pkg/apimodels/error.go rename to pkg/api/models/error.go index b736973d..9a60acf0 100644 --- a/pkg/apimodels/error.go +++ b/pkg/api/models/error.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/event.go b/pkg/api/models/event.go similarity index 99% rename from pkg/apimodels/event.go rename to pkg/api/models/event.go index 7a243057..85d36c48 100644 --- a/pkg/apimodels/event.go +++ b/pkg/api/models/event.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/extensions.go b/pkg/api/models/extensions.go similarity index 93% rename from pkg/apimodels/extensions.go rename to pkg/api/models/extensions.go index 0329d97d..d098318b 100644 --- a/pkg/apimodels/extensions.go +++ b/pkg/api/models/extensions.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/id.go b/pkg/api/models/id.go similarity index 95% rename from pkg/apimodels/id.go rename to pkg/api/models/id.go index b8a82d83..7ff8ceed 100644 --- a/pkg/apimodels/id.go +++ b/pkg/api/models/id.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/project.go b/pkg/api/models/project.go similarity index 98% rename from pkg/apimodels/project.go rename to pkg/api/models/project.go index f88e63a3..d7cac160 100644 --- a/pkg/apimodels/project.go +++ b/pkg/api/models/project.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/resource.go b/pkg/api/models/resource.go similarity index 98% rename from pkg/apimodels/resource.go rename to pkg/api/models/resource.go index 9b44dd0e..0402c339 100644 --- a/pkg/apimodels/resource.go +++ b/pkg/api/models/resource.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/resources.go b/pkg/api/models/resources.go similarity index 99% rename from pkg/apimodels/resources.go rename to pkg/api/models/resources.go index 2c93560a..9a99ab47 100644 --- a/pkg/apimodels/resources.go +++ b/pkg/api/models/resources.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/service.go b/pkg/api/models/service.go similarity index 98% rename from pkg/apimodels/service.go rename to pkg/api/models/service.go index cc03ff3a..883e79af 100644 --- a/pkg/apimodels/service.go +++ b/pkg/api/models/service.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/source.go b/pkg/api/models/source.go similarity index 95% rename from pkg/apimodels/source.go rename to pkg/api/models/source.go index bc05de54..9ef1769a 100644 --- a/pkg/apimodels/source.go +++ b/pkg/api/models/source.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/specversion.go b/pkg/api/models/specversion.go similarity index 95% rename from pkg/apimodels/specversion.go rename to pkg/api/models/specversion.go index e100ae55..5dea0caf 100644 --- a/pkg/apimodels/specversion.go +++ b/pkg/api/models/specversion.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/time.go b/pkg/api/models/time.go similarity index 98% rename from pkg/apimodels/time.go rename to pkg/api/models/time.go index 352b68cc..fbc3e48d 100644 --- a/pkg/apimodels/time.go +++ b/pkg/api/models/time.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/apimodels/type.go b/pkg/api/models/type.go similarity index 95% rename from pkg/apimodels/type.go rename to pkg/api/models/type.go index e679d20b..80ec79f8 100644 --- a/pkg/apimodels/type.go +++ b/pkg/api/models/type.go @@ -1,6 +1,6 @@ // Code generated by go-swagger; DO NOT EDIT. -package apimodels +package models // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go new file mode 100644 index 00000000..0b379ac2 --- /dev/null +++ b/pkg/api/utils/apiServiceUtils.go @@ -0,0 +1,92 @@ +package utils + +import ( + "bytes" + "crypto/tls" + "encoding/json" + "io/ioutil" + "net/http" + + "github.com/keptn/go-utils/pkg/api/models" +) + +// APIService represents the interface for accessing the configuration service +type APIService interface { + getBaseURL() string + getAuthToken() string + getAuthHeader() string + getHTTPClient() *http.Client +} + +func post(uri string, data []byte, api APIService) (*models.Error, error) { + + http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} + req, err := http.NewRequest("POST", uri, bytes.NewBuffer(data)) + req.Header.Set("Content-Type", "application/json") + addAuthHeader(req, api) + + resp, err := api.getHTTPClient().Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + if resp.StatusCode >= 200 && resp.StatusCode < 300 { + return nil, nil + } + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + var respErr models.Error + err = json.Unmarshal(body, &respErr) + if err != nil { + return nil, err + } + + return &respErr, nil +} + +func delete(uri string, api APIService) (*models.Error, error) { + + http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} + req, err := http.NewRequest("DELETE", uri, nil) + req.Header.Set("Content-Type", "application/json") + addAuthHeader(req, api) + + resp, err := api.getHTTPClient().Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + if resp.StatusCode >= 200 && resp.StatusCode < 300 { + return nil, nil + } + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + var respErr models.Error + err = json.Unmarshal(body, &respErr) + if err != nil { + return nil, err + } + + return &respErr, nil +} + +func buildErrorResponse(errorStr string) *models.Error { + err := models.Error{Message: &errorStr} + return &err +} + +func addAuthHeader(req *http.Request, api APIService) { + if api.getAuthHeader() != "" && api.getAuthToken() != "" { + req.Header.Set(api.getAuthHeader(), api.getAuthToken()) + } +} diff --git a/pkg/api/utils/projectUtils.go b/pkg/api/utils/projectUtils.go new file mode 100644 index 00000000..24c513d0 --- /dev/null +++ b/pkg/api/utils/projectUtils.go @@ -0,0 +1,126 @@ +package utils + +import ( + "crypto/tls" + "encoding/json" + "io/ioutil" + "net/http" + "strings" + + "github.com/keptn/go-utils/pkg/api/models" +) + +// ProjectHandler handles projects +type ProjectHandler struct { + BaseURL string + AuthToken string + AuthHeader string + HTTPClient *http.Client + Scheme string +} + +// NewProjectHandler returns a new ProjectHandler +func NewProjectHandler(baseURL string) *ProjectHandler { + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &ProjectHandler{ + BaseURL: baseURL, + AuthHeader: "", + AuthToken: "", + HTTPClient: &http.Client{}, + Scheme: "http", + } +} + +// NewAuthenticatedProjectHandler returns a new ProjectHandler that authenticates at the endpoint via the provided token +func NewAuthenticatedProjectHandler(baseURL string, authToken string, authHeader string, httpClient *http.Client, scheme string) *ProjectHandler { + if httpClient == nil { + httpClient = &http.Client{} + } + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &ProjectHandler{ + BaseURL: baseURL, + AuthHeader: authHeader, + AuthToken: authToken, + HTTPClient: httpClient, + Scheme: scheme, + } +} + +func (p *ProjectHandler) getBaseURL() string { + return p.BaseURL +} + +func (p *ProjectHandler) getAuthToken() string { + return p.AuthToken +} + +func (p *ProjectHandler) getAuthHeader() string { + return p.AuthHeader +} + +func (p *ProjectHandler) getHTTPClient() *http.Client { + return p.HTTPClient +} + +// CreateProject creates a new project +func (p *ProjectHandler) CreateProject(project models.Project) (*models.Error, error) { + bodyStr, err := json.Marshal(project) + if err != nil { + return nil, err + } + return post(p.Scheme+"://"+p.getBaseURL()+"/v1/project", bodyStr, p) +} + +// DeleteProject deletes a project +func (p *ProjectHandler) DeleteProject(project models.Project) (*models.Error, error) { + return delete(p.Scheme+"://"+p.getBaseURL()+"/v1/project/"+project.Name, p) +} + +// GetProject returns a project +func (p *ProjectHandler) GetProject(project models.Project) (*models.Project, *models.Error) { + return get(p.Scheme+"://"+p.getBaseURL()+"/v1/project/"+project.Name, p) +} + +func get(uri string, api APIService) (*models.Project, *models.Error) { + + http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} + req, err := http.NewRequest("GET", uri, nil) + req.Header.Set("Content-Type", "application/json") + addAuthHeader(req, api) + + resp, err := api.getHTTPClient().Do(req) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + defer resp.Body.Close() + + if resp.StatusCode >= 200 && resp.StatusCode < 300 { + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + var respProject models.Project + err = json.Unmarshal(body, &respProject) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + return &respProject, nil + } + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + var respErr models.Error + err = json.Unmarshal(body, &respErr) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + return nil, &respErr +} diff --git a/pkg/api/utils/serviceUtils.go b/pkg/api/utils/serviceUtils.go new file mode 100644 index 00000000..f3603244 --- /dev/null +++ b/pkg/api/utils/serviceUtils.go @@ -0,0 +1,74 @@ +package utils + +import ( + "encoding/json" + "net/http" + "strings" + + "github.com/keptn/go-utils/pkg/api/models" +) + +// ServiceHandler handles services +type ServiceHandler struct { + BaseURL string + AuthToken string + AuthHeader string + HTTPClient *http.Client + Scheme string +} + +// NewServiceHandler returns a new ServiceHandler +func NewServiceHandler(baseURL string) *ServiceHandler { + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &ServiceHandler{ + BaseURL: baseURL, + AuthHeader: "", + AuthToken: "", + HTTPClient: &http.Client{}, + Scheme: "http", + } +} + +// NewAuthenticatedServiceHandler returns a new ServiceHandler that authenticates at the endpoint via the provided token +func NewAuthenticatedServiceHandler(baseURL string, authToken string, authHeader string, httpClient *http.Client, scheme string) *ServiceHandler { + if httpClient == nil { + httpClient = &http.Client{} + } + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &ServiceHandler{ + BaseURL: baseURL, + AuthHeader: authHeader, + AuthToken: authToken, + HTTPClient: httpClient, + Scheme: scheme, + } +} + +func (s *ServiceHandler) getBaseURL() string { + return s.BaseURL +} + +func (s *ServiceHandler) getAuthToken() string { + return s.AuthToken +} + +func (s *ServiceHandler) getAuthHeader() string { + return s.AuthHeader +} + +func (s *ServiceHandler) getHTTPClient() *http.Client { + return s.HTTPClient +} + +// CreateService creates a new service +func (s *ServiceHandler) CreateService(project string, stage string, serviceName string) (*models.Error, error) { + + service := models.Service{ServiceName: serviceName} + body, err := json.Marshal(service) + if err != nil { + return nil, err + } + return post(s.Scheme+"://"+s.BaseURL+"/v1/project/"+project+"/stage/"+stage+"/service", body, s) +} From 93b0cf899af22f2b5dc2ab22e5540bde054a38c1 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 8 Oct 2019 09:27:11 +0200 Subject: [PATCH 05/65] #893 Fixed wrong endpoint for creating a service --- pkg/api/utils/serviceUtils.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/api/utils/serviceUtils.go b/pkg/api/utils/serviceUtils.go index f3603244..941e7cd5 100644 --- a/pkg/api/utils/serviceUtils.go +++ b/pkg/api/utils/serviceUtils.go @@ -63,12 +63,12 @@ func (s *ServiceHandler) getHTTPClient() *http.Client { } // CreateService creates a new service -func (s *ServiceHandler) CreateService(project string, stage string, serviceName string) (*models.Error, error) { +func (s *ServiceHandler) CreateService(project string, serviceName string) (*models.Error, error) { service := models.Service{ServiceName: serviceName} body, err := json.Marshal(service) if err != nil { return nil, err } - return post(s.Scheme+"://"+s.BaseURL+"/v1/project/"+project+"/stage/"+stage+"/service", body, s) + return post(s.Scheme+"://"+s.BaseURL+"/v1/project/"+project+"/service", body, s) } From 2d69f590d9c2889cec93dc3fbc1502a4ac574c7d Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 8 Oct 2019 09:43:04 +0200 Subject: [PATCH 06/65] #893 Changed CreateService parameter from string to model.Service --- pkg/api/utils/serviceUtils.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkg/api/utils/serviceUtils.go b/pkg/api/utils/serviceUtils.go index 941e7cd5..0027d3f1 100644 --- a/pkg/api/utils/serviceUtils.go +++ b/pkg/api/utils/serviceUtils.go @@ -63,12 +63,10 @@ func (s *ServiceHandler) getHTTPClient() *http.Client { } // CreateService creates a new service -func (s *ServiceHandler) CreateService(project string, serviceName string) (*models.Error, error) { - - service := models.Service{ServiceName: serviceName} - body, err := json.Marshal(service) +func (s *ServiceHandler) CreateService(project string, service models.Service) (*models.Error, error) { + bodyStr, err := json.Marshal(project) if err != nil { return nil, err } - return post(s.Scheme+"://"+s.BaseURL+"/v1/project/"+project+"/service", body, s) + return post(s.Scheme+"://"+s.getBaseURL()+"/v1/project/"+project+"/service", bodyStr, s) } From 3014f816c5d9ccf1a95a8c9714b63be32bc5bf87 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 8 Oct 2019 09:59:31 +0200 Subject: [PATCH 07/65] #893 Updated api models --- pkg/api/models/resources.go | 89 ------------------------------------- pkg/api/models/service.go | 3 ++ 2 files changed, 3 insertions(+), 89 deletions(-) delete mode 100644 pkg/api/models/resources.go diff --git a/pkg/api/models/resources.go b/pkg/api/models/resources.go deleted file mode 100644 index 9a99ab47..00000000 --- a/pkg/api/models/resources.go +++ /dev/null @@ -1,89 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package models - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "strconv" - - strfmt "github.com/go-openapi/strfmt" - - "github.com/go-openapi/errors" - "github.com/go-openapi/swag" -) - -// Resources resources -// swagger:model resources -type Resources struct { - - // Pointer to next page, base64 encoded - NextPageKey string `json:"nextPageKey,omitempty"` - - // Size of returned page - PageSize float64 `json:"pageSize,omitempty"` - - // resources - Resources []*Resource `json:"resources"` - - // Total number of resources - TotalCount float64 `json:"totalCount,omitempty"` -} - -// Validate validates this resources -func (m *Resources) Validate(formats strfmt.Registry) error { - var res []error - - if err := m.validateResources(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (m *Resources) validateResources(formats strfmt.Registry) error { - - if swag.IsZero(m.Resources) { // not required - return nil - } - - for i := 0; i < len(m.Resources); i++ { - if swag.IsZero(m.Resources[i]) { // not required - continue - } - - if m.Resources[i] != nil { - if err := m.Resources[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("resources" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// MarshalBinary interface implementation -func (m *Resources) MarshalBinary() ([]byte, error) { - if m == nil { - return nil, nil - } - return swag.WriteJSON(m) -} - -// UnmarshalBinary interface implementation -func (m *Resources) UnmarshalBinary(b []byte) error { - var res Resources - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *m = res - return nil -} diff --git a/pkg/api/models/service.go b/pkg/api/models/service.go index 883e79af..32f346f3 100644 --- a/pkg/api/models/service.go +++ b/pkg/api/models/service.go @@ -15,6 +15,9 @@ import ( // swagger:model service type Service struct { + // deployment strategies + DeploymentStrategies map[string]string `json:"deploymentStrategies,omitempty"` + // helm chart HelmChart string `json:"helmChart,omitempty"` From 4e287e16fa6164d47ef1aa5024874032d069c217 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Tue, 8 Oct 2019 10:40:02 +0200 Subject: [PATCH 08/65] #893 Add helper function for parsing deployment strategies --- Gopkg.lock | 93 +++++++++++++++++++------- pkg/events/deploymentStrategy.go | 12 +++- pkg/events/deployment_strategy_test.go | 13 ++++ 3 files changed, 91 insertions(+), 27 deletions(-) create mode 100644 pkg/events/deployment_strategy_test.go diff --git a/Gopkg.lock b/Gopkg.lock index 80a273ba..7fe7c10f 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -47,12 +47,12 @@ version = "v3.0.1" [[projects]] - digest = "1:ab506cfc00b11d6d406789c15abb0b341e8db076640e3f5255615a7e327398c1" + digest = "1:b565deb585c50ab8e94fe5d6c9903f1495970b97814803e4ab0e70c0a9c87a30" name = "github.com/Masterminds/sprig" packages = ["."] pruneopts = "UT" - revision = "258b00ffa7318e8b109a141349980ffbd30a35db" - version = "v2.20.0" + revision = "e4c0945838d570720d876a6ad9b4568ed32317b4" + version = "v2.22.0" [[projects]] digest = "1:a2682518d905d662d984ef9959984ef87cecb777d379bfa9d9fe40e78069b3e4" @@ -101,6 +101,14 @@ revision = "a261ee33d7a517f054effbf451841abaafe3e0fd" version = "v0.2.2" +[[projects]] + digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" + name = "github.com/davecgh/go-spew" + packages = ["spew"] + pruneopts = "UT" + revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" + version = "v1.1.1" + [[projects]] digest = "1:76dc72490af7174349349838f2fe118996381b31ea83243812a97e5a0fd5ed55" name = "github.com/dgrijalva/jwt-go" @@ -265,7 +273,7 @@ name = "github.com/golang/groupcache" packages = ["lru"] pruneopts = "UT" - revision = "869f871628b6baa9cfbc11732cdf6546b17c1298" + revision = "404acd9df4cc9859d64fb9eed42e5c026187287a" [[projects]] digest = "1:f5ce1529abc1204444ec73779f44f94e2fa8fcdb7aca3c355b0c95947e4005c6" @@ -361,12 +369,12 @@ version = "v1.2.0" [[projects]] - digest = "1:a0cefd27d12712af4b5018dc7046f245e1e3b5760e2e848c30b171b570708f9b" + digest = "1:78d28d5b84a26159c67ea51996a230da4bc07cac648adaae1dfb5fc0ec8e40d3" name = "github.com/imdario/mergo" packages = ["."] pruneopts = "UT" - revision = "7c29201646fa3de8506f701213473dd407f19646" - version = "v0.3.7" + revision = "1afb36080aec31e0d1528973ebe6721b191b0369" + version = "v0.3.8" [[projects]] branch = "master" @@ -404,6 +412,14 @@ revision = "1b2b06f5f209fea48ff5922d8bfb2b9ed5d8f00b" version = "v0.7.0" +[[projects]] + digest = "1:09ca328575f38b80969ccf857f6d7302f2ce09d53778ea7aaba526cfd2cec739" + name = "github.com/mitchellh/copystructure" + packages = ["."] + pruneopts = "UT" + revision = "9a1b6f44e8da0e0e374624fb0a825a231b00c537" + version = "v1.0.0" + [[projects]] digest = "1:5d231480e1c64a726869bc4142d270184c419749d34f167646baa21008eb0a79" name = "github.com/mitchellh/go-homedir" @@ -420,6 +436,14 @@ revision = "3536a929edddb9a5b34bd6861dc4a9647cb459fe" version = "v1.1.2" +[[projects]] + digest = "1:2a7e6f8bebdca6bd8bc359c37f01ae1c4ea4f8481eaabf93b1ae4863f15b72c7" + name = "github.com/mitchellh/reflectwalk" + packages = ["."] + pruneopts = "UT" + revision = "3e2c75dfad4fbf904b58782a80fd595c760ad185" + version = "v1.0.1" + [[projects]] digest = "1:33422d238f147d247752996a26574ac48dcf472976eda7f5134015f06bf16563" name = "github.com/modern-go/concurrent" @@ -460,6 +484,14 @@ revision = "ba968bfe8b2f7e042a574c888954fccecfa385b4" version = "v0.8.1" +[[projects]] + digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe" + name = "github.com/pmezard/go-difflib" + packages = ["difflib"] + pruneopts = "UT" + revision = "792786c7400a136282c1664665ae0a8db921c6c2" + version = "v1.0.0" + [[projects]] digest = "1:d917313f309bda80d27274d53985bc65651f81a5b66b820749ac7f8ef061fd04" name = "github.com/sergi/go-diff" @@ -469,12 +501,12 @@ version = "v1.0.0" [[projects]] - digest = "1:cc33ef8c2b75f80e588a96f9a70324c0487a02323bd5b2c5d639dda973edc844" + digest = "1:524b71991fc7d9246cc7dc2d9e0886ccb97648091c63e30eef619e6862c955dd" name = "github.com/spf13/pflag" packages = ["."] pruneopts = "UT" - revision = "e8f29969b682c41a730f8f08b76033b120498464" - version = "v1.0.4" + revision = "2e9d26c8c37aae03e3f9d4e90b7116f5accb7cab" + version = "v1.0.5" [[projects]] digest = "1:e4ed0afd67bf7be353921665cdac50834c867ff1bba153efc0745b755a7f5905" @@ -489,6 +521,14 @@ revision = "1ac3a1ac202429a54835fe8408a92880156b489d" version = "v1.4.0" +[[projects]] + digest = "1:8548c309c65a85933a625be5e7d52b6ac927ca30c56869fae58123b8a77a75e1" + name = "github.com/stretchr/testify" + packages = ["assert"] + pruneopts = "UT" + revision = "221dbe5ed46703ee255b1da0dec05086f5035f62" + version = "v1.4.0" + [[projects]] digest = "1:172f94a6b3644a8f9e6b5e5b7fc9fe1e42d424f52a0300b2e7ab1e57db73f85d" name = "github.com/xanzy/ssh-agent" @@ -509,8 +549,8 @@ "x/bsonx/bsoncore", ] pruneopts = "UT" - revision = "c520d023af0a89aec8b7f97717b52da270df2c38" - version = "v1.1.1" + revision = "1261197350f3ad46a907489aee7ecc49b39efb82" + version = "v1.1.2" [[projects]] digest = "1:74accd9945e4e51580cbe9b9428c228c1a7d37180cf2647ac33a1dff7197546a" @@ -536,7 +576,7 @@ [[projects]] branch = "master" - digest = "1:6a28ac2bed8418012e727a6c90d8dc04c3758e130ce04077f6d139bdd2c299e6" + digest = "1:d1cd9a31e9b767fd8d9e99137a83d8ac8336136c2fa3dbca50033d4f151b1290" name = "golang.org/x/crypto" packages = [ "cast5", @@ -560,11 +600,11 @@ "ssh/terminal", ] pruneopts = "UT" - revision = "227b76d455e791cb042b03e633e2f7fbcfdf74a5" + revision = "34f69633bfdcf9db92f698f8487115767eebef81" [[projects]] branch = "master" - digest = "1:dca3d6ac35036710d258ac83d4bd392883644c1416675b1b25376234825553c4" + digest = "1:c2d5178dcf6a2536e4611015639a1e2426096a115d69cce3886a540ea0a29b2b" name = "golang.org/x/net" packages = [ "context", @@ -577,7 +617,7 @@ "proxy", ] pruneopts = "UT" - revision = "c8589233b77dde5edd2205ba8a4fb5c9c2472556" + revision = "72f939374954d0a1b2a1e27dcda950e2724dd5c1" [[projects]] branch = "master" @@ -595,7 +635,7 @@ [[projects]] branch = "master" - digest = "1:cef0763cedef8416ca6f6f13fa1aadd064736a730f056a7aac30b3b03a82990a" + digest = "1:9df3166b29bde4a773cfab21ffb90f1ed30da3d8722eee84000af2228a752ba9" name = "golang.org/x/sys" packages = [ "cpu", @@ -603,7 +643,7 @@ "windows", ] pruneopts = "UT" - revision = "b4ddaad3f8a36719f2b8bc6486c14cc468ca2bb5" + revision = "ef33b2fb2c414dca4bfcf6ca59cbd1d9ad00703d" [[projects]] digest = "1:66a2f252a58b4fbbad0e4e180e1d85a83c222b6bce09c3dcdef3dc87c72eda7c" @@ -633,14 +673,14 @@ [[projects]] branch = "master" - digest = "1:9fdc2b55e8e0fafe4b41884091e51e77344f7dc511c5acedcfd98200003bff90" + digest = "1:cdd088b35bbf78713a6861a44a1bbe97e581861b6b8835c7f2211bbeca3671f6" name = "golang.org/x/time" packages = ["rate"] pruneopts = "UT" - revision = "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef" + revision = "c4c64cad1fd0a1a8dab2523e04e61d35308e131e" [[projects]] - digest = "1:498b722d33dde4471e7d6e5d88a5e7132d2a8306fea5ff5ee82d1f418b4f41ed" + digest = "1:3c03b58f57452764a4499c55c582346c0ee78c8a5033affe5bdfd9efd3da5bd1" name = "google.golang.org/appengine" packages = [ ".", @@ -655,8 +695,8 @@ "urlfetch", ] pruneopts = "UT" - revision = "5f2a59506353b8d5ba8cbbcd9f3c1f41f1eaf079" - version = "v1.6.2" + revision = "971852bfffca25b069c31162ae8f247a3dba083b" + version = "v1.6.5" [[projects]] digest = "1:2d1fbdc6777e5408cabeb02bf336305e724b925ff4546ded0fa8715a7267922a" @@ -739,12 +779,12 @@ version = "v0.1.2" [[projects]] - digest = "1:4d2e5a73dc1500038e504a8d78b986630e3626dc027bc030ba5c75da257cdb96" + digest = "1:59f10c1537d2199d9115d946927fe31165959a95190849c82ff11e05803528b0" name = "gopkg.in/yaml.v2" packages = ["."] pruneopts = "UT" - revision = "51d6538a90f86fe93ac480b35f37b2be17fef232" - version = "v2.2.2" + revision = "f221b8435cfb71e54062f6c6e99e9ade30b124d5" + version = "v2.2.4" [[projects]] digest = "1:910ec974550174f4ca48b9f4a3caec16b693e584c3762dc726dc0dcf28f8e318" @@ -933,6 +973,7 @@ "github.com/go-openapi/validate", "github.com/google/uuid", "github.com/gorilla/websocket", + "github.com/stretchr/testify/assert", "gopkg.in/src-d/go-git.v4", "gopkg.in/src-d/go-git.v4/config", "gopkg.in/src-d/go-git.v4/plumbing", diff --git a/pkg/events/deploymentStrategy.go b/pkg/events/deploymentStrategy.go index ceef0f44..0ecc1a5e 100644 --- a/pkg/events/deploymentStrategy.go +++ b/pkg/events/deploymentStrategy.go @@ -3,6 +3,7 @@ package events import ( "bytes" "encoding/json" + "fmt" "strings" ) @@ -11,7 +12,7 @@ type DeploymentStrategy int const ( // Direct stores the chart which results in the - Direct DeploymentStrategy = iota + Direct DeploymentStrategy = iota + 1 // Duplicate generates a second chart in order to duplicate the deployments Duplicate @@ -21,6 +22,15 @@ func (s DeploymentStrategy) String() string { return deploymentStrategyToString[s] } +// GetDeploymentStrategy tries to parse the deployment strategy into the enum +// If the provided deployment strategy is unsupported, an error is returned +func GetDeploymentStrategy(deploymentStrategy string) (DeploymentStrategy, error) { + if val, ok := deploymentStrategyToID[deploymentStrategy]; ok { + return val, nil + } + return DeploymentStrategy(0), fmt.Errorf("The deployment strategy %s is invalid", deploymentStrategy) +} + var deploymentStrategyToString = map[DeploymentStrategy]string{ Direct: "direct", Duplicate: "duplicate", diff --git a/pkg/events/deployment_strategy_test.go b/pkg/events/deployment_strategy_test.go new file mode 100644 index 00000000..f9b6a8ae --- /dev/null +++ b/pkg/events/deployment_strategy_test.go @@ -0,0 +1,13 @@ +package events + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestGetDeploymentStrategy(t *testing.T) { + + _, err := GetDeploymentStrategy("invalidStrategy") + assert.Error(t, err) +} From 85a2da70b00e51e1a9c5ba53ddf5526bdcbe0890 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Tue, 8 Oct 2019 10:51:34 +0200 Subject: [PATCH 09/65] #893 Add utility method for deployment strategies --- pkg/events/deploymentStrategy.go | 12 +++++++++++- pkg/events/deployment_strategy_test.go | 13 +++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 pkg/events/deployment_strategy_test.go diff --git a/pkg/events/deploymentStrategy.go b/pkg/events/deploymentStrategy.go index ceef0f44..0ecc1a5e 100644 --- a/pkg/events/deploymentStrategy.go +++ b/pkg/events/deploymentStrategy.go @@ -3,6 +3,7 @@ package events import ( "bytes" "encoding/json" + "fmt" "strings" ) @@ -11,7 +12,7 @@ type DeploymentStrategy int const ( // Direct stores the chart which results in the - Direct DeploymentStrategy = iota + Direct DeploymentStrategy = iota + 1 // Duplicate generates a second chart in order to duplicate the deployments Duplicate @@ -21,6 +22,15 @@ func (s DeploymentStrategy) String() string { return deploymentStrategyToString[s] } +// GetDeploymentStrategy tries to parse the deployment strategy into the enum +// If the provided deployment strategy is unsupported, an error is returned +func GetDeploymentStrategy(deploymentStrategy string) (DeploymentStrategy, error) { + if val, ok := deploymentStrategyToID[deploymentStrategy]; ok { + return val, nil + } + return DeploymentStrategy(0), fmt.Errorf("The deployment strategy %s is invalid", deploymentStrategy) +} + var deploymentStrategyToString = map[DeploymentStrategy]string{ Direct: "direct", Duplicate: "duplicate", diff --git a/pkg/events/deployment_strategy_test.go b/pkg/events/deployment_strategy_test.go new file mode 100644 index 00000000..f9b6a8ae --- /dev/null +++ b/pkg/events/deployment_strategy_test.go @@ -0,0 +1,13 @@ +package events + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestGetDeploymentStrategy(t *testing.T) { + + _, err := GetDeploymentStrategy("invalidStrategy") + assert.Error(t, err) +} From c4cf7e1fd6ad05936131fc4620ed8bf44ad55f68 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 8 Oct 2019 11:15:36 +0200 Subject: [PATCH 10/65] #893 Update of dependencies --- Gopkg.lock | 70 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 80a273ba..c17a3706 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -47,12 +47,12 @@ version = "v3.0.1" [[projects]] - digest = "1:ab506cfc00b11d6d406789c15abb0b341e8db076640e3f5255615a7e327398c1" + digest = "1:b565deb585c50ab8e94fe5d6c9903f1495970b97814803e4ab0e70c0a9c87a30" name = "github.com/Masterminds/sprig" packages = ["."] pruneopts = "UT" - revision = "258b00ffa7318e8b109a141349980ffbd30a35db" - version = "v2.20.0" + revision = "e4c0945838d570720d876a6ad9b4568ed32317b4" + version = "v2.22.0" [[projects]] digest = "1:a2682518d905d662d984ef9959984ef87cecb777d379bfa9d9fe40e78069b3e4" @@ -265,7 +265,7 @@ name = "github.com/golang/groupcache" packages = ["lru"] pruneopts = "UT" - revision = "869f871628b6baa9cfbc11732cdf6546b17c1298" + revision = "404acd9df4cc9859d64fb9eed42e5c026187287a" [[projects]] digest = "1:f5ce1529abc1204444ec73779f44f94e2fa8fcdb7aca3c355b0c95947e4005c6" @@ -361,12 +361,12 @@ version = "v1.2.0" [[projects]] - digest = "1:a0cefd27d12712af4b5018dc7046f245e1e3b5760e2e848c30b171b570708f9b" + digest = "1:78d28d5b84a26159c67ea51996a230da4bc07cac648adaae1dfb5fc0ec8e40d3" name = "github.com/imdario/mergo" packages = ["."] pruneopts = "UT" - revision = "7c29201646fa3de8506f701213473dd407f19646" - version = "v0.3.7" + revision = "1afb36080aec31e0d1528973ebe6721b191b0369" + version = "v0.3.8" [[projects]] branch = "master" @@ -404,6 +404,14 @@ revision = "1b2b06f5f209fea48ff5922d8bfb2b9ed5d8f00b" version = "v0.7.0" +[[projects]] + digest = "1:09ca328575f38b80969ccf857f6d7302f2ce09d53778ea7aaba526cfd2cec739" + name = "github.com/mitchellh/copystructure" + packages = ["."] + pruneopts = "UT" + revision = "9a1b6f44e8da0e0e374624fb0a825a231b00c537" + version = "v1.0.0" + [[projects]] digest = "1:5d231480e1c64a726869bc4142d270184c419749d34f167646baa21008eb0a79" name = "github.com/mitchellh/go-homedir" @@ -420,6 +428,14 @@ revision = "3536a929edddb9a5b34bd6861dc4a9647cb459fe" version = "v1.1.2" +[[projects]] + digest = "1:2a7e6f8bebdca6bd8bc359c37f01ae1c4ea4f8481eaabf93b1ae4863f15b72c7" + name = "github.com/mitchellh/reflectwalk" + packages = ["."] + pruneopts = "UT" + revision = "3e2c75dfad4fbf904b58782a80fd595c760ad185" + version = "v1.0.1" + [[projects]] digest = "1:33422d238f147d247752996a26574ac48dcf472976eda7f5134015f06bf16563" name = "github.com/modern-go/concurrent" @@ -469,12 +485,12 @@ version = "v1.0.0" [[projects]] - digest = "1:cc33ef8c2b75f80e588a96f9a70324c0487a02323bd5b2c5d639dda973edc844" + digest = "1:524b71991fc7d9246cc7dc2d9e0886ccb97648091c63e30eef619e6862c955dd" name = "github.com/spf13/pflag" packages = ["."] pruneopts = "UT" - revision = "e8f29969b682c41a730f8f08b76033b120498464" - version = "v1.0.4" + revision = "2e9d26c8c37aae03e3f9d4e90b7116f5accb7cab" + version = "v1.0.5" [[projects]] digest = "1:e4ed0afd67bf7be353921665cdac50834c867ff1bba153efc0745b755a7f5905" @@ -509,8 +525,8 @@ "x/bsonx/bsoncore", ] pruneopts = "UT" - revision = "c520d023af0a89aec8b7f97717b52da270df2c38" - version = "v1.1.1" + revision = "1261197350f3ad46a907489aee7ecc49b39efb82" + version = "v1.1.2" [[projects]] digest = "1:74accd9945e4e51580cbe9b9428c228c1a7d37180cf2647ac33a1dff7197546a" @@ -536,7 +552,7 @@ [[projects]] branch = "master" - digest = "1:6a28ac2bed8418012e727a6c90d8dc04c3758e130ce04077f6d139bdd2c299e6" + digest = "1:d1cd9a31e9b767fd8d9e99137a83d8ac8336136c2fa3dbca50033d4f151b1290" name = "golang.org/x/crypto" packages = [ "cast5", @@ -560,11 +576,11 @@ "ssh/terminal", ] pruneopts = "UT" - revision = "227b76d455e791cb042b03e633e2f7fbcfdf74a5" + revision = "34f69633bfdcf9db92f698f8487115767eebef81" [[projects]] branch = "master" - digest = "1:dca3d6ac35036710d258ac83d4bd392883644c1416675b1b25376234825553c4" + digest = "1:c2d5178dcf6a2536e4611015639a1e2426096a115d69cce3886a540ea0a29b2b" name = "golang.org/x/net" packages = [ "context", @@ -577,7 +593,7 @@ "proxy", ] pruneopts = "UT" - revision = "c8589233b77dde5edd2205ba8a4fb5c9c2472556" + revision = "72f939374954d0a1b2a1e27dcda950e2724dd5c1" [[projects]] branch = "master" @@ -595,7 +611,7 @@ [[projects]] branch = "master" - digest = "1:cef0763cedef8416ca6f6f13fa1aadd064736a730f056a7aac30b3b03a82990a" + digest = "1:9df3166b29bde4a773cfab21ffb90f1ed30da3d8722eee84000af2228a752ba9" name = "golang.org/x/sys" packages = [ "cpu", @@ -603,7 +619,7 @@ "windows", ] pruneopts = "UT" - revision = "b4ddaad3f8a36719f2b8bc6486c14cc468ca2bb5" + revision = "ef33b2fb2c414dca4bfcf6ca59cbd1d9ad00703d" [[projects]] digest = "1:66a2f252a58b4fbbad0e4e180e1d85a83c222b6bce09c3dcdef3dc87c72eda7c" @@ -633,14 +649,14 @@ [[projects]] branch = "master" - digest = "1:9fdc2b55e8e0fafe4b41884091e51e77344f7dc511c5acedcfd98200003bff90" + digest = "1:cdd088b35bbf78713a6861a44a1bbe97e581861b6b8835c7f2211bbeca3671f6" name = "golang.org/x/time" packages = ["rate"] pruneopts = "UT" - revision = "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef" + revision = "c4c64cad1fd0a1a8dab2523e04e61d35308e131e" [[projects]] - digest = "1:498b722d33dde4471e7d6e5d88a5e7132d2a8306fea5ff5ee82d1f418b4f41ed" + digest = "1:3c03b58f57452764a4499c55c582346c0ee78c8a5033affe5bdfd9efd3da5bd1" name = "google.golang.org/appengine" packages = [ ".", @@ -655,8 +671,8 @@ "urlfetch", ] pruneopts = "UT" - revision = "5f2a59506353b8d5ba8cbbcd9f3c1f41f1eaf079" - version = "v1.6.2" + revision = "971852bfffca25b069c31162ae8f247a3dba083b" + version = "v1.6.5" [[projects]] digest = "1:2d1fbdc6777e5408cabeb02bf336305e724b925ff4546ded0fa8715a7267922a" @@ -739,12 +755,12 @@ version = "v0.1.2" [[projects]] - digest = "1:4d2e5a73dc1500038e504a8d78b986630e3626dc027bc030ba5c75da257cdb96" + digest = "1:59f10c1537d2199d9115d946927fe31165959a95190849c82ff11e05803528b0" name = "gopkg.in/yaml.v2" packages = ["."] pruneopts = "UT" - revision = "51d6538a90f86fe93ac480b35f37b2be17fef232" - version = "v2.2.2" + revision = "f221b8435cfb71e54062f6c6e99e9ade30b124d5" + version = "v2.2.4" [[projects]] digest = "1:910ec974550174f4ca48b9f4a3caec16b693e584c3762dc726dc0dcf28f8e318" @@ -903,7 +919,7 @@ version = "kubernetes-1.12.0" [[projects]] - digest = "1:93c14bd5adb4ad2cdce1a57fda1c648781c91999bfdb96db0768f631adc849f0" + digest = "1:c780ffd0ea11865bc3d1d5518525b59aa487750fd356b12c74d372c36fc16e74" name = "k8s.io/helm" packages = [ "pkg/chartutil", From a6a6c825b28865a27c46ac1959210999795eb6cb Mon Sep 17 00:00:00 2001 From: Christian Kreuzberger Date: Tue, 8 Oct 2019 13:08:54 +0200 Subject: [PATCH 11/65] Update readme to direct people to the main keptn repo --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c135eb8d..0aa645e5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -# Go-utils +# Keptn go-utils -This repo serves as a util package for common functionalities such as logging. +This repo serves as a util package for common functionalities such as logging of the [Keptn Project](https://github.com/keptn). + +Please post any issues with this package to the [keptn/keptn repository](https://github.com/keptn/keptn/issues) and label them with `area:go-utils`. ## Usage From 19a1028f18a88b61b446231d65fadec6ef60db13 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Tue, 8 Oct 2019 16:12:51 +0200 Subject: [PATCH 12/65] #893 Rename test case, add doc, reset enum base --- pkg/events/deploymentStrategy.go | 4 ++-- pkg/events/deployment_strategy_test.go | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/events/deploymentStrategy.go b/pkg/events/deploymentStrategy.go index 0ecc1a5e..9a2f2ad4 100644 --- a/pkg/events/deploymentStrategy.go +++ b/pkg/events/deploymentStrategy.go @@ -12,7 +12,7 @@ type DeploymentStrategy int const ( // Direct stores the chart which results in the - Direct DeploymentStrategy = iota + 1 + Direct DeploymentStrategy = iota // Duplicate generates a second chart in order to duplicate the deployments Duplicate @@ -28,7 +28,7 @@ func GetDeploymentStrategy(deploymentStrategy string) (DeploymentStrategy, error if val, ok := deploymentStrategyToID[deploymentStrategy]; ok { return val, nil } - return DeploymentStrategy(0), fmt.Errorf("The deployment strategy %s is invalid", deploymentStrategy) + return DeploymentStrategy(-1), fmt.Errorf("The deployment strategy %s is invalid", deploymentStrategy) } var deploymentStrategyToString = map[DeploymentStrategy]string{ diff --git a/pkg/events/deployment_strategy_test.go b/pkg/events/deployment_strategy_test.go index f9b6a8ae..d0a204ae 100644 --- a/pkg/events/deployment_strategy_test.go +++ b/pkg/events/deployment_strategy_test.go @@ -6,7 +6,9 @@ import ( "github.com/stretchr/testify/assert" ) -func TestGetDeploymentStrategy(t *testing.T) { +// TestGetInvalidDeploymentStrategy tests whether an error is returned +// if an invalid test strategy is passed to GetDeploymentStrategy +func TestGetInvalidDeploymentStrategy(t *testing.T) { _, err := GetDeploymentStrategy("invalidStrategy") assert.Error(t, err) From 50bffb0a0b4385675a391719b254b28f81ea60bc Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 8 Oct 2019 16:20:47 +0200 Subject: [PATCH 13/65] #893 Provide utils function for auth endpoint --- pkg/api/utils/authUtils.go | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 pkg/api/utils/authUtils.go diff --git a/pkg/api/utils/authUtils.go b/pkg/api/utils/authUtils.go new file mode 100644 index 00000000..b976930c --- /dev/null +++ b/pkg/api/utils/authUtils.go @@ -0,0 +1,67 @@ +package utils + +import ( + "net/http" + "strings" + + "github.com/keptn/go-utils/pkg/api/models" +) + +// AuthHandler handles projects +type AuthHandler struct { + BaseURL string + AuthToken string + AuthHeader string + HTTPClient *http.Client + Scheme string +} + +// NewAuthHandler returns a new AuthHandler +func NewAuthHandler(baseURL string) *AuthHandler { + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &AuthHandler{ + BaseURL: baseURL, + AuthHeader: "", + AuthToken: "", + HTTPClient: &http.Client{}, + Scheme: "http", + } +} + +// NewAuthenticatedAuthHandler returns a new AuthHandler that authenticates at the endpoint via the provided token +func NewAuthenticatedAuthHandler(baseURL string, authToken string, authHeader string, httpClient *http.Client, scheme string) *AuthHandler { + if httpClient == nil { + httpClient = &http.Client{} + } + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &AuthHandler{ + BaseURL: baseURL, + AuthHeader: authHeader, + AuthToken: authToken, + HTTPClient: httpClient, + Scheme: scheme, + } +} + +func (p *AuthHandler) getBaseURL() string { + return p.BaseURL +} + +func (p *AuthHandler) getAuthToken() string { + return p.AuthToken +} + +func (p *AuthHandler) getAuthHeader() string { + return p.AuthHeader +} + +func (p *AuthHandler) getHTTPClient() *http.Client { + return p.HTTPClient +} + +// Authenticate creates a new project +func (p *AuthHandler) Authenticate() (*models.Error, error) { + return post(p.Scheme+"://"+p.getBaseURL()+"/v1/auth", nil, p) +} From 8fc65e2244a1a23b983c00cf4489d9d48e74496d Mon Sep 17 00:00:00 2001 From: Christian Kreuzberger Date: Tue, 8 Oct 2019 15:47:41 +0200 Subject: [PATCH 14/65] #944 added travis tests --- .travis.yml | 22 ++++++++++++++++++++++ Gopkg.lock | 25 +++++++++++++++++++++++++ README.md | 1 + 3 files changed, 48 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..d527c37e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +# use the latest ubuntu environment (18.04) available on travis +dist: xenial + +language: go + +go: +- 1.12.x + +# Don't email me the results of the test runs. +notifications: + email: false + +before_install: + - curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh + - dep ensure + +# script always runs to completion (set +e). If we have linter issues AND a +# failing test, we want to see both. Configure golangci-lint with a +# .golangci.yml file at the top level of your repo. +script: + - go get ./... + - go test -v -race ./... # Run all the tests with the race detector enabled diff --git a/Gopkg.lock b/Gopkg.lock index 80a273ba..5fec4dcf 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -101,6 +101,14 @@ revision = "a261ee33d7a517f054effbf451841abaafe3e0fd" version = "v0.2.2" +[[projects]] + digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" + name = "github.com/davecgh/go-spew" + packages = ["spew"] + pruneopts = "UT" + revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" + version = "v1.1.1" + [[projects]] digest = "1:76dc72490af7174349349838f2fe118996381b31ea83243812a97e5a0fd5ed55" name = "github.com/dgrijalva/jwt-go" @@ -460,6 +468,14 @@ revision = "ba968bfe8b2f7e042a574c888954fccecfa385b4" version = "v0.8.1" +[[projects]] + digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe" + name = "github.com/pmezard/go-difflib" + packages = ["difflib"] + pruneopts = "UT" + revision = "792786c7400a136282c1664665ae0a8db921c6c2" + version = "v1.0.0" + [[projects]] digest = "1:d917313f309bda80d27274d53985bc65651f81a5b66b820749ac7f8ef061fd04" name = "github.com/sergi/go-diff" @@ -489,6 +505,14 @@ revision = "1ac3a1ac202429a54835fe8408a92880156b489d" version = "v1.4.0" +[[projects]] + digest = "1:8548c309c65a85933a625be5e7d52b6ac927ca30c56869fae58123b8a77a75e1" + name = "github.com/stretchr/testify" + packages = ["assert"] + pruneopts = "UT" + revision = "221dbe5ed46703ee255b1da0dec05086f5035f62" + version = "v1.4.0" + [[projects]] digest = "1:172f94a6b3644a8f9e6b5e5b7fc9fe1e42d424f52a0300b2e7ab1e57db73f85d" name = "github.com/xanzy/ssh-agent" @@ -933,6 +957,7 @@ "github.com/go-openapi/validate", "github.com/google/uuid", "github.com/gorilla/websocket", + "github.com/stretchr/testify/assert", "gopkg.in/src-d/go-git.v4", "gopkg.in/src-d/go-git.v4/config", "gopkg.in/src-d/go-git.v4/plumbing", diff --git a/README.md b/README.md index 0aa645e5..ab23d2fa 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Keptn go-utils +[![Build Status](https://travis-ci.org/keptn/go-utils.svg?branch=master)](https://travis-ci.org/keptn/go-utils) This repo serves as a util package for common functionalities such as logging of the [Keptn Project](https://github.com/keptn). From 828d7b4cf809286dc4e5253826be730acd0d21e9 Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 9 Oct 2019 11:23:32 +0200 Subject: [PATCH 15/65] #893 Fixed marshalling wrong object --- pkg/api/utils/serviceUtils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/api/utils/serviceUtils.go b/pkg/api/utils/serviceUtils.go index 0027d3f1..aca84204 100644 --- a/pkg/api/utils/serviceUtils.go +++ b/pkg/api/utils/serviceUtils.go @@ -64,7 +64,7 @@ func (s *ServiceHandler) getHTTPClient() *http.Client { // CreateService creates a new service func (s *ServiceHandler) CreateService(project string, service models.Service) (*models.Error, error) { - bodyStr, err := json.Marshal(project) + bodyStr, err := json.Marshal(service) if err != nil { return nil, err } From 1fe580784218d8b41bed88dd06e89960eec6e897 Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 14 Oct 2019 09:09:50 +0200 Subject: [PATCH 16/65] #893 Return channel info in handlers --- pkg/api/utils/apiServiceUtils.go | 35 +++++++++++++++++++++----------- pkg/api/utils/authUtils.go | 2 +- pkg/api/utils/projectUtils.go | 6 +++--- pkg/api/utils/serviceUtils.go | 4 ++-- 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index 0b379ac2..fef988bf 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -18,7 +18,7 @@ type APIService interface { getHTTPClient() *http.Client } -func post(uri string, data []byte, api APIService) (*models.Error, error) { +func post(uri string, data []byte, api APIService) (*models.ChannelInfo, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("POST", uri, bytes.NewBuffer(data)) @@ -27,29 +27,40 @@ func post(uri string, data []byte, api APIService) (*models.Error, error) { resp, err := api.getHTTPClient().Do(req) if err != nil { - return nil, err + return nil, buildErrorResponse(err.Error()) } defer resp.Body.Close() - if resp.StatusCode >= 200 && resp.StatusCode < 300 { - return nil, nil + if resp.StatusCode == 200 { + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + var channelInfo models.ChannelInfo + err = json.Unmarshal(body, &channelInfo) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + return &channelInfo, nil } body, err := ioutil.ReadAll(resp.Body) if err != nil { - return nil, err + return nil, buildErrorResponse(err.Error()) } var respErr models.Error err = json.Unmarshal(body, &respErr) if err != nil { - return nil, err + return nil, buildErrorResponse(err.Error()) } - return &respErr, nil + return nil, &respErr } -func delete(uri string, api APIService) (*models.Error, error) { +func delete(uri string, api APIService) (*models.ChannelInfo, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("DELETE", uri, nil) @@ -58,7 +69,7 @@ func delete(uri string, api APIService) (*models.Error, error) { resp, err := api.getHTTPClient().Do(req) if err != nil { - return nil, err + return nil, buildErrorResponse(err.Error()) } defer resp.Body.Close() @@ -68,16 +79,16 @@ func delete(uri string, api APIService) (*models.Error, error) { body, err := ioutil.ReadAll(resp.Body) if err != nil { - return nil, err + return nil, buildErrorResponse(err.Error()) } var respErr models.Error err = json.Unmarshal(body, &respErr) if err != nil { - return nil, err + return nil, buildErrorResponse(err.Error()) } - return &respErr, nil + return nil, &respErr } func buildErrorResponse(errorStr string) *models.Error { diff --git a/pkg/api/utils/authUtils.go b/pkg/api/utils/authUtils.go index b976930c..de68401e 100644 --- a/pkg/api/utils/authUtils.go +++ b/pkg/api/utils/authUtils.go @@ -62,6 +62,6 @@ func (p *AuthHandler) getHTTPClient() *http.Client { } // Authenticate creates a new project -func (p *AuthHandler) Authenticate() (*models.Error, error) { +func (p *AuthHandler) Authenticate() (*models.ChannelInfo, *models.Error) { return post(p.Scheme+"://"+p.getBaseURL()+"/v1/auth", nil, p) } diff --git a/pkg/api/utils/projectUtils.go b/pkg/api/utils/projectUtils.go index 24c513d0..0d87a973 100644 --- a/pkg/api/utils/projectUtils.go +++ b/pkg/api/utils/projectUtils.go @@ -65,16 +65,16 @@ func (p *ProjectHandler) getHTTPClient() *http.Client { } // CreateProject creates a new project -func (p *ProjectHandler) CreateProject(project models.Project) (*models.Error, error) { +func (p *ProjectHandler) CreateProject(project models.Project) (*models.ChannelInfo, *models.Error) { bodyStr, err := json.Marshal(project) if err != nil { - return nil, err + return nil, buildErrorResponse(err.Error()) } return post(p.Scheme+"://"+p.getBaseURL()+"/v1/project", bodyStr, p) } // DeleteProject deletes a project -func (p *ProjectHandler) DeleteProject(project models.Project) (*models.Error, error) { +func (p *ProjectHandler) DeleteProject(project models.Project) (*models.ChannelInfo, *models.Error) { return delete(p.Scheme+"://"+p.getBaseURL()+"/v1/project/"+project.Name, p) } diff --git a/pkg/api/utils/serviceUtils.go b/pkg/api/utils/serviceUtils.go index aca84204..b991c32a 100644 --- a/pkg/api/utils/serviceUtils.go +++ b/pkg/api/utils/serviceUtils.go @@ -63,10 +63,10 @@ func (s *ServiceHandler) getHTTPClient() *http.Client { } // CreateService creates a new service -func (s *ServiceHandler) CreateService(project string, service models.Service) (*models.Error, error) { +func (s *ServiceHandler) CreateService(project string, service models.Service) (*models.ChannelInfo, *models.Error) { bodyStr, err := json.Marshal(service) if err != nil { - return nil, err + return nil, buildErrorResponse(err.Error()) } return post(s.Scheme+"://"+s.getBaseURL()+"/v1/project/"+project+"/service", bodyStr, s) } From b83c373d7ab9599984c9c13ee659dce5eb5bb03c Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 14 Oct 2019 10:22:28 +0200 Subject: [PATCH 17/65] #893 Use channel info model from api --- pkg/utils/websocketutil.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/pkg/utils/websocketutil.go b/pkg/utils/websocketutil.go index 92d9916f..494ee784 100644 --- a/pkg/utils/websocketutil.go +++ b/pkg/utils/websocketutil.go @@ -6,6 +6,8 @@ import ( "net/url" "time" + apimodels "github.com/keptn/go-utils/pkg/api/models" + "github.com/cloudevents/sdk-go/pkg/cloudevents" "github.com/cloudevents/sdk-go/pkg/cloudevents/types" "github.com/google/uuid" @@ -38,13 +40,7 @@ type IncompleteCE struct { // ConnectionData stores ChannelInfo and Success data type ConnectionData struct { - ChannelInfo ChannelInfo `json:"channelInfo"` -} - -// ChannelInfo stores a token and a channelID used for opening the websocket -type ChannelInfo struct { - Token string `json:"token"` - ChannelID string `json:"channelID"` + ChannelInfo apimodels.ChannelInfo `json:"channelInfo"` } // OpenWS opens a websocket @@ -54,7 +50,7 @@ func OpenWS(connData ConnectionData, apiEndPoint url.URL) (*websocket.Conn, *htt wsEndPoint.Scheme = "ws" header := http.Header{} - header.Add("Token", connData.ChannelInfo.Token) + header.Add("Token", *connData.ChannelInfo.Token) dialer := websocket.DefaultDialer dialer.HandshakeTimeout = 120 * time.Second From 170989113e042ea5b6cb16469632ff51e6611475 Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 14 Oct 2019 16:28:20 +0200 Subject: [PATCH 18/65] #893 Fixed comment --- pkg/api/utils/authUtils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/api/utils/authUtils.go b/pkg/api/utils/authUtils.go index de68401e..a9075e02 100644 --- a/pkg/api/utils/authUtils.go +++ b/pkg/api/utils/authUtils.go @@ -61,7 +61,7 @@ func (p *AuthHandler) getHTTPClient() *http.Client { return p.HTTPClient } -// Authenticate creates a new project +// Authenticate authenticates the client request against the server func (p *AuthHandler) Authenticate() (*models.ChannelInfo, *models.Error) { return post(p.Scheme+"://"+p.getBaseURL()+"/v1/auth", nil, p) } From 9f212e243f6421eeada80d4b709c4961f3b1a465 Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 14 Oct 2019 17:46:05 +0200 Subject: [PATCH 19/65] #893 Catch empty byte array --- pkg/api/utils/apiServiceUtils.go | 27 +++++++++++++-------------- pkg/api/utils/projectUtils.go | 28 ++++++++++++++-------------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index fef988bf..e04cd9b9 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -31,24 +31,23 @@ func post(uri string, data []byte, api APIService) (*models.ChannelInfo, *models } defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + if resp.StatusCode == 200 { - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, buildErrorResponse(err.Error()) - } - var channelInfo models.ChannelInfo - err = json.Unmarshal(body, &channelInfo) - if err != nil { - return nil, buildErrorResponse(err.Error()) + if len(body) > 0 { + var channelInfo models.ChannelInfo + err = json.Unmarshal(body, &channelInfo) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + return &channelInfo, nil } - return &channelInfo, nil - } - - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, buildErrorResponse(err.Error()) + return nil, nil } var respErr models.Error diff --git a/pkg/api/utils/projectUtils.go b/pkg/api/utils/projectUtils.go index 0d87a973..6cb225bc 100644 --- a/pkg/api/utils/projectUtils.go +++ b/pkg/api/utils/projectUtils.go @@ -96,24 +96,24 @@ func get(uri string, api APIService) (*models.Project, *models.Error) { } defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + if resp.StatusCode >= 200 && resp.StatusCode < 300 { - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, buildErrorResponse(err.Error()) - } - var respProject models.Project - err = json.Unmarshal(body, &respProject) - if err != nil { - return nil, buildErrorResponse(err.Error()) - } + if len(body) > 0 { + var respProject models.Project + err = json.Unmarshal(body, &respProject) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } - return &respProject, nil - } + return &respProject, nil + } - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, buildErrorResponse(err.Error()) + return nil, nil } var respErr models.Error From e7f48d09e6b10f9a21cc1ba2bd31764892257fda Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 14 Oct 2019 18:07:09 +0200 Subject: [PATCH 20/65] #893 Return channelInfo for delete command --- pkg/api/utils/apiServiceUtils.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index e04cd9b9..5ccf7108 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -72,15 +72,24 @@ func delete(uri string, api APIService) (*models.ChannelInfo, *models.Error) { } defer resp.Body.Close() - if resp.StatusCode >= 200 && resp.StatusCode < 300 { - return nil, nil - } - body, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, buildErrorResponse(err.Error()) } + if resp.StatusCode >= 200 && resp.StatusCode < 300 { + if len(body) > 0 { + var channelInfo models.ChannelInfo + err = json.Unmarshal(body, &channelInfo) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + return &channelInfo, nil + } + + return nil, nil + } + var respErr models.Error err = json.Unmarshal(body, &respErr) if err != nil { From 461ab6be2044edb8fde519030fbd645330c60c47 Mon Sep 17 00:00:00 2001 From: michHam Date: Mon, 14 Oct 2019 18:55:04 +0200 Subject: [PATCH 21/65] successful build with modules first working modules version --- Gopkg.lock | 957 ----------------------------------------------------- Gopkg.toml | 53 --- go.mod | 36 ++ go.sum | 463 ++++++++++++++++++++++++++ 4 files changed, 499 insertions(+), 1010 deletions(-) delete mode 100644 Gopkg.lock delete mode 100644 Gopkg.toml create mode 100644 go.mod create mode 100644 go.sum diff --git a/Gopkg.lock b/Gopkg.lock deleted file mode 100644 index 80a273ba..00000000 --- a/Gopkg.lock +++ /dev/null @@ -1,957 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[[projects]] - digest = "1:26ee1e365ea8f312ee11e170fc6675bac0dd3d4adf2406e753d0a43527e1afb8" - name = "cloud.google.com/go" - packages = ["compute/metadata"] - pruneopts = "UT" - revision = "264def2dd949cdb8a803bb9f50fa29a67b798a6a" - version = "v0.46.3" - -[[projects]] - digest = "1:7e11a0a4c2d7792a108629e27c83ff4397b950dede4ccce23f99639bfa84846b" - name = "github.com/Azure/go-autorest" - packages = [ - "autorest", - "autorest/adal", - "autorest/azure", - "autorest/date", - "version", - ] - pruneopts = "UT" - revision = "bca49d5b51a50dc5bb17bbf6204c711c6dbded06" - -[[projects]] - digest = "1:9f3b30d9f8e0d7040f729b82dcbc8f0dead820a133b3147ce355fc451f32d761" - name = "github.com/BurntSushi/toml" - packages = ["."] - pruneopts = "UT" - revision = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005" - version = "v0.3.1" - -[[projects]] - digest = "1:3b10c6fd33854dc41de2cf78b7bae105da94c2789b6fa5b9ac9e593ea43484ac" - name = "github.com/Masterminds/goutils" - packages = ["."] - pruneopts = "UT" - revision = "41ac8693c5c10a92ea1ff5ac3a7f95646f6123b0" - version = "v1.1.0" - -[[projects]] - digest = "1:d37f34e1e231ee4b8657d1b6153e2696b1d7341850f648f5d78151d3bc1f677b" - name = "github.com/Masterminds/semver" - packages = ["."] - pruneopts = "UT" - revision = "fe7c21038085e01e67044ec1efe3afb1eaa59f75" - version = "v3.0.1" - -[[projects]] - digest = "1:ab506cfc00b11d6d406789c15abb0b341e8db076640e3f5255615a7e327398c1" - name = "github.com/Masterminds/sprig" - packages = ["."] - pruneopts = "UT" - revision = "258b00ffa7318e8b109a141349980ffbd30a35db" - version = "v2.20.0" - -[[projects]] - digest = "1:a2682518d905d662d984ef9959984ef87cecb777d379bfa9d9fe40e78069b3e4" - name = "github.com/PuerkitoBio/purell" - packages = ["."] - pruneopts = "UT" - revision = "44968752391892e1b0d0b821ee79e9a85fa13049" - version = "v1.1.1" - -[[projects]] - branch = "master" - digest = "1:c739832d67eb1e9cc478a19cc1a1ccd78df0397bf8a32978b759152e205f644b" - name = "github.com/PuerkitoBio/urlesc" - packages = ["."] - pruneopts = "UT" - revision = "de5bf2ad457846296e2031421a34e2568e304e35" - -[[projects]] - digest = "1:320e7ead93de9fd2b0e59b50fd92a4d50c1f8ab455d96bc2eb083267453a9709" - name = "github.com/asaskevich/govalidator" - packages = ["."] - pruneopts = "UT" - revision = "ccb8e960c48f04d6935e72476ae4a51028f9e22f" - version = "v9" - -[[projects]] - digest = "1:c3e52bee89f586d4fc5e4594d645b892ee3f7a195c3f977e4f669f17bf67bee1" - name = "github.com/cloudevents/sdk-go" - packages = [ - "pkg/cloudevents", - "pkg/cloudevents/datacodec", - "pkg/cloudevents/datacodec/json", - "pkg/cloudevents/datacodec/xml", - "pkg/cloudevents/observability", - "pkg/cloudevents/types", - ] - pruneopts = "UT" - revision = "56931988abe3adf6792b5c6e575ee5f573e9ccbc" - version = "0.7.0" - -[[projects]] - digest = "1:ec66ad050342a3573ed2f5a4337d51b4c6d5d2a717cc6c9ecf86b081235a5759" - name = "github.com/cyphar/filepath-securejoin" - packages = ["."] - pruneopts = "UT" - revision = "a261ee33d7a517f054effbf451841abaafe3e0fd" - version = "v0.2.2" - -[[projects]] - digest = "1:76dc72490af7174349349838f2fe118996381b31ea83243812a97e5a0fd5ed55" - name = "github.com/dgrijalva/jwt-go" - packages = ["."] - pruneopts = "UT" - revision = "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e" - version = "v3.2.0" - -[[projects]] - digest = "1:b498b36dbb2b306d1c5205ee5236c9e60352be8f9eea9bf08186723a9f75b4f3" - name = "github.com/emirpasic/gods" - packages = [ - "containers", - "lists", - "lists/arraylist", - "trees", - "trees/binaryheap", - "utils", - ] - pruneopts = "UT" - revision = "1615341f118ae12f353cc8a983f35b584342c9b3" - version = "v1.12.0" - -[[projects]] - digest = "1:2cd7915ab26ede7d95b8749e6b1f933f1c6d5398030684e6505940a10f31cfda" - name = "github.com/ghodss/yaml" - packages = ["."] - pruneopts = "UT" - revision = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7" - version = "v1.0.0" - -[[projects]] - digest = "1:adbc24353f685b2045b5881bb15f48cec5267fc70a5ecaf2cf60b1241a43c83a" - name = "github.com/go-openapi/analysis" - packages = [ - ".", - "internal", - ] - pruneopts = "UT" - revision = "9864a87593df5ab83eac00921906932d1d77fae2" - version = "v0.19.5" - -[[projects]] - digest = "1:3bca1e4623bc7e1f9849a14fe730c093953727991f0592be3dad0168cb67758e" - name = "github.com/go-openapi/errors" - packages = ["."] - pruneopts = "UT" - revision = "0b2a0a1f89aa2eec2d13e03cd80ab0fdaf01f8ce" - version = "v0.19.2" - -[[projects]] - digest = "1:ed15647db08b6d63666bf9755d337725960c302bbfa5e23754b4b915a4797e42" - name = "github.com/go-openapi/jsonpointer" - packages = ["."] - pruneopts = "UT" - revision = "ed123515f087412cd7ef02e49b0b0a5e6a79a360" - version = "v0.19.3" - -[[projects]] - digest = "1:451fe53c19443c6941be5d4295edc973a3eb16baccb940efee94284024be03b0" - name = "github.com/go-openapi/jsonreference" - packages = ["."] - pruneopts = "UT" - revision = "82f31475a8f7a12bc26962f6e26ceade8ea6f66a" - version = "v0.19.3" - -[[projects]] - digest = "1:2367345ad7529f1116a54e138834d3081bf5d65688a8ce5eb2f16b64fbec7907" - name = "github.com/go-openapi/loads" - packages = ["."] - pruneopts = "UT" - revision = "c763e5411fc5c14c69d5d44f02b9d92e6f122d2c" - version = "v0.19.3" - -[[projects]] - digest = "1:ec6d89807fef4f4a78d7ce1ea6ef22f30b2efb974721e07773cf8c40e2e21d14" - name = "github.com/go-openapi/runtime" - packages = ["."] - pruneopts = "UT" - revision = "c909caa338861d0afbe126b6706e048e54e40f82" - version = "v0.19.6" - -[[projects]] - digest = "1:c150e7fc0e12aec7e8b4161e12a4ce3e875290a2cf13a7ef5eed314653866838" - name = "github.com/go-openapi/spec" - packages = ["."] - pruneopts = "UT" - revision = "2223ab324566e4ace63ab69b9c8fff1b81a40eeb" - version = "v0.19.3" - -[[projects]] - digest = "1:787b399bfeddd801aca6144bd9928f4fe1d40eadcb09c59fcbd421cc528ea11c" - name = "github.com/go-openapi/strfmt" - packages = ["."] - pruneopts = "UT" - revision = "6faa644e1cdafc07f7b38eb06c1af5f92128f289" - version = "v0.19.3" - -[[projects]] - digest = "1:43d0f99f53acce97119181dcd592321084690c2d462c57680ccb4472ae084949" - name = "github.com/go-openapi/swag" - packages = ["."] - pruneopts = "UT" - revision = "c3d0f7896d589f3babb99eea24bbc7de98108e72" - version = "v0.19.5" - -[[projects]] - digest = "1:efb940175dd4cc8dd47377a856a2b96c6de0a5f53851464119bb940db0578489" - name = "github.com/go-openapi/validate" - packages = ["."] - pruneopts = "UT" - revision = "d8e712d21b877546d81182812b4a1ae10e42b03f" - version = "v0.19.3" - -[[projects]] - digest = "1:586ea76dbd0374d6fb649a91d70d652b7fe0ccffb8910a77468e7702e7901f3d" - name = "github.com/go-stack/stack" - packages = ["."] - pruneopts = "UT" - revision = "2fee6af1a9795aafbe0253a0cfbdf668e1fb8a9a" - version = "v1.8.0" - -[[projects]] - digest = "1:9ae31ce33b4bab257668963e844d98765b44160be4ee98cafc44637a213e530d" - name = "github.com/gobwas/glob" - packages = [ - ".", - "compiler", - "match", - "syntax", - "syntax/ast", - "syntax/lexer", - "util/runes", - "util/strings", - ] - pruneopts = "UT" - revision = "5ccd90ef52e1e632236f7326478d4faa74f99438" - version = "v0.2.3" - -[[projects]] - digest = "1:8a85f428bc6ebfa87f53216b6e43b52b30eccbcffcbd6b057a69ee16718a2248" - name = "github.com/gogo/protobuf" - packages = [ - "proto", - "sortkeys", - ] - pruneopts = "UT" - revision = "0ca988a254f991240804bf9821f3450d87ccbb1b" - version = "v1.3.0" - -[[projects]] - branch = "master" - digest = "1:1ba1d79f2810270045c328ae5d674321db34e3aae468eb4233883b473c5c0467" - name = "github.com/golang/glog" - packages = ["."] - pruneopts = "UT" - revision = "23def4e6c14b4da8ac2ed8007337bc5eb5007998" - -[[projects]] - branch = "master" - digest = "1:b7cb6054d3dff43b38ad2e92492f220f57ae6087ee797dca298139776749ace8" - name = "github.com/golang/groupcache" - packages = ["lru"] - pruneopts = "UT" - revision = "869f871628b6baa9cfbc11732cdf6546b17c1298" - -[[projects]] - digest = "1:f5ce1529abc1204444ec73779f44f94e2fa8fcdb7aca3c355b0c95947e4005c6" - name = "github.com/golang/protobuf" - packages = [ - "proto", - "ptypes", - "ptypes/any", - "ptypes/duration", - "ptypes/timestamp", - ] - pruneopts = "UT" - revision = "6c65a5562fc06764971b7c5d05c76c75e84bdbf7" - version = "v1.3.2" - -[[projects]] - digest = "1:0bfbe13936953a98ae3cfe8ed6670d396ad81edf069a806d2f6515d7bb6950df" - name = "github.com/google/btree" - packages = ["."] - pruneopts = "UT" - revision = "4030bb1f1f0c35b30ca7009e9ebd06849dd45306" - version = "v1.0.0" - -[[projects]] - digest = "1:a6181aca1fd5e27103f9a920876f29ac72854df7345a39f3b01e61c8c94cc8af" - name = "github.com/google/gofuzz" - packages = ["."] - pruneopts = "UT" - revision = "f140a6486e521aad38f5917de355cbf147cc0496" - version = "v1.0.0" - -[[projects]] - digest = "1:582b704bebaa06b48c29b0cec224a6058a09c86883aaddabde889cd1a5f73e1b" - name = "github.com/google/uuid" - packages = ["."] - pruneopts = "UT" - revision = "0cd6bf5da1e1c83f8b45653022c74f71af0538a4" - version = "v1.1.1" - -[[projects]] - digest = "1:ca4524b4855ded427c7003ec903a5c854f37e7b1e8e2a93277243462c5b753a8" - name = "github.com/googleapis/gnostic" - packages = [ - "OpenAPIv2", - "compiler", - "extensions", - ] - pruneopts = "UT" - revision = "ab0dd09aa10e2952b28e12ecd35681b20463ebab" - version = "v0.3.1" - -[[projects]] - digest = "1:98996125fe832b116f882df3e55624bc481c88b436728ecbdf477534f3eb639f" - name = "github.com/gophercloud/gophercloud" - packages = [ - ".", - "openstack", - "openstack/identity/v2/tenants", - "openstack/identity/v2/tokens", - "openstack/identity/v3/tokens", - "openstack/utils", - "pagination", - ] - pruneopts = "UT" - revision = "a84f8b330d669c6dff53ee9743a7579ac9541b69" - version = "v0.4.0" - -[[projects]] - digest = "1:e62657cca9badaa308d86e7716083e4c5933bb78e30a17743fc67f50be26f6f4" - name = "github.com/gorilla/websocket" - packages = ["."] - pruneopts = "UT" - revision = "c3e18be99d19e6b3e8f1559eea2c161a665c4b6b" - version = "v1.4.1" - -[[projects]] - branch = "master" - digest = "1:5fc0e23b254a1bd7d8d2d42fa093ba33471d08f52fe04afd3713adabb5888dc3" - name = "github.com/gregjones/httpcache" - packages = [ - ".", - "diskcache", - ] - pruneopts = "UT" - revision = "901d90724c7919163f472a9812253fb26761123d" - -[[projects]] - digest = "1:f9a5e090336881be43cfc1cf468330c1bdd60abdc9dd194e0b1ab69f4b94dd7c" - name = "github.com/huandu/xstrings" - packages = ["."] - pruneopts = "UT" - revision = "f02667b379e2fb5916c3cda2cf31e0eb885d79f8" - version = "v1.2.0" - -[[projects]] - digest = "1:a0cefd27d12712af4b5018dc7046f245e1e3b5760e2e848c30b171b570708f9b" - name = "github.com/imdario/mergo" - packages = ["."] - pruneopts = "UT" - revision = "7c29201646fa3de8506f701213473dd407f19646" - version = "v0.3.7" - -[[projects]] - branch = "master" - digest = "1:62fe3a7ea2050ecbd753a71889026f83d73329337ada66325cbafd5dea5f713d" - name = "github.com/jbenet/go-context" - packages = ["io"] - pruneopts = "UT" - revision = "d14ea06fba99483203c19d92cfcd13ebe73135f4" - -[[projects]] - digest = "1:709cd2a2c29cc9b89732f6c24846bbb9d6270f28ef5ef2128cc73bd0d6d7bff9" - name = "github.com/json-iterator/go" - packages = ["."] - pruneopts = "UT" - revision = "27518f6661eba504be5a7a9a9f6d9460d892ade3" - version = "v1.1.7" - -[[projects]] - digest = "1:fd7f169f32c221b096c74e756bda16fe22d3bb448bbf74042fd0700407a1f92f" - name = "github.com/kevinburke/ssh_config" - packages = ["."] - pruneopts = "UT" - revision = "6cfae18c12b8934b1afba3ce8159476fdef666ba" - version = "1.0" - -[[projects]] - digest = "1:927762c6729b4e72957ba3310e485ed09cf8451c5a637a52fd016a9fe09e7936" - name = "github.com/mailru/easyjson" - packages = [ - "buffer", - "jlexer", - "jwriter", - ] - pruneopts = "UT" - revision = "1b2b06f5f209fea48ff5922d8bfb2b9ed5d8f00b" - version = "v0.7.0" - -[[projects]] - digest = "1:5d231480e1c64a726869bc4142d270184c419749d34f167646baa21008eb0a79" - name = "github.com/mitchellh/go-homedir" - packages = ["."] - pruneopts = "UT" - revision = "af06845cf3004701891bf4fdb884bfe4920b3727" - version = "v1.1.0" - -[[projects]] - digest = "1:53bc4cd4914cd7cd52139990d5170d6dc99067ae31c56530621b18b35fc30318" - name = "github.com/mitchellh/mapstructure" - packages = ["."] - pruneopts = "UT" - revision = "3536a929edddb9a5b34bd6861dc4a9647cb459fe" - version = "v1.1.2" - -[[projects]] - digest = "1:33422d238f147d247752996a26574ac48dcf472976eda7f5134015f06bf16563" - name = "github.com/modern-go/concurrent" - packages = ["."] - pruneopts = "UT" - revision = "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94" - version = "1.0.3" - -[[projects]] - digest = "1:e32bdbdb7c377a07a9a46378290059822efdce5c8d96fe71940d87cb4f918855" - name = "github.com/modern-go/reflect2" - packages = ["."] - pruneopts = "UT" - revision = "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd" - version = "1.0.1" - -[[projects]] - branch = "master" - digest = "1:89da0f0574bc94cfd0ac8b59af67bf76cdd110d503df2721006b9f0492394333" - name = "github.com/petar/GoLLRB" - packages = ["llrb"] - pruneopts = "UT" - revision = "33fb24c13b99c46c93183c291836c573ac382536" - -[[projects]] - digest = "1:a8c2725121694dfbf6d552fb86fe6b46e3e7135ea05db580c28695b916162aad" - name = "github.com/peterbourgon/diskv" - packages = ["."] - pruneopts = "UT" - revision = "0be1b92a6df0e4f5cb0a5d15fb7f643d0ad93ce6" - version = "v3.0.0" - -[[projects]] - digest = "1:cf31692c14422fa27c83a05292eb5cbe0fb2775972e8f1f8446a71549bd8980b" - name = "github.com/pkg/errors" - packages = ["."] - pruneopts = "UT" - revision = "ba968bfe8b2f7e042a574c888954fccecfa385b4" - version = "v0.8.1" - -[[projects]] - digest = "1:d917313f309bda80d27274d53985bc65651f81a5b66b820749ac7f8ef061fd04" - name = "github.com/sergi/go-diff" - packages = ["diffmatchpatch"] - pruneopts = "UT" - revision = "1744e2970ca51c86172c8190fadad617561ed6e7" - version = "v1.0.0" - -[[projects]] - digest = "1:cc33ef8c2b75f80e588a96f9a70324c0487a02323bd5b2c5d639dda973edc844" - name = "github.com/spf13/pflag" - packages = ["."] - pruneopts = "UT" - revision = "e8f29969b682c41a730f8f08b76033b120498464" - version = "v1.0.4" - -[[projects]] - digest = "1:e4ed0afd67bf7be353921665cdac50834c867ff1bba153efc0745b755a7f5905" - name = "github.com/src-d/gcfg" - packages = [ - ".", - "scanner", - "token", - "types", - ] - pruneopts = "UT" - revision = "1ac3a1ac202429a54835fe8408a92880156b489d" - version = "v1.4.0" - -[[projects]] - digest = "1:172f94a6b3644a8f9e6b5e5b7fc9fe1e42d424f52a0300b2e7ab1e57db73f85d" - name = "github.com/xanzy/ssh-agent" - packages = ["."] - pruneopts = "UT" - revision = "6a3e2ff9e7c564f36873c2e36413f634534f1c44" - version = "v0.2.1" - -[[projects]] - digest = "1:8458b1a19a304c09d8f109a9463a419f703e3d1a81615afcaf3593dcce6749b9" - name = "go.mongodb.org/mongo-driver" - packages = [ - "bson", - "bson/bsoncodec", - "bson/bsonrw", - "bson/bsontype", - "bson/primitive", - "x/bsonx/bsoncore", - ] - pruneopts = "UT" - revision = "c520d023af0a89aec8b7f97717b52da270df2c38" - version = "v1.1.1" - -[[projects]] - digest = "1:74accd9945e4e51580cbe9b9428c228c1a7d37180cf2647ac33a1dff7197546a" - name = "go.opencensus.io" - packages = [ - ".", - "internal", - "internal/tagencoding", - "metric/metricdata", - "metric/metricproducer", - "resource", - "stats", - "stats/internal", - "stats/view", - "tag", - "trace", - "trace/internal", - "trace/tracestate", - ] - pruneopts = "UT" - revision = "59d1ce35d30f3c25ba762169da2a37eab6ffa041" - version = "v0.22.1" - -[[projects]] - branch = "master" - digest = "1:6a28ac2bed8418012e727a6c90d8dc04c3758e130ce04077f6d139bdd2c299e6" - name = "golang.org/x/crypto" - packages = [ - "cast5", - "curve25519", - "ed25519", - "ed25519/internal/edwards25519", - "internal/chacha20", - "internal/subtle", - "openpgp", - "openpgp/armor", - "openpgp/elgamal", - "openpgp/errors", - "openpgp/packet", - "openpgp/s2k", - "pbkdf2", - "poly1305", - "scrypt", - "ssh", - "ssh/agent", - "ssh/knownhosts", - "ssh/terminal", - ] - pruneopts = "UT" - revision = "227b76d455e791cb042b03e633e2f7fbcfdf74a5" - -[[projects]] - branch = "master" - digest = "1:dca3d6ac35036710d258ac83d4bd392883644c1416675b1b25376234825553c4" - name = "golang.org/x/net" - packages = [ - "context", - "context/ctxhttp", - "http/httpguts", - "http2", - "http2/hpack", - "idna", - "internal/socks", - "proxy", - ] - pruneopts = "UT" - revision = "c8589233b77dde5edd2205ba8a4fb5c9c2472556" - -[[projects]] - branch = "master" - digest = "1:31e33f76456ccf54819ab4a646cf01271d1a99d7712ab84bf1a9e7b61cd2031b" - name = "golang.org/x/oauth2" - packages = [ - ".", - "google", - "internal", - "jws", - "jwt", - ] - pruneopts = "UT" - revision = "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33" - -[[projects]] - branch = "master" - digest = "1:cef0763cedef8416ca6f6f13fa1aadd064736a730f056a7aac30b3b03a82990a" - name = "golang.org/x/sys" - packages = [ - "cpu", - "unix", - "windows", - ] - pruneopts = "UT" - revision = "b4ddaad3f8a36719f2b8bc6486c14cc468ca2bb5" - -[[projects]] - digest = "1:66a2f252a58b4fbbad0e4e180e1d85a83c222b6bce09c3dcdef3dc87c72eda7c" - name = "golang.org/x/text" - packages = [ - "collate", - "collate/build", - "internal/colltab", - "internal/gen", - "internal/language", - "internal/language/compact", - "internal/tag", - "internal/triegen", - "internal/ucd", - "language", - "secure/bidirule", - "transform", - "unicode/bidi", - "unicode/cldr", - "unicode/norm", - "unicode/rangetable", - "width", - ] - pruneopts = "UT" - revision = "342b2e1fbaa52c93f31447ad2c6abc048c63e475" - version = "v0.3.2" - -[[projects]] - branch = "master" - digest = "1:9fdc2b55e8e0fafe4b41884091e51e77344f7dc511c5acedcfd98200003bff90" - name = "golang.org/x/time" - packages = ["rate"] - pruneopts = "UT" - revision = "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef" - -[[projects]] - digest = "1:498b722d33dde4471e7d6e5d88a5e7132d2a8306fea5ff5ee82d1f418b4f41ed" - name = "google.golang.org/appengine" - packages = [ - ".", - "internal", - "internal/app_identity", - "internal/base", - "internal/datastore", - "internal/log", - "internal/modules", - "internal/remote_api", - "internal/urlfetch", - "urlfetch", - ] - pruneopts = "UT" - revision = "5f2a59506353b8d5ba8cbbcd9f3c1f41f1eaf079" - version = "v1.6.2" - -[[projects]] - digest = "1:2d1fbdc6777e5408cabeb02bf336305e724b925ff4546ded0fa8715a7267922a" - name = "gopkg.in/inf.v0" - packages = ["."] - pruneopts = "UT" - revision = "d2d2541c53f18d2a059457998ce2876cc8e67cbf" - version = "v0.9.1" - -[[projects]] - digest = "1:eb27cfcaf8d7e4155224dd0a209f1d0ab19784fef01be142638b78b7b6becd6b" - name = "gopkg.in/src-d/go-billy.v4" - packages = [ - ".", - "helper/chroot", - "helper/polyfill", - "osfs", - "util", - ] - pruneopts = "UT" - revision = "780403cfc1bc95ff4d07e7b26db40a6186c5326e" - version = "v4.3.2" - -[[projects]] - digest = "1:b2ad0a18676cd4d5b4b180709c1ea34dbabd74b3d7db0cc01e6d287d5f1e3a99" - name = "gopkg.in/src-d/go-git.v4" - packages = [ - ".", - "config", - "internal/revision", - "internal/url", - "plumbing", - "plumbing/cache", - "plumbing/filemode", - "plumbing/format/config", - "plumbing/format/diff", - "plumbing/format/gitignore", - "plumbing/format/idxfile", - "plumbing/format/index", - "plumbing/format/objfile", - "plumbing/format/packfile", - "plumbing/format/pktline", - "plumbing/object", - "plumbing/protocol/packp", - "plumbing/protocol/packp/capability", - "plumbing/protocol/packp/sideband", - "plumbing/revlist", - "plumbing/storer", - "plumbing/transport", - "plumbing/transport/client", - "plumbing/transport/file", - "plumbing/transport/git", - "plumbing/transport/http", - "plumbing/transport/internal/common", - "plumbing/transport/server", - "plumbing/transport/ssh", - "storage", - "storage/filesystem", - "storage/filesystem/dotgit", - "storage/memory", - "utils/binary", - "utils/diff", - "utils/ioutil", - "utils/merkletrie", - "utils/merkletrie/filesystem", - "utils/merkletrie/index", - "utils/merkletrie/internal/frame", - "utils/merkletrie/noder", - ] - pruneopts = "UT" - revision = "0d1a009cbb604db18be960db5f1525b99a55d727" - version = "v4.13.1" - -[[projects]] - digest = "1:78d374b493e747afa9fbb2119687e3740a7fb8d0ebabddfef0a012593aaecbb3" - name = "gopkg.in/warnings.v0" - packages = ["."] - pruneopts = "UT" - revision = "ec4a0fea49c7b46c2aeb0b51aac55779c607e52b" - version = "v0.1.2" - -[[projects]] - digest = "1:4d2e5a73dc1500038e504a8d78b986630e3626dc027bc030ba5c75da257cdb96" - name = "gopkg.in/yaml.v2" - packages = ["."] - pruneopts = "UT" - revision = "51d6538a90f86fe93ac480b35f37b2be17fef232" - version = "v2.2.2" - -[[projects]] - digest = "1:910ec974550174f4ca48b9f4a3caec16b693e584c3762dc726dc0dcf28f8e318" - name = "k8s.io/api" - packages = [ - "admissionregistration/v1alpha1", - "admissionregistration/v1beta1", - "apps/v1", - "apps/v1beta1", - "apps/v1beta2", - "authentication/v1", - "authentication/v1beta1", - "authorization/v1", - "authorization/v1beta1", - "autoscaling/v1", - "autoscaling/v2beta1", - "autoscaling/v2beta2", - "batch/v1", - "batch/v1beta1", - "batch/v2alpha1", - "certificates/v1beta1", - "coordination/v1beta1", - "core/v1", - "events/v1beta1", - "extensions/v1beta1", - "networking/v1", - "policy/v1beta1", - "rbac/v1", - "rbac/v1alpha1", - "rbac/v1beta1", - "scheduling/v1alpha1", - "scheduling/v1beta1", - "settings/v1alpha1", - "storage/v1", - "storage/v1alpha1", - "storage/v1beta1", - ] - pruneopts = "UT" - revision = "fd83cbc87e7632ccd8bbab63d2b673d4e0c631cc" - version = "kubernetes-1.12.0" - -[[projects]] - digest = "1:0ac15d4614bef5c0639daeb593775c0080cd7ac0e312f43c5cdde936d8790a57" - name = "k8s.io/apimachinery" - packages = [ - "pkg/api/errors", - "pkg/api/meta", - "pkg/api/resource", - "pkg/apis/meta/v1", - "pkg/apis/meta/v1/unstructured", - "pkg/apis/meta/v1beta1", - "pkg/conversion", - "pkg/conversion/queryparams", - "pkg/fields", - "pkg/labels", - "pkg/runtime", - "pkg/runtime/schema", - "pkg/runtime/serializer", - "pkg/runtime/serializer/json", - "pkg/runtime/serializer/protobuf", - "pkg/runtime/serializer/recognizer", - "pkg/runtime/serializer/streaming", - "pkg/runtime/serializer/versioning", - "pkg/selection", - "pkg/types", - "pkg/util/clock", - "pkg/util/errors", - "pkg/util/framer", - "pkg/util/intstr", - "pkg/util/json", - "pkg/util/naming", - "pkg/util/net", - "pkg/util/runtime", - "pkg/util/sets", - "pkg/util/validation", - "pkg/util/validation/field", - "pkg/util/wait", - "pkg/util/yaml", - "pkg/version", - "pkg/watch", - "third_party/forked/golang/reflect", - ] - pruneopts = "UT" - revision = "6dd46049f39503a1fc8d65de4bd566829e95faff" - version = "kubernetes-1.12.0" - -[[projects]] - digest = "1:685233f7e59ae3ddaa21b8f3685fa94983aabce6e3849b0d21b457136fb10532" - name = "k8s.io/client-go" - packages = [ - "discovery", - "kubernetes", - "kubernetes/scheme", - "kubernetes/typed/admissionregistration/v1alpha1", - "kubernetes/typed/admissionregistration/v1beta1", - "kubernetes/typed/apps/v1", - "kubernetes/typed/apps/v1beta1", - "kubernetes/typed/apps/v1beta2", - "kubernetes/typed/authentication/v1", - "kubernetes/typed/authentication/v1beta1", - "kubernetes/typed/authorization/v1", - "kubernetes/typed/authorization/v1beta1", - "kubernetes/typed/autoscaling/v1", - "kubernetes/typed/autoscaling/v2beta1", - "kubernetes/typed/autoscaling/v2beta2", - "kubernetes/typed/batch/v1", - "kubernetes/typed/batch/v1beta1", - "kubernetes/typed/batch/v2alpha1", - "kubernetes/typed/certificates/v1beta1", - "kubernetes/typed/coordination/v1beta1", - "kubernetes/typed/core/v1", - "kubernetes/typed/events/v1beta1", - "kubernetes/typed/extensions/v1beta1", - "kubernetes/typed/networking/v1", - "kubernetes/typed/policy/v1beta1", - "kubernetes/typed/rbac/v1", - "kubernetes/typed/rbac/v1alpha1", - "kubernetes/typed/rbac/v1beta1", - "kubernetes/typed/scheduling/v1alpha1", - "kubernetes/typed/scheduling/v1beta1", - "kubernetes/typed/settings/v1alpha1", - "kubernetes/typed/storage/v1", - "kubernetes/typed/storage/v1alpha1", - "kubernetes/typed/storage/v1beta1", - "pkg/apis/clientauthentication", - "pkg/apis/clientauthentication/v1alpha1", - "pkg/apis/clientauthentication/v1beta1", - "pkg/version", - "plugin/pkg/client/auth", - "plugin/pkg/client/auth/azure", - "plugin/pkg/client/auth/exec", - "plugin/pkg/client/auth/gcp", - "plugin/pkg/client/auth/oidc", - "plugin/pkg/client/auth/openstack", - "rest", - "rest/watch", - "third_party/forked/golang/template", - "tools/auth", - "tools/clientcmd", - "tools/clientcmd/api", - "tools/clientcmd/api/latest", - "tools/clientcmd/api/v1", - "tools/metrics", - "tools/reference", - "transport", - "util/cert", - "util/connrotation", - "util/flowcontrol", - "util/homedir", - "util/integer", - "util/jsonpath", - "util/retry", - ] - pruneopts = "UT" - revision = "1638f8970cefaa404ff3a62950f88b08292b2696" - version = "kubernetes-1.12.0" - -[[projects]] - digest = "1:93c14bd5adb4ad2cdce1a57fda1c648781c91999bfdb96db0768f631adc849f0" - name = "k8s.io/helm" - packages = [ - "pkg/chartutil", - "pkg/engine", - "pkg/ignore", - "pkg/proto/hapi/chart", - "pkg/proto/hapi/version", - "pkg/renderutil", - "pkg/sympath", - "pkg/timeconv", - "pkg/version", - ] - pruneopts = "UT" - revision = "0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085" - version = "v2.14.3" - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - input-imports = [ - "github.com/Azure/go-autorest/autorest", - "github.com/cloudevents/sdk-go/pkg/cloudevents", - "github.com/cloudevents/sdk-go/pkg/cloudevents/types", - "github.com/go-openapi/errors", - "github.com/go-openapi/strfmt", - "github.com/go-openapi/swag", - "github.com/go-openapi/validate", - "github.com/google/uuid", - "github.com/gorilla/websocket", - "gopkg.in/src-d/go-git.v4", - "gopkg.in/src-d/go-git.v4/config", - "gopkg.in/src-d/go-git.v4/plumbing", - "gopkg.in/src-d/go-git.v4/plumbing/transport/http", - "gopkg.in/yaml.v2", - "k8s.io/api/apps/v1", - "k8s.io/api/core/v1", - "k8s.io/apimachinery/pkg/apis/meta/v1", - "k8s.io/apimachinery/pkg/util/yaml", - "k8s.io/client-go/kubernetes", - "k8s.io/client-go/kubernetes/typed/core/v1", - "k8s.io/client-go/plugin/pkg/client/auth", - "k8s.io/client-go/rest", - "k8s.io/client-go/tools/clientcmd", - "k8s.io/client-go/util/retry", - "k8s.io/helm/pkg/chartutil", - "k8s.io/helm/pkg/proto/hapi/chart", - "k8s.io/helm/pkg/renderutil", - "k8s.io/helm/pkg/timeconv", - ] - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml deleted file mode 100644 index 5b563dcf..00000000 --- a/Gopkg.toml +++ /dev/null @@ -1,53 +0,0 @@ -# Gopkg.toml example -# -# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html -# for detailed Gopkg.toml documentation. -# -# required = ["github.com/user/thing/cmd/thing"] -# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] -# -# [[constraint]] -# name = "github.com/user/project" -# version = "1.0.0" -# -# [[constraint]] -# name = "github.com/user/project2" -# branch = "dev" -# source = "github.com/myfork/project2" -# -# [[override]] -# name = "github.com/x/y" -# version = "2.4.0" -# -# [prune] -# non-go = false -# go-tests = true -# unused-packages = true - -[[constraint]] - name = "gopkg.in/src-d/go-git.v4" - version = "4.11.0" - -[[constraint]] - name = "k8s.io/client-go" - version = "kubernetes-1.12.0" - -[[constraint]] - name = "k8s.io/api" - version = "kubernetes-1.12.0" - -[[constraint]] - name = "k8s.io/apimachinery" - version = "kubernetes-1.12.0" - -[[constraint]] - name = "github.com/cloudevents/sdk-go" - version = "0.7.0" - -[[override]] - name = "github.com/Azure/go-autorest" - revision = "bca49d5b51a50dc5bb17bbf6204c711c6dbded06" - -[prune] - go-tests = true - unused-packages = true \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 00000000..9982d40f --- /dev/null +++ b/go.mod @@ -0,0 +1,36 @@ +module github.com/keptn/go-utils + +go 1.13 + +require ( + github.com/Azure/go-autorest/autorest v0.9.2 + github.com/Masterminds/goutils v1.1.0 // indirect + github.com/Masterminds/semver v1.5.0 // indirect + github.com/Masterminds/sprig v2.22.0+incompatible // indirect + github.com/cloudevents/sdk-go v0.9.2 + github.com/cyphar/filepath-securejoin v0.2.2 // indirect + github.com/go-openapi/errors v0.19.2 + github.com/go-openapi/strfmt v0.19.3 + github.com/go-openapi/swag v0.19.5 + github.com/go-openapi/validate v0.19.3 + github.com/gobwas/glob v0.2.3 // indirect + github.com/google/uuid v1.1.1 + github.com/gophercloud/gophercloud v0.5.0 // indirect + github.com/gorilla/websocket v1.4.1 + github.com/huandu/xstrings v1.2.0 // indirect + github.com/imdario/mergo v0.3.8 // indirect + github.com/mitchellh/copystructure v1.0.0 // indirect + gopkg.in/src-d/go-git.v4 v4.13.1 + gopkg.in/yaml.v2 v2.2.4 + k8s.io/api v0.0.0-20191003000013-35e20aa79eb8 + k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655 + k8s.io/client-go v0.0.0-20191003000419-f68efa97b39e + k8s.io/helm v2.14.3+incompatible + k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 // indirect +) + +replace ( + k8s.io/api => k8s.io/api v0.0.0-20191003000013-35e20aa79eb8 + k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655 + k8s.io/client-go => k8s.io/client-go v0.0.0-20191003000419-f68efa97b39e +) diff --git a/go.sum b/go.sum new file mode 100644 index 00000000..dfb23abf --- /dev/null +++ b/go.sum @@ -0,0 +1,463 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.40.0 h1:FjSY7bOj+WzJe6TZRVtXI2b9kAYvtNg4lMbcH2+MUkk= +cloud.google.com/go v0.40.0/go.mod h1:Tk58MuI9rbLMKlAjeO/bDnteAx7tX2gJIXw4T5Jwlro= +contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= +contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= +github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/go-autorest/autorest v0.2.0/go.mod h1:AKyIcETwSUFxIcs/Wnq/C+kwCtlEYGUVd7FPNb2slmg= +github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest v0.9.2 h1:6AWuh3uWrsZJcNoCHrCF/+g4aKPCU39kaMO6/qrnK/4= +github.com/Azure/go-autorest/autorest v0.9.2/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest/adal v0.1.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= +github.com/Azure/go-autorest/autorest/adal v0.5.0 h1:q2gDruN08/guU9vAjuPWff0+QIrpH6ediguzdAzXAUU= +github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= +github.com/Azure/go-autorest/autorest/date v0.1.0 h1:YGrhWfrgtFs84+h0o46rJrlmsZtyZRg470CqAXTZaGM= +github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.2.0 h1:Ww5g4zThfD/6cLb4z6xxgeyDa7QDkizMkJKe0ysZXp0= +github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= +github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= +github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= +github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvdeRAgDr0izn4z5Ij88= +github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= +github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= +github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= +github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= +github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= +github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudevents/sdk-go v0.9.2 h1:ip6RZ6NrRvFeN5p/6LxojEorXRT4rTgsWlBDMY7l5Mc= +github.com/cloudevents/sdk-go v0.9.2/go.mod h1:5aANaSw5UprzGU2azTF0V/yjeIIQhpf01jRjTTU26nc= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= +github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= +github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= +github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= +github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= +github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= +github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= +github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= +github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= +github.com/go-openapi/analysis v0.19.4 h1:1TjOzrWkj+9BrjnM1yPAICbaoC0FyfD49oVkTBrSSa0= +github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= +github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= +github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= +github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY= +github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= +github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= +github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= +github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= +github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= +github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= +github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= +github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= +github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.19.2 h1:rf5ArTHmIJxyV5Oiks+Su0mUens1+AjpkPoWr5xFRcI= +github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= +github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= +github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= +github.com/go-openapi/runtime v0.19.4 h1:csnOgcgAiuGoM/Po7PEpKDoNulCcF3FGbSnbHfxgjMI= +github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= +github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= +github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= +github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= +github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= +github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= +github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= +github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= +github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= +github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= +github.com/go-openapi/strfmt v0.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA= +github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= +github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= +github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= +github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= +github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= +github.com/go-openapi/validate v0.19.3 h1:PAH/2DylwWcIU1s0Y7k3yNmeAgWOcKrNE2Q7Ww/kCg4= +github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= +github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1yIonGp9761ExpPPV1ui0SAC59Yube9k= +github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= +github.com/gophercloud/gophercloud v0.5.0 h1:uM4HalWpEdxORniBrzicAtpYNTk45p5QLLS7zwc1uAU= +github.com/gophercloud/gophercloud v0.5.0/go.mod h1:b1k/BkBA9smzYde6p6zYLIe5JNAEoJzUWaIRh+9A/j0= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0= +github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= +github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= +github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= +github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= +github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= +github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +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 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/nats-io/jwt v0.2.6/go.mod h1:mQxQ0uHQ9FhEVPIcTSKwx2lqZEpXWWcCgA7R6NrWvvY= +github.com/nats-io/nats-server/v2 v2.0.0/go.mod h1:RyVdsHHvY4B6c9pWG+uRLpZ0h0XsqiuKp2XCTurP5LI= +github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= +github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= +github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= +github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= +go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.1.1 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs= +go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e h1:D5TXcfTk7xF7hvieo4QErS3qqCB4teTffacDWr7CI+0= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20191004055002-72853e10c5a3/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o= +gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= +gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= +gopkg.in/src-d/go-git-fixtures.v3 v3.5.0 h1:ivZFOIltbce2Mo8IjzUHAFoq/IylO9WHhNOAJK+LsJg= +gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= +gopkg.in/src-d/go-git.v4 v4.13.1 h1:SRtFyV8Kxc0UP7aCHcijOMQGPxHSmMOPrzulQWolkYE= +gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +k8s.io/api v0.0.0-20191003000013-35e20aa79eb8 h1:cJZ/+fVFIFQDkUewZeim5OhZ8X+h48lMtMsZgQMdxOo= +k8s.io/api v0.0.0-20191003000013-35e20aa79eb8/go.mod h1:uWuOHnjmNrtQomJrvEBg0c0HRNyQ+8KTEERVsK0PW48= +k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655 h1:CS1tBQz3HOXiseWZu6ZicKX361CZLT97UFnnPx0aqBw= +k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655/go.mod h1:nL6pwRT8NgfF8TT68DBI8uEePRt89cSvoXUVqbkWHq4= +k8s.io/client-go v0.0.0-20191003000419-f68efa97b39e h1:S7/BObCpTSVf9vlBdEs5hKNzLCq5FMha6bbmRoDGROU= +k8s.io/client-go v0.0.0-20191003000419-f68efa97b39e/go.mod h1:UBFA5lo8nEOepaxS9koNccX/38rYMI3pa1EA1gaFZNg= +k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/helm v2.14.3+incompatible h1:uzotTcZXa/b2SWVoUzM1xiCXVjI38TuxMujS/1s+3Gw= +k8s.io/helm v2.14.3+incompatible/go.mod h1:LZzlS4LQBHfciFOurYBFkCMTaZ0D1l+p0teMg7TSULI= +k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/klog v0.4.0 h1:lCJCxf/LIowc2IGS9TPjWDyXY4nOmdGdfcwwDQCOURQ= +k8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= +k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= +k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 h1:Gi+/O1saihwDqnlmC8Vhv1M5Sp4+rbOmK9TbsLn8ZEA= +k8s.io/utils v0.0.0-20191010214722-8d271d903fe4/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= +pack.ag/amqp v0.11.0/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= +sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= From 1797ff23cbb5bca6d26b6da47538b80209ab6600 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Tue, 15 Oct 2019 13:28:23 +0200 Subject: [PATCH 22/65] #462 Set Host of API --- pkg/api/utils/apiServiceUtils.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index 5ccf7108..257510b0 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -23,6 +23,7 @@ func post(uri string, data []byte, api APIService) (*models.ChannelInfo, *models http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("POST", uri, bytes.NewBuffer(data)) req.Header.Set("Content-Type", "application/json") + req.Host = "api.keptn" addAuthHeader(req, api) resp, err := api.getHTTPClient().Do(req) From b72f237f0048cd9b6ea335b37b9bc027a544e22c Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 15 Oct 2019 17:11:47 +0200 Subject: [PATCH 23/65] #949 Update of models and new eventContext model --- .../{channel_info.go => event_context.go} | 28 ++++---- pkg/api/models/keptn_context.go | 64 +++++++++++++++++++ pkg/api/models/project.go | 39 ++++++++++- pkg/api/models/service.go | 39 ++++++++++- 4 files changed, 152 insertions(+), 18 deletions(-) rename pkg/api/models/{channel_info.go => event_context.go} (59%) create mode 100644 pkg/api/models/keptn_context.go diff --git a/pkg/api/models/channel_info.go b/pkg/api/models/event_context.go similarity index 59% rename from pkg/api/models/channel_info.go rename to pkg/api/models/event_context.go index b0c7c711..aa89af1a 100644 --- a/pkg/api/models/channel_info.go +++ b/pkg/api/models/event_context.go @@ -13,24 +13,24 @@ import ( "github.com/go-openapi/validate" ) -// ChannelInfo channel info -// swagger:model channelInfo -type ChannelInfo struct { +// EventContext event context +// swagger:model eventContext +type EventContext struct { - // channel ID + // keptn context // Required: true - ChannelID *string `json:"channelID"` + KeptnContext *string `json:"keptnContext"` // token // Required: true Token *string `json:"token"` } -// Validate validates this channel info -func (m *ChannelInfo) Validate(formats strfmt.Registry) error { +// Validate validates this event context +func (m *EventContext) Validate(formats strfmt.Registry) error { var res []error - if err := m.validateChannelID(formats); err != nil { + if err := m.validateKeptnContext(formats); err != nil { res = append(res, err) } @@ -44,16 +44,16 @@ func (m *ChannelInfo) Validate(formats strfmt.Registry) error { return nil } -func (m *ChannelInfo) validateChannelID(formats strfmt.Registry) error { +func (m *EventContext) validateKeptnContext(formats strfmt.Registry) error { - if err := validate.Required("channelID", "body", m.ChannelID); err != nil { + if err := validate.Required("keptnContext", "body", m.KeptnContext); err != nil { return err } return nil } -func (m *ChannelInfo) validateToken(formats strfmt.Registry) error { +func (m *EventContext) validateToken(formats strfmt.Registry) error { if err := validate.Required("token", "body", m.Token); err != nil { return err @@ -63,7 +63,7 @@ func (m *ChannelInfo) validateToken(formats strfmt.Registry) error { } // MarshalBinary interface implementation -func (m *ChannelInfo) MarshalBinary() ([]byte, error) { +func (m *EventContext) MarshalBinary() ([]byte, error) { if m == nil { return nil, nil } @@ -71,8 +71,8 @@ func (m *ChannelInfo) MarshalBinary() ([]byte, error) { } // UnmarshalBinary interface implementation -func (m *ChannelInfo) UnmarshalBinary(b []byte) error { - var res ChannelInfo +func (m *EventContext) UnmarshalBinary(b []byte) error { + var res EventContext if err := swag.ReadJSON(b, &res); err != nil { return err } diff --git a/pkg/api/models/keptn_context.go b/pkg/api/models/keptn_context.go new file mode 100644 index 00000000..28ea1f23 --- /dev/null +++ b/pkg/api/models/keptn_context.go @@ -0,0 +1,64 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// KeptnContext keptn context +// swagger:model keptnContext +type KeptnContext struct { + + // keptn context + // Required: true + KeptnContext *string `json:"keptnContext"` +} + +// Validate validates this keptn context +func (m *KeptnContext) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateKeptnContext(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *KeptnContext) validateKeptnContext(formats strfmt.Registry) error { + + if err := validate.Required("keptnContext", "body", m.KeptnContext); err != nil { + return err + } + + return nil +} + +// MarshalBinary interface implementation +func (m *KeptnContext) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *KeptnContext) UnmarshalBinary(b []byte) error { + var res KeptnContext + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/api/models/project.go b/pkg/api/models/project.go index d7cac160..b9ff2b39 100644 --- a/pkg/api/models/project.go +++ b/pkg/api/models/project.go @@ -8,7 +8,9 @@ package models import ( strfmt "github.com/go-openapi/strfmt" + "github.com/go-openapi/errors" "github.com/go-openapi/swag" + "github.com/go-openapi/validate" ) // Project project @@ -25,14 +27,47 @@ type Project struct { GitUser string `json:"gitUser,omitempty"` // name - Name string `json:"name,omitempty"` + // Required: true + Name *string `json:"name"` // shipyard - Shipyard string `json:"shipyard,omitempty"` + // Required: true + Shipyard *string `json:"shipyard"` } // Validate validates this project func (m *Project) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateName(formats); err != nil { + res = append(res, err) + } + + if err := m.validateShipyard(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *Project) validateName(formats strfmt.Registry) error { + + if err := validate.Required("name", "body", m.Name); err != nil { + return err + } + + return nil +} + +func (m *Project) validateShipyard(formats strfmt.Registry) error { + + if err := validate.Required("shipyard", "body", m.Shipyard); err != nil { + return err + } + return nil } diff --git a/pkg/api/models/service.go b/pkg/api/models/service.go index 32f346f3..80e40deb 100644 --- a/pkg/api/models/service.go +++ b/pkg/api/models/service.go @@ -8,7 +8,9 @@ package models import ( strfmt "github.com/go-openapi/strfmt" + "github.com/go-openapi/errors" "github.com/go-openapi/swag" + "github.com/go-openapi/validate" ) // Service service @@ -19,14 +21,47 @@ type Service struct { DeploymentStrategies map[string]string `json:"deploymentStrategies,omitempty"` // helm chart - HelmChart string `json:"helmChart,omitempty"` + // Required: true + HelmChart *string `json:"helmChart"` // service name - ServiceName string `json:"serviceName,omitempty"` + // Required: true + ServiceName *string `json:"serviceName"` } // Validate validates this service func (m *Service) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateHelmChart(formats); err != nil { + res = append(res, err) + } + + if err := m.validateServiceName(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *Service) validateHelmChart(formats strfmt.Registry) error { + + if err := validate.Required("helmChart", "body", m.HelmChart); err != nil { + return err + } + + return nil +} + +func (m *Service) validateServiceName(formats strfmt.Registry) error { + + if err := validate.Required("serviceName", "body", m.ServiceName); err != nil { + return err + } + return nil } From 4f62e34406722263e832f1a815c7dda485b08a99 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 15 Oct 2019 18:40:08 +0200 Subject: [PATCH 24/65] #949 Use EventContext instead of ChannelInfo --- pkg/api/utils/apiServiceUtils.go | 16 ++++++++-------- pkg/api/utils/authUtils.go | 2 +- pkg/api/utils/projectUtils.go | 8 ++++---- pkg/api/utils/serviceUtils.go | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index 257510b0..e453e8b1 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -18,7 +18,7 @@ type APIService interface { getHTTPClient() *http.Client } -func post(uri string, data []byte, api APIService) (*models.ChannelInfo, *models.Error) { +func post(uri string, data []byte, api APIService) (*models.EventContext, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("POST", uri, bytes.NewBuffer(data)) @@ -40,12 +40,12 @@ func post(uri string, data []byte, api APIService) (*models.ChannelInfo, *models if resp.StatusCode == 200 { if len(body) > 0 { - var channelInfo models.ChannelInfo - err = json.Unmarshal(body, &channelInfo) + var eventContext models.EventContext + err = json.Unmarshal(body, &eventContext) if err != nil { return nil, buildErrorResponse(err.Error()) } - return &channelInfo, nil + return &eventContext, nil } return nil, nil @@ -60,7 +60,7 @@ func post(uri string, data []byte, api APIService) (*models.ChannelInfo, *models return nil, &respErr } -func delete(uri string, api APIService) (*models.ChannelInfo, *models.Error) { +func delete(uri string, api APIService) (*models.EventContext, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("DELETE", uri, nil) @@ -80,12 +80,12 @@ func delete(uri string, api APIService) (*models.ChannelInfo, *models.Error) { if resp.StatusCode >= 200 && resp.StatusCode < 300 { if len(body) > 0 { - var channelInfo models.ChannelInfo - err = json.Unmarshal(body, &channelInfo) + var eventContext models.EventContext + err = json.Unmarshal(body, &eventContext) if err != nil { return nil, buildErrorResponse(err.Error()) } - return &channelInfo, nil + return &eventContext, nil } return nil, nil diff --git a/pkg/api/utils/authUtils.go b/pkg/api/utils/authUtils.go index a9075e02..90e60460 100644 --- a/pkg/api/utils/authUtils.go +++ b/pkg/api/utils/authUtils.go @@ -62,6 +62,6 @@ func (p *AuthHandler) getHTTPClient() *http.Client { } // Authenticate authenticates the client request against the server -func (p *AuthHandler) Authenticate() (*models.ChannelInfo, *models.Error) { +func (p *AuthHandler) Authenticate() (*models.EventContext, *models.Error) { return post(p.Scheme+"://"+p.getBaseURL()+"/v1/auth", nil, p) } diff --git a/pkg/api/utils/projectUtils.go b/pkg/api/utils/projectUtils.go index 6cb225bc..56db9838 100644 --- a/pkg/api/utils/projectUtils.go +++ b/pkg/api/utils/projectUtils.go @@ -65,7 +65,7 @@ func (p *ProjectHandler) getHTTPClient() *http.Client { } // CreateProject creates a new project -func (p *ProjectHandler) CreateProject(project models.Project) (*models.ChannelInfo, *models.Error) { +func (p *ProjectHandler) CreateProject(project models.Project) (*models.EventContext, *models.Error) { bodyStr, err := json.Marshal(project) if err != nil { return nil, buildErrorResponse(err.Error()) @@ -74,13 +74,13 @@ func (p *ProjectHandler) CreateProject(project models.Project) (*models.ChannelI } // DeleteProject deletes a project -func (p *ProjectHandler) DeleteProject(project models.Project) (*models.ChannelInfo, *models.Error) { - return delete(p.Scheme+"://"+p.getBaseURL()+"/v1/project/"+project.Name, p) +func (p *ProjectHandler) DeleteProject(project models.Project) (*models.EventContext, *models.Error) { + return delete(p.Scheme+"://"+p.getBaseURL()+"/v1/project/"+*project.Name, p) } // GetProject returns a project func (p *ProjectHandler) GetProject(project models.Project) (*models.Project, *models.Error) { - return get(p.Scheme+"://"+p.getBaseURL()+"/v1/project/"+project.Name, p) + return get(p.Scheme+"://"+p.getBaseURL()+"/v1/project/"+*project.Name, p) } func get(uri string, api APIService) (*models.Project, *models.Error) { diff --git a/pkg/api/utils/serviceUtils.go b/pkg/api/utils/serviceUtils.go index b991c32a..04556a30 100644 --- a/pkg/api/utils/serviceUtils.go +++ b/pkg/api/utils/serviceUtils.go @@ -63,7 +63,7 @@ func (s *ServiceHandler) getHTTPClient() *http.Client { } // CreateService creates a new service -func (s *ServiceHandler) CreateService(project string, service models.Service) (*models.ChannelInfo, *models.Error) { +func (s *ServiceHandler) CreateService(project string, service models.Service) (*models.EventContext, *models.Error) { bodyStr, err := json.Marshal(service) if err != nil { return nil, buildErrorResponse(err.Error()) From 914e3c2163afaeb762356caf02ec4aa8835d7889 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 15 Oct 2019 19:00:05 +0200 Subject: [PATCH 25/65] #949 Use EventContext for WebSocket --- pkg/utils/websocketutil.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/utils/websocketutil.go b/pkg/utils/websocketutil.go index 494ee784..b77ba6e0 100644 --- a/pkg/utils/websocketutil.go +++ b/pkg/utils/websocketutil.go @@ -38,9 +38,9 @@ type IncompleteCE struct { ConnData ConnectionData `json:"data"` } -// ConnectionData stores ChannelInfo and Success data +// ConnectionData stores EventContext and Success data type ConnectionData struct { - ChannelInfo apimodels.ChannelInfo `json:"channelInfo"` + EventContext apimodels.EventContext `json:"eventContext"` } // OpenWS opens a websocket @@ -50,7 +50,7 @@ func OpenWS(connData ConnectionData, apiEndPoint url.URL) (*websocket.Conn, *htt wsEndPoint.Scheme = "ws" header := http.Header{} - header.Add("Token", *connData.ChannelInfo.Token) + header.Add("Token", *connData.EventContext.Token) dialer := websocket.DefaultDialer dialer.HandshakeTimeout = 120 * time.Second From 4a7794d260087dc5ea615db46930e45f1d2f249b Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 16 Oct 2019 08:03:59 +0200 Subject: [PATCH 26/65] #949 Provide evaluation start event type and data --- pkg/events/keptnEvents.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/events/keptnEvents.go b/pkg/events/keptnEvents.go index 45b7ea6c..cf47457c 100644 --- a/pkg/events/keptnEvents.go +++ b/pkg/events/keptnEvents.go @@ -35,13 +35,15 @@ const TestsFinishedEventType = "sh.keptn.event.tests.finished" // TestFinishedEventType_0_5_0_Compatible is a CloudEvent for indicating that tests have finished const TestFinishedEventType_0_5_0_Compatible = "sh.keptn.events.tests-finished" +// EvaluationStartEventType is a CloudEvent to trigger an evaluation step +const EvaluationStartEventType = "sh.keptn.event.evaluation.start" + // EvaluationDoneEventType is a CloudEvent for indicating that the evaluation has finished const EvaluationDoneEventType = "sh.keptn.events.evaluation-done" // DeploymentFinishedEventType is a CloudEvent for indicating that the deployment has finished const DeploymentFinishedEventType = "sh.keptn.events.deployment-finished" - // ProjectCreateEventData represents the data for creating a new project type ProjectCreateEventData struct { // Project is the name of the project @@ -90,6 +92,14 @@ type ConfigurationChangeEventData struct { DeploymentChanges []PropertyChange `json:"deploymentChanges,omitempty"` } +// EvaluationStartEventData represents the data for a evaluation start event +type EvaluationStartEventData struct { + // Project is the name of the project + Project string `json:"project"` + // Service is the name of the new service + Service string `json:"service"` +} + // TestsFinishedEventData represents the data for a test finished event type TestsFinishedEventData struct { // Project is the name of the project From 7aff092f9b69e3d10e201d6f6c234e89194de333 Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 16 Oct 2019 10:21:51 +0200 Subject: [PATCH 27/65] #949 Provide a util package for datastore --- pkg/datastore/models/error.go | 70 +++++ .../models/keptn_context_extended_c_e.go | 260 ++++++++++++++++++ pkg/datastore/utils/apiServiceUtils.go | 26 ++ pkg/datastore/utils/eventUtils.go | 95 +++++++ 4 files changed, 451 insertions(+) create mode 100644 pkg/datastore/models/error.go create mode 100644 pkg/datastore/models/keptn_context_extended_c_e.go create mode 100644 pkg/datastore/utils/apiServiceUtils.go create mode 100644 pkg/datastore/utils/eventUtils.go diff --git a/pkg/datastore/models/error.go b/pkg/datastore/models/error.go new file mode 100644 index 00000000..9a60acf0 --- /dev/null +++ b/pkg/datastore/models/error.go @@ -0,0 +1,70 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// Error error +// swagger:model error +type Error struct { + + // code + Code int64 `json:"code,omitempty"` + + // fields + Fields string `json:"fields,omitempty"` + + // message + // Required: true + Message *string `json:"message"` +} + +// Validate validates this error +func (m *Error) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateMessage(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *Error) validateMessage(formats strfmt.Registry) error { + + if err := validate.Required("message", "body", m.Message); err != nil { + return err + } + + return nil +} + +// MarshalBinary interface implementation +func (m *Error) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *Error) UnmarshalBinary(b []byte) error { + var res Error + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/datastore/models/keptn_context_extended_c_e.go b/pkg/datastore/models/keptn_context_extended_c_e.go new file mode 100644 index 00000000..3fedc286 --- /dev/null +++ b/pkg/datastore/models/keptn_context_extended_c_e.go @@ -0,0 +1,260 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// KeptnContextExtendedCE keptn context extended c e +// swagger:model KeptnContextExtendedCE +type KeptnContextExtendedCE struct { + + // contenttype + Contenttype string `json:"contenttype,omitempty"` + + // data + Data interface{} `json:"data,omitempty"` + + // extensions + Extensions interface{} `json:"extensions,omitempty"` + + // id + // Required: true + ID *string `json:"id"` + + // source + // Required: true + Source *string `json:"source"` + + // specversion + // Required: true + Specversion *string `json:"specversion"` + + // time + // Format: date-time + Time strfmt.DateTime `json:"time,omitempty"` + + // type + // Required: true + Type *string `json:"type"` + + // shkeptncontext + Shkeptncontext string `json:"shkeptncontext,omitempty"` +} + +// UnmarshalJSON unmarshals this object from a JSON structure +func (m *KeptnContextExtendedCE) UnmarshalJSON(raw []byte) error { + // AO0 + var dataAO0 struct { + Contenttype string `json:"contenttype,omitempty"` + + Data interface{} `json:"data,omitempty"` + + Extensions interface{} `json:"extensions,omitempty"` + + ID *string `json:"id"` + + Source *string `json:"source"` + + Specversion *string `json:"specversion"` + + Time strfmt.DateTime `json:"time,omitempty"` + + Type *string `json:"type"` + } + if err := swag.ReadJSON(raw, &dataAO0); err != nil { + return err + } + + m.Contenttype = dataAO0.Contenttype + + m.Data = dataAO0.Data + + m.Extensions = dataAO0.Extensions + + m.ID = dataAO0.ID + + m.Source = dataAO0.Source + + m.Specversion = dataAO0.Specversion + + m.Time = dataAO0.Time + + m.Type = dataAO0.Type + + // AO1 + var dataAO1 struct { + Shkeptncontext string `json:"shkeptncontext,omitempty"` + } + if err := swag.ReadJSON(raw, &dataAO1); err != nil { + return err + } + + m.Shkeptncontext = dataAO1.Shkeptncontext + + return nil +} + +// MarshalJSON marshals this object to a JSON structure +func (m KeptnContextExtendedCE) MarshalJSON() ([]byte, error) { + _parts := make([][]byte, 0, 2) + + var dataAO0 struct { + Contenttype string `json:"contenttype,omitempty"` + + Data interface{} `json:"data,omitempty"` + + Extensions interface{} `json:"extensions,omitempty"` + + ID *string `json:"id"` + + Source *string `json:"source"` + + Specversion *string `json:"specversion"` + + Time strfmt.DateTime `json:"time,omitempty"` + + Type *string `json:"type"` + } + + dataAO0.Contenttype = m.Contenttype + + dataAO0.Data = m.Data + + dataAO0.Extensions = m.Extensions + + dataAO0.ID = m.ID + + dataAO0.Source = m.Source + + dataAO0.Specversion = m.Specversion + + dataAO0.Time = m.Time + + dataAO0.Type = m.Type + + jsonDataAO0, errAO0 := swag.WriteJSON(dataAO0) + if errAO0 != nil { + return nil, errAO0 + } + _parts = append(_parts, jsonDataAO0) + + var dataAO1 struct { + Shkeptncontext string `json:"shkeptncontext,omitempty"` + } + + dataAO1.Shkeptncontext = m.Shkeptncontext + + jsonDataAO1, errAO1 := swag.WriteJSON(dataAO1) + if errAO1 != nil { + return nil, errAO1 + } + _parts = append(_parts, jsonDataAO1) + + return swag.ConcatJSON(_parts...), nil +} + +// Validate validates this keptn context extended c e +func (m *KeptnContextExtendedCE) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateID(formats); err != nil { + res = append(res, err) + } + + if err := m.validateSource(formats); err != nil { + res = append(res, err) + } + + if err := m.validateSpecversion(formats); err != nil { + res = append(res, err) + } + + if err := m.validateTime(formats); err != nil { + res = append(res, err) + } + + if err := m.validateType(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *KeptnContextExtendedCE) validateID(formats strfmt.Registry) error { + + if err := validate.Required("id", "body", m.ID); err != nil { + return err + } + + return nil +} + +func (m *KeptnContextExtendedCE) validateSource(formats strfmt.Registry) error { + + if err := validate.Required("source", "body", m.Source); err != nil { + return err + } + + return nil +} + +func (m *KeptnContextExtendedCE) validateSpecversion(formats strfmt.Registry) error { + + if err := validate.Required("specversion", "body", m.Specversion); err != nil { + return err + } + + return nil +} + +func (m *KeptnContextExtendedCE) validateTime(formats strfmt.Registry) error { + + if swag.IsZero(m.Time) { // not required + return nil + } + + if err := validate.FormatOf("time", "body", "date-time", m.Time.String(), formats); err != nil { + return err + } + + return nil +} + +func (m *KeptnContextExtendedCE) validateType(formats strfmt.Registry) error { + + if err := validate.Required("type", "body", m.Type); err != nil { + return err + } + + return nil +} + +// MarshalBinary interface implementation +func (m *KeptnContextExtendedCE) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *KeptnContextExtendedCE) UnmarshalBinary(b []byte) error { + var res KeptnContextExtendedCE + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/datastore/utils/apiServiceUtils.go b/pkg/datastore/utils/apiServiceUtils.go new file mode 100644 index 00000000..bf346484 --- /dev/null +++ b/pkg/datastore/utils/apiServiceUtils.go @@ -0,0 +1,26 @@ +package utils + +import ( + "net/http" + + "github.com/keptn/go-utils/pkg/datastore/models" +) + +// APIService represents the interface for accessing the configuration service +type APIService interface { + getBaseURL() string + getAuthToken() string + getAuthHeader() string + getHTTPClient() *http.Client +} + +func buildErrorResponse(errorStr string) *models.Error { + err := models.Error{Message: &errorStr} + return &err +} + +func addAuthHeader(req *http.Request, api APIService) { + if api.getAuthHeader() != "" && api.getAuthToken() != "" { + req.Header.Set(api.getAuthHeader(), api.getAuthToken()) + } +} diff --git a/pkg/datastore/utils/eventUtils.go b/pkg/datastore/utils/eventUtils.go new file mode 100644 index 00000000..da40a095 --- /dev/null +++ b/pkg/datastore/utils/eventUtils.go @@ -0,0 +1,95 @@ +package utils + +import ( + "crypto/tls" + "encoding/json" + "io/ioutil" + "net/http" + "strings" + + "github.com/keptn/go-utils/pkg/datastore/models" +) + +// EventHandler handles event +type EventHandler struct { + BaseURL string + AuthToken string + AuthHeader string + HTTPClient *http.Client + Scheme string +} + +// NewEventHandler returns a new EventHandler +func NewEventHandler(baseURL string) *EventHandler { + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &EventHandler{ + BaseURL: baseURL, + AuthHeader: "", + AuthToken: "", + HTTPClient: &http.Client{}, + Scheme: "http", + } +} + +func (p *EventHandler) getBaseURL() string { + return p.BaseURL +} + +func (p *EventHandler) getAuthToken() string { + return p.AuthToken +} + +func (p *EventHandler) getAuthHeader() string { + return p.AuthHeader +} + +func (p *EventHandler) getHTTPClient() *http.Client { + return p.HTTPClient +} + +// GetEvent returns an event specified by keptnContext and eventType +func (p *EventHandler) GetEvent(keptnContext string, eventType string) (*models.KeptnContextExtendedCE, *models.Error) { + return get(p.Scheme+"://"+p.getBaseURL()+"/event?keptnContext="+keptnContext+"type="+eventType+"&pageSize=10", p) +} + +func get(uri string, api APIService) (*models.KeptnContextExtendedCE, *models.Error) { + + http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} + req, err := http.NewRequest("GET", uri, nil) + req.Header.Set("Content-Type", "application/json") + + resp, err := api.getHTTPClient().Do(req) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + if resp.StatusCode >= 200 && resp.StatusCode < 300 { + + if len(body) > 0 { + var cloudEvent models.KeptnContextExtendedCE + err = json.Unmarshal(body, &cloudEvent) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + return &cloudEvent, nil + } + + return nil, nil + } + + var respErr models.Error + err = json.Unmarshal(body, &respErr) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + return nil, &respErr +} From d41d8195c340c7dbdc7f97f4691bf169b7c9b35a Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 16 Oct 2019 11:26:51 +0200 Subject: [PATCH 28/65] #949 Update of dependencies --- Gopkg.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index c87b0a16..6aaa32cd 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -6,8 +6,8 @@ name = "cloud.google.com/go" packages = ["compute/metadata"] pruneopts = "UT" - revision = "264def2dd949cdb8a803bb9f50fa29a67b798a6a" - version = "v0.46.3" + revision = "cfe8f6d1fe6976d03af790d7a8b9bf6aa73287bd" + version = "v0.47.0" [[projects]] digest = "1:7e11a0a4c2d7792a108629e27c83ff4397b950dede4ccce23f99639bfa84846b" @@ -249,15 +249,15 @@ version = "v0.2.3" [[projects]] - digest = "1:8a85f428bc6ebfa87f53216b6e43b52b30eccbcffcbd6b057a69ee16718a2248" + digest = "1:582e25eccee928dc12416ea4c23b6dae8f3b5687730632aa1473ebebe80a2359" name = "github.com/gogo/protobuf" packages = [ "proto", "sortkeys", ] pruneopts = "UT" - revision = "0ca988a254f991240804bf9821f3450d87ccbb1b" - version = "v1.3.0" + revision = "5628607bb4c51c3157aacc3a50f0ab707582b805" + version = "v1.3.1" [[projects]] branch = "master" @@ -326,7 +326,7 @@ version = "v0.3.1" [[projects]] - digest = "1:98996125fe832b116f882df3e55624bc481c88b436728ecbdf477534f3eb639f" + digest = "1:3c563b7444053b968b162acabb7efb06d7bdb7a0d39f7d5db3e2b10ce4ee7af4" name = "github.com/gophercloud/gophercloud" packages = [ ".", @@ -338,8 +338,8 @@ "pagination", ] pruneopts = "UT" - revision = "a84f8b330d669c6dff53ee9743a7579ac9541b69" - version = "v0.4.0" + revision = "cf0980d0cbc9d8fd2f8923d04102fa19aa4fae69" + version = "v0.5.0" [[projects]] digest = "1:e62657cca9badaa308d86e7716083e4c5933bb78e30a17743fc67f50be26f6f4" @@ -576,7 +576,7 @@ [[projects]] branch = "master" - digest = "1:d1cd9a31e9b767fd8d9e99137a83d8ac8336136c2fa3dbca50033d4f151b1290" + digest = "1:306fbbddc88a1a1d0447006c3f6486fd4ae3e568f22494527b56fec97d609af9" name = "golang.org/x/crypto" packages = [ "cast5", @@ -600,11 +600,11 @@ "ssh/terminal", ] pruneopts = "UT" - revision = "34f69633bfdcf9db92f698f8487115767eebef81" + revision = "87dc89f01550277dc22b74ffcf4cd89fa2f40f4c" [[projects]] branch = "master" - digest = "1:c2d5178dcf6a2536e4611015639a1e2426096a115d69cce3886a540ea0a29b2b" + digest = "1:bd256f38caeb73b483ebb3e0984f2765e42287959a4e0335733e98b53451907a" name = "golang.org/x/net" packages = [ "context", @@ -617,7 +617,7 @@ "proxy", ] pruneopts = "UT" - revision = "72f939374954d0a1b2a1e27dcda950e2724dd5c1" + revision = "da9a3fd4c5820e74b24a6cb7fb438dc9b0dd377c" [[projects]] branch = "master" @@ -635,7 +635,7 @@ [[projects]] branch = "master" - digest = "1:9df3166b29bde4a773cfab21ffb90f1ed30da3d8722eee84000af2228a752ba9" + digest = "1:a21b8f13c27bde42c8b28fde8f4d3099ec4566747f398eeb8f4326db78baafc2" name = "golang.org/x/sys" packages = [ "cpu", @@ -643,7 +643,7 @@ "windows", ] pruneopts = "UT" - revision = "ef33b2fb2c414dca4bfcf6ca59cbd1d9ad00703d" + revision = "b09406accb4736d857a32bf9444cd7edae2ffa79" [[projects]] digest = "1:66a2f252a58b4fbbad0e4e180e1d85a83c222b6bce09c3dcdef3dc87c72eda7c" From 4f2f8235134421b4d66071670ab9188b0be36bdc Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 16 Oct 2019 12:35:24 +0200 Subject: [PATCH 29/65] #949 Provide handler to get event from api --- pkg/api/utils/eventUtils.go | 113 ++++++++++++++++++++++++++++++++++ pkg/api/utils/projectUtils.go | 4 +- 2 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 pkg/api/utils/eventUtils.go diff --git a/pkg/api/utils/eventUtils.go b/pkg/api/utils/eventUtils.go new file mode 100644 index 00000000..51c16615 --- /dev/null +++ b/pkg/api/utils/eventUtils.go @@ -0,0 +1,113 @@ +package utils + +import ( + "crypto/tls" + "encoding/json" + "io/ioutil" + "net/http" + "strings" + + "github.com/keptn/go-utils/pkg/api/models" + datastore "github.com/keptn/go-utils/pkg/datastore/models" +) + +// EventHandler handles services +type EventHandler struct { + BaseURL string + AuthToken string + AuthHeader string + HTTPClient *http.Client + Scheme string +} + +// NewEventHandler returns a new EventHandler +func NewEventHandler(baseURL string) *EventHandler { + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &EventHandler{ + BaseURL: baseURL, + AuthHeader: "", + AuthToken: "", + HTTPClient: &http.Client{}, + Scheme: "http", + } +} + +// NewAuthenticatedEventHandler returns a new EventHandler that authenticates at the endpoint via the provided token +func NewAuthenticatedEventHandler(baseURL string, authToken string, authHeader string, httpClient *http.Client, scheme string) *EventHandler { + if httpClient == nil { + httpClient = &http.Client{} + } + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &EventHandler{ + BaseURL: baseURL, + AuthHeader: authHeader, + AuthToken: authToken, + HTTPClient: httpClient, + Scheme: scheme, + } +} + +func (e *EventHandler) getBaseURL() string { + return e.BaseURL +} + +func (e *EventHandler) getAuthToken() string { + return e.AuthToken +} + +func (e *EventHandler) getAuthHeader() string { + return e.AuthHeader +} + +func (e *EventHandler) getHTTPClient() *http.Client { + return e.HTTPClient +} + +// GetEvent returns an event specified by keptnContext and eventType +func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*datastore.KeptnContextExtendedCE, *models.Error) { + return getEvent(e.Scheme+"://"+e.getBaseURL()+"/v1/event?keptnContext="+keptnContext+"type="+eventType+"&pageSize=10", e) +} + +func getEvent(uri string, api APIService) (*datastore.KeptnContextExtendedCE, *models.Error) { + + http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} + req, err := http.NewRequest("GET", uri, nil) + req.Header.Set("Content-Type", "application/json") + addAuthHeader(req, api) + + resp, err := api.getHTTPClient().Do(req) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + if resp.StatusCode >= 200 && resp.StatusCode < 300 { + + if len(body) > 0 { + var cloudEvent datastore.KeptnContextExtendedCE + err = json.Unmarshal(body, &cloudEvent) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + return &cloudEvent, nil + } + + return nil, nil + } + + var respErr models.Error + err = json.Unmarshal(body, &respErr) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + return nil, &respErr +} diff --git a/pkg/api/utils/projectUtils.go b/pkg/api/utils/projectUtils.go index 56db9838..522cc9ec 100644 --- a/pkg/api/utils/projectUtils.go +++ b/pkg/api/utils/projectUtils.go @@ -80,10 +80,10 @@ func (p *ProjectHandler) DeleteProject(project models.Project) (*models.EventCon // GetProject returns a project func (p *ProjectHandler) GetProject(project models.Project) (*models.Project, *models.Error) { - return get(p.Scheme+"://"+p.getBaseURL()+"/v1/project/"+*project.Name, p) + return getProject(p.Scheme+"://"+p.getBaseURL()+"/v1/project/"+*project.Name, p) } -func get(uri string, api APIService) (*models.Project, *models.Error) { +func getProject(uri string, api APIService) (*models.Project, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) From 657371139874a34ec47d1df8d85a094e14f5dbaa Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 16 Oct 2019 15:13:37 +0200 Subject: [PATCH 30/65] #949 Catch unknown responses --- pkg/api/utils/apiServiceUtils.go | 15 ++++++++++----- pkg/api/utils/authUtils.go | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index e453e8b1..d1d2ddcc 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -4,6 +4,7 @@ import ( "bytes" "crypto/tls" "encoding/json" + "fmt" "io/ioutil" "net/http" @@ -51,13 +52,17 @@ func post(uri string, data []byte, api APIService) (*models.EventContext, *model return nil, nil } - var respErr models.Error - err = json.Unmarshal(body, &respErr) - if err != nil { - return nil, buildErrorResponse(err.Error()) + if len(body) > 0 { + var respErr models.Error + err = json.Unmarshal(body, &respErr) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + return nil, &respErr } - return nil, &respErr + return nil, buildErrorResponse(fmt.Sprintf("Received unexptected response: %d %s", resp.StatusCode, resp.Status)) } func delete(uri string, api APIService) (*models.EventContext, *models.Error) { diff --git a/pkg/api/utils/authUtils.go b/pkg/api/utils/authUtils.go index 90e60460..79102a4a 100644 --- a/pkg/api/utils/authUtils.go +++ b/pkg/api/utils/authUtils.go @@ -45,23 +45,23 @@ func NewAuthenticatedAuthHandler(baseURL string, authToken string, authHeader st } } -func (p *AuthHandler) getBaseURL() string { - return p.BaseURL +func (a *AuthHandler) getBaseURL() string { + return a.BaseURL } -func (p *AuthHandler) getAuthToken() string { - return p.AuthToken +func (a *AuthHandler) getAuthToken() string { + return a.AuthToken } -func (p *AuthHandler) getAuthHeader() string { - return p.AuthHeader +func (a *AuthHandler) getAuthHeader() string { + return a.AuthHeader } -func (p *AuthHandler) getHTTPClient() *http.Client { - return p.HTTPClient +func (a *AuthHandler) getHTTPClient() *http.Client { + return a.HTTPClient } // Authenticate authenticates the client request against the server -func (p *AuthHandler) Authenticate() (*models.EventContext, *models.Error) { - return post(p.Scheme+"://"+p.getBaseURL()+"/v1/auth", nil, p) +func (a *AuthHandler) Authenticate() (*models.EventContext, *models.Error) { + return post(a.Scheme+"://"+a.getBaseURL()+"/v1/auth", nil, a) } From 97fe21c7822e5f4071913746e8388722501a4b9b Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 16 Oct 2019 17:15:11 +0200 Subject: [PATCH 31/65] #949 Removed old model --- pkg/api/models/keptn_context.go | 64 --------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 pkg/api/models/keptn_context.go diff --git a/pkg/api/models/keptn_context.go b/pkg/api/models/keptn_context.go deleted file mode 100644 index 28ea1f23..00000000 --- a/pkg/api/models/keptn_context.go +++ /dev/null @@ -1,64 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package models - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - strfmt "github.com/go-openapi/strfmt" - - "github.com/go-openapi/errors" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// KeptnContext keptn context -// swagger:model keptnContext -type KeptnContext struct { - - // keptn context - // Required: true - KeptnContext *string `json:"keptnContext"` -} - -// Validate validates this keptn context -func (m *KeptnContext) Validate(formats strfmt.Registry) error { - var res []error - - if err := m.validateKeptnContext(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (m *KeptnContext) validateKeptnContext(formats strfmt.Registry) error { - - if err := validate.Required("keptnContext", "body", m.KeptnContext); err != nil { - return err - } - - return nil -} - -// MarshalBinary interface implementation -func (m *KeptnContext) MarshalBinary() ([]byte, error) { - if m == nil { - return nil, nil - } - return swag.WriteJSON(m) -} - -// UnmarshalBinary interface implementation -func (m *KeptnContext) UnmarshalBinary(b []byte) error { - var res KeptnContext - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *m = res - return nil -} From aefb3042039e3fece41cb9b54749984137257225 Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 16 Oct 2019 18:08:21 +0200 Subject: [PATCH 32/65] #949 Add host to header --- pkg/api/utils/apiServiceUtils.go | 1 + pkg/api/utils/eventUtils.go | 1 + pkg/api/utils/projectUtils.go | 1 + 3 files changed, 3 insertions(+) diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index d1d2ddcc..978a0b90 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -70,6 +70,7 @@ func delete(uri string, api APIService) (*models.EventContext, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("DELETE", uri, nil) req.Header.Set("Content-Type", "application/json") + req.Host = "api.keptn" addAuthHeader(req, api) resp, err := api.getHTTPClient().Do(req) diff --git a/pkg/api/utils/eventUtils.go b/pkg/api/utils/eventUtils.go index 51c16615..edacef23 100644 --- a/pkg/api/utils/eventUtils.go +++ b/pkg/api/utils/eventUtils.go @@ -75,6 +75,7 @@ func getEvent(uri string, api APIService) (*datastore.KeptnContextExtendedCE, *m http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) req.Header.Set("Content-Type", "application/json") + req.Host = "api.keptn" addAuthHeader(req, api) resp, err := api.getHTTPClient().Do(req) diff --git a/pkg/api/utils/projectUtils.go b/pkg/api/utils/projectUtils.go index 522cc9ec..82db7e65 100644 --- a/pkg/api/utils/projectUtils.go +++ b/pkg/api/utils/projectUtils.go @@ -88,6 +88,7 @@ func getProject(uri string, api APIService) (*models.Project, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) req.Header.Set("Content-Type", "application/json") + req.Host = "api.keptn" addAuthHeader(req, api) resp, err := api.getHTTPClient().Do(req) From fc56a4da8dc675d14cf8742dae49354310580e99 Mon Sep 17 00:00:00 2001 From: Johannes Date: Thu, 17 Oct 2019 08:10:07 +0200 Subject: [PATCH 33/65] #949 Restructure the pkg folder --- pkg/api/utils/eventUtils.go | 2 +- pkg/api/utils/resourceUtils.go | 76 +++++++++++++++++++ .../models/error.go | 0 .../models/project.go | 0 .../models/projects.go | 0 .../models/resource.go | 0 .../models/resources.go | 0 .../models/service.go | 0 .../models/services.go | 0 .../models/stage.go | 0 .../models/stages.go | 0 .../models/version.go | 0 .../utils/configServiceUtils.go | 2 +- .../utils/projectUtils.go | 2 +- .../utils/resourceUtils.go | 2 +- .../utils/serviceUtils.go | 2 +- .../utils/stageUtils.go | 2 +- pkg/datastore/utils/apiServiceUtils.go | 26 ------- .../models/error.go | 0 .../models/keptn_context_extended_c_e.go | 0 pkg/mongodb-datastore/utils/datastoreUtils.go | 26 +++++++ .../utils/eventUtils.go | 6 +- pkg/utils/helmUtils.go | 8 +- pkg/utils/keptnUtils.go | 5 +- 24 files changed, 119 insertions(+), 40 deletions(-) create mode 100644 pkg/api/utils/resourceUtils.go rename pkg/{ => configuration-service}/models/error.go (100%) rename pkg/{ => configuration-service}/models/project.go (100%) rename pkg/{ => configuration-service}/models/projects.go (100%) rename pkg/{ => configuration-service}/models/resource.go (100%) rename pkg/{ => configuration-service}/models/resources.go (100%) rename pkg/{ => configuration-service}/models/service.go (100%) rename pkg/{ => configuration-service}/models/services.go (100%) rename pkg/{ => configuration-service}/models/stage.go (100%) rename pkg/{ => configuration-service}/models/stages.go (100%) rename pkg/{ => configuration-service}/models/version.go (100%) rename pkg/{ => configuration-service}/utils/configServiceUtils.go (96%) rename pkg/{ => configuration-service}/utils/projectUtils.go (98%) rename pkg/{ => configuration-service}/utils/resourceUtils.go (99%) rename pkg/{ => configuration-service}/utils/serviceUtils.go (98%) rename pkg/{ => configuration-service}/utils/stageUtils.go (98%) delete mode 100644 pkg/datastore/utils/apiServiceUtils.go rename pkg/{datastore => mongodb-datastore}/models/error.go (100%) rename pkg/{datastore => mongodb-datastore}/models/keptn_context_extended_c_e.go (100%) create mode 100644 pkg/mongodb-datastore/utils/datastoreUtils.go rename pkg/{datastore => mongodb-datastore}/utils/eventUtils.go (91%) diff --git a/pkg/api/utils/eventUtils.go b/pkg/api/utils/eventUtils.go index edacef23..85734a98 100644 --- a/pkg/api/utils/eventUtils.go +++ b/pkg/api/utils/eventUtils.go @@ -8,7 +8,7 @@ import ( "strings" "github.com/keptn/go-utils/pkg/api/models" - datastore "github.com/keptn/go-utils/pkg/datastore/models" + datastore "github.com/keptn/go-utils/pkg/mongodb-datastore/models" ) // EventHandler handles services diff --git a/pkg/api/utils/resourceUtils.go b/pkg/api/utils/resourceUtils.go new file mode 100644 index 00000000..27f6eec0 --- /dev/null +++ b/pkg/api/utils/resourceUtils.go @@ -0,0 +1,76 @@ +package utils + +import ( + "encoding/json" + "net/http" + "strings" + + "github.com/keptn/go-utils/pkg/api/models" +) + +// ResourceHandler handles resources +type ResourceHandler struct { + BaseURL string + AuthToken string + AuthHeader string + HTTPClient *http.Client + Scheme string +} + +type resourceRequest struct { + Resources []*models.Resource `json:"resources"` +} + +// NewResourceHandler returns a new ResourceHandler +func NewResourceHandler(baseURL string) *ResourceHandler { + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &ResourceHandler{ + BaseURL: baseURL, + AuthHeader: "", + AuthToken: "", + HTTPClient: &http.Client{}, + Scheme: "http", + } +} + +// NewAuthenticatedResourceHandler returns a new ResourceHandler that authenticates at the endpoint via the provided token +func NewAuthenticatedResourceHandler(baseURL string, authToken string, authHeader string, httpClient *http.Client, scheme string) *ResourceHandler { + if httpClient == nil { + httpClient = &http.Client{} + } + baseURL = strings.TrimPrefix(baseURL, "http://") + baseURL = strings.TrimPrefix(baseURL, "https://") + return &ResourceHandler{ + BaseURL: baseURL, + AuthHeader: authHeader, + AuthToken: authToken, + HTTPClient: httpClient, + Scheme: scheme, + } +} + +func (r *ResourceHandler) getBaseURL() string { + return r.BaseURL +} + +func (r *ResourceHandler) getAuthToken() string { + return r.AuthToken +} + +func (r *ResourceHandler) getAuthHeader() string { + return r.AuthHeader +} + +func (r *ResourceHandler) getHTTPClient() *http.Client { + return r.HTTPClient +} + +// CreateServiceResources creates a service resource +func (r *ResourceHandler) CreateServiceResources(project string, stage string, service string, resources []*models.Resource) (*models.EventContext, *models.Error) { + bodyStr, err := json.Marshal(resources) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + return post(r.Scheme+"://"+r.BaseURL+"/v1/project/"+project+"/stage/"+stage+"/service/"+service+"/resource", bodyStr, r) +} diff --git a/pkg/models/error.go b/pkg/configuration-service/models/error.go similarity index 100% rename from pkg/models/error.go rename to pkg/configuration-service/models/error.go diff --git a/pkg/models/project.go b/pkg/configuration-service/models/project.go similarity index 100% rename from pkg/models/project.go rename to pkg/configuration-service/models/project.go diff --git a/pkg/models/projects.go b/pkg/configuration-service/models/projects.go similarity index 100% rename from pkg/models/projects.go rename to pkg/configuration-service/models/projects.go diff --git a/pkg/models/resource.go b/pkg/configuration-service/models/resource.go similarity index 100% rename from pkg/models/resource.go rename to pkg/configuration-service/models/resource.go diff --git a/pkg/models/resources.go b/pkg/configuration-service/models/resources.go similarity index 100% rename from pkg/models/resources.go rename to pkg/configuration-service/models/resources.go diff --git a/pkg/models/service.go b/pkg/configuration-service/models/service.go similarity index 100% rename from pkg/models/service.go rename to pkg/configuration-service/models/service.go diff --git a/pkg/models/services.go b/pkg/configuration-service/models/services.go similarity index 100% rename from pkg/models/services.go rename to pkg/configuration-service/models/services.go diff --git a/pkg/models/stage.go b/pkg/configuration-service/models/stage.go similarity index 100% rename from pkg/models/stage.go rename to pkg/configuration-service/models/stage.go diff --git a/pkg/models/stages.go b/pkg/configuration-service/models/stages.go similarity index 100% rename from pkg/models/stages.go rename to pkg/configuration-service/models/stages.go diff --git a/pkg/models/version.go b/pkg/configuration-service/models/version.go similarity index 100% rename from pkg/models/version.go rename to pkg/configuration-service/models/version.go diff --git a/pkg/utils/configServiceUtils.go b/pkg/configuration-service/utils/configServiceUtils.go similarity index 96% rename from pkg/utils/configServiceUtils.go rename to pkg/configuration-service/utils/configServiceUtils.go index 404da7bf..c3bef6bc 100644 --- a/pkg/utils/configServiceUtils.go +++ b/pkg/configuration-service/utils/configServiceUtils.go @@ -7,7 +7,7 @@ import ( "io/ioutil" "net/http" - "github.com/keptn/go-utils/pkg/models" + "github.com/keptn/go-utils/pkg/configuration-service/models" ) // ConfigService represents the interface for accessing the configuration service diff --git a/pkg/utils/projectUtils.go b/pkg/configuration-service/utils/projectUtils.go similarity index 98% rename from pkg/utils/projectUtils.go rename to pkg/configuration-service/utils/projectUtils.go index bef56f2d..36da893d 100644 --- a/pkg/utils/projectUtils.go +++ b/pkg/configuration-service/utils/projectUtils.go @@ -7,7 +7,7 @@ import ( "net/http" "strings" - "github.com/keptn/go-utils/pkg/models" + "github.com/keptn/go-utils/pkg/configuration-service/models" ) // ProjectHandler handles projects diff --git a/pkg/utils/resourceUtils.go b/pkg/configuration-service/utils/resourceUtils.go similarity index 99% rename from pkg/utils/resourceUtils.go rename to pkg/configuration-service/utils/resourceUtils.go index 1843b302..359af52d 100644 --- a/pkg/utils/resourceUtils.go +++ b/pkg/configuration-service/utils/resourceUtils.go @@ -11,7 +11,7 @@ import ( "net/url" "strings" - "github.com/keptn/go-utils/pkg/models" + "github.com/keptn/go-utils/pkg/configuration-service/models" ) // ResourceHandler handles resources diff --git a/pkg/utils/serviceUtils.go b/pkg/configuration-service/utils/serviceUtils.go similarity index 98% rename from pkg/utils/serviceUtils.go rename to pkg/configuration-service/utils/serviceUtils.go index 59ff2703..caf10b47 100644 --- a/pkg/utils/serviceUtils.go +++ b/pkg/configuration-service/utils/serviceUtils.go @@ -9,7 +9,7 @@ import ( "net/url" "strings" - "github.com/keptn/go-utils/pkg/models" + "github.com/keptn/go-utils/pkg/configuration-service/models" ) // ServiceHandler handles services diff --git a/pkg/utils/stageUtils.go b/pkg/configuration-service/utils/stageUtils.go similarity index 98% rename from pkg/utils/stageUtils.go rename to pkg/configuration-service/utils/stageUtils.go index 01578a59..3ee54e64 100644 --- a/pkg/utils/stageUtils.go +++ b/pkg/configuration-service/utils/stageUtils.go @@ -9,7 +9,7 @@ import ( "net/url" "strings" - "github.com/keptn/go-utils/pkg/models" + "github.com/keptn/go-utils/pkg/configuration-service/models" ) // StageHandler handles stages diff --git a/pkg/datastore/utils/apiServiceUtils.go b/pkg/datastore/utils/apiServiceUtils.go deleted file mode 100644 index bf346484..00000000 --- a/pkg/datastore/utils/apiServiceUtils.go +++ /dev/null @@ -1,26 +0,0 @@ -package utils - -import ( - "net/http" - - "github.com/keptn/go-utils/pkg/datastore/models" -) - -// APIService represents the interface for accessing the configuration service -type APIService interface { - getBaseURL() string - getAuthToken() string - getAuthHeader() string - getHTTPClient() *http.Client -} - -func buildErrorResponse(errorStr string) *models.Error { - err := models.Error{Message: &errorStr} - return &err -} - -func addAuthHeader(req *http.Request, api APIService) { - if api.getAuthHeader() != "" && api.getAuthToken() != "" { - req.Header.Set(api.getAuthHeader(), api.getAuthToken()) - } -} diff --git a/pkg/datastore/models/error.go b/pkg/mongodb-datastore/models/error.go similarity index 100% rename from pkg/datastore/models/error.go rename to pkg/mongodb-datastore/models/error.go diff --git a/pkg/datastore/models/keptn_context_extended_c_e.go b/pkg/mongodb-datastore/models/keptn_context_extended_c_e.go similarity index 100% rename from pkg/datastore/models/keptn_context_extended_c_e.go rename to pkg/mongodb-datastore/models/keptn_context_extended_c_e.go diff --git a/pkg/mongodb-datastore/utils/datastoreUtils.go b/pkg/mongodb-datastore/utils/datastoreUtils.go new file mode 100644 index 00000000..31ed13f8 --- /dev/null +++ b/pkg/mongodb-datastore/utils/datastoreUtils.go @@ -0,0 +1,26 @@ +package utils + +import ( + "net/http" + + "github.com/keptn/go-utils/pkg/mongodb-datastore/models" +) + +// Datastore represents the interface for accessing Keptn's datastore +type Datastore interface { + getBaseURL() string + getAuthToken() string + getAuthHeader() string + getHTTPClient() *http.Client +} + +func buildErrorResponse(errorStr string) *models.Error { + err := models.Error{Message: &errorStr} + return &err +} + +func addAuthHeader(req *http.Request, datastore Datastore) { + if datastore.getAuthHeader() != "" && datastore.getAuthToken() != "" { + req.Header.Set(datastore.getAuthHeader(), datastore.getAuthToken()) + } +} diff --git a/pkg/datastore/utils/eventUtils.go b/pkg/mongodb-datastore/utils/eventUtils.go similarity index 91% rename from pkg/datastore/utils/eventUtils.go rename to pkg/mongodb-datastore/utils/eventUtils.go index da40a095..9627b960 100644 --- a/pkg/datastore/utils/eventUtils.go +++ b/pkg/mongodb-datastore/utils/eventUtils.go @@ -7,7 +7,7 @@ import ( "net/http" "strings" - "github.com/keptn/go-utils/pkg/datastore/models" + "github.com/keptn/go-utils/pkg/mongodb-datastore/models" ) // EventHandler handles event @@ -53,13 +53,13 @@ func (p *EventHandler) GetEvent(keptnContext string, eventType string) (*models. return get(p.Scheme+"://"+p.getBaseURL()+"/event?keptnContext="+keptnContext+"type="+eventType+"&pageSize=10", p) } -func get(uri string, api APIService) (*models.KeptnContextExtendedCE, *models.Error) { +func get(uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) req.Header.Set("Content-Type", "application/json") - resp, err := api.getHTTPClient().Do(req) + resp, err := datastore.getHTTPClient().Do(req) if err != nil { return nil, buildErrorResponse(err.Error()) } diff --git a/pkg/utils/helmUtils.go b/pkg/utils/helmUtils.go index f5320c11..1c50e1ee 100644 --- a/pkg/utils/helmUtils.go +++ b/pkg/utils/helmUtils.go @@ -8,7 +8,6 @@ import ( "os" "strings" - "github.com/keptn/go-utils/pkg/models" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" kyaml "k8s.io/apimachinery/pkg/util/yaml" @@ -16,6 +15,9 @@ import ( "k8s.io/helm/pkg/proto/hapi/chart" "k8s.io/helm/pkg/renderutil" "k8s.io/helm/pkg/timeconv" + + "github.com/keptn/go-utils/pkg/configuration-service/models" + "github.com/keptn/go-utils/pkg/configuration-service/utils" ) func getHelmChartURI(chartName string) string { @@ -24,7 +26,7 @@ func getHelmChartURI(chartName string) string { // StoreChart stores a chart in the configuration service func StoreChart(project string, service string, stage string, chartName string, helmChart []byte, configServiceURL string) error { - resourceHandler := NewResourceHandler(configServiceURL) + resourceHandler := utils.NewResourceHandler(configServiceURL) uri := getHelmChartURI(chartName) resource := models.Resource{ResourceURI: &uri, ResourceContent: string(helmChart)} @@ -39,7 +41,7 @@ func StoreChart(project string, service string, stage string, chartName string, // GetChart reads the chart from the configuration service func GetChart(project string, service string, stage string, chartName string, configServiceURL string) (*chart.Chart, error) { - resourceHandler := NewResourceHandler(configServiceURL) + resourceHandler := utils.NewResourceHandler(configServiceURL) resource, err := resourceHandler.GetServiceResource(project, stage, service, getHelmChartURI(chartName)) if err != nil { diff --git a/pkg/utils/keptnUtils.go b/pkg/utils/keptnUtils.go index e72adf00..c4e7db21 100644 --- a/pkg/utils/keptnUtils.go +++ b/pkg/utils/keptnUtils.go @@ -3,15 +3,16 @@ package utils import ( "github.com/keptn/go-utils/pkg/models" "gopkg.in/yaml.v2" + "github.com/keptn/go-utils/pkg/configuration-service/utils" ) // KeptnHandler provides an interface to keptn resources type KeptnHandler struct { - ResourceHandler *ResourceHandler + ResourceHandler *utils.ResourceHandler } // NewKeptnHandler returns a new KeptnHandler instance -func NewKeptnHandler(rh *ResourceHandler) *KeptnHandler { +func NewKeptnHandler(rh *utils.ResourceHandler) *KeptnHandler { return &KeptnHandler{ ResourceHandler: rh, } From 8a4299ee0ce73d78dba93baef78c3281ddfbf8e9 Mon Sep 17 00:00:00 2001 From: Christian Kreuzberger Date: Thu, 17 Oct 2019 11:37:55 +0200 Subject: [PATCH 34/65] Add more information about json parse errors --- .gitignore | 3 +++ pkg/api/utils/apiServiceUtils.go | 13 +++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 1dbb819e..dc6334df 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,7 @@ # Output of the go coverage tool, specifically when used with LiteIDE *.out +.idea/ +.code/ + vendor/ \ No newline at end of file diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index 257510b0..19f363ff 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -38,12 +38,14 @@ func post(uri string, data []byte, api APIService) (*models.ChannelInfo, *models } if resp.StatusCode == 200 { + // api returned status 200 -> unmarshal json response if len(body) > 0 { var channelInfo models.ChannelInfo err = json.Unmarshal(body, &channelInfo) if err != nil { - return nil, buildErrorResponse(err.Error()) + // failed to parse json + return nil, buildErrorResponse(err.Error() + "\n" + "-----DETAILS-----" + string(body)) } return &channelInfo, nil } @@ -54,7 +56,8 @@ func post(uri string, data []byte, api APIService) (*models.ChannelInfo, *models var respErr models.Error err = json.Unmarshal(body, &respErr) if err != nil { - return nil, buildErrorResponse(err.Error()) + // failed to parse json + return nil, buildErrorResponse(err.Error() + "\n" + "-----DETAILS-----" + string(body)) } return nil, &respErr @@ -83,7 +86,8 @@ func delete(uri string, api APIService) (*models.ChannelInfo, *models.Error) { var channelInfo models.ChannelInfo err = json.Unmarshal(body, &channelInfo) if err != nil { - return nil, buildErrorResponse(err.Error()) + // failed to parse json + return nil, buildErrorResponse(err.Error() + "\n" + "-----DETAILS-----" + string(body)) } return &channelInfo, nil } @@ -94,7 +98,8 @@ func delete(uri string, api APIService) (*models.ChannelInfo, *models.Error) { var respErr models.Error err = json.Unmarshal(body, &respErr) if err != nil { - return nil, buildErrorResponse(err.Error()) + // failed to parse json + return nil, buildErrorResponse(err.Error() + "\n" + "-----DETAILS-----" + string(body)) } return nil, &respErr From ef87a9f0950d8ce6874c66dd2a31416bf56b73a8 Mon Sep 17 00:00:00 2001 From: Johannes Date: Fri, 18 Oct 2019 08:21:42 +0200 Subject: [PATCH 35/65] #949 Transfer pointer array in onbject array --- pkg/api/utils/resourceUtils.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pkg/api/utils/resourceUtils.go b/pkg/api/utils/resourceUtils.go index 27f6eec0..4e70ed67 100644 --- a/pkg/api/utils/resourceUtils.go +++ b/pkg/api/utils/resourceUtils.go @@ -1,6 +1,7 @@ package utils import ( + b64 "encoding/base64" "encoding/json" "net/http" "strings" @@ -68,9 +69,20 @@ func (r *ResourceHandler) getHTTPClient() *http.Client { // CreateServiceResources creates a service resource func (r *ResourceHandler) CreateServiceResources(project string, stage string, service string, resources []*models.Resource) (*models.EventContext, *models.Error) { - bodyStr, err := json.Marshal(resources) + + copiedResources := make([]*models.Resource, len(resources), len(resources)) + for i, val := range resources { + resourceContent := b64.StdEncoding.EncodeToString([]byte(*val.ResourceContent)) + copiedResources[i] = &models.Resource{ResourceURI: val.ResourceURI, ResourceContent: &resourceContent} + } + resReq := &resourceRequest{ + Resources: copiedResources, + } + + requestStr, err := json.Marshal(resReq) if err != nil { return nil, buildErrorResponse(err.Error()) } - return post(r.Scheme+"://"+r.BaseURL+"/v1/project/"+project+"/stage/"+stage+"/service/"+service+"/resource", bodyStr, r) + + return post(r.Scheme+"://"+r.BaseURL+"/v1/project/"+project+"/stage/"+stage+"/service/"+service+"/resource", requestStr, r) } From b604e008c1f9891bce3287c24ab984b040cc20fb Mon Sep 17 00:00:00 2001 From: Johannes Date: Fri, 18 Oct 2019 12:22:48 +0200 Subject: [PATCH 36/65] #949 Consider 201 - 204 responses as successful --- pkg/api/utils/apiServiceUtils.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index 6e9b969f..8fec9f9e 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -38,9 +38,7 @@ func post(uri string, data []byte, api APIService) (*models.EventContext, *model return nil, buildErrorResponse(err.Error()) } - if resp.StatusCode == 200 { - // api returned status 200 -> unmarshal json response - + if resp.StatusCode >= 200 && resp.StatusCode <= 204 { if len(body) > 0 { var eventContext models.EventContext err = json.Unmarshal(body, &eventContext) From 9fd69da633db745386f7ff45de4b79dad4436537 Mon Sep 17 00:00:00 2001 From: Johannes Date: Fri, 18 Oct 2019 13:01:26 +0200 Subject: [PATCH 37/65] #949 Catch non 200 repsonse in getResource --- .../utils/resourceUtils.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pkg/configuration-service/utils/resourceUtils.go b/pkg/configuration-service/utils/resourceUtils.go index 359af52d..fc720636 100644 --- a/pkg/configuration-service/utils/resourceUtils.go +++ b/pkg/configuration-service/utils/resourceUtils.go @@ -217,15 +217,17 @@ func (r *ResourceHandler) writeResource(uri string, method string, resource *mod return "", err } defer resp.Body.Close() - var version models.Version + body, err := ioutil.ReadAll(resp.Body) if err != nil { return "", err } + if !(resp.StatusCode >= 200 && resp.StatusCode < 300) { return "", errors.New(string(body)) } + var version models.Version err = json.Unmarshal(body, &version) if err != nil { return "", err @@ -246,20 +248,28 @@ func (r *ResourceHandler) getResource(uri string) (*models.Resource, error) { } defer resp.Body.Close() - body, _ := ioutil.ReadAll(resp.Body) - if resp.StatusCode == 404 { - return nil, errors.New("resource not found") + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err } + + if !(resp.StatusCode >= 200 && resp.StatusCode < 300) { + return nil, errors.New(string(body)) + } + var resource models.Resource err = json.Unmarshal(body, &resource) if err != nil { return nil, err } + + // decode resource content decodedStr, err := b64.StdEncoding.DecodeString(resource.ResourceContent) if err != nil { return nil, err } resource.ResourceContent = string(decodedStr) + return &resource, nil } From 617b7b407e6f4356ca4824147d3758ba4c925a21 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Mon, 21 Oct 2019 13:59:35 +0200 Subject: [PATCH 38/65] #995 Extend ConfigurationChangeEvent to allow any file changes --- pkg/events/keptnEvents.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/events/keptnEvents.go b/pkg/events/keptnEvents.go index 45b7ea6c..5dc2b4e1 100644 --- a/pkg/events/keptnEvents.go +++ b/pkg/events/keptnEvents.go @@ -41,7 +41,6 @@ const EvaluationDoneEventType = "sh.keptn.events.evaluation-done" // DeploymentFinishedEventType is a CloudEvent for indicating that the deployment has finished const DeploymentFinishedEventType = "sh.keptn.events.deployment-finished" - // ProjectCreateEventData represents the data for creating a new project type ProjectCreateEventData struct { // Project is the name of the project @@ -88,6 +87,12 @@ type ConfigurationChangeEventData struct { Canary *Canary `json:"canary,omitempty"` // DeploymentChanges contains changes of the primary deployment DeploymentChanges []PropertyChange `json:"deploymentChanges,omitempty"` + // FileChangesUserChart provides new content for the user chart. + // The key value pairs represent the URI within the chart (i.e. the key) and the new content (i.e. the value). + FileChangesUserChart map[string]string `json:"fileChangesUserChart,omitempty"` + // FileChangesGeneratedChart provides new content for the generated chart. + // The key value pairs represent the URI within the chart (i.e. the key) and the new content (i.e. the value). + FileChangesGeneratedChart map[string]string `json:"fileChangesGeneratedChart,omitempty"` } // TestsFinishedEventData represents the data for a test finished event From 57dd4cc56e418da8ceeccf47a8e60a9bb76ca70a Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 21 Oct 2019 14:01:32 +0200 Subject: [PATCH 39/65] #949 Provide sendEvent helper function --- pkg/api/utils/eventUtils.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/api/utils/eventUtils.go b/pkg/api/utils/eventUtils.go index 85734a98..f7dfb68a 100644 --- a/pkg/api/utils/eventUtils.go +++ b/pkg/api/utils/eventUtils.go @@ -65,6 +65,15 @@ func (e *EventHandler) getHTTPClient() *http.Client { return e.HTTPClient } +// SendEvent sends an event to Keptn +func (e *EventHandler) SendEvent(event models.Event) (*models.EventContext, *models.Error) { + bodyStr, err := json.Marshal(event) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + return post(e.Scheme+"://"+e.getBaseURL()+"/v1/event", bodyStr, e) +} + // GetEvent returns an event specified by keptnContext and eventType func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*datastore.KeptnContextExtendedCE, *models.Error) { return getEvent(e.Scheme+"://"+e.getBaseURL()+"/v1/event?keptnContext="+keptnContext+"type="+eventType+"&pageSize=10", e) From 4f87c2418b70b0c706b5803e952b158f778baced Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 21 Oct 2019 16:35:54 +0200 Subject: [PATCH 40/65] #949 Fixed broken endpoint --- pkg/mongodb-datastore/utils/eventUtils.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pkg/mongodb-datastore/utils/eventUtils.go b/pkg/mongodb-datastore/utils/eventUtils.go index 9627b960..f2de9ac1 100644 --- a/pkg/mongodb-datastore/utils/eventUtils.go +++ b/pkg/mongodb-datastore/utils/eventUtils.go @@ -32,25 +32,25 @@ func NewEventHandler(baseURL string) *EventHandler { } } -func (p *EventHandler) getBaseURL() string { - return p.BaseURL +func (e *EventHandler) getBaseURL() string { + return e.BaseURL } -func (p *EventHandler) getAuthToken() string { - return p.AuthToken +func (e *EventHandler) getAuthToken() string { + return e.AuthToken } -func (p *EventHandler) getAuthHeader() string { - return p.AuthHeader +func (e *EventHandler) getAuthHeader() string { + return e.AuthHeader } -func (p *EventHandler) getHTTPClient() *http.Client { - return p.HTTPClient +func (e *EventHandler) getHTTPClient() *http.Client { + return e.HTTPClient } // GetEvent returns an event specified by keptnContext and eventType -func (p *EventHandler) GetEvent(keptnContext string, eventType string) (*models.KeptnContextExtendedCE, *models.Error) { - return get(p.Scheme+"://"+p.getBaseURL()+"/event?keptnContext="+keptnContext+"type="+eventType+"&pageSize=10", p) +func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*models.KeptnContextExtendedCE, *models.Error) { + return get(e.Scheme+"://"+e.getBaseURL()+"/event?keptnContext="+keptnContext+"&type="+eventType+"&pageSize=10", e) } func get(uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *models.Error) { From 428925691d8ac32da4788a9e60f67c05aee185bc Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 21 Oct 2019 16:52:52 +0200 Subject: [PATCH 41/65] #949 Fixed broken endpoint --- pkg/api/utils/eventUtils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/api/utils/eventUtils.go b/pkg/api/utils/eventUtils.go index f7dfb68a..b0c65e48 100644 --- a/pkg/api/utils/eventUtils.go +++ b/pkg/api/utils/eventUtils.go @@ -76,7 +76,7 @@ func (e *EventHandler) SendEvent(event models.Event) (*models.EventContext, *mod // GetEvent returns an event specified by keptnContext and eventType func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*datastore.KeptnContextExtendedCE, *models.Error) { - return getEvent(e.Scheme+"://"+e.getBaseURL()+"/v1/event?keptnContext="+keptnContext+"type="+eventType+"&pageSize=10", e) + return getEvent(e.Scheme+"://"+e.getBaseURL()+"/v1/event?keptnContext="+keptnContext+"&type="+eventType+"&pageSize=10", e) } func getEvent(uri string, api APIService) (*datastore.KeptnContextExtendedCE, *models.Error) { From 461f5b01a36b53445cd7b5d0cbbf842a207cc282 Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 21 Oct 2019 17:16:11 +0200 Subject: [PATCH 42/65] #949 Disable event creation --- pkg/mongodb-datastore/utils/eventUtils.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pkg/mongodb-datastore/utils/eventUtils.go b/pkg/mongodb-datastore/utils/eventUtils.go index f2de9ac1..0019bb26 100644 --- a/pkg/mongodb-datastore/utils/eventUtils.go +++ b/pkg/mongodb-datastore/utils/eventUtils.go @@ -3,6 +3,7 @@ package utils import ( "crypto/tls" "encoding/json" + "fmt" "io/ioutil" "net/http" "strings" @@ -73,13 +74,18 @@ func get(uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *mode if resp.StatusCode >= 200 && resp.StatusCode < 300 { if len(body) > 0 { - var cloudEvent models.KeptnContextExtendedCE - err = json.Unmarshal(body, &cloudEvent) - if err != nil { - return nil, buildErrorResponse(err.Error()) - } - return &cloudEvent, nil + fmt.Println(string(body)) + + /* + var cloudEvent models.KeptnContextExtendedCE + err = json.Unmarshal(body, &cloudEvent) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } + + return &cloudEvent, nil + */ } return nil, nil From bc6432d7c0072af328451cb7496ddc13d8177cdc Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 21 Oct 2019 17:42:16 +0200 Subject: [PATCH 43/65] #949 Handle response of getEvents --- pkg/mongodb-datastore/models/events.go | 86 +++++++++++++++++++++++ pkg/mongodb-datastore/utils/eventUtils.go | 24 +++---- 2 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 pkg/mongodb-datastore/models/events.go diff --git a/pkg/mongodb-datastore/models/events.go b/pkg/mongodb-datastore/models/events.go new file mode 100644 index 00000000..350e486d --- /dev/null +++ b/pkg/mongodb-datastore/models/events.go @@ -0,0 +1,86 @@ +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the generate command + +import ( + "strconv" + + errors "github.com/go-openapi/errors" + strfmt "github.com/go-openapi/strfmt" + swag "github.com/go-openapi/swag" +) + +// Events get events o k body +// swagger:model GetEventsOKBody +type Events struct { + + // events + Events []*KeptnContextExtendedCE `json:"events"` + + // Pointer to the next page + NextPageKey string `json:"nextPageKey,omitempty"` + + // Size of the returned page + PageSize int64 `json:"pageSize,omitempty"` + + // Total number of events + TotalCount int64 `json:"totalCount,omitempty"` +} + +// Validate validates this get events o k body +func (o *Events) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateEvents(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *Events) validateEvents(formats strfmt.Registry) error { + + if swag.IsZero(o.Events) { // not required + return nil + } + + for i := 0; i < len(o.Events); i++ { + if swag.IsZero(o.Events[i]) { // not required + continue + } + + if o.Events[i] != nil { + if err := o.Events[i].Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("getEventsOK" + "." + "events" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// MarshalBinary interface implementation +func (o *Events) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *Events) UnmarshalBinary(b []byte) error { + var res Events + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} diff --git a/pkg/mongodb-datastore/utils/eventUtils.go b/pkg/mongodb-datastore/utils/eventUtils.go index 0019bb26..f7051b4c 100644 --- a/pkg/mongodb-datastore/utils/eventUtils.go +++ b/pkg/mongodb-datastore/utils/eventUtils.go @@ -3,7 +3,6 @@ package utils import ( "crypto/tls" "encoding/json" - "fmt" "io/ioutil" "net/http" "strings" @@ -51,10 +50,10 @@ func (e *EventHandler) getHTTPClient() *http.Client { // GetEvent returns an event specified by keptnContext and eventType func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*models.KeptnContextExtendedCE, *models.Error) { - return get(e.Scheme+"://"+e.getBaseURL()+"/event?keptnContext="+keptnContext+"&type="+eventType+"&pageSize=10", e) + return getSingleEvent(e.Scheme+"://"+e.getBaseURL()+"/event?keptnContext="+keptnContext+"&type="+eventType+"&pageSize=10", e) } -func get(uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *models.Error) { +func getSingleEvent(uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) @@ -75,17 +74,16 @@ func get(uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *mode if len(body) > 0 { - fmt.Println(string(body)) + response := models.Events{} + err = json.Unmarshal(body, &response) + if err != nil { + return nil, buildErrorResponse(err.Error()) + } - /* - var cloudEvent models.KeptnContextExtendedCE - err = json.Unmarshal(body, &cloudEvent) - if err != nil { - return nil, buildErrorResponse(err.Error()) - } - - return &cloudEvent, nil - */ + // return first event of slice + for _, event := range response.Events { + return event, nil + } } return nil, nil From 6b445136df9d16e3ad7f5347efc814d040bb96c3 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 22 Oct 2019 07:44:43 +0200 Subject: [PATCH 44/65] #949 Update of release notes --- releasenotes/releasenotes_develop.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releasenotes/releasenotes_develop.md b/releasenotes/releasenotes_develop.md index 5585fcea..1e91dd63 100644 --- a/releasenotes/releasenotes_develop.md +++ b/releasenotes/releasenotes_develop.md @@ -1,6 +1,7 @@ # Release Notes x.x.x ## New Features +- Provide utility functions to retrieve Keptn events via API [#949](https://github.com/keptn/keptn/issues/949) ## Fixed Issues From 3730e828e5eecafc01896f5c8b990120f8340582 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 22 Oct 2019 08:07:38 +0200 Subject: [PATCH 45/65] #949 Changed scheme from http to https for api --- pkg/api/utils/authUtils.go | 2 +- pkg/api/utils/eventUtils.go | 2 +- pkg/api/utils/projectUtils.go | 2 +- pkg/api/utils/resourceUtils.go | 2 +- pkg/api/utils/serviceUtils.go | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/api/utils/authUtils.go b/pkg/api/utils/authUtils.go index 79102a4a..11d5e1e6 100644 --- a/pkg/api/utils/authUtils.go +++ b/pkg/api/utils/authUtils.go @@ -25,7 +25,7 @@ func NewAuthHandler(baseURL string) *AuthHandler { AuthHeader: "", AuthToken: "", HTTPClient: &http.Client{}, - Scheme: "http", + Scheme: "https", } } diff --git a/pkg/api/utils/eventUtils.go b/pkg/api/utils/eventUtils.go index b0c65e48..c76064f0 100644 --- a/pkg/api/utils/eventUtils.go +++ b/pkg/api/utils/eventUtils.go @@ -29,7 +29,7 @@ func NewEventHandler(baseURL string) *EventHandler { AuthHeader: "", AuthToken: "", HTTPClient: &http.Client{}, - Scheme: "http", + Scheme: "https", } } diff --git a/pkg/api/utils/projectUtils.go b/pkg/api/utils/projectUtils.go index 82db7e65..4f370ab2 100644 --- a/pkg/api/utils/projectUtils.go +++ b/pkg/api/utils/projectUtils.go @@ -28,7 +28,7 @@ func NewProjectHandler(baseURL string) *ProjectHandler { AuthHeader: "", AuthToken: "", HTTPClient: &http.Client{}, - Scheme: "http", + Scheme: "https", } } diff --git a/pkg/api/utils/resourceUtils.go b/pkg/api/utils/resourceUtils.go index 4e70ed67..f20798d5 100644 --- a/pkg/api/utils/resourceUtils.go +++ b/pkg/api/utils/resourceUtils.go @@ -31,7 +31,7 @@ func NewResourceHandler(baseURL string) *ResourceHandler { AuthHeader: "", AuthToken: "", HTTPClient: &http.Client{}, - Scheme: "http", + Scheme: "https", } } diff --git a/pkg/api/utils/serviceUtils.go b/pkg/api/utils/serviceUtils.go index 04556a30..af6811d0 100644 --- a/pkg/api/utils/serviceUtils.go +++ b/pkg/api/utils/serviceUtils.go @@ -26,7 +26,7 @@ func NewServiceHandler(baseURL string) *ServiceHandler { AuthHeader: "", AuthToken: "", HTTPClient: &http.Client{}, - Scheme: "http", + Scheme: "https", } } From e71eda34ee092b801fcfd651f2712dcdf2931bf9 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 22 Oct 2019 10:08:48 +0200 Subject: [PATCH 46/65] #949 Return latest event --- pkg/mongodb-datastore/utils/eventUtils.go | 18 ++++-- .../utils/eventUtils_test.go | 57 +++++++++++++++++++ 2 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 pkg/mongodb-datastore/utils/eventUtils_test.go diff --git a/pkg/mongodb-datastore/utils/eventUtils.go b/pkg/mongodb-datastore/utils/eventUtils.go index f7051b4c..eeab4493 100644 --- a/pkg/mongodb-datastore/utils/eventUtils.go +++ b/pkg/mongodb-datastore/utils/eventUtils.go @@ -3,9 +3,11 @@ package utils import ( "crypto/tls" "encoding/json" + "fmt" "io/ioutil" "net/http" "strings" + "time" "github.com/keptn/go-utils/pkg/mongodb-datastore/models" ) @@ -48,12 +50,12 @@ func (e *EventHandler) getHTTPClient() *http.Client { return e.HTTPClient } -// GetEvent returns an event specified by keptnContext and eventType +// GetEvent returns the latest event of a specific event type and from a specific Keptn context func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*models.KeptnContextExtendedCE, *models.Error) { - return getSingleEvent(e.Scheme+"://"+e.getBaseURL()+"/event?keptnContext="+keptnContext+"&type="+eventType+"&pageSize=10", e) + return getLatestEvent(e.Scheme+"://"+e.getBaseURL()+"/event?keptnContext="+keptnContext+"&type="+eventType+"&pageSize=10", e) } -func getSingleEvent(uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *models.Error) { +func getLatestEvent(uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) @@ -80,10 +82,16 @@ func getSingleEvent(uri string, datastore Datastore) (*models.KeptnContextExtend return nil, buildErrorResponse(err.Error()) } - // return first event of slice + fmt.Println(string(body)) + + // find latest event + var latest *models.KeptnContextExtendedCE for _, event := range response.Events { - return event, nil + if time.Time(latest.Time).After(time.Time(event.Time)) { + latest = event + } } + return latest, nil } return nil, nil diff --git a/pkg/mongodb-datastore/utils/eventUtils_test.go b/pkg/mongodb-datastore/utils/eventUtils_test.go new file mode 100644 index 00000000..ae6fd2a9 --- /dev/null +++ b/pkg/mongodb-datastore/utils/eventUtils_test.go @@ -0,0 +1,57 @@ +package utils + +import ( + "context" + "net" + "net/http" + "net/http/httptest" + "testing" + + keptnevents "github.com/keptn/go-utils/pkg/events" + "github.com/magiconair/properties/assert" +) + +// Helper function to build a test client with a httptest server +func testingHTTPClient(handler http.Handler) (*http.Client, func()) { + server := httptest.NewServer(handler) + + client := &http.Client{ + Transport: &http.Transport{ + DialContext: func(_ context.Context, network, _ string) (net.Conn, error) { + return net.Dial(network, server.Listener.Addr().String()) + }, + }, + } + + return client, server.Close +} + +func TestGetEvent(t *testing.T) { + handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + assert.Equal(t, r.Method, "GET", "Expect GET request") + assert.Equal(t, r.URL.EscapedPath(), "/event", "Expect /event endpoint") + w.WriteHeader(http.StatusOK) // 200 - SatusOk + + response := ` + + ` + + w.Write() + }) + + httpClient, teardown := testingHTTPClient(handler) + defer teardown() + + eventHandler := NewEventHandler("https://localhost") + eventHandler.HTTPClient = httpClient + + cloudEvent, errObj := eventHandler.GetEvent("8929e5e5-3826-488f-9257-708bfa974909", keptnevents.EvaluationDoneEventType) + + if cloudEvent == nil { + t.Error("No CloudEvent returned") + } + + if errObj != nil { + t.Errorf("An error occured %v", errObj.Message) + } +} From b6ca7579a9c81f4935f4b7aa61437621aa8b2ce7 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Tue, 22 Oct 2019 10:27:35 +0200 Subject: [PATCH 47/65] #995 Extend problem event --- pkg/events/keptnEvents.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/events/keptnEvents.go b/pkg/events/keptnEvents.go index 5dc2b4e1..9be2939b 100644 --- a/pkg/events/keptnEvents.go +++ b/pkg/events/keptnEvents.go @@ -128,6 +128,10 @@ type ProblemEventData struct { ProblemTitle string `json:"problemtitle"` ProblemDetails string `json:"problemdetails"` ImpactedEntity string `json:"impactedEntity"` + Tags string `json:"tags,omitempty"` + Project string `json:"project,omitempty"` + Stage string `json:"project,omitempty"` + Service string `json:"project,omitempty"` } // ConfigureMonitoringEventData represents the data necessary to configure monitoring for a service From 8bbe40c8403de74e33e6de381cd0484a605a7d7a Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 22 Oct 2019 13:14:12 +0200 Subject: [PATCH 48/65] #949 Refactoring and unit tests --- pkg/mongodb-datastore/utils/eventUtils.go | 20 ++-- .../utils/eventUtils_test.go | 107 ++++++++++++++++-- 2 files changed, 109 insertions(+), 18 deletions(-) diff --git a/pkg/mongodb-datastore/utils/eventUtils.go b/pkg/mongodb-datastore/utils/eventUtils.go index eeab4493..111a964e 100644 --- a/pkg/mongodb-datastore/utils/eventUtils.go +++ b/pkg/mongodb-datastore/utils/eventUtils.go @@ -3,7 +3,6 @@ package utils import ( "crypto/tls" "encoding/json" - "fmt" "io/ioutil" "net/http" "strings" @@ -52,10 +51,10 @@ func (e *EventHandler) getHTTPClient() *http.Client { // GetEvent returns the latest event of a specific event type and from a specific Keptn context func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*models.KeptnContextExtendedCE, *models.Error) { - return getLatestEvent(e.Scheme+"://"+e.getBaseURL()+"/event?keptnContext="+keptnContext+"&type="+eventType+"&pageSize=10", e) + return getLatestEvent(keptnContext, eventType, e.Scheme+"://"+e.getBaseURL()+"/event?keptnContext="+keptnContext+"&type="+eventType+"&pageSize=10", e) } -func getLatestEvent(uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *models.Error) { +func getLatestEvent(keptnContext string, eventType string, uri string, datastore Datastore) (*models.KeptnContextExtendedCE, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) @@ -82,19 +81,24 @@ func getLatestEvent(uri string, datastore Datastore) (*models.KeptnContextExtend return nil, buildErrorResponse(err.Error()) } - fmt.Println(string(body)) - // find latest event var latest *models.KeptnContextExtendedCE for _, event := range response.Events { - if time.Time(latest.Time).After(time.Time(event.Time)) { + if latest == nil || time.Time(latest.Time).Before(time.Time(event.Time)) { latest = event } } - return latest, nil + + if latest != nil { + return latest, nil + } } - return nil, nil + var respMessage models.Error + message := "No Keptn " + eventType + " event found for context: " + keptnContext + respMessage.Message = &message + respMessage.Code = 400 + return nil, &respMessage } var respErr models.Error diff --git a/pkg/mongodb-datastore/utils/eventUtils_test.go b/pkg/mongodb-datastore/utils/eventUtils_test.go index ae6fd2a9..7c80a7be 100644 --- a/pkg/mongodb-datastore/utils/eventUtils_test.go +++ b/pkg/mongodb-datastore/utils/eventUtils_test.go @@ -26,17 +26,65 @@ func testingHTTPClient(handler http.Handler) (*http.Client, func()) { return client, server.Close } -func TestGetEvent(t *testing.T) { +// TestGetEvent tests whether the GetEvent function returns the latest Keptn event +// of type sh.keptn.events.evaluation-done and from Keptn context: 8929e5e5-3826-488f-9257-708bfa974909 +func TestGetEventStatusOK(t *testing.T) { handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { assert.Equal(t, r.Method, "GET", "Expect GET request") assert.Equal(t, r.URL.EscapedPath(), "/event", "Expect /event endpoint") - w.WriteHeader(http.StatusOK) // 200 - SatusOk + w.WriteHeader(http.StatusOK) + eventList := `{ + "events":[ + {"contenttype":"application/json", + "data":{"deploymentstrategy":"blue_green_service", + "evaluationdetails":[{"Key":"result","Value":"pass"}], + "evaluationpassed":true, + "project":"sockshop", + "service":"carts", + "stage":"production", + "teststrategy":""}, + "id":"aaa50752-ab33-493b-8b28-3548f7960f80", + "source":"pitometer-service", + "specversion":"0.2", + "time":"2019-10-21T14:12:48.000Z", + "type":"sh.keptn.events.evaluation-done", + "shkeptncontext":"8929e5e5-3826-488f-9257-708bfa974909"}, + + {"contenttype":"application/json", + "data":{"deploymentstrategy":"blue_green_service", + "evaluationdetails":[{"Key":"result","Value":"pass"}], + "evaluationpassed":true, + "project":"sockshop", + "service":"carts", + "stage":"staging", + "teststrategy":"performance"}, + "id":"573610d2-3643-4513-9a8e-df7c6614356f", + "source":"pitometer-service", + "specversion":"0.2", + "time":"2019-10-21T14:10:05.000Z", + "type":"sh.keptn.events.evaluation-done", + "shkeptncontext":"8929e5e5-3826-488f-9257-708bfa974909"}, + + {"contenttype":"application/json", + "data":{"deploymentstrategy":"direct", + "evaluationdetails":[{"Key":"result","Value":"pass"}], + "evaluationpassed":true, + "project":"sockshop", + "service":"carts", + "stage":"dev", + "teststrategy":"functional"}, + "id":"a46be431-b45b-4f18-bf74-73fc7d2da062", + "source":"pitometer-service", + "specversion":"0.2", + "time":"2019-10-21T14:04:25.000Z", + "type":"sh.keptn.events.evaluation-done", + "shkeptncontext":"8929e5e5-3826-488f-9257-708bfa974909"}], + + "pageSize":10, + "totalCount":3 + }` - response := ` - - ` - - w.Write() + w.Write([]byte(eventList)) }) httpClient, teardown := testingHTTPClient(handler) @@ -44,14 +92,53 @@ func TestGetEvent(t *testing.T) { eventHandler := NewEventHandler("https://localhost") eventHandler.HTTPClient = httpClient - cloudEvent, errObj := eventHandler.GetEvent("8929e5e5-3826-488f-9257-708bfa974909", keptnevents.EvaluationDoneEventType) if cloudEvent == nil { - t.Error("No CloudEvent returned") + t.Error("no CloudEvent returned") + } + + // check whether the last event is returned + if cloudEvent.Time.String() != "2019-10-21T14:12:48.000Z" { + t.Error("did not receive the latest event") } if errObj != nil { - t.Errorf("An error occured %v", errObj.Message) + t.Errorf("an error occured %v", errObj.Message) + } +} + +// TestGetEvent tests whether the GetEvent function returns no event found when no event is available +func TestGetEventStatusOKNoEvent(t *testing.T) { + handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + assert.Equal(t, r.Method, "GET", "Expect GET request") + assert.Equal(t, r.URL.EscapedPath(), "/event", "Expect /event endpoint") + w.WriteHeader(http.StatusOK) + eventList := `{ + "events":[], + "pageSize":10, + "totalCount":0 + }` + + w.Write([]byte(eventList)) + }) + + httpClient, teardown := testingHTTPClient(handler) + defer teardown() + + eventHandler := NewEventHandler("https://localhost") + eventHandler.HTTPClient = httpClient + cloudEvent, errObj := eventHandler.GetEvent("8929e5e5-3826-488f-9257-708bfa974909", keptnevents.EvaluationDoneEventType) + + if cloudEvent != nil { + t.Error("do not expect a Keptn Cloud event") + } + + if errObj == nil { + t.Errorf("an error occured %v", errObj.Message) + } + + if *errObj.Message != "No Keptn sh.keptn.events.evaluation-done event found for context: 8929e5e5-3826-488f-9257-708bfa974909" { + t.Error("reponse message has changed") } } From a3011ae18e76bf72efa875a81190c4650252cfc8 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 22 Oct 2019 15:23:08 +0200 Subject: [PATCH 49/65] #949 Support of changed cloud event --- pkg/api/models/keptn_context_extended_c_e.go | 102 ++++++++++++++++++ pkg/api/utils/eventUtils.go | 7 +- .../utils/eventUtils_test.go | 2 +- 3 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 pkg/api/models/keptn_context_extended_c_e.go diff --git a/pkg/api/models/keptn_context_extended_c_e.go b/pkg/api/models/keptn_context_extended_c_e.go new file mode 100644 index 00000000..cc8a9662 --- /dev/null +++ b/pkg/api/models/keptn_context_extended_c_e.go @@ -0,0 +1,102 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + strfmt "github.com/go-openapi/strfmt" + + "github.com/go-openapi/errors" + "github.com/go-openapi/swag" +) + +// KeptnContextExtendedCE keptn context extended c e +// swagger:model keptnContextExtendedCE +type KeptnContextExtendedCE struct { + Event + + // shkeptncontext + Shkeptncontext string `json:"shkeptncontext,omitempty"` +} + +// UnmarshalJSON unmarshals this object from a JSON structure +func (m *KeptnContextExtendedCE) UnmarshalJSON(raw []byte) error { + // AO0 + var aO0 Event + if err := swag.ReadJSON(raw, &aO0); err != nil { + return err + } + m.Event = aO0 + + // AO1 + var dataAO1 struct { + Shkeptncontext string `json:"shkeptncontext,omitempty"` + } + if err := swag.ReadJSON(raw, &dataAO1); err != nil { + return err + } + + m.Shkeptncontext = dataAO1.Shkeptncontext + + return nil +} + +// MarshalJSON marshals this object to a JSON structure +func (m KeptnContextExtendedCE) MarshalJSON() ([]byte, error) { + _parts := make([][]byte, 0, 2) + + aO0, err := swag.WriteJSON(m.Event) + if err != nil { + return nil, err + } + _parts = append(_parts, aO0) + + var dataAO1 struct { + Shkeptncontext string `json:"shkeptncontext,omitempty"` + } + + dataAO1.Shkeptncontext = m.Shkeptncontext + + jsonDataAO1, errAO1 := swag.WriteJSON(dataAO1) + if errAO1 != nil { + return nil, errAO1 + } + _parts = append(_parts, jsonDataAO1) + + return swag.ConcatJSON(_parts...), nil +} + +// Validate validates this keptn context extended c e +func (m *KeptnContextExtendedCE) Validate(formats strfmt.Registry) error { + var res []error + + // validation for a type composition with Event + if err := m.Event.Validate(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +// MarshalBinary interface implementation +func (m *KeptnContextExtendedCE) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *KeptnContextExtendedCE) UnmarshalBinary(b []byte) error { + var res KeptnContextExtendedCE + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/pkg/api/utils/eventUtils.go b/pkg/api/utils/eventUtils.go index c76064f0..bbad5e70 100644 --- a/pkg/api/utils/eventUtils.go +++ b/pkg/api/utils/eventUtils.go @@ -8,7 +8,6 @@ import ( "strings" "github.com/keptn/go-utils/pkg/api/models" - datastore "github.com/keptn/go-utils/pkg/mongodb-datastore/models" ) // EventHandler handles services @@ -75,11 +74,11 @@ func (e *EventHandler) SendEvent(event models.Event) (*models.EventContext, *mod } // GetEvent returns an event specified by keptnContext and eventType -func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*datastore.KeptnContextExtendedCE, *models.Error) { +func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*models.KeptnContextExtendedCE, *models.Error) { return getEvent(e.Scheme+"://"+e.getBaseURL()+"/v1/event?keptnContext="+keptnContext+"&type="+eventType+"&pageSize=10", e) } -func getEvent(uri string, api APIService) (*datastore.KeptnContextExtendedCE, *models.Error) { +func getEvent(uri string, api APIService) (*models.KeptnContextExtendedCE, *models.Error) { http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) @@ -101,7 +100,7 @@ func getEvent(uri string, api APIService) (*datastore.KeptnContextExtendedCE, *m if resp.StatusCode >= 200 && resp.StatusCode < 300 { if len(body) > 0 { - var cloudEvent datastore.KeptnContextExtendedCE + var cloudEvent models.KeptnContextExtendedCE err = json.Unmarshal(body, &cloudEvent) if err != nil { return nil, buildErrorResponse(err.Error()) diff --git a/pkg/mongodb-datastore/utils/eventUtils_test.go b/pkg/mongodb-datastore/utils/eventUtils_test.go index 7c80a7be..de3ab65f 100644 --- a/pkg/mongodb-datastore/utils/eventUtils_test.go +++ b/pkg/mongodb-datastore/utils/eventUtils_test.go @@ -95,7 +95,7 @@ func TestGetEventStatusOK(t *testing.T) { cloudEvent, errObj := eventHandler.GetEvent("8929e5e5-3826-488f-9257-708bfa974909", keptnevents.EvaluationDoneEventType) if cloudEvent == nil { - t.Error("no CloudEvent returned") + t.Error("no Keptn event returned") } // check whether the last event is returned From 89fc259e4c020a74d95708ce8cf9554f707c57be Mon Sep 17 00:00:00 2001 From: michHam Date: Tue, 22 Oct 2019 21:54:19 +0200 Subject: [PATCH 50/65] added go modules support to travis.yml --- .DS_Store | Bin 0 -> 6148 bytes .travis.yml | 13 ++++++++----- pkg/.DS_Store | Bin 0 -> 6148 bytes 3 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 .DS_Store create mode 100644 pkg/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e5d794dafc4a85f84daa57c7545fb984db79dfe0 GIT binary patch literal 6148 zcmeH~JqiLr422WdLa^D=avBfd4F=H@cmYwtLP0_7=jgutG_KaN$O|OjB(q_6U$L_h z5nVq|E0JDAW^kh{EeuSNcXF4DoKKJA^>Djgt>iXIS^?h6U_ZABDnJFO02QDDRA593 zET z-P^&E*VSYTM!RSZADVYon_^%Z?V<$hojhD)^_2c!dzR#+y8yxh@5#D|Rkl0bYfV*M8*aED{7DNTc9|4zvfeQRoffpby B5pMth literal 0 HcmV?d00001 diff --git a/.travis.yml b/.travis.yml index d527c37e..0f60ab0b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,13 +10,16 @@ go: notifications: email: false -before_install: - - curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh - - dep ensure +env: +- GO111MODULE=on + +# enable module cache +cache: + directories: + - $GOPATH/pkg/mod # script always runs to completion (set +e). If we have linter issues AND a # failing test, we want to see both. Configure golangci-lint with a # .golangci.yml file at the top level of your repo. script: - - go get ./... - - go test -v -race ./... # Run all the tests with the race detector enabled + - go test -v -race ./... # Run all the tests with the race detector enabled \ No newline at end of file diff --git a/pkg/.DS_Store b/pkg/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..69a339c4b132a3f45aff94536ab868bf0d997a96 GIT binary patch literal 6148 zcmeHKI|>3p3{6x-u-VdbuHX#@(Gz$9@zaSGe(J3}mq+vEgCMJoU?VS(yqQeiEc=Sh zMnrUW*-k|o5gEY^s#~o)mZBLv1`gq)Ts^2G!JCvPV;fF8y?{8(6 z3Qz$mKn17(75Jop^WT5PSpx4v==k+Gh!1u>`Ot zwt>jNG^oI!YK|BhbmU9c)xz9l!`dkb-j0FZj6_5j=a->{24G^XjI_W3OoRep%t_M literal 0 HcmV?d00001 From d2d11827347c0c456568915d443049519b2536fc Mon Sep 17 00:00:00 2001 From: michHam Date: Tue, 22 Oct 2019 22:02:54 +0200 Subject: [PATCH 51/65] Remove .DS_Store --- .DS_Store | Bin 6148 -> 0 bytes pkg/.DS_Store | Bin 6148 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store delete mode 100644 pkg/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index e5d794dafc4a85f84daa57c7545fb984db79dfe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~JqiLr422WdLa^D=avBfd4F=H@cmYwtLP0_7=jgutG_KaN$O|OjB(q_6U$L_h z5nVq|E0JDAW^kh{EeuSNcXF4DoKKJA^>Djgt>iXIS^?h6U_ZABDnJFO02QDDRA593 zET z-P^&E*VSYTM!RSZADVYon_^%Z?V<$hojhD)^_2c!dzR#+y8yxh@5#D|Rkl0bYfV*M8*aED{7DNTc9|4zvfeQRoffpby B5pMth diff --git a/pkg/.DS_Store b/pkg/.DS_Store deleted file mode 100644 index 69a339c4b132a3f45aff94536ab868bf0d997a96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKI|>3p3{6x-u-VdbuHX#@(Gz$9@zaSGe(J3}mq+vEgCMJoU?VS(yqQeiEc=Sh zMnrUW*-k|o5gEY^s#~o)mZBLv1`gq)Ts^2G!JCvPV;fF8y?{8(6 z3Qz$mKn17(75Jop^WT5PSpx4v==k+Gh!1u>`Ot zwt>jNG^oI!YK|BhbmU9c)xz9l!`dkb-j0FZj6_5j=a->{24G^XjI_W3OoRep%t_M From 25d364609b4dba7f23dd7326e8d854bd6cd7965a Mon Sep 17 00:00:00 2001 From: michHam Date: Tue, 22 Oct 2019 22:04:19 +0200 Subject: [PATCH 52/65] added .DS_Store to gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index dc6334df..d897ee86 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,6 @@ .idea/ .code/ +**/.DS_Store + vendor/ \ No newline at end of file From 67e681092263a576080bb77600330bfa0135b212 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Wed, 23 Oct 2019 07:47:00 +0200 Subject: [PATCH 53/65] #995 Remove property changes on deployment --- pkg/events/keptnEvents.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkg/events/keptnEvents.go b/pkg/events/keptnEvents.go index ad098ed4..c383eb5d 100644 --- a/pkg/events/keptnEvents.go +++ b/pkg/events/keptnEvents.go @@ -88,8 +88,6 @@ type ConfigurationChangeEventData struct { ValuesCanary map[string]interface{} `json:"valuesCanary,omitempty"` // Canary contains a new configuration for canary releases Canary *Canary `json:"canary,omitempty"` - // DeploymentChanges contains changes of the primary deployment - DeploymentChanges []PropertyChange `json:"deploymentChanges,omitempty"` // FileChangesUserChart provides new content for the user chart. // The key value pairs represent the URI within the chart (i.e. the key) and the new content (i.e. the value). FileChangesUserChart map[string]string `json:"fileChangesUserChart,omitempty"` From 0552f3a31fa885db6b67a80f1c8247fe8e76e5d0 Mon Sep 17 00:00:00 2001 From: michHam Date: Wed, 23 Oct 2019 10:04:39 +0200 Subject: [PATCH 54/65] changed versions of k8 dependencies --- go.mod | 36 ++++++++++++----- go.sum | 119 ++++++++++++++++++++++----------------------------------- 2 files changed, 72 insertions(+), 83 deletions(-) diff --git a/go.mod b/go.mod index 9982d40f..0628d6c6 100644 --- a/go.mod +++ b/go.mod @@ -4,33 +4,49 @@ go 1.13 require ( github.com/Azure/go-autorest/autorest v0.9.2 + github.com/Azure/go-autorest/autorest/adal v0.8.0 // indirect github.com/Masterminds/goutils v1.1.0 // indirect github.com/Masterminds/semver v1.5.0 // indirect github.com/Masterminds/sprig v2.22.0+incompatible // indirect - github.com/cloudevents/sdk-go v0.9.2 + github.com/cloudevents/sdk-go v0.10.0 github.com/cyphar/filepath-securejoin v0.2.2 // indirect github.com/go-openapi/errors v0.19.2 github.com/go-openapi/strfmt v0.19.3 github.com/go-openapi/swag v0.19.5 - github.com/go-openapi/validate v0.19.3 + github.com/go-openapi/validate v0.19.4 github.com/gobwas/glob v0.2.3 // indirect + github.com/gogo/protobuf v1.3.1 // indirect github.com/google/uuid v1.1.1 - github.com/gophercloud/gophercloud v0.5.0 // indirect + github.com/googleapis/gnostic v0.3.1 // indirect + github.com/gophercloud/gophercloud v0.6.0 // indirect github.com/gorilla/websocket v1.4.1 + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/huandu/xstrings v1.2.0 // indirect github.com/imdario/mergo v0.3.8 // indirect + github.com/json-iterator/go v1.1.7 // indirect github.com/mitchellh/copystructure v1.0.0 // indirect + github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/peterbourgon/diskv v2.0.1+incompatible // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/stretchr/testify v1.4.0 + golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 // indirect + golang.org/x/net v0.0.0-20191021144547-ec77196f6094 // indirect + golang.org/x/time v0.0.0-20191023065245-6d3f0bb11be5 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/src-d/go-git.v4 v4.13.1 gopkg.in/yaml.v2 v2.2.4 - k8s.io/api v0.0.0-20191003000013-35e20aa79eb8 - k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655 - k8s.io/client-go v0.0.0-20191003000419-f68efa97b39e + k8s.io/api v0.0.0-20190111032252-67edc246be36 + k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93 + k8s.io/client-go v10.0.0+incompatible k8s.io/helm v2.14.3+incompatible - k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 // indirect + k8s.io/klog v1.0.0 // indirect + sigs.k8s.io/yaml v1.1.0 // indirect ) +// using kubernetes-1.13.2 for api/apimachinery + replace ( - k8s.io/api => k8s.io/api v0.0.0-20191003000013-35e20aa79eb8 - k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655 - k8s.io/client-go => k8s.io/client-go v0.0.0-20191003000419-f68efa97b39e + k8s.io/api => k8s.io/api v0.0.0-20190111032252-67edc246be36 + k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93 + k8s.io/client-go => k8s.io/client-go v10.0.0+incompatible ) diff --git a/go.sum b/go.sum index dfb23abf..5b2e2bcf 100644 --- a/go.sum +++ b/go.sum @@ -7,17 +7,24 @@ contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRq contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-autorest/autorest v0.2.0/go.mod h1:AKyIcETwSUFxIcs/Wnq/C+kwCtlEYGUVd7FPNb2slmg= +github.com/Azure/go-autorest/autorest v0.9.0 h1:MRvx8gncNaXJqOoLmhNjUAKh33JJF8LyxPhomEtOsjs= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.2 h1:6AWuh3uWrsZJcNoCHrCF/+g4aKPCU39kaMO6/qrnK/4= github.com/Azure/go-autorest/autorest v0.9.2/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest/adal v0.1.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= github.com/Azure/go-autorest/autorest/adal v0.5.0 h1:q2gDruN08/guU9vAjuPWff0+QIrpH6ediguzdAzXAUU= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= +github.com/Azure/go-autorest/autorest/adal v0.8.0 h1:CxTzQrySOxDnKpLjFJeZAS5Qrv/qFPkgLjx5bOAi//I= +github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= github.com/Azure/go-autorest/autorest/date v0.1.0 h1:YGrhWfrgtFs84+h0o46rJrlmsZtyZRg470CqAXTZaGM= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= +github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0 h1:Ww5g4zThfD/6cLb4z6xxgeyDa7QDkizMkJKe0ysZXp0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc= +github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= @@ -33,12 +40,9 @@ github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3Q github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= @@ -58,12 +62,11 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudevents/sdk-go v0.9.2 h1:ip6RZ6NrRvFeN5p/6LxojEorXRT4rTgsWlBDMY7l5Mc= -github.com/cloudevents/sdk-go v0.9.2/go.mod h1:5aANaSw5UprzGU2azTF0V/yjeIIQhpf01jRjTTU26nc= +github.com/cloudevents/sdk-go v0.10.0 h1:j/0Gwiyc0aamxaPx2aLsRhbGUcwIcE/lb5s00OOExfw= +github.com/cloudevents/sdk-go v0.10.0/go.mod h1:PW8UwWI6tD2Ry5kFpZfV1qlrADFkfaDCZXLiJ1dC1Ks= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= -github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -71,20 +74,16 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumC github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= @@ -104,13 +103,11 @@ github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQH github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= -github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w= @@ -124,7 +121,6 @@ github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6 github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= github.com/go-openapi/runtime v0.19.4 h1:csnOgcgAiuGoM/Po7PEpKDoNulCcF3FGbSnbHfxgjMI= github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= -github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= @@ -136,7 +132,6 @@ github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+Z github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/strfmt v0.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA= github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= -github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= @@ -144,30 +139,31 @@ github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tF github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.3 h1:PAH/2DylwWcIU1s0Y7k3yNmeAgWOcKrNE2Q7Ww/kCg4= -github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= +github.com/go-openapi/validate v0.19.4 h1:LGjO87VyXY3bIKjlYpXSFuLRG2mTeuYlZyeNwFFWpyM= +github.com/go-openapi/validate v0.19.4/go.mod h1:BkJ0ZmXui7yB0bJXWSXgLPNTmbLVeX/3D1xn/N9mMUM= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -176,16 +172,16 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1yIonGp9761ExpPPV1ui0SAC59Yube9k= -github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gophercloud/gophercloud v0.5.0 h1:uM4HalWpEdxORniBrzicAtpYNTk45p5QLLS7zwc1uAU= -github.com/gophercloud/gophercloud v0.5.0/go.mod h1:b1k/BkBA9smzYde6p6zYLIe5JNAEoJzUWaIRh+9A/j0= +github.com/googleapis/gnostic v0.3.1 h1:WeAefnSUHlBb0iJKwxFDZdbfGwkd7xRNuV+IpXMJhYk= +github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= +github.com/gophercloud/gophercloud v0.6.0 h1:Xb2lcqZtml1XjgYZxbeayEemq7ASbeTp09m36gQFpEU= +github.com/gophercloud/gophercloud v0.6.0/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= @@ -193,13 +189,11 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -218,7 +212,6 @@ github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -233,37 +226,29 @@ github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQz github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= 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 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nats-io/jwt v0.2.6/go.mod h1:mQxQ0uHQ9FhEVPIcTSKwx2lqZEpXWWcCgA7R6NrWvvY= github.com/nats-io/nats-server/v2 v2.0.0/go.mod h1:RyVdsHHvY4B6c9pWG+uRLpZ0h0XsqiuKp2XCTurP5LI= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= +github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -281,16 +266,13 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +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/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= @@ -312,8 +294,8 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -321,13 +303,14 @@ golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -346,9 +329,10 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191021144547-ec77196f6094 h1:5O4U9trLjNpuhpynaDsqwCk+Tw6seqJz1EbqbnzHrc8= +golang.org/x/net v0.0.0-20191021144547-ec77196f6094/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= @@ -358,14 +342,13 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -375,16 +358,16 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e h1:D5TXcfTk7xF7hvieo4QErS3qqCB4teTffacDWr7CI+0= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191023065245-6d3f0bb11be5 h1:KvJW0HDFZT3ZQ2kTXZ0xHbHm2BMbdJV4ff3petXiuxI= +golang.org/x/time v0.0.0-20191023065245-6d3f0bb11be5/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -394,8 +377,6 @@ golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= -golang.org/x/tools v0.0.0-20191004055002-72853e10c5a3/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= @@ -418,8 +399,8 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o= -gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= @@ -439,25 +420,17 @@ honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.0.0-20191003000013-35e20aa79eb8 h1:cJZ/+fVFIFQDkUewZeim5OhZ8X+h48lMtMsZgQMdxOo= -k8s.io/api v0.0.0-20191003000013-35e20aa79eb8/go.mod h1:uWuOHnjmNrtQomJrvEBg0c0HRNyQ+8KTEERVsK0PW48= -k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655 h1:CS1tBQz3HOXiseWZu6ZicKX361CZLT97UFnnPx0aqBw= -k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655/go.mod h1:nL6pwRT8NgfF8TT68DBI8uEePRt89cSvoXUVqbkWHq4= -k8s.io/client-go v0.0.0-20191003000419-f68efa97b39e h1:S7/BObCpTSVf9vlBdEs5hKNzLCq5FMha6bbmRoDGROU= -k8s.io/client-go v0.0.0-20191003000419-f68efa97b39e/go.mod h1:UBFA5lo8nEOepaxS9koNccX/38rYMI3pa1EA1gaFZNg= -k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/api v0.0.0-20190111032252-67edc246be36 h1:XrFGq/4TDgOxYOxtNROTyp2ASjHjBIITdk/+aJD+zyY= +k8s.io/api v0.0.0-20190111032252-67edc246be36/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= +k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93 h1:tT6oQBi0qwLbbZSfDkdIsb23EwaLY85hoAV4SpXfdao= +k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= +k8s.io/client-go v10.0.0+incompatible h1:F1IqCqw7oMBzDkqlcBymRq1450wD0eNqLE9jzUrIi34= +k8s.io/client-go v10.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= k8s.io/helm v2.14.3+incompatible h1:uzotTcZXa/b2SWVoUzM1xiCXVjI38TuxMujS/1s+3Gw= k8s.io/helm v2.14.3+incompatible/go.mod h1:LZzlS4LQBHfciFOurYBFkCMTaZ0D1l+p0teMg7TSULI= -k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.4.0 h1:lCJCxf/LIowc2IGS9TPjWDyXY4nOmdGdfcwwDQCOURQ= -k8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= -k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 h1:Gi+/O1saihwDqnlmC8Vhv1M5Sp4+rbOmK9TbsLn8ZEA= -k8s.io/utils v0.0.0-20191010214722-8d271d903fe4/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= +k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= +k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= pack.ag/amqp v0.11.0/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= From 0f98862d18b3d9bfc6b0cb379186a0ddb3a68231 Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 23 Oct 2019 10:32:41 +0200 Subject: [PATCH 55/65] #1005 Centralize setting Transport --- pkg/api/utils/apiServiceUtils.go | 10 ++++++++-- pkg/api/utils/authUtils.go | 4 +++- pkg/api/utils/eventUtils.go | 6 +++--- pkg/api/utils/projectUtils.go | 6 +++--- pkg/api/utils/resourceUtils.go | 6 ++++-- pkg/api/utils/serviceUtils.go | 4 +++- pkg/{ => api}/utils/xipIoResolver.go | 0 7 files changed, 24 insertions(+), 12 deletions(-) rename pkg/{ => api}/utils/xipIoResolver.go (100%) diff --git a/pkg/api/utils/apiServiceUtils.go b/pkg/api/utils/apiServiceUtils.go index 8fec9f9e..88a8b175 100644 --- a/pkg/api/utils/apiServiceUtils.go +++ b/pkg/api/utils/apiServiceUtils.go @@ -19,9 +19,16 @@ type APIService interface { getHTTPClient() *http.Client } +func getClientTransport() *http.Transport { + tr := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + DialContext: ResolveXipIoWithContext, + } + return tr +} + func post(uri string, data []byte, api APIService) (*models.EventContext, *models.Error) { - http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("POST", uri, bytes.NewBuffer(data)) req.Header.Set("Content-Type", "application/json") req.Host = "api.keptn" @@ -68,7 +75,6 @@ func post(uri string, data []byte, api APIService) (*models.EventContext, *model func delete(uri string, api APIService) (*models.EventContext, *models.Error) { - http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("DELETE", uri, nil) req.Header.Set("Content-Type", "application/json") req.Host = "api.keptn" diff --git a/pkg/api/utils/authUtils.go b/pkg/api/utils/authUtils.go index 11d5e1e6..cc05f9b8 100644 --- a/pkg/api/utils/authUtils.go +++ b/pkg/api/utils/authUtils.go @@ -24,7 +24,7 @@ func NewAuthHandler(baseURL string) *AuthHandler { BaseURL: baseURL, AuthHeader: "", AuthToken: "", - HTTPClient: &http.Client{}, + HTTPClient: &http.Client{Transport: getClientTransport()}, Scheme: "https", } } @@ -34,6 +34,8 @@ func NewAuthenticatedAuthHandler(baseURL string, authToken string, authHeader st if httpClient == nil { httpClient = &http.Client{} } + httpClient.Transport = getClientTransport() + baseURL = strings.TrimPrefix(baseURL, "http://") baseURL = strings.TrimPrefix(baseURL, "https://") return &AuthHandler{ diff --git a/pkg/api/utils/eventUtils.go b/pkg/api/utils/eventUtils.go index bbad5e70..1315f0d7 100644 --- a/pkg/api/utils/eventUtils.go +++ b/pkg/api/utils/eventUtils.go @@ -1,7 +1,6 @@ package utils import ( - "crypto/tls" "encoding/json" "io/ioutil" "net/http" @@ -27,7 +26,7 @@ func NewEventHandler(baseURL string) *EventHandler { BaseURL: baseURL, AuthHeader: "", AuthToken: "", - HTTPClient: &http.Client{}, + HTTPClient: &http.Client{Transport: getClientTransport()}, Scheme: "https", } } @@ -37,6 +36,8 @@ func NewAuthenticatedEventHandler(baseURL string, authToken string, authHeader s if httpClient == nil { httpClient = &http.Client{} } + httpClient.Transport = getClientTransport() + baseURL = strings.TrimPrefix(baseURL, "http://") baseURL = strings.TrimPrefix(baseURL, "https://") return &EventHandler{ @@ -80,7 +81,6 @@ func (e *EventHandler) GetEvent(keptnContext string, eventType string) (*models. func getEvent(uri string, api APIService) (*models.KeptnContextExtendedCE, *models.Error) { - http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) req.Header.Set("Content-Type", "application/json") req.Host = "api.keptn" diff --git a/pkg/api/utils/projectUtils.go b/pkg/api/utils/projectUtils.go index 4f370ab2..dbcf6f67 100644 --- a/pkg/api/utils/projectUtils.go +++ b/pkg/api/utils/projectUtils.go @@ -1,7 +1,6 @@ package utils import ( - "crypto/tls" "encoding/json" "io/ioutil" "net/http" @@ -27,7 +26,7 @@ func NewProjectHandler(baseURL string) *ProjectHandler { BaseURL: baseURL, AuthHeader: "", AuthToken: "", - HTTPClient: &http.Client{}, + HTTPClient: &http.Client{Transport: getClientTransport()}, Scheme: "https", } } @@ -37,6 +36,8 @@ func NewAuthenticatedProjectHandler(baseURL string, authToken string, authHeader if httpClient == nil { httpClient = &http.Client{} } + httpClient.Transport = getClientTransport() + baseURL = strings.TrimPrefix(baseURL, "http://") baseURL = strings.TrimPrefix(baseURL, "https://") return &ProjectHandler{ @@ -85,7 +86,6 @@ func (p *ProjectHandler) GetProject(project models.Project) (*models.Project, *m func getProject(uri string, api APIService) (*models.Project, *models.Error) { - http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} req, err := http.NewRequest("GET", uri, nil) req.Header.Set("Content-Type", "application/json") req.Host = "api.keptn" diff --git a/pkg/api/utils/resourceUtils.go b/pkg/api/utils/resourceUtils.go index f20798d5..66ece412 100644 --- a/pkg/api/utils/resourceUtils.go +++ b/pkg/api/utils/resourceUtils.go @@ -30,7 +30,7 @@ func NewResourceHandler(baseURL string) *ResourceHandler { BaseURL: baseURL, AuthHeader: "", AuthToken: "", - HTTPClient: &http.Client{}, + HTTPClient: &http.Client{Transport: getClientTransport()}, Scheme: "https", } } @@ -40,6 +40,8 @@ func NewAuthenticatedResourceHandler(baseURL string, authToken string, authHeade if httpClient == nil { httpClient = &http.Client{} } + httpClient.Transport = getClientTransport() + baseURL = strings.TrimPrefix(baseURL, "http://") baseURL = strings.TrimPrefix(baseURL, "https://") return &ResourceHandler{ @@ -75,10 +77,10 @@ func (r *ResourceHandler) CreateServiceResources(project string, stage string, s resourceContent := b64.StdEncoding.EncodeToString([]byte(*val.ResourceContent)) copiedResources[i] = &models.Resource{ResourceURI: val.ResourceURI, ResourceContent: &resourceContent} } + resReq := &resourceRequest{ Resources: copiedResources, } - requestStr, err := json.Marshal(resReq) if err != nil { return nil, buildErrorResponse(err.Error()) diff --git a/pkg/api/utils/serviceUtils.go b/pkg/api/utils/serviceUtils.go index af6811d0..eebafb30 100644 --- a/pkg/api/utils/serviceUtils.go +++ b/pkg/api/utils/serviceUtils.go @@ -25,7 +25,7 @@ func NewServiceHandler(baseURL string) *ServiceHandler { BaseURL: baseURL, AuthHeader: "", AuthToken: "", - HTTPClient: &http.Client{}, + HTTPClient: &http.Client{Transport: getClientTransport()}, Scheme: "https", } } @@ -35,6 +35,8 @@ func NewAuthenticatedServiceHandler(baseURL string, authToken string, authHeader if httpClient == nil { httpClient = &http.Client{} } + httpClient.Transport = getClientTransport() + baseURL = strings.TrimPrefix(baseURL, "http://") baseURL = strings.TrimPrefix(baseURL, "https://") return &ServiceHandler{ diff --git a/pkg/utils/xipIoResolver.go b/pkg/api/utils/xipIoResolver.go similarity index 100% rename from pkg/utils/xipIoResolver.go rename to pkg/api/utils/xipIoResolver.go From c6e4cbe5f7c548956f98f53e72e4ef579c3e5257 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Wed, 23 Oct 2019 11:08:36 +0200 Subject: [PATCH 56/65] #995 Correct json tags, remove unused struct --- pkg/events/keptnEvents.go | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pkg/events/keptnEvents.go b/pkg/events/keptnEvents.go index c383eb5d..ee8709f6 100644 --- a/pkg/events/keptnEvents.go +++ b/pkg/events/keptnEvents.go @@ -116,12 +116,6 @@ type TestsFinishedEventData struct { TestStrategy string `json:"teststrategy"` } -// PropertyChange describes the property to be changed -type PropertyChange struct { - PropertyPath string `json:"propertyPath"` - Value interface{} `json:"value"` -} - // Canary describes the new configuration in a canary release type Canary struct { // Value represents the traffic percentage on the canary @@ -139,8 +133,8 @@ type ProblemEventData struct { ImpactedEntity string `json:"impactedEntity"` Tags string `json:"tags,omitempty"` Project string `json:"project,omitempty"` - Stage string `json:"project,omitempty"` - Service string `json:"project,omitempty"` + Stage string `json:"stage,omitempty"` + Service string `json:"service,omitempty"` } // ConfigureMonitoringEventData represents the data necessary to configure monitoring for a service From 7596c033f96cbe0e05daa771bdb44d7ccbea72eb Mon Sep 17 00:00:00 2001 From: michHam Date: Wed, 23 Oct 2019 14:51:51 +0200 Subject: [PATCH 57/65] changed k8s version to 1.15.0 --- go.mod | 23 ++++++++++------------- go.sum | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 0628d6c6..9bbfb203 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,10 @@ module github.com/keptn/go-utils -go 1.13 +go 1.12 require ( - github.com/Azure/go-autorest/autorest v0.9.2 - github.com/Azure/go-autorest/autorest/adal v0.8.0 // indirect + github.com/Azure/go-autorest v12.2.0+incompatible + github.com/Azure/go-autorest/autorest v0.2.0 github.com/Masterminds/goutils v1.1.0 // indirect github.com/Masterminds/semver v1.5.0 // indirect github.com/Masterminds/sprig v2.22.0+incompatible // indirect @@ -25,8 +25,6 @@ require ( github.com/imdario/mergo v0.3.8 // indirect github.com/json-iterator/go v1.1.7 // indirect github.com/mitchellh/copystructure v1.0.0 // indirect - github.com/modern-go/reflect2 v1.0.1 // indirect - github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.4.0 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 // indirect @@ -35,18 +33,17 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/src-d/go-git.v4 v4.13.1 gopkg.in/yaml.v2 v2.2.4 - k8s.io/api v0.0.0-20190111032252-67edc246be36 - k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93 - k8s.io/client-go v10.0.0+incompatible + k8s.io/api v0.0.0-20190620084959-7cf5895f2711 + k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719 + k8s.io/client-go v12.0.0+incompatible k8s.io/helm v2.14.3+incompatible k8s.io/klog v1.0.0 // indirect - sigs.k8s.io/yaml v1.1.0 // indirect ) -// using kubernetes-1.13.2 for api/apimachinery +// using kubernetes-1.15.0 for api/apimachinery replace ( - k8s.io/api => k8s.io/api v0.0.0-20190111032252-67edc246be36 - k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93 - k8s.io/client-go => k8s.io/client-go v10.0.0+incompatible + k8s.io/api => k8s.io/api v0.0.0-20190620084959-7cf5895f2711 + k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719 + k8s.io/client-go => k8s.io/client-go v12.0.0+incompatible ) diff --git a/go.sum b/go.sum index 5b2e2bcf..532bfd81 100644 --- a/go.sum +++ b/go.sum @@ -3,14 +3,21 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.40.0 h1:FjSY7bOj+WzJe6TZRVtXI2b9kAYvtNg4lMbcH2+MUkk= cloud.google.com/go v0.40.0/go.mod h1:Tk58MuI9rbLMKlAjeO/bDnteAx7tX2gJIXw4T5Jwlro= +contrib.go.opencensus.io/exporter/ocagent v0.4.12 h1:jGFvw3l57ViIVEPKKEUXPcLYIXJmQxLUh6ey1eJhwyc= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/go-autorest v11.1.2+incompatible h1:viZ3tV5l4gE2Sw0xrasFHytCGtzYCrT+um/rrSQ1BfA= +github.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v12.2.0+incompatible h1:2Fxszbg492oAJrcvJlgyVaTqnQYRkxmEK6VPCLLVpBI= +github.com/Azure/go-autorest v12.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.2.0 h1:zBtSTOQTtjzHVRe+mhkiHvHwRTKHhjBEyo1m6DfI3So= github.com/Azure/go-autorest/autorest v0.2.0/go.mod h1:AKyIcETwSUFxIcs/Wnq/C+kwCtlEYGUVd7FPNb2slmg= github.com/Azure/go-autorest/autorest v0.9.0 h1:MRvx8gncNaXJqOoLmhNjUAKh33JJF8LyxPhomEtOsjs= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.2 h1:6AWuh3uWrsZJcNoCHrCF/+g4aKPCU39kaMO6/qrnK/4= github.com/Azure/go-autorest/autorest v0.9.2/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest/adal v0.1.0 h1:RSw/7EAullliqwkZvgIGDYZWQm1PGKXI8c4aY/87yuU= github.com/Azure/go-autorest/autorest/adal v0.1.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= github.com/Azure/go-autorest/autorest/adal v0.5.0 h1:q2gDruN08/guU9vAjuPWff0+QIrpH6ediguzdAzXAUU= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= @@ -29,6 +36,7 @@ github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocm github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/tracing v0.1.0 h1:TRBxC5Pj/fIuh4Qob0ZpkggbfT8RC0SubHbpV3p4/Vc= github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvdeRAgDr0izn4z5Ij88= github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= @@ -60,6 +68,7 @@ github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:l github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/census-instrumentation/opencensus-proto v0.2.0 h1:LzQXZOgg4CQfE6bFvXGM30YZL1WW/M337pXml+GrcZ4= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudevents/sdk-go v0.10.0 h1:j/0Gwiyc0aamxaPx2aLsRhbGUcwIcE/lb5s00OOExfw= @@ -70,16 +79,20 @@ github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= +github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= @@ -145,12 +158,14 @@ github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -159,11 +174,13 @@ github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20160524151835-7d79101e329e/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -172,16 +189,20 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.3.1 h1:WeAefnSUHlBb0iJKwxFDZdbfGwkd7xRNuV+IpXMJhYk= github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= +github.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4= github.com/gophercloud/gophercloud v0.6.0 h1:Xb2lcqZtml1XjgYZxbeayEemq7ASbeTp09m36gQFpEU= github.com/gophercloud/gophercloud v0.6.0/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/grpc-gateway v1.8.5 h1:2+KSC78XiO6Qy0hIjfc1OD9H+hsaJdJlb8Kqsd41CTE= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= @@ -189,11 +210,13 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= +github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -228,10 +251,13 @@ github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/I github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= 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 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nats-io/jwt v0.2.6/go.mod h1:mQxQ0uHQ9FhEVPIcTSKwx2lqZEpXWWcCgA7R6NrWvvY= github.com/nats-io/nats-server/v2 v2.0.0/go.mod h1:RyVdsHHvY4B6c9pWG+uRLpZ0h0XsqiuKp2XCTurP5LI= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= @@ -239,6 +265,7 @@ github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7 github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= @@ -266,6 +293,7 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= 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/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= @@ -293,6 +321,7 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= @@ -320,6 +349,7 @@ golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -335,12 +365,14 @@ golang.org/x/net v0.0.0-20191021144547-ec77196f6094 h1:5O4U9trLjNpuhpynaDsqwCk+T golang.org/x/net v0.0.0-20191021144547-ec77196f6094/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -351,6 +383,7 @@ golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -360,8 +393,10 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e h1:D5TXcfTk7xF7hvieo4QErS3qq golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191023065245-6d3f0bb11be5 h1:KvJW0HDFZT3ZQ2kTXZ0xHbHm2BMbdJV4ff3petXiuxI= @@ -379,6 +414,7 @@ golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.6.0 h1:2tJEkRfnZL5g1GeBUlITh/rqT5HG3sFcoVCUUxmgJ2g= google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -389,16 +425,19 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101 h1:wuGevabY6r+ivPNagjUXGGxF+GqgMd+dBhjsxW4q9u4= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1 h1:Hz2g2wirWK7H0qIIhGIqRGTuMwTE8HEKFnDZZ7lm9NU= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -422,14 +461,24 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/api v0.0.0-20190111032252-67edc246be36 h1:XrFGq/4TDgOxYOxtNROTyp2ASjHjBIITdk/+aJD+zyY= k8s.io/api v0.0.0-20190111032252-67edc246be36/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= +k8s.io/api v0.0.0-20190620084959-7cf5895f2711 h1:BblVYz/wE5WtBsD/Gvu54KyBUTJMflolzc5I2DTvh50= +k8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A= k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93 h1:tT6oQBi0qwLbbZSfDkdIsb23EwaLY85hoAV4SpXfdao= k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= +k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719 h1:uV4S5IB5g4Nvi+TBVNf3e9L4wrirlwYJ6w88jUQxTUw= +k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA= k8s.io/client-go v10.0.0+incompatible h1:F1IqCqw7oMBzDkqlcBymRq1450wD0eNqLE9jzUrIi34= k8s.io/client-go v10.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= +k8s.io/client-go v12.0.0+incompatible h1:YlJxncpeVUC98/WMZKC3JZGk/OXQWCZjAB4Xr3B17RY= +k8s.io/client-go v12.0.0+incompatible/go.mod h1:E95RaSlHr79aHaX0aGSwcPNfygDiPKOVXdmivCIZT0k= k8s.io/helm v2.14.3+incompatible h1:uzotTcZXa/b2SWVoUzM1xiCXVjI38TuxMujS/1s+3Gw= k8s.io/helm v2.14.3+incompatible/go.mod h1:LZzlS4LQBHfciFOurYBFkCMTaZ0D1l+p0teMg7TSULI= +k8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= +k8s.io/utils v0.0.0-20190221042446-c2654d5206da h1:ElyM7RPonbKnQqOcw7dG2IK5uvQQn3b/WPHqD5mBvP4= +k8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0= pack.ag/amqp v0.11.0/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= From 01e818e94afa1b684911558d4da16a3d3f94b759 Mon Sep 17 00:00:00 2001 From: michHam Date: Sun, 27 Oct 2019 23:13:45 +0100 Subject: [PATCH 58/65] changed back to kubernetes 1.14, go-client 1.11 to work with goland --- go.mod | 17 +++++---- go.sum | 81 +++++++--------------------------------- pkg/utils/gitHubUtils.go | 1 - pkg/utils/keptnUtils.go | 3 +- 4 files changed, 24 insertions(+), 78 deletions(-) diff --git a/go.mod b/go.mod index 9bbfb203..840bea6b 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,6 @@ module github.com/keptn/go-utils go 1.12 require ( - github.com/Azure/go-autorest v12.2.0+incompatible github.com/Azure/go-autorest/autorest v0.2.0 github.com/Masterminds/goutils v1.1.0 // indirect github.com/Masterminds/semver v1.5.0 // indirect @@ -20,10 +19,10 @@ require ( github.com/googleapis/gnostic v0.3.1 // indirect github.com/gophercloud/gophercloud v0.6.0 // indirect github.com/gorilla/websocket v1.4.1 - github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/huandu/xstrings v1.2.0 // indirect github.com/imdario/mergo v0.3.8 // indirect github.com/json-iterator/go v1.1.7 // indirect + github.com/magiconair/properties v1.8.1 github.com/mitchellh/copystructure v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.4.0 @@ -33,17 +32,19 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/src-d/go-git.v4 v4.13.1 gopkg.in/yaml.v2 v2.2.4 - k8s.io/api v0.0.0-20190620084959-7cf5895f2711 - k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719 - k8s.io/client-go v12.0.0+incompatible + k8s.io/api v0.0.0-20190313235455-40a48860b5ab + k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1 + k8s.io/client-go v11.0.0+incompatible k8s.io/helm v2.14.3+incompatible k8s.io/klog v1.0.0 // indirect + k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 // indirect + sigs.k8s.io/yaml v1.1.0 // indirect ) // using kubernetes-1.15.0 for api/apimachinery replace ( - k8s.io/api => k8s.io/api v0.0.0-20190620084959-7cf5895f2711 - k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719 - k8s.io/client-go => k8s.io/client-go v12.0.0+incompatible + k8s.io/api => k8s.io/api v0.0.0-20190313235455-40a48860b5ab + k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1 + k8s.io/client-go => k8s.io/client-go v11.0.0+incompatible ) diff --git a/go.sum b/go.sum index 532bfd81..b8fdc134 100644 --- a/go.sum +++ b/go.sum @@ -7,39 +7,20 @@ contrib.go.opencensus.io/exporter/ocagent v0.4.12 h1:jGFvw3l57ViIVEPKKEUXPcLYIXJ contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A= github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-autorest v11.1.2+incompatible h1:viZ3tV5l4gE2Sw0xrasFHytCGtzYCrT+um/rrSQ1BfA= -github.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest v12.2.0+incompatible h1:2Fxszbg492oAJrcvJlgyVaTqnQYRkxmEK6VPCLLVpBI= -github.com/Azure/go-autorest v12.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.2.0 h1:zBtSTOQTtjzHVRe+mhkiHvHwRTKHhjBEyo1m6DfI3So= github.com/Azure/go-autorest/autorest v0.2.0/go.mod h1:AKyIcETwSUFxIcs/Wnq/C+kwCtlEYGUVd7FPNb2slmg= -github.com/Azure/go-autorest/autorest v0.9.0 h1:MRvx8gncNaXJqOoLmhNjUAKh33JJF8LyxPhomEtOsjs= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.9.2 h1:6AWuh3uWrsZJcNoCHrCF/+g4aKPCU39kaMO6/qrnK/4= -github.com/Azure/go-autorest/autorest v0.9.2/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest/adal v0.1.0 h1:RSw/7EAullliqwkZvgIGDYZWQm1PGKXI8c4aY/87yuU= github.com/Azure/go-autorest/autorest/adal v0.1.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= -github.com/Azure/go-autorest/autorest/adal v0.5.0 h1:q2gDruN08/guU9vAjuPWff0+QIrpH6ediguzdAzXAUU= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.0 h1:CxTzQrySOxDnKpLjFJeZAS5Qrv/qFPkgLjx5bOAi//I= -github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= github.com/Azure/go-autorest/autorest/date v0.1.0 h1:YGrhWfrgtFs84+h0o46rJrlmsZtyZRg470CqAXTZaGM= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= +github.com/Azure/go-autorest/autorest/mocks v0.1.0 h1:Kx+AUU2Te+A3JIyYn6Dfs+cFgx5XorQKuIXrZGoq/SI= github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0 h1:Ww5g4zThfD/6cLb4z6xxgeyDa7QDkizMkJKe0ysZXp0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.1.0 h1:TRBxC5Pj/fIuh4Qob0ZpkggbfT8RC0SubHbpV3p4/Vc= github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvdeRAgDr0izn4z5Ij88= -github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= @@ -79,20 +60,16 @@ github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= @@ -158,14 +135,12 @@ github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -174,13 +149,11 @@ github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20160524151835-7d79101e329e/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -189,19 +162,14 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.3.1 h1:WeAefnSUHlBb0iJKwxFDZdbfGwkd7xRNuV+IpXMJhYk= github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= -github.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4= github.com/gophercloud/gophercloud v0.6.0 h1:Xb2lcqZtml1XjgYZxbeayEemq7ASbeTp09m36gQFpEU= github.com/gophercloud/gophercloud v0.6.0/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/grpc-gateway v1.8.5 h1:2+KSC78XiO6Qy0hIjfc1OD9H+hsaJdJlb8Kqsd41CTE= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -210,13 +178,11 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -235,6 +201,8 @@ github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -251,13 +219,9 @@ github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/I github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= 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 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nats-io/jwt v0.2.6/go.mod h1:mQxQ0uHQ9FhEVPIcTSKwx2lqZEpXWWcCgA7R6NrWvvY= github.com/nats-io/nats-server/v2 v2.0.0/go.mod h1:RyVdsHHvY4B6c9pWG+uRLpZ0h0XsqiuKp2XCTurP5LI= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= @@ -265,13 +229,10 @@ github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7 github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= -github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= @@ -293,7 +254,7 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= 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/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= @@ -321,7 +282,6 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= @@ -349,7 +309,6 @@ golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -365,7 +324,6 @@ golang.org/x/net v0.0.0-20191021144547-ec77196f6094 h1:5O4U9trLjNpuhpynaDsqwCk+T golang.org/x/net v0.0.0-20191021144547-ec77196f6094/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -383,7 +341,6 @@ golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -393,10 +350,8 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e h1:D5TXcfTk7xF7hvieo4QErS3qq golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191023065245-6d3f0bb11be5 h1:KvJW0HDFZT3ZQ2kTXZ0xHbHm2BMbdJV4ff3petXiuxI= @@ -437,7 +392,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -459,26 +413,19 @@ honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.0.0-20190111032252-67edc246be36 h1:XrFGq/4TDgOxYOxtNROTyp2ASjHjBIITdk/+aJD+zyY= -k8s.io/api v0.0.0-20190111032252-67edc246be36/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= -k8s.io/api v0.0.0-20190620084959-7cf5895f2711 h1:BblVYz/wE5WtBsD/Gvu54KyBUTJMflolzc5I2DTvh50= -k8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A= -k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93 h1:tT6oQBi0qwLbbZSfDkdIsb23EwaLY85hoAV4SpXfdao= -k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= -k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719 h1:uV4S5IB5g4Nvi+TBVNf3e9L4wrirlwYJ6w88jUQxTUw= -k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA= -k8s.io/client-go v10.0.0+incompatible h1:F1IqCqw7oMBzDkqlcBymRq1450wD0eNqLE9jzUrIi34= -k8s.io/client-go v10.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= -k8s.io/client-go v12.0.0+incompatible h1:YlJxncpeVUC98/WMZKC3JZGk/OXQWCZjAB4Xr3B17RY= -k8s.io/client-go v12.0.0+incompatible/go.mod h1:E95RaSlHr79aHaX0aGSwcPNfygDiPKOVXdmivCIZT0k= +k8s.io/api v0.0.0-20190313235455-40a48860b5ab h1:DG9A67baNpoeweOy2spF1OWHhnVY5KR7/Ek/+U1lVZc= +k8s.io/api v0.0.0-20190313235455-40a48860b5ab/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= +k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1 h1:IS7K02iBkQXpCeieSiyJjGoLSdVOv2DbPaWHJ+ZtgKg= +k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= +k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o= +k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= k8s.io/helm v2.14.3+incompatible h1:uzotTcZXa/b2SWVoUzM1xiCXVjI38TuxMujS/1s+3Gw= k8s.io/helm v2.14.3+incompatible/go.mod h1:LZzlS4LQBHfciFOurYBFkCMTaZ0D1l+p0teMg7TSULI= -k8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= -k8s.io/utils v0.0.0-20190221042446-c2654d5206da h1:ElyM7RPonbKnQqOcw7dG2IK5uvQQn3b/WPHqD5mBvP4= -k8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0= +k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 h1:Gi+/O1saihwDqnlmC8Vhv1M5Sp4+rbOmK9TbsLn8ZEA= +k8s.io/utils v0.0.0-20191010214722-8d271d903fe4/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= pack.ag/amqp v0.11.0/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= diff --git a/pkg/utils/gitHubUtils.go b/pkg/utils/gitHubUtils.go index 1ffeda10..e82eb707 100644 --- a/pkg/utils/gitHubUtils.go +++ b/pkg/utils/gitHubUtils.go @@ -4,7 +4,6 @@ import ( "fmt" "os" - "gopkg.in/src-d/go-git.v4" "gopkg.in/src-d/go-git.v4/config" "gopkg.in/src-d/go-git.v4/plumbing" "gopkg.in/src-d/go-git.v4/plumbing/transport/http" diff --git a/pkg/utils/keptnUtils.go b/pkg/utils/keptnUtils.go index c4e7db21..f1ccda2e 100644 --- a/pkg/utils/keptnUtils.go +++ b/pkg/utils/keptnUtils.go @@ -1,9 +1,8 @@ package utils import ( - "github.com/keptn/go-utils/pkg/models" - "gopkg.in/yaml.v2" "github.com/keptn/go-utils/pkg/configuration-service/utils" + "github.com/keptn/go-utils/pkg/models" ) // KeptnHandler provides an interface to keptn resources From 58129f277860676c7f91f42165d994a3b0832da2 Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 28 Oct 2019 08:48:12 +0100 Subject: [PATCH 59/65] #216 helmChart not mandatory --- pkg/api/models/service.go | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/pkg/api/models/service.go b/pkg/api/models/service.go index 80e40deb..a795c3f4 100644 --- a/pkg/api/models/service.go +++ b/pkg/api/models/service.go @@ -21,8 +21,7 @@ type Service struct { DeploymentStrategies map[string]string `json:"deploymentStrategies,omitempty"` // helm chart - // Required: true - HelmChart *string `json:"helmChart"` + HelmChart string `json:"helmChart,omitempty"` // service name // Required: true @@ -33,10 +32,6 @@ type Service struct { func (m *Service) Validate(formats strfmt.Registry) error { var res []error - if err := m.validateHelmChart(formats); err != nil { - res = append(res, err) - } - if err := m.validateServiceName(formats); err != nil { res = append(res, err) } @@ -47,15 +42,6 @@ func (m *Service) Validate(formats strfmt.Registry) error { return nil } -func (m *Service) validateHelmChart(formats strfmt.Registry) error { - - if err := validate.Required("helmChart", "body", m.HelmChart); err != nil { - return err - } - - return nil -} - func (m *Service) validateServiceName(formats strfmt.Registry) error { if err := validate.Required("serviceName", "body", m.ServiceName); err != nil { From a3eca3662a13bf8880f4c5a2857e19fe3f640653 Mon Sep 17 00:00:00 2001 From: michHam Date: Mon, 28 Oct 2019 11:06:11 +0100 Subject: [PATCH 60/65] added import --- pkg/utils/gitHubUtils.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/utils/gitHubUtils.go b/pkg/utils/gitHubUtils.go index e82eb707..1ffeda10 100644 --- a/pkg/utils/gitHubUtils.go +++ b/pkg/utils/gitHubUtils.go @@ -4,6 +4,7 @@ import ( "fmt" "os" + "gopkg.in/src-d/go-git.v4" "gopkg.in/src-d/go-git.v4/config" "gopkg.in/src-d/go-git.v4/plumbing" "gopkg.in/src-d/go-git.v4/plumbing/transport/http" From cadbc63f2532fa82ea0f6c9da1f4c6899d763920 Mon Sep 17 00:00:00 2001 From: agrimmer Date: Mon, 28 Oct 2019 11:17:35 +0100 Subject: [PATCH 61/65] #1006 Utils for getting all service resources --- .../utils/resourceUtils.go | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/pkg/configuration-service/utils/resourceUtils.go b/pkg/configuration-service/utils/resourceUtils.go index fc720636..a129b84b 100644 --- a/pkg/configuration-service/utils/resourceUtils.go +++ b/pkg/configuration-service/utils/resourceUtils.go @@ -291,16 +291,35 @@ func (r *ResourceHandler) deleteResource(uri string) error { // GetAllStageResources returns a list of all resources. func (r *ResourceHandler) GetAllStageResources(project string, stage string) ([]*models.Resource, error) { + url, err := url.Parse(r.Scheme + "://" + r.getBaseURL() + "/v1/project/" + project + "/stage/" + stage + "/resource") + if err != nil { + return nil, err + } + if err != nil { + return nil, err + } + return r.getAllResources(url) +} + +// GetAllStageResources returns a list of all resources. +func (r *ResourceHandler) GetAllServiceResources(project string, stage string, service string) ([]*models.Resource, error) { + + url, err := url.Parse(r.Scheme + "://" + r.getBaseURL() + "/v1/project/" + project + "/stage/" + stage + + "/service/" + service + "/resource/") + if err != nil { + return nil, err + } + return r.getAllResources(url) +} + +func (r *ResourceHandler) getAllResources(url *url.URL) ([]*models.Resource, error) { + http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} resources := []*models.Resource{} nextPageKey := "" for { - url, err := url.Parse(r.Scheme + "://" + r.getBaseURL() + "/v1/project/" + project + "/stage/" + stage + "/resource") - if err != nil { - return nil, err - } q := url.Query() if nextPageKey != "" { q.Set("nextPageKey", nextPageKey) From a8e45dbc6a0cafa3d498f5b6b7df483e3823496b Mon Sep 17 00:00:00 2001 From: michHam Date: Mon, 28 Oct 2019 15:09:16 +0100 Subject: [PATCH 62/65] added import --- pkg/utils/keptnUtils.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/utils/keptnUtils.go b/pkg/utils/keptnUtils.go index f1ccda2e..c4e7db21 100644 --- a/pkg/utils/keptnUtils.go +++ b/pkg/utils/keptnUtils.go @@ -1,8 +1,9 @@ package utils import ( - "github.com/keptn/go-utils/pkg/configuration-service/utils" "github.com/keptn/go-utils/pkg/models" + "gopkg.in/yaml.v2" + "github.com/keptn/go-utils/pkg/configuration-service/utils" ) // KeptnHandler provides an interface to keptn resources From 0aa685829fcd7162e1140474cc646050d468fc52 Mon Sep 17 00:00:00 2001 From: michHam Date: Mon, 28 Oct 2019 15:27:57 +0100 Subject: [PATCH 63/65] changed go version --- go.mod | 2 +- go.sum | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 840bea6b..2158e44b 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/keptn/go-utils -go 1.12 +go 1.13 require ( github.com/Azure/go-autorest/autorest v0.2.0 diff --git a/go.sum b/go.sum index b8fdc134..a20707eb 100644 --- a/go.sum +++ b/go.sum @@ -144,12 +144,10 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= @@ -284,13 +282,11 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -318,7 +314,6 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191021144547-ec77196f6094 h1:5O4U9trLjNpuhpynaDsqwCk+Tw6seqJz1EbqbnzHrc8= golang.org/x/net v0.0.0-20191021144547-ec77196f6094/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -338,7 +333,6 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -352,7 +346,6 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191023065245-6d3f0bb11be5 h1:KvJW0HDFZT3ZQ2kTXZ0xHbHm2BMbdJV4ff3petXiuxI= golang.org/x/time v0.0.0-20191023065245-6d3f0bb11be5/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 76c197af67137e421e3be2c7dbbd52fff830dda8 Mon Sep 17 00:00:00 2001 From: michHam Date: Mon, 28 Oct 2019 18:02:58 +0100 Subject: [PATCH 64/65] changed go version --- go.mod | 2 +- go.sum | 14 -------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 2158e44b..840bea6b 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/keptn/go-utils -go 1.13 +go 1.12 require ( github.com/Azure/go-autorest/autorest v0.2.0 diff --git a/go.sum b/go.sum index a20707eb..f4d0326c 100644 --- a/go.sum +++ b/go.sum @@ -13,7 +13,6 @@ github.com/Azure/go-autorest/autorest/adal v0.1.0 h1:RSw/7EAullliqwkZvgIGDYZWQm1 github.com/Azure/go-autorest/autorest/adal v0.1.0/go.mod h1:MeS4XhScH55IST095THyTxElntu7WqB7pNbZo8Q5G3E= github.com/Azure/go-autorest/autorest/date v0.1.0 h1:YGrhWfrgtFs84+h0o46rJrlmsZtyZRg470CqAXTZaGM= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/mocks v0.1.0 h1:Kx+AUU2Te+A3JIyYn6Dfs+cFgx5XorQKuIXrZGoq/SI= github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= @@ -36,14 +35,11 @@ github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= @@ -70,13 +66,11 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= @@ -139,7 +133,6 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -150,7 +143,6 @@ github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -192,12 +184,10 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -264,7 +254,6 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= @@ -366,7 +355,6 @@ google.golang.org/api v0.6.0 h1:2tJEkRfnZL5g1GeBUlITh/rqT5HG3sFcoVCUUxmgJ2g= google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -382,7 +370,6 @@ google.golang.org/grpc v1.20.1 h1:Hz2g2wirWK7H0qIIhGIqRGTuMwTE8HEKFnDZZ7lm9NU= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= @@ -390,7 +377,6 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= -gopkg.in/src-d/go-git-fixtures.v3 v3.5.0 h1:ivZFOIltbce2Mo8IjzUHAFoq/IylO9WHhNOAJK+LsJg= gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= gopkg.in/src-d/go-git.v4 v4.13.1 h1:SRtFyV8Kxc0UP7aCHcijOMQGPxHSmMOPrzulQWolkYE= gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= From 66e725760e2637c1c6e68ae4034197a4f087e018 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 29 Oct 2019 14:38:26 +0100 Subject: [PATCH 65/65] #959 Update release notes and version bump --- releasenotes/releasenotes_V0.3.0.md | 9 +++++++++ releasenotes/releasenotes_develop.md | 8 -------- version | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 releasenotes/releasenotes_V0.3.0.md delete mode 100644 releasenotes/releasenotes_develop.md diff --git a/releasenotes/releasenotes_V0.3.0.md b/releasenotes/releasenotes_V0.3.0.md new file mode 100644 index 00000000..dd31e01b --- /dev/null +++ b/releasenotes/releasenotes_V0.3.0.md @@ -0,0 +1,9 @@ +# Release Notes 0.3.0 + +## New Features +- Provide REST endpoint for project and service [#893](https://github.com/keptn/keptn/issues/893) +- Add automated testing via Travis CI [#944](https://github.com/keptn/keptn/issues/944) +- Allow NodePort for Istio ingressgateway [#462](https://github.com/keptn/keptn/issues/462) +- Provide utility functions to retrieve Keptn events via API [#949](https://github.com/keptn/keptn/issues/949) + +## Fixed Issues diff --git a/releasenotes/releasenotes_develop.md b/releasenotes/releasenotes_develop.md deleted file mode 100644 index 1e91dd63..00000000 --- a/releasenotes/releasenotes_develop.md +++ /dev/null @@ -1,8 +0,0 @@ -# Release Notes x.x.x - -## New Features -- Provide utility functions to retrieve Keptn events via API [#949](https://github.com/keptn/keptn/issues/949) - -## Fixed Issues - -## Known Limitations diff --git a/version b/version index 0c62199f..9325c3cc 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.2.1 +0.3.0 \ No newline at end of file