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