Skip to content

Commit 59b0f32

Browse files
chore(dbaas): remove connection related methods (#290)
1 parent d65c3d2 commit 59b0f32

File tree

8 files changed

+4
-348
lines changed

8 files changed

+4
-348
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ See updating [Changelog example here](https://keepachangelog.com/en/1.0.0/)
55

66
## [Unreleased]
77

8+
### Removed
9+
- **Breaking**, Managed Database: connection related methods in favor of session
10+
811
## [6.12.0]
912

1013
### Added

upcloud/managed_database.go

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -200,32 +200,6 @@ type ManagedDatabaseComponent struct {
200200
Usage ManagedDatabaseComponentUsage `json:"usage"`
201201
}
202202

203-
// ManagedDatabaseConnection represents a connection to the managed database instance. The available fields
204-
// vary between database types.
205-
type ManagedDatabaseConnection struct {
206-
ApplicationName string `json:"application_name"`
207-
BackendStart time.Time `json:"backend_start"`
208-
BackendType string `json:"backend_type"`
209-
BackendXid string `json:"backend_xid"`
210-
BackendXmin string `json:"backend_xmin"`
211-
ClientAddr string `json:"client_addr"`
212-
ClientHostname string `json:"client_hostname"`
213-
ClientPort int `json:"client_port"`
214-
DatId int `json:"datid"`
215-
DatName string `json:"datname"`
216-
Pid int `json:"pid"`
217-
Query string `json:"query"`
218-
QueryDuration time.Duration `json:"query_duration"`
219-
QueryStart time.Time `json:"query_start"`
220-
State string `json:"state"`
221-
StateChange time.Time `json:"state_change"`
222-
Username string `json:"usename"`
223-
UseSysId int `json:"usesysid"`
224-
WaitEvent string `json:"wait_event"`
225-
WaitEventType string `json:"wait_event_type"`
226-
XactStart time.Time `json:"xact_start"`
227-
}
228-
229203
// ManagedDatabaseSessions represents sessions in the managed database instance by database instance type.
230204
type ManagedDatabaseSessions struct {
231205
MySQL []ManagedDatabaseSessionMySQL `json:"mysql,omitempty"`

upcloud/managed_database_test.go

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -552,56 +552,6 @@ func TestUnmarshalManagedDatabaseQueryStatisticsMySQL(t *testing.T) {
552552
assert.Equal(t, expect, c)
553553
}
554554

555-
func TestUnmarshalManagedDatabaseConnection(t *testing.T) {
556-
const d = `{
557-
"application_name":"upcloudGoTestSuite",
558-
"backend_start":"2021-09-14T13:41:29.369748Z",
559-
"backend_type":"client backend",
560-
"backend_xid":null,
561-
"backend_xmin":null,
562-
"client_addr":"85.7.82.158",
563-
"client_hostname":null,
564-
"client_port":62028,
565-
"datid":16401,
566-
"datname":"defaultdb",
567-
"pid":257,
568-
"query":"SELECT 1",
569-
"query_duration":291591000,
570-
"query_start":"2021-09-14T13:41:29.575568Z",
571-
"state":"idle",
572-
"state_change":"2021-09-14T13:41:29.575916Z",
573-
"usename":"upadmin",
574-
"usesysid":16400,
575-
"wait_event":"ClientRead",
576-
"wait_event_type":"Client",
577-
"xact_start":null
578-
}`
579-
580-
var c ManagedDatabaseConnection
581-
assert.NoError(t, json.Unmarshal([]byte(d), &c))
582-
583-
expect := ManagedDatabaseConnection{
584-
ApplicationName: "upcloudGoTestSuite",
585-
BackendStart: timeParse("2021-09-14T13:41:29.369748Z"),
586-
BackendType: "client backend",
587-
ClientAddr: "85.7.82.158",
588-
ClientPort: 62028,
589-
DatId: 16401,
590-
DatName: "defaultdb",
591-
Pid: 257,
592-
Query: "SELECT 1",
593-
QueryDuration: 291591000,
594-
QueryStart: timeParse("2021-09-14T13:41:29.575568Z"),
595-
State: "idle",
596-
StateChange: timeParse("2021-09-14T13:41:29.575916Z"),
597-
Username: "upadmin",
598-
UseSysId: 16400,
599-
WaitEvent: "ClientRead",
600-
WaitEventType: "Client",
601-
}
602-
assert.Equal(t, expect, c)
603-
}
604-
605555
func TestUnmarshalManagedDatabaseSessions(t *testing.T) {
606556
const d = `{
607557
"mysql": [

upcloud/request/managed_database.go

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,6 @@ import (
1212

1313
/* Service Management */
1414

15-
// CancelManagedDatabaseConnection represents a request to cancel the current query of a connection or terminate
16-
// the entire connection.
17-
type CancelManagedDatabaseConnection struct {
18-
// UUID selects a managed database instance to manage queries of
19-
UUID string
20-
// Pid selects a connection pid to cancel or terminate
21-
Pid int
22-
// Terminate selects whether the connection will be forcefully terminated
23-
Terminate bool
24-
}
25-
26-
// RequestURL implements the request.Request interface
27-
func (c *CancelManagedDatabaseConnection) RequestURL() string {
28-
qv := url.Values{}
29-
if c.Terminate {
30-
qv.Set("terminate", "true")
31-
}
32-
return fmt.Sprintf("/database/%s/connections/%d?%s", c.UUID, c.Pid, qv.Encode())
33-
}
34-
3515
// CancelManagedDatabaseSession represents a request to cancel the current query of a connection or terminate
3616
// the entire connection.
3717
type CancelManagedDatabaseSession struct {
@@ -162,28 +142,6 @@ func (g *GetManagedDatabaseAccessControlRequest) RequestURL() string {
162142
return fmt.Sprintf("/database/%s/access-control", g.ServiceUUID)
163143
}
164144

165-
// GetManagedDatabaseConnectionsRequest represents a request to get managed database instance's current connections
166-
type GetManagedDatabaseConnectionsRequest struct {
167-
// UUID selects a managed database instance to query connections from
168-
UUID string
169-
// Limit sets the upper bound how many connections to fetch
170-
Limit int
171-
// Offset skips n connections before returning them. It can be used to iteratively fetch connections.
172-
Offset int
173-
}
174-
175-
// RequestURL implements the request.Request interface
176-
func (g *GetManagedDatabaseConnectionsRequest) RequestURL() string {
177-
qv := url.Values{}
178-
if g.Limit != 0 {
179-
qv.Set("limit", strconv.Itoa(g.Limit))
180-
}
181-
if g.Offset != 0 {
182-
qv.Set("offset", strconv.Itoa(g.Offset))
183-
}
184-
return fmt.Sprintf("/database/%s/connections?%s", g.UUID, qv.Encode())
185-
}
186-
187145
// GetManagedDatabaseMetricsRequest represents a request to get managed database instance performance metrics
188146
type GetManagedDatabaseMetricsRequest struct {
189147
// UUID selects a managed database instance to query metrics from

upcloud/request/managed_database_test.go

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,6 @@ import (
1111

1212
/* Service Management */
1313

14-
func TestCancelManagedDatabaseConnection_RequestURL(t *testing.T) {
15-
req := &CancelManagedDatabaseConnection{
16-
UUID: "fake",
17-
Pid: 42,
18-
Terminate: true,
19-
}
20-
assert.Equal(t, "/database/fake/connections/42?terminate=true", req.RequestURL())
21-
}
22-
2314
func TestCancelManagedDatabaseSession_RequestURL(t *testing.T) {
2415
req := &CancelManagedDatabaseSession{
2516
UUID: "fake",
@@ -161,15 +152,6 @@ func TestGetManagedDatabaseAccessControlRequest_RequestURL(t *testing.T) {
161152
assert.Equal(t, "/database/fake/access-control", req.RequestURL())
162153
}
163154

164-
func TestGetManagedDatabaseConnectionsRequest_RequestURL(t *testing.T) {
165-
req := &GetManagedDatabaseConnectionsRequest{
166-
UUID: "fake",
167-
Limit: 1000,
168-
Offset: 42,
169-
}
170-
assert.Equal(t, "/database/fake/connections?limit=1000&offset=42", req.RequestURL())
171-
}
172-
173155
func TestGetManagedDatabaseMetricsRequest_RequestURL(t *testing.T) {
174156
req := &GetManagedDatabaseMetricsRequest{
175157
UUID: "fake",

upcloud/service/fixtures/getmanageddatabaseconnections.yaml

Lines changed: 0 additions & 131 deletions
This file was deleted.

upcloud/service/managed_database.go

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,15 @@ import (
1111
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud/request"
1212
)
1313

14-
var (
15-
ErrCancelManagedDatabaseConnection = errors.New("managed database connection cancellation failed")
16-
ErrCancelManagedDatabaseSession = errors.New("managed database session cancellation failed")
17-
)
14+
var ErrCancelManagedDatabaseSession = errors.New("managed database session cancellation failed")
1815

1916
type ManagedDatabaseServiceManager interface {
20-
// Deprecated: CancelManagedDatabaseConnection is deprecated in favor or CancelManagedDatabaseSession.
21-
CancelManagedDatabaseConnection(ctx context.Context, r *request.CancelManagedDatabaseConnection) error
2217
CancelManagedDatabaseSession(ctx context.Context, r *request.CancelManagedDatabaseSession) error
2318
CloneManagedDatabase(ctx context.Context, r *request.CloneManagedDatabaseRequest) (*upcloud.ManagedDatabase, error)
2419
CreateManagedDatabase(ctx context.Context, r *request.CreateManagedDatabaseRequest) (*upcloud.ManagedDatabase, error)
2520
GetManagedDatabase(ctx context.Context, r *request.GetManagedDatabaseRequest) (*upcloud.ManagedDatabase, error)
2621
GetManagedDatabases(ctx context.Context, r *request.GetManagedDatabasesRequest) ([]upcloud.ManagedDatabase, error)
2722
GetManagedDatabaseAccessControl(ctx context.Context, r *request.GetManagedDatabaseAccessControlRequest) (*upcloud.ManagedDatabaseAccessControl, error)
28-
// Deprecated: GetManagedDatabaseConnections is deprecated in favor or GetManagedDatabaseSessions.
29-
GetManagedDatabaseConnections(ctx context.Context, r *request.GetManagedDatabaseConnectionsRequest) ([]upcloud.ManagedDatabaseConnection, error)
3023
GetManagedDatabaseSessions(ctx context.Context, r *request.GetManagedDatabaseSessionsRequest) (upcloud.ManagedDatabaseSessions, error)
3124
GetManagedDatabaseIndices(ctx context.Context, r *request.GetManagedDatabaseIndicesRequest) ([]upcloud.ManagedDatabaseIndex, error)
3225
GetManagedDatabaseMetrics(ctx context.Context, r *request.GetManagedDatabaseMetricsRequest) (*upcloud.ManagedDatabaseMetrics, error)
@@ -63,29 +56,6 @@ type ManagedDatabaseLogicalDatabaseManager interface {
6356

6457
/* Service Management */
6558

66-
// Deprecated: CancelManagedDatabaseConnection is deprecated in favor of CancelManagedDatabaseSession.
67-
// Cancels a current query of a database connection or terminates it entirely.
68-
// In case of the server is unable to cancel the query or terminate the connection ErrCancelManagedDatabaseConnection
69-
// is returned.
70-
func (s *Service) CancelManagedDatabaseConnection(ctx context.Context, r *request.CancelManagedDatabaseConnection) error {
71-
res := struct {
72-
Success bool `json:"success"`
73-
}{}
74-
response, err := s.client.Delete(ctx, r.RequestURL())
75-
if err != nil {
76-
return parseJSONServiceError(err)
77-
}
78-
79-
err = json.Unmarshal(response, &res)
80-
if err != nil {
81-
return fmt.Errorf("unable to unmarshal JSON: %w", err)
82-
}
83-
if !res.Success {
84-
return ErrCancelManagedDatabaseConnection
85-
}
86-
return nil
87-
}
88-
8959
// CancelManagedDatabaseSession cancels a current query of a database session or terminates it entirely.
9060
// In case of the server is unable to cancel the query or terminate the session ErrCancelManagedDatabaseSession
9161
// is returned.
@@ -132,13 +102,6 @@ func (s *Service) GetManagedDatabases(ctx context.Context, r *request.GetManaged
132102
return services, s.get(ctx, r.RequestURL(), &services)
133103
}
134104

135-
// Deprecated: GetManagedDatabaseConnections is deprecated in favor or GetManagedDatabaseSessions.
136-
// Returns a slice of connections from an existing managed database instance
137-
func (s *Service) GetManagedDatabaseConnections(ctx context.Context, r *request.GetManagedDatabaseConnectionsRequest) ([]upcloud.ManagedDatabaseConnection, error) {
138-
conns := make([]upcloud.ManagedDatabaseConnection, 0)
139-
return conns, s.get(ctx, r.RequestURL(), &conns)
140-
}
141-
142105
// GetManagedDatabaseMetrics returns metrics collection for the selected period
143106
func (s *Service) GetManagedDatabaseMetrics(ctx context.Context, r *request.GetManagedDatabaseMetricsRequest) (*upcloud.ManagedDatabaseMetrics, error) {
144107
metrics := upcloud.ManagedDatabaseMetrics{}

0 commit comments

Comments
 (0)