Skip to content

Commit

Permalink
Get Specific Replication Pair
Browse files Browse the repository at this point in the history
  • Loading branch information
doriac11 committed Oct 8, 2024
1 parent f5a89ca commit 1a4da47
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 0 deletions.
28 changes: 28 additions & 0 deletions inttests/replication_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,34 @@ func TestQueryReplicationPairs(t *testing.T) {
}
}

// Query Specific Replication Pair
func TestQueryReplicationPair(t *testing.T) {
if C2 == nil {
t.Skip("no client connection to replication target system")
}

pair, err := C.GetReplicationPair(rep.pair.ReplicaitonPair.ID)
assert.Nil(t, err)
assert.NotNil(t, pair)
}

// Pause and Resume Replication Pair
func TestPauseAndResumeReplicationPair(t *testing.T) {
if C2 == nil {
t.Skip("no client connection to replication target system")
}

// Pause
pairP, err := C.PausePairInitialCopy(rep.pair.ReplicaitonPair.ID)
assert.Nil(t, err)
assert.NotNil(t, pairP)

// Resume
pairR, err := C.ResumePairInitialCopy(rep.pair.ReplicaitonPair.ID)
assert.Nil(t, err)
assert.NotNil(t, pairR)
}

// Query Replication Pair Statistics
func TestQueryReplicationPairsStatistics(t *testing.T) {
if C2 == nil {
Expand Down
33 changes: 33 additions & 0 deletions replication.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,39 @@ func (c *Client) GetAllReplicationPairs() ([]*types.ReplicationPair, error) {
return pairs, err
}

// GetReplicationPair returns a specific replication pair on the system.
func (c *Client) GetReplicationPair(id string) (*types.ReplicationPair, error) {
defer TimeSpent("GetReplicationPair", time.Now())

path := "/api/instances/ReplicationPair::" + id

var pair *types.ReplicationPair
err := c.getJSONWithRetry(http.MethodGet, path, nil, &pair)
return pair, err
}

// PausePairInitialCopy pauses the initial copy of the replication pair.
func (c *Client) PausePairInitialCopy(id string) (*types.ReplicationPair, error) {
defer TimeSpent("PausePairInitialCopy", time.Now())

path := "/api/instances/ReplicationPair::" + id + "/action/pausePairInitialCopy"

var pair *types.ReplicationPair
err := c.getJSONWithRetry(http.MethodPost, path, types.EmptyPayload{}, &pair)
return pair, err
}

// ResumePairInitialCopy resumes the initial copy of the replication pair.
func (c *Client) ResumePairInitialCopy(id string) (*types.ReplicationPair, error) {
defer TimeSpent("ResumePairInitialCopy", time.Now())

path := "/api/instances/ReplicationPair::" + id + "/action/resumePairInitialCopy"

var pair *types.ReplicationPair
err := c.getJSONWithRetry(http.MethodPost, path, types.EmptyPayload{}, &pair)
return pair, err
}

// GetReplicationPairs returns a list of replication pairs associated to the rcg.
func (rcg *ReplicationConsistencyGroup) GetReplicationPairs() ([]*types.ReplicationPair, error) {
defer TimeSpent("GetReplicationPairs", time.Now())
Expand Down

0 comments on commit 1a4da47

Please sign in to comment.