You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

storage_test.go 5.3 kB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. package cdssdk
  2. import (
  3. "bytes"
  4. "fmt"
  5. "io"
  6. "testing"
  7. "github.com/google/uuid"
  8. . "github.com/smartystreets/goconvey/convey"
  9. "gitlink.org.cn/cloudream/common/pkgs/iterator"
  10. )
  11. func Test_PackageGet(t *testing.T) {
  12. Convey("上传后获取Package信息", t, func() {
  13. cli := NewClient(&Config{
  14. URL: "http://localhost:7890",
  15. })
  16. fileData := make([]byte, 4096)
  17. for i := 0; i < len(fileData); i++ {
  18. fileData[i] = byte(i)
  19. }
  20. pkgName := uuid.NewString()
  21. upResp, err := cli.PackageUpload(PackageUploadReq{
  22. UserID: 0,
  23. BucketID: 1,
  24. Name: pkgName,
  25. Redundancy: TypedRedundancyInfo{
  26. Type: RedundancyRep,
  27. Info: NewRepRedundancyInfo(1),
  28. },
  29. Files: iterator.Array(
  30. &IterPackageUploadFile{
  31. Path: "test",
  32. File: io.NopCloser(bytes.NewBuffer(fileData)),
  33. },
  34. &IterPackageUploadFile{
  35. Path: "test2",
  36. File: io.NopCloser(bytes.NewBuffer(fileData)),
  37. },
  38. ),
  39. })
  40. So(err, ShouldBeNil)
  41. getResp, err := cli.PackageGet(PackageGetReq{
  42. UserID: 0,
  43. PackageID: upResp.PackageID,
  44. })
  45. So(err, ShouldBeNil)
  46. So(getResp.PackageID, ShouldEqual, upResp.PackageID)
  47. So(getResp.Package.Name, ShouldEqual, pkgName)
  48. err = cli.PackageDelete(PackageDeleteReq{
  49. UserID: 0,
  50. PackageID: upResp.PackageID,
  51. })
  52. So(err, ShouldBeNil)
  53. })
  54. }
  55. func Test_Object(t *testing.T) {
  56. Convey("上传,下载,删除", t, func() {
  57. cli := NewClient(&Config{
  58. URL: "http://localhost:7890",
  59. })
  60. fileData := make([]byte, 4096)
  61. for i := 0; i < len(fileData); i++ {
  62. fileData[i] = byte(i)
  63. }
  64. nodeAff := int64(2)
  65. upResp, err := cli.PackageUpload(PackageUploadReq{
  66. UserID: 0,
  67. BucketID: 1,
  68. Name: uuid.NewString(),
  69. Redundancy: TypedRedundancyInfo{
  70. Type: RedundancyRep,
  71. Info: NewRepRedundancyInfo(1),
  72. },
  73. NodeAffinity: &nodeAff,
  74. Files: iterator.Array(
  75. &IterPackageUploadFile{
  76. Path: "test",
  77. File: io.NopCloser(bytes.NewBuffer(fileData)),
  78. },
  79. &IterPackageUploadFile{
  80. Path: "test2",
  81. File: io.NopCloser(bytes.NewBuffer(fileData)),
  82. },
  83. ),
  84. })
  85. So(err, ShouldBeNil)
  86. // downFs, err := cli.ObjectDownload(ObjectDownloadReq{
  87. // UserID: 0,
  88. // ObjectID: upResp.ObjectID,
  89. // })
  90. // So(err, ShouldBeNil)
  91. //
  92. // downFileData, err := io.ReadAll(downFs)
  93. // So(err, ShouldBeNil)
  94. // So(downFileData, ShouldResemble, fileData)
  95. // downFs.Close()
  96. err = cli.PackageDelete(PackageDeleteReq{
  97. UserID: 0,
  98. PackageID: upResp.PackageID,
  99. })
  100. So(err, ShouldBeNil)
  101. })
  102. }
  103. func Test_Storage(t *testing.T) {
  104. Convey("上传后调度文件", t, func() {
  105. cli := NewClient(&Config{
  106. URL: "http://localhost:7890",
  107. })
  108. fileData := make([]byte, 4096)
  109. for i := 0; i < len(fileData); i++ {
  110. fileData[i] = byte(i)
  111. }
  112. upResp, err := cli.PackageUpload(PackageUploadReq{
  113. UserID: 0,
  114. BucketID: 1,
  115. Name: uuid.NewString(),
  116. Redundancy: TypedRedundancyInfo{
  117. Type: RedundancyRep,
  118. Info: NewRepRedundancyInfo(1),
  119. },
  120. Files: iterator.Array(
  121. &IterPackageUploadFile{
  122. Path: "test",
  123. File: io.NopCloser(bytes.NewBuffer(fileData)),
  124. },
  125. &IterPackageUploadFile{
  126. Path: "test2",
  127. File: io.NopCloser(bytes.NewBuffer(fileData)),
  128. },
  129. ),
  130. })
  131. So(err, ShouldBeNil)
  132. _, err = cli.StorageLoadPackage(StorageLoadPackageReq{
  133. UserID: 0,
  134. PackageID: upResp.PackageID,
  135. StorageID: 1,
  136. })
  137. So(err, ShouldBeNil)
  138. err = cli.PackageDelete(PackageDeleteReq{
  139. UserID: 0,
  140. PackageID: upResp.PackageID,
  141. })
  142. So(err, ShouldBeNil)
  143. })
  144. }
  145. func Test_Cache(t *testing.T) {
  146. Convey("上传后移动文件", t, func() {
  147. cli := NewClient(&Config{
  148. URL: "http://localhost:7890",
  149. })
  150. fileData := make([]byte, 4096)
  151. for i := 0; i < len(fileData); i++ {
  152. fileData[i] = byte(i)
  153. }
  154. upResp, err := cli.PackageUpload(PackageUploadReq{
  155. UserID: 0,
  156. BucketID: 1,
  157. Name: uuid.NewString(),
  158. Redundancy: TypedRedundancyInfo{
  159. Type: RedundancyRep,
  160. Info: NewRepRedundancyInfo(1),
  161. },
  162. Files: iterator.Array(
  163. &IterPackageUploadFile{
  164. Path: "test.txt",
  165. File: io.NopCloser(bytes.NewBuffer(fileData)),
  166. },
  167. &IterPackageUploadFile{
  168. Path: "test2.txt",
  169. File: io.NopCloser(bytes.NewBuffer(fileData)),
  170. },
  171. ),
  172. })
  173. So(err, ShouldBeNil)
  174. cacheMoveResp, err := cli.CacheMovePackage(CacheMovePackageReq{
  175. UserID: 0,
  176. PackageID: upResp.PackageID,
  177. NodeID: 1,
  178. })
  179. So(err, ShouldBeNil)
  180. cacheInfoResp, err := cli.CacheGetPackageObjectCacheInfos(CacheGetPackageObjectCacheInfosReq{
  181. UserID: 0,
  182. PackageID: upResp.PackageID,
  183. })
  184. So(err, ShouldBeNil)
  185. So(cacheInfoResp.Infos, ShouldResemble, cacheMoveResp.CacheInfos)
  186. err = cli.PackageDelete(PackageDeleteReq{
  187. UserID: 0,
  188. PackageID: upResp.PackageID,
  189. })
  190. So(err, ShouldBeNil)
  191. })
  192. }
  193. func Test_GetNodeInfos(t *testing.T) {
  194. Convey("测试获取node信息", t, func() {
  195. cli := NewClient(&Config{
  196. URL: "http://localhost:7890",
  197. })
  198. resp1, err := cli.PackageGetCachedNodes(PackageGetCachedNodesReq{
  199. PackageID: 11,
  200. UserID: 0,
  201. })
  202. So(err, ShouldBeNil)
  203. fmt.Printf("resp1: %v\n", resp1)
  204. resp2, err := cli.PackageGetLoadedNodes(PackageGetLoadedNodesReq{
  205. PackageID: 11,
  206. UserID: 0,
  207. })
  208. So(err, ShouldBeNil)
  209. fmt.Printf("resp2: %v\n", resp2)
  210. })
  211. }