github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/netmap/test/generate.go (about) 1 package netmaptest 2 3 import ( 4 "github.com/TrueCloudLab/frostfs-api-go/v2/netmap" 5 refstest "github.com/TrueCloudLab/frostfs-api-go/v2/refs/test" 6 sessiontest "github.com/TrueCloudLab/frostfs-api-go/v2/session/test" 7 ) 8 9 func GenerateFilter(empty bool) *netmap.Filter { 10 return generateFilter(empty, true) 11 } 12 13 func generateFilter(empty, withSub bool) *netmap.Filter { 14 m := new(netmap.Filter) 15 16 if !empty { 17 m.SetKey("filter key") 18 m.SetValue("filter value") 19 m.SetName("filter name") 20 m.SetOp(1) 21 22 if withSub { 23 m.SetFilters([]netmap.Filter{ 24 *generateFilter(empty, false), 25 *generateFilter(empty, false), 26 }) 27 } 28 } 29 30 return m 31 } 32 33 func GenerateFilters(empty bool) []netmap.Filter { 34 var res []netmap.Filter 35 36 if !empty { 37 res = append(res, 38 *GenerateFilter(false), 39 *GenerateFilter(false), 40 ) 41 } 42 43 return res 44 } 45 46 func GenerateSelector(empty bool) *netmap.Selector { 47 m := new(netmap.Selector) 48 49 if !empty { 50 m.SetCount(66) 51 m.SetAttribute("selector attribute") 52 m.SetFilter("select filter") 53 m.SetName("select name") 54 m.SetClause(1) 55 } 56 57 return m 58 } 59 60 func GenerateSelectors(empty bool) []netmap.Selector { 61 var res []netmap.Selector 62 63 if !empty { 64 res = append(res, 65 *GenerateSelector(false), 66 *GenerateSelector(false), 67 ) 68 } 69 70 return res 71 } 72 73 func GenerateReplica(empty bool) *netmap.Replica { 74 m := new(netmap.Replica) 75 76 if !empty { 77 m.SetCount(42) 78 m.SetSelector("replica selector") 79 } 80 81 return m 82 } 83 84 func GenerateReplicas(empty bool) []netmap.Replica { 85 var res []netmap.Replica 86 87 if !empty { 88 res = append(res, 89 *GenerateReplica(false), 90 *GenerateReplica(false), 91 ) 92 } 93 94 return res 95 } 96 97 func GeneratePlacementPolicy(empty bool) *netmap.PlacementPolicy { 98 m := new(netmap.PlacementPolicy) 99 100 if !empty { 101 m.SetContainerBackupFactor(322) 102 m.SetFilters(GenerateFilters(false)) 103 m.SetSelectors(GenerateSelectors(false)) 104 m.SetReplicas(GenerateReplicas(false)) 105 m.SetSubnetID(refstest.GenerateSubnetID(false)) 106 } 107 108 return m 109 } 110 111 func GenerateAttribute(empty bool) *netmap.Attribute { 112 m := new(netmap.Attribute) 113 114 if !empty { 115 m.SetKey("attribute key") 116 m.SetValue("attribute val") 117 } 118 119 return m 120 } 121 122 func GenerateAttributes(empty bool) []netmap.Attribute { 123 var res []netmap.Attribute 124 125 if !empty { 126 res = append(res, 127 *GenerateAttribute(false), 128 *GenerateAttribute(false), 129 ) 130 } 131 132 return res 133 } 134 135 func GenerateNodeInfo(empty bool) *netmap.NodeInfo { 136 m := new(netmap.NodeInfo) 137 138 if !empty { 139 m.SetAddresses("node address", "node address 2") 140 m.SetPublicKey([]byte{1, 2, 3}) 141 m.SetState(33) 142 m.SetAttributes(GenerateAttributes(empty)) 143 } 144 145 return m 146 } 147 148 func GenerateLocalNodeInfoRequestBody(empty bool) *netmap.LocalNodeInfoRequestBody { 149 m := new(netmap.LocalNodeInfoRequestBody) 150 151 return m 152 } 153 154 func GenerateLocalNodeInfoRequest(empty bool) *netmap.LocalNodeInfoRequest { 155 m := new(netmap.LocalNodeInfoRequest) 156 157 if !empty { 158 m.SetBody(GenerateLocalNodeInfoRequestBody(false)) 159 } 160 161 m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty)) 162 m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty)) 163 164 return m 165 } 166 167 func GenerateLocalNodeInfoResponseBody(empty bool) *netmap.LocalNodeInfoResponseBody { 168 m := new(netmap.LocalNodeInfoResponseBody) 169 170 if !empty { 171 m.SetNodeInfo(GenerateNodeInfo(false)) 172 } 173 174 m.SetVersion(refstest.GenerateVersion(empty)) 175 176 return m 177 } 178 179 func GenerateLocalNodeInfoResponse(empty bool) *netmap.LocalNodeInfoResponse { 180 m := new(netmap.LocalNodeInfoResponse) 181 182 if !empty { 183 m.SetBody(GenerateLocalNodeInfoResponseBody(false)) 184 } 185 186 m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty)) 187 m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty)) 188 189 return m 190 } 191 192 func GenerateNetworkParameter(empty bool) *netmap.NetworkParameter { 193 m := new(netmap.NetworkParameter) 194 195 if !empty { 196 m.SetKey([]byte("key")) 197 m.SetValue([]byte("value")) 198 } 199 200 return m 201 } 202 203 func GenerateNetworkConfig(empty bool) *netmap.NetworkConfig { 204 m := new(netmap.NetworkConfig) 205 206 if !empty { 207 m.SetParameters( 208 *GenerateNetworkParameter(empty), 209 *GenerateNetworkParameter(empty), 210 ) 211 } 212 213 return m 214 } 215 216 func GenerateNetworkInfo(empty bool) *netmap.NetworkInfo { 217 m := new(netmap.NetworkInfo) 218 219 if !empty { 220 m.SetMagicNumber(228) 221 m.SetCurrentEpoch(666) 222 m.SetMsPerBlock(5678) 223 m.SetNetworkConfig(GenerateNetworkConfig(empty)) 224 } 225 226 return m 227 } 228 229 func GenerateNetworkInfoRequestBody(empty bool) *netmap.NetworkInfoRequestBody { 230 m := new(netmap.NetworkInfoRequestBody) 231 232 return m 233 } 234 235 func GenerateNetworkInfoRequest(empty bool) *netmap.NetworkInfoRequest { 236 m := new(netmap.NetworkInfoRequest) 237 238 if !empty { 239 m.SetBody(GenerateNetworkInfoRequestBody(false)) 240 } 241 242 m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty)) 243 m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty)) 244 245 return m 246 } 247 248 func GenerateNetworkInfoResponseBody(empty bool) *netmap.NetworkInfoResponseBody { 249 m := new(netmap.NetworkInfoResponseBody) 250 251 if !empty { 252 m.SetNetworkInfo(GenerateNetworkInfo(false)) 253 } 254 255 return m 256 } 257 258 func GenerateNetworkInfoResponse(empty bool) *netmap.NetworkInfoResponse { 259 m := new(netmap.NetworkInfoResponse) 260 261 if !empty { 262 m.SetBody(GenerateNetworkInfoResponseBody(false)) 263 } 264 265 m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty)) 266 m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty)) 267 268 return m 269 } 270 271 func GenerateNetMap(empty bool) *netmap.NetMap { 272 m := new(netmap.NetMap) 273 274 if !empty { 275 m.SetEpoch(987) 276 m.SetNodes([]netmap.NodeInfo{ 277 *GenerateNodeInfo(false), 278 *GenerateNodeInfo(false), 279 }) 280 } 281 282 return m 283 } 284 285 func GenerateSnapshotRequestBody(_ bool) *netmap.SnapshotRequestBody { 286 return new(netmap.SnapshotRequestBody) 287 } 288 289 func GenerateSnapshotRequest(empty bool) *netmap.SnapshotRequest { 290 m := new(netmap.SnapshotRequest) 291 292 if !empty { 293 m.SetBody(GenerateSnapshotRequestBody(false)) 294 } 295 296 m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty)) 297 m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty)) 298 299 return m 300 } 301 302 func GenerateSnapshotResponseBody(empty bool) *netmap.SnapshotResponseBody { 303 m := new(netmap.SnapshotResponseBody) 304 305 if !empty { 306 m.SetNetMap(GenerateNetMap(false)) 307 } 308 309 return m 310 } 311 312 func GenerateSnapshotResponse(empty bool) *netmap.SnapshotResponse { 313 m := new(netmap.SnapshotResponse) 314 315 if !empty { 316 m.SetBody(GenerateSnapshotResponseBody(false)) 317 } 318 319 m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty)) 320 m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty)) 321 322 return m 323 }