mirror of
https://github.com/status-im/consul.git
synced 2025-01-21 19:20:41 +00:00
edf4610ed9
* Upgrade hcp-sdk-go to latest version v0.73 Changes: - go get github.com/hashicorp/hcp-sdk-go - go mod tidy * From upgrade: regenerate protobufs for upgrade from 1.30 to 1.31 Ran: `make proto` Slack: https://hashicorp.slack.com/archives/C0253EQ5B40/p1701105418579429 * From upgrade: fix mock interface implementation After upgrading, there is the following compile error: cannot use &mockHCPCfg{} (value of type *mockHCPCfg) as "github.com/hashicorp/hcp-sdk-go/config".HCPConfig value in return statement: *mockHCPCfg does not implement "github.com/hashicorp/hcp-sdk-go/config".HCPConfig (missing method Logout) Solution: update the mock to have the missing Logout method * From upgrade: Lint: remove usage of deprecated req.ServerState.TLS Due to upgrade, linting is erroring due to usage of a newly deprecated field 22:47:56 [consul]: make lint --> Running golangci-lint (.) agent/hcp/testing.go:157:24: SA1019: req.ServerState.TLS is deprecated: use server_tls.internal_rpc instead. (staticcheck) time.Until(time.Time(req.ServerState.TLS.CertExpiry)).Hours()/24, ^ * From upgrade: adjust oidc error message From the upgrade, this test started failing: === FAIL: internal/go-sso/oidcauth TestOIDC_ClaimsFromAuthCode/failed_code_exchange (re-run 2) (0.01s) oidc_test.go:393: unexpected error: Provider login failed: Error exchanging oidc code: oauth2: "invalid_grant" "unexpected auth code" Prior to the upgrade, the error returned was: ``` Provider login failed: Error exchanging oidc code: oauth2: cannot fetch token: 401 Unauthorized\nResponse: {\"error\":\"invalid_grant\",\"error_description\":\"unexpected auth code\"}\n ``` Now the error returned is as below and does not contain "cannot fetch token" ``` Provider login failed: Error exchanging oidc code: oauth2: "invalid_grant" "unexpected auth code" ``` * Update AgentPushServerState structs with new fields HCP-side changes for the new fields are in: https://github.com/hashicorp/cloud-global-network-manager-service/pull/1195/files * Minor refactor for hcpServerStatus to abstract tlsInfo into struct This will make it easier to set the same tls-info information to both - status.TLS (deprecated field) - status.ServerTLSMetadata (new field to use instead) * Update hcpServerStatus to parse out information for new fields Changes: - Improve error message and handling (encountered some issues and was confused) - Set new field TLSInfo.CertIssuer - Collect certificate authority metadata and set on TLSInfo.CertificateAuthorities - Set TLSInfo on both server.TLS and server.ServerTLSMetadata.InternalRPC * Update serverStatusToHCP to convert new fields to GNM rpc * Add changelog * Feedback: connect.ParseCert, caCerts * Feedback: refactor and unit test server status * Feedback: test to use expected struct * Feedback: certificate with intermediate * Feedback: catch no leaf, remove expectedErr * Feedback: update todos with jira ticket * Feedback: mock tlsConfigurator
52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package client
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"net/url"
|
|
|
|
hcpcfg "github.com/hashicorp/hcp-sdk-go/config"
|
|
"github.com/hashicorp/hcp-sdk-go/profile"
|
|
"github.com/hashicorp/hcp-sdk-go/resource"
|
|
"golang.org/x/oauth2"
|
|
)
|
|
|
|
const testResourceID = "organization/test-org/project/test-project/test-type/test-id"
|
|
|
|
type mockHCPCfg struct{}
|
|
|
|
func (m *mockHCPCfg) Token() (*oauth2.Token, error) {
|
|
return &oauth2.Token{
|
|
AccessToken: "test-token",
|
|
}, nil
|
|
}
|
|
|
|
func (m *mockHCPCfg) APITLSConfig() *tls.Config { return nil }
|
|
func (m *mockHCPCfg) SCADAAddress() string { return "" }
|
|
func (m *mockHCPCfg) SCADATLSConfig() *tls.Config { return &tls.Config{} }
|
|
func (m *mockHCPCfg) APIAddress() string { return "" }
|
|
func (m *mockHCPCfg) PortalURL() *url.URL { return &url.URL{} }
|
|
func (m *mockHCPCfg) Profile() *profile.UserProfile { return nil }
|
|
func (m *mockHCPCfg) Logout() error { return nil }
|
|
|
|
type MockCloudCfg struct {
|
|
ConfigErr error
|
|
ResourceErr error
|
|
}
|
|
|
|
func (m MockCloudCfg) Resource() (resource.Resource, error) {
|
|
r := resource.Resource{
|
|
ID: "test-id",
|
|
Type: "test-type",
|
|
Organization: "test-org",
|
|
Project: "test-project",
|
|
}
|
|
return r, m.ResourceErr
|
|
}
|
|
|
|
func (m MockCloudCfg) HCPConfig(opts ...hcpcfg.HCPConfigOption) (hcpcfg.HCPConfig, error) {
|
|
return &mockHCPCfg{}, m.ConfigErr
|
|
}
|