diff --git a/go.mod b/go.mod index 9959c86a..6c8c0a23 100644 --- a/go.mod +++ b/go.mod @@ -4,11 +4,11 @@ go 1.23 require ( github.com/google/go-cmp v0.6.0 - github.com/gophercloud/gophercloud/v2 v2.2.0 + github.com/gophercloud/gophercloud/v2 v2.3.0 github.com/gophercloud/utils/v2 v2.0.0-20241205095159-af98389672f6 github.com/olekukonko/tablewriter v0.0.5 - github.com/sapcc/go-api-declarations v1.13.0 - github.com/sapcc/go-bits v0.0.0-20241205120930-d112494283ba + github.com/sapcc/go-api-declarations v1.13.1 + github.com/sapcc/go-bits v0.0.0-20241212142854-05ca4ed3590b github.com/sapcc/gophercloud-sapcc/v2 v2.0.2 github.com/spf13/cobra v1.8.1 ) diff --git a/go.sum b/go.sum index 9b44aeb7..46ad707f 100644 --- a/go.sum +++ b/go.sum @@ -12,8 +12,8 @@ github.com/gofrs/uuid/v5 v5.3.0 h1:m0mUMr+oVYUdxpMLgSYCZiXe7PuVPnI94+OMeVBNedk= github.com/gofrs/uuid/v5 v5.3.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/gophercloud/gophercloud/v2 v2.2.0 h1:STqqnSXuhcg1OPBOZ14z6JDm8fKIN13H2bJg6bBuHp8= -github.com/gophercloud/gophercloud/v2 v2.2.0/go.mod h1:f2hMRC7Kakbv5vM7wSGHrIPZh6JZR60GVHryJlF/K44= +github.com/gophercloud/gophercloud/v2 v2.3.0 h1:5ipI2Mgxee0TwQxqnOIUdTbzL4ZBB8GORyZko+yGXI0= +github.com/gophercloud/gophercloud/v2 v2.3.0/go.mod h1:uJWNpTgJPSl2gyzJqcU/pIAhFUWvIkp8eE8M15n9rs4= github.com/gophercloud/utils/v2 v2.0.0-20241205095159-af98389672f6 h1:pfObTTQMJSeLnFKcscXz8+Ouf8CJWCi0tYceVUw/Dug= github.com/gophercloud/utils/v2 v2.0.0-20241205095159-af98389672f6/go.mod h1:g5yuwmftnMpX7hoaOvwRrFhDYA1S6uE+qZOrj8ffhb4= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -51,10 +51,10 @@ github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoG github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sapcc/go-api-declarations v1.13.0 h1:4ufQUF7rwhLz7kPDVFCkw6CpQ8VeO2clJg4pjwTTpTU= -github.com/sapcc/go-api-declarations v1.13.0/go.mod h1:83R3hTANhuRXt/pXDby37IJetw8l7DG41s33Tp9NXxI= -github.com/sapcc/go-bits v0.0.0-20241205120930-d112494283ba h1:IRaPAF/j4RcglojJSycoD/Tz9gpVn941VXNm5ZnoAw4= -github.com/sapcc/go-bits v0.0.0-20241205120930-d112494283ba/go.mod h1:ROdTmzQj/gn6dUaxhrCQCTsZtaFJPAFy3CeTD2m/z3k= +github.com/sapcc/go-api-declarations v1.13.1 h1:rovCnLscnoZaIZPWhohSYHzwwYjOnCPsRw3zwtu4tLI= +github.com/sapcc/go-api-declarations v1.13.1/go.mod h1:83R3hTANhuRXt/pXDby37IJetw8l7DG41s33Tp9NXxI= +github.com/sapcc/go-bits v0.0.0-20241212142854-05ca4ed3590b h1:cM4EQms/mIYmB9/ZhxsbVHpINlDBAAf/PZ/ymXiiLXo= +github.com/sapcc/go-bits v0.0.0-20241212142854-05ca4ed3590b/go.mod h1:DrcK3N8lISMoxhS+e3pnrSyRZl83OGyNJdohpk9hjHo= github.com/sapcc/gophercloud-sapcc/v2 v2.0.2 h1:SxLVKQqm759bFYl4iDVU2ELys6fcLpsUqMtxv0s2Z6M= github.com/sapcc/gophercloud-sapcc/v2 v2.0.2/go.mod h1:c+guCOMR8/sGXDus5VEVrjQ7pdmT7JEQaInJWysbBzQ= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= diff --git a/vendor/github.com/gophercloud/gophercloud/v2/CHANGELOG.md b/vendor/github.com/gophercloud/gophercloud/v2/CHANGELOG.md index efe2d9f6..2520ac74 100644 --- a/vendor/github.com/gophercloud/gophercloud/v2/CHANGELOG.md +++ b/vendor/github.com/gophercloud/gophercloud/v2/CHANGELOG.md @@ -1,3 +1,11 @@ +## v2.3.0 (2024-12-06) + +* [GH-3213](https://github.com/gophercloud/gophercloud/pull/3213) [v2] Handle nova api version > 2.87 for hypervisor +* [GH-3236](https://github.com/gophercloud/gophercloud/pull/3236) [v2] Added required fields for Node API Parity +* [GH-3248](https://github.com/gophercloud/gophercloud/pull/3248) [v2] Add support for disable_power_off +* [GH-3261](https://github.com/gophercloud/gophercloud/pull/3261) [v2] Misc cleanups +* [GH-3262](https://github.com/gophercloud/gophercloud/pull/3262) [v2] Address govet 1.24 issue + ## v2.2.0 (2024-10-18) * [GH-3176](https://github.com/gophercloud/gophercloud/pull/3176) [v2] [containerinfra]: add "MasterLBEnabled" in Cluster results diff --git a/vendor/github.com/gophercloud/gophercloud/v2/Makefile b/vendor/github.com/gophercloud/gophercloud/v2/Makefile index 128beec0..2a0618a6 100644 --- a/vendor/github.com/gophercloud/gophercloud/v2/Makefile +++ b/vendor/github.com/gophercloud/gophercloud/v2/Makefile @@ -1,6 +1,7 @@ undefine GOFLAGS -GOLANGCI_LINT_VERSION?=v1.57.1 +GOLANGCI_LINT_VERSION?=v1.62.2 +GO_TEST?=go run gotest.tools/gotestsum@latest --format testname -- ifeq ($(shell command -v podman 2> /dev/null),) RUNNER=docker @@ -22,88 +23,92 @@ lint: -v ~/.cache/golangci-lint/$(GOLANGCI_LINT_VERSION):/root/.cache \ -w /app \ -e GOFLAGS="-tags=acceptance" \ - golangci/golangci-lint:$(GOLANGCI_LINT_VERSION) golangci-lint run + golangci/golangci-lint:$(GOLANGCI_LINT_VERSION) golangci-lint run -v --max-same-issues 50 .PHONY: lint +format: + gofmt -w -s $(shell pwd) +.PHONY: format + unit: - go test ./... + $(GO_TEST) ./... .PHONY: unit coverage: - go test -covermode count -coverprofile cover.out -coverpkg=./... ./... + $(GO_TEST) -covermode count -coverprofile cover.out -coverpkg=./... ./... .PHONY: coverage acceptance: acceptance-baremetal acceptance-blockstorage acceptance-compute acceptance-container acceptance-containerinfra acceptance-db acceptance-dns acceptance-identity acceptance-imageservice acceptance-keymanager acceptance-loadbalancer acceptance-messaging acceptance-networking acceptance-objectstorage acceptance-orchestration acceptance-placement acceptance-sharedfilesystems acceptance-workflow .PHONY: acceptance acceptance-baremetal: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/baremetal/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/baremetal/... .PHONY: acceptance-baremetal acceptance-blockstorage: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/blockstorage/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/blockstorage/... .PHONY: acceptance-blockstorage acceptance-compute: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/compute/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/compute/... .PHONY: acceptance-compute acceptance-container: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/container/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/container/... .PHONY: acceptance-container acceptance-containerinfra: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/containerinfra/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/containerinfra/... .PHONY: acceptance-containerinfra acceptance-db: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/db/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/db/... .PHONY: acceptance-db acceptance-dns: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/dns/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/dns/... .PHONY: acceptance-dns acceptance-identity: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/identity/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/identity/... .PHONY: acceptance-identity acceptance-image: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/imageservice/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/imageservice/... .PHONY: acceptance-image acceptance-keymanager: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/keymanager/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/keymanager/... .PHONY: acceptance-keymanager acceptance-loadbalancer: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/loadbalancer/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/loadbalancer/... .PHONY: acceptance-loadbalancer acceptance-messaging: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/messaging/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/messaging/... .PHONY: acceptance-messaging acceptance-networking: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/networking/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/networking/... .PHONY: acceptance-networking acceptance-objectstorage: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/objectstorage/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/objectstorage/... .PHONY: acceptance-objectstorage acceptance-orchestration: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/orchestration/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/orchestration/... .PHONY: acceptance-orchestration acceptance-placement: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/placement/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/placement/... .PHONY: acceptance-placement acceptance-sharedfilesystems: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/sharedfilesystems/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/sharedfilesystems/... .PHONY: acceptance-sharefilesystems acceptance-workflow: - go test -tags "fixtures acceptance" ./internal/acceptance/openstack/workflow/... + $(GO_TEST) -tags "fixtures acceptance" ./internal/acceptance/openstack/workflow/... .PHONY: acceptance-workflow diff --git a/vendor/github.com/gophercloud/gophercloud/v2/provider_client.go b/vendor/github.com/gophercloud/gophercloud/v2/provider_client.go index 007266f6..26c925ce 100644 --- a/vendor/github.com/gophercloud/gophercloud/v2/provider_client.go +++ b/vendor/github.com/gophercloud/gophercloud/v2/provider_client.go @@ -13,7 +13,7 @@ import ( // DefaultUserAgent is the default User-Agent string set in the request header. const ( - DefaultUserAgent = "gophercloud/v2.2.0" + DefaultUserAgent = "gophercloud/v2.3.0" DefaultMaxBackoffRetries = 60 ) diff --git a/vendor/github.com/gophercloud/gophercloud/v2/testhelper/convenience.go b/vendor/github.com/gophercloud/gophercloud/v2/testhelper/convenience.go index 3b3e6397..1ea72704 100644 --- a/vendor/github.com/gophercloud/gophercloud/v2/testhelper/convenience.go +++ b/vendor/github.com/gophercloud/gophercloud/v2/testhelper/convenience.go @@ -232,6 +232,16 @@ func CheckEquals(t *testing.T, expected, actual any) { } } +// AssertDeepEquals - like Equals - performs a comparison - but on more complex +// structures that requires deeper inspection +func AssertTypeEquals(t *testing.T, expected, actual any) { + t.Helper() + + if reflect.TypeOf(expected) != reflect.TypeOf(actual) { + logFatal(t, fmt.Sprintf("expected %s but got %s", green(expected), yellow(actual))) + } +} + // AssertDeepEquals - like Equals - performs a comparison - but on more complex // structures that requires deeper inspection func AssertDeepEquals(t *testing.T, expected, actual any) { diff --git a/vendor/github.com/sapcc/go-api-declarations/cadf/event.go b/vendor/github.com/sapcc/go-api-declarations/cadf/event.go new file mode 100644 index 00000000..8e3d6c8c --- /dev/null +++ b/vendor/github.com/sapcc/go-api-declarations/cadf/event.go @@ -0,0 +1,156 @@ +/******************************************************************************* +* +* Copyright 2022 SAP SE +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You should have received a copy of the License along with this +* program. If not, you may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*******************************************************************************/ + +// Package cadf provides data structures for working with CADF events as per the CADF spec. +// +// SAP CCloud developers wishing to publish audit events to Hermes are advised +// to use the github.com/sapcc/go-bits/audittools package. +package cadf + +import "encoding/json" + +// Event contains the CADF event according to CADF spec, section 6.6.1 Event (data) +// Extensions: requestPath (OpenStack, IBM), initiator.project_id/domain_id +// Omissions: everything that we do not use or not expose to API users +// +// The JSON annotations are for parsing the result from ElasticSearch AND for generating the Hermes API response +type Event struct { + // CADF Event Schema + TypeURI string `json:"typeURI"` + + // CADF generated event id + ID string `json:"id"` + + // CADF generated timestamp + EventTime string `json:"eventTime"` + + // Characterizes events: eg. activity + EventType string `json:"eventType"` + + // CADF action mapping for GET call on an OpenStack REST API + Action Action `json:"action"` + + // Outcome of REST API call, eg. success/failure + Outcome Outcome `json:"outcome"` + + // Standard response for successful HTTP requests + Reason Reason `json:"reason,omitempty"` + + // CADF component that contains the RESOURCE + // that initiated, originated, or instigated the event's + // ACTION, according to the OBSERVER + Initiator Resource `json:"initiator"` + + // CADF component that contains the RESOURCE + // against which the ACTION of a CADF Event + // Record was performed, was attempted, or is + // pending, according to the OBSERVER. + Target Resource `json:"target"` + + // CADF component that contains the RESOURCE + // that generates the CADF Event Record based on + // its observation (directly or indirectly) of the Actual Event + Observer Resource `json:"observer"` + + // Attachment contains self-describing extensions to the event + Attachments []Attachment `json:"attachments,omitempty"` + + // Request path on the OpenStack service REST API call + RequestPath string `json:"requestPath,omitempty"` +} + +// Resource contains attributes describing a (OpenStack-) Resource +type Resource struct { + TypeURI string `json:"typeURI"` + Name string `json:"name,omitempty"` + Domain string `json:"domain,omitempty"` + ID string `json:"id,omitempty"` + Addresses []struct { + URL string `json:"url"` + Name string `json:"name,omitempty"` + } `json:"addresses,omitempty"` + Host *Host `json:"host,omitempty"` + Attachments []Attachment `json:"attachments,omitempty"` + // project_id and domain_id are OpenStack extensions (introduced by Keystone and keystone(audit)middleware) + ProjectID string `json:"project_id,omitempty"` + DomainID string `json:"domain_id,omitempty"` + // project_name, project_domain_name, domain_name, application_credential_id, request_id and global_request_id + // are Hermes extensions for initiator resources only (not for target or observer) + ProjectName string `json:"project_name,omitempty"` + ProjectDomainName string `json:"project_domain_name,omitempty"` + DomainName string `json:"domain_name,omitempty"` + AppCredentialID string `json:"application_credential_id,omitempty"` + RequestID string `json:"request_id,omitempty"` + GlobalRequestID string `json:"global_request_id,omitempty"` +} + +// Reason contains HTTP Code and Type, and is optional in the CADF spec +type Reason struct { + ReasonType string `json:"reasonType,omitempty"` + ReasonCode string `json:"reasonCode,omitempty"` +} + +// Host contains optional Information about the Host +type Host struct { + ID string `json:"id,omitempty"` + Address string `json:"address,omitempty"` + Agent string `json:"agent,omitempty"` + Platform string `json:"platform,omitempty"` +} + +// Attachment contains self-describing extensions to the event +type Attachment struct { + // Note: name is optional in CADF spec. to permit unnamed attachments + Name string `json:"name,omitempty"` + // this is messed-up in the spec.: the schema and examples says contentType. But the text often refers to typeURI. + // Using typeURI would surely be more consistent. OpenStack uses typeURI, IBM supports both + // (but forgot the name property) + TypeURI string `json:"typeURI"` + // Content contains the payload of the attachment. In theory this means any type. + // In practise we have to decide because otherwise ES does based one first value + // An interface allows arrays of json content. This should be json in the content. + // + // Use func NewJSONAttachment() to create well-formed attachments that Hermes can consume. + Content any `json:"content"` +} + +// NewJSONAttachment creates an Attachment of type "mime:application/json" by +// serializing the given content as JSON. +// +// If an error is returned, it will be from json.Marshal(). +func NewJSONAttachment(name string, content any) (Attachment, error) { + switch content := content.(type) { + case json.RawMessage: + return Attachment{ + Name: name, + TypeURI: "mime:application/json", + Content: string(content), + }, nil + default: + buf, err := json.Marshal(content) + if err != nil { + return Attachment{}, err + } + return Attachment{ + Name: name, + TypeURI: "mime:application/json", + Content: string(buf), + }, nil + } +} diff --git a/vendor/github.com/sapcc/go-api-declarations/cadf/taxonomy.go b/vendor/github.com/sapcc/go-api-declarations/cadf/taxonomy.go new file mode 100644 index 00000000..a79a4761 --- /dev/null +++ b/vendor/github.com/sapcc/go-api-declarations/cadf/taxonomy.go @@ -0,0 +1,90 @@ +/******************************************************************************* +* +* Copyright 2022 SAP SE +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You should have received a copy of the License along with this +* program. If not, you may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*******************************************************************************/ + +package cadf + +import ( + "net/http" + "strings" +) + +// Action enumerates some of the valid values for CADF actions. +// Note that this list is not complete and there are other action types that are also valid. +type Action string + +const ( + BackupAction Action = "backup" + CaptureAction Action = "capture" + CreateAction Action = "create" + ConfigureAction Action = "configure" + ReadAction Action = "read" + ListAction Action = "list" + UpdateAction Action = "update" + DeleteAction Action = "delete" + MonitorAction Action = "monitor" + StartAction Action = "start" + StopAction Action = "stop" + DeployAction Action = "deploy" + UndeployAction Action = "undeploy" + EnableAction Action = "enable" + DisableAction Action = "disable" + SendAction Action = "send" + ReceiveAction Action = "receive" + AuthenticateAction Action = "authenticate" + LoginAction Action = "authenticate/login" + RevokeAction Action = "revoke" + RenewAction Action = "renew" + RestoreAction Action = "restore" + EvaluateAction Action = "evaluate" + AllowAction Action = "allow" + DenyAction Action = "deny" + NotifyAction Action = "notify" + UnknownAction Action = "unknown" +) + +// Outcome enumerates valid values for CADF outcomes. +type Outcome string + +const ( + SuccessOutcome Outcome = "success" + FailureOutcome Outcome = "failure" + PendingOutcome Outcome = "pending" +) + +// GetAction returns the corresponding Action for a HTTP request method. +func GetAction(method string) Action { + switch strings.ToUpper(method) { + case http.MethodGet: + return ReadAction + case http.MethodHead: + return ReadAction + case http.MethodPost: + return CreateAction + case http.MethodPut: + return UpdateAction + case http.MethodDelete: + return DeleteAction + case http.MethodPatch: + return UpdateAction + case http.MethodOptions: + return ReadAction + default: + return UnknownAction + } +} diff --git a/vendor/github.com/sapcc/go-bits/gopherpolicy/token.go b/vendor/github.com/sapcc/go-bits/gopherpolicy/token.go index f93a8333..28c5be6e 100644 --- a/vendor/github.com/sapcc/go-bits/gopherpolicy/token.go +++ b/vendor/github.com/sapcc/go-bits/gopherpolicy/token.go @@ -26,6 +26,9 @@ import ( policy "github.com/databus23/goslo.policy" "github.com/gophercloud/gophercloud/v2" "github.com/gophercloud/gophercloud/v2/openstack/identity/v3/tokens" + "github.com/sapcc/go-api-declarations/cadf" + + "github.com/sapcc/go-bits/internal" ) // Enforcer contains the Enforce method that struct Token requires to check @@ -147,6 +150,25 @@ func (t *Token) ApplicationCredentialID() string { return t.Context.Auth["application_credential_id"] } +// AsInitiator implements the audittools.UserInfo interface. +func (t *Token) AsInitiator(host cadf.Host) cadf.Resource { + return cadf.Resource{ + TypeURI: internal.StandardUserInfoTypeURI, + // information about user + Name: t.UserName(), + Domain: t.UserDomainName(), + ID: t.UserUUID(), + Host: &host, + // information about user's scope (only one of both will be filled) + DomainID: t.DomainScopeUUID(), + DomainName: t.DomainScopeName(), + ProjectID: t.ProjectScopeUUID(), + ProjectName: t.ProjectScopeName(), + ProjectDomainName: t.ProjectScopeDomainName(), + AppCredentialID: t.ApplicationCredentialID(), + } +} + //////////////////////////////////////////////////////////////////////////////// // type serializableToken diff --git a/vendor/github.com/sapcc/go-bits/internal/constants.go b/vendor/github.com/sapcc/go-bits/internal/constants.go new file mode 100644 index 00000000..3a30c10f --- /dev/null +++ b/vendor/github.com/sapcc/go-bits/internal/constants.go @@ -0,0 +1,21 @@ +/****************************************************************************** +* +* Copyright 2024 SAP SE +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +******************************************************************************/ + +package internal + +const StandardUserInfoTypeURI = "service/security/account/user" diff --git a/vendor/modules.txt b/vendor/modules.txt index e6aaa50d..4f4b841d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -17,7 +17,7 @@ github.com/google/go-cmp/cmp/internal/diff github.com/google/go-cmp/cmp/internal/flags github.com/google/go-cmp/cmp/internal/function github.com/google/go-cmp/cmp/internal/value -# github.com/gophercloud/gophercloud/v2 v2.2.0 +# github.com/gophercloud/gophercloud/v2 v2.3.0 ## explicit; go 1.22 github.com/gophercloud/gophercloud/v2 github.com/gophercloud/gophercloud/v2/openstack @@ -91,21 +91,23 @@ github.com/prometheus/common/model github.com/prometheus/procfs github.com/prometheus/procfs/internal/fs github.com/prometheus/procfs/internal/util -# github.com/sapcc/go-api-declarations v1.13.0 +# github.com/sapcc/go-api-declarations v1.13.1 ## explicit; go 1.21 github.com/sapcc/go-api-declarations/bininfo +github.com/sapcc/go-api-declarations/cadf github.com/sapcc/go-api-declarations/internal/marshal github.com/sapcc/go-api-declarations/limes github.com/sapcc/go-api-declarations/limes/rates github.com/sapcc/go-api-declarations/limes/resources github.com/sapcc/go-api-declarations/liquid -# github.com/sapcc/go-bits v0.0.0-20241205120930-d112494283ba +# github.com/sapcc/go-bits v0.0.0-20241212142854-05ca4ed3590b ## explicit; go 1.23 github.com/sapcc/go-bits/gophercloudext github.com/sapcc/go-bits/gopherpolicy github.com/sapcc/go-bits/httpapi github.com/sapcc/go-bits/httpapi/pprofapi github.com/sapcc/go-bits/httpext +github.com/sapcc/go-bits/internal github.com/sapcc/go-bits/liquidapi github.com/sapcc/go-bits/logg github.com/sapcc/go-bits/osext