blob: f9925e7a2c2cad5341df4c7a18783af154c4c4bd [file]
package integration
import (
"fmt"
"github.com/apache/cloudberry-backup/filepath"
"github.com/apache/cloudberry-backup/utils"
"github.com/apache/cloudberry-go-libs/cluster"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
var _ = Describe("agent remote", func() {
var (
oidList []string
filePath filepath.FilePathInfo
testCluster *cluster.Cluster
)
BeforeEach(func() {
oidList = []string{"1", "2", "3"}
segConfig := cluster.MustGetSegmentConfiguration(connectionPool)
testCluster = cluster.NewCluster(segConfig)
filePath = filepath.NewFilePathInfo(testCluster, "my_dir", "20190102030405", "", false)
})
Describe("WriteOidListToSegments()", func() {
It("writes oids to a temp file and copies it to all segments", func() {
utils.WriteOidListToSegments(oidList, testCluster, filePath, "oid")
remoteOutput := testCluster.GenerateAndExecuteCommand("ensure oid file was written to segments", cluster.ON_SEGMENTS, func(contentID int) string {
remoteOidFile := filePath.GetSegmentHelperFilePath(contentID, "oid")
return fmt.Sprintf("cat %s", remoteOidFile)
})
defer func() {
remoteOutputRemoval := testCluster.GenerateAndExecuteCommand("ensure oid file removed", cluster.ON_SEGMENTS, func(contentID int) string {
remoteOidFile := filePath.GetSegmentHelperFilePath(contentID, "oid")
return fmt.Sprintf("rm %s", remoteOidFile)
})
testCluster.CheckClusterError(remoteOutputRemoval, "Could not remove oid file", func(contentID int) string {
return "Could not remove oid file"
})
}()
testCluster.CheckClusterError(remoteOutput, "Could not cat oid file", func(contentID int) string {
return "Could not cat oid file"
})
for _, cmd := range remoteOutput.Commands {
Expect(cmd.Stdout).To(Equal("1\n2\n3\n"))
}
})
})
})