github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/reputation/convert.go (about) 1 package reputation 2 3 import ( 4 "github.com/TrueCloudLab/frostfs-api-go/v2/refs" 5 refsGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc" 6 reputation "github.com/TrueCloudLab/frostfs-api-go/v2/reputation/grpc" 7 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc" 8 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message" 9 ) 10 11 // ToGRPCMessage converts PeerID to gRPC-generated 12 // reputation.PeerID message. 13 func (x *PeerID) ToGRPCMessage() grpc.Message { 14 var m *reputation.PeerID 15 16 if x != nil { 17 m = new(reputation.PeerID) 18 19 m.SetPublicKey(x.publicKey) 20 } 21 22 return m 23 } 24 25 // FromGRPCMessage tries to restore PeerID from grpc.Message. 26 // 27 // Returns message.ErrUnexpectedMessageType if m is not 28 // a gRPC-generated reputation.PeerID message. 29 func (x *PeerID) FromGRPCMessage(m grpc.Message) error { 30 v, ok := m.(*reputation.PeerID) 31 if !ok { 32 return message.NewUnexpectedMessageType(m, v) 33 } 34 35 x.publicKey = v.GetPublicKey() 36 37 return nil 38 } 39 40 // ToGRPCMessage converts Trust to gRPC-generated 41 // reputation.Trust message. 42 func (x *Trust) ToGRPCMessage() grpc.Message { 43 var m *reputation.Trust 44 45 if x != nil { 46 m = new(reputation.Trust) 47 48 m.SetValue(x.val) 49 m.SetPeer(x.peer.ToGRPCMessage().(*reputation.PeerID)) 50 } 51 52 return m 53 } 54 55 // FromGRPCMessage tries to restore Trust from grpc.Message. 56 // 57 // Returns message.ErrUnexpectedMessageType if m is not 58 // a gRPC-generated reputation.Trust message. 59 func (x *Trust) FromGRPCMessage(m grpc.Message) error { 60 v, ok := m.(*reputation.Trust) 61 if !ok { 62 return message.NewUnexpectedMessageType(m, v) 63 } 64 65 peer := v.GetPeer() 66 if peer == nil { 67 x.peer = nil 68 } else { 69 if x.peer == nil { 70 x.peer = new(PeerID) 71 } 72 73 err := x.peer.FromGRPCMessage(peer) 74 if err != nil { 75 return err 76 } 77 } 78 79 x.val = v.GetValue() 80 81 return nil 82 } 83 84 // ToGRPCMessage converts PeerToPeerTrust to gRPC-generated 85 // reputation.PeerToPeerTrust message. 86 func (x *PeerToPeerTrust) ToGRPCMessage() grpc.Message { 87 var m *reputation.PeerToPeerTrust 88 89 if x != nil { 90 m = new(reputation.PeerToPeerTrust) 91 92 m.SetTrustingPeer(x.trusting.ToGRPCMessage().(*reputation.PeerID)) 93 m.SetTrust(x.trust.ToGRPCMessage().(*reputation.Trust)) 94 } 95 96 return m 97 } 98 99 // FromGRPCMessage tries to restore PeerToPeerTrust from grpc.Message. 100 // 101 // Returns message.ErrUnexpectedMessageType if m is not 102 // a gRPC-generated reputation.PeerToPeerTrust message. 103 func (x *PeerToPeerTrust) FromGRPCMessage(m grpc.Message) error { 104 v, ok := m.(*reputation.PeerToPeerTrust) 105 if !ok { 106 return message.NewUnexpectedMessageType(m, v) 107 } 108 109 var err error 110 111 trusting := v.GetTrustingPeer() 112 if trusting == nil { 113 x.trusting = nil 114 } else { 115 if x.trusting == nil { 116 x.trusting = new(PeerID) 117 } 118 119 err = x.trusting.FromGRPCMessage(trusting) 120 if err != nil { 121 return err 122 } 123 } 124 125 trust := v.GetTrust() 126 if trust == nil { 127 x.trust = nil 128 } else { 129 if x.trust == nil { 130 x.trust = new(Trust) 131 } 132 133 err = x.trust.FromGRPCMessage(trust) 134 } 135 136 return err 137 } 138 139 // TrustsToGRPC converts slice of Trust structures 140 // to slice of gRPC-generated Trust messages. 141 func TrustsToGRPC(xs []Trust) (res []*reputation.Trust) { 142 if xs != nil { 143 res = make([]*reputation.Trust, 0, len(xs)) 144 145 for i := range xs { 146 res = append(res, xs[i].ToGRPCMessage().(*reputation.Trust)) 147 } 148 } 149 150 return 151 } 152 153 // TrustsFromGRPC tries to restore slice of Trust structures from 154 // slice of gRPC-generated reputation.Trust messages. 155 func TrustsFromGRPC(xs []*reputation.Trust) (res []Trust, err error) { 156 if xs != nil { 157 res = make([]Trust, len(xs)) 158 159 for i := range xs { 160 if xs[i] != nil { 161 err = res[i].FromGRPCMessage(xs[i]) 162 if err != nil { 163 return 164 } 165 } 166 } 167 } 168 169 return 170 } 171 172 // ToGRPCMessage converts GlobalTrustBody to gRPC-generated 173 // reputation.GlobalTrust_Body message. 174 func (x *GlobalTrustBody) ToGRPCMessage() grpc.Message { 175 var m *reputation.GlobalTrust_Body 176 177 if x != nil { 178 m = new(reputation.GlobalTrust_Body) 179 180 m.SetManager(x.manager.ToGRPCMessage().(*reputation.PeerID)) 181 m.SetTrust(x.trust.ToGRPCMessage().(*reputation.Trust)) 182 } 183 184 return m 185 } 186 187 // FromGRPCMessage tries to restore GlobalTrustBody from grpc.Message. 188 // 189 // Returns message.ErrUnexpectedMessageType if m is not 190 // a gRPC-generated reputation.GlobalTrust_Body message. 191 func (x *GlobalTrustBody) FromGRPCMessage(m grpc.Message) error { 192 v, ok := m.(*reputation.GlobalTrust_Body) 193 if !ok { 194 return message.NewUnexpectedMessageType(m, v) 195 } 196 197 var err error 198 199 manager := v.GetManager() 200 if manager == nil { 201 x.manager = nil 202 } else { 203 if x.manager == nil { 204 x.manager = new(PeerID) 205 } 206 207 err = x.manager.FromGRPCMessage(manager) 208 if err != nil { 209 return err 210 } 211 } 212 213 trust := v.GetTrust() 214 if trust == nil { 215 x.trust = nil 216 } else { 217 if x.trust == nil { 218 x.trust = new(Trust) 219 } 220 221 err = x.trust.FromGRPCMessage(trust) 222 } 223 224 return err 225 } 226 227 // ToGRPCMessage converts GlobalTrust to gRPC-generated 228 // reputation.GlobalTrust message. 229 func (x *GlobalTrust) ToGRPCMessage() grpc.Message { 230 var m *reputation.GlobalTrust 231 232 if x != nil { 233 m = new(reputation.GlobalTrust) 234 235 m.SetVersion(x.version.ToGRPCMessage().(*refsGRPC.Version)) 236 m.SetBody(x.body.ToGRPCMessage().(*reputation.GlobalTrust_Body)) 237 m.SetSignature(x.sig.ToGRPCMessage().(*refsGRPC.Signature)) 238 } 239 240 return m 241 } 242 243 // FromGRPCMessage tries to restore GlobalTrust from grpc.Message. 244 // 245 // Returns message.ErrUnexpectedMessageType if m is not 246 // a gRPC-generated reputation.GlobalTrust message. 247 func (x *GlobalTrust) FromGRPCMessage(m grpc.Message) error { 248 v, ok := m.(*reputation.GlobalTrust) 249 if !ok { 250 return message.NewUnexpectedMessageType(m, v) 251 } 252 253 var err error 254 255 version := v.GetVersion() 256 if version == nil { 257 x.version = nil 258 } else { 259 if x.version == nil { 260 x.version = new(refs.Version) 261 } 262 263 err = x.version.FromGRPCMessage(version) 264 if err != nil { 265 return err 266 } 267 } 268 269 body := v.GetBody() 270 if body == nil { 271 x.body = nil 272 } else { 273 if x.body == nil { 274 x.body = new(GlobalTrustBody) 275 } 276 277 err = x.body.FromGRPCMessage(body) 278 if err != nil { 279 return err 280 } 281 } 282 283 sig := v.GetSignature() 284 if sig == nil { 285 x.sig = nil 286 } else { 287 if x.sig == nil { 288 x.sig = new(refs.Signature) 289 } 290 291 err = x.sig.FromGRPCMessage(sig) 292 } 293 294 return err 295 } 296 297 // ToGRPCMessage converts AnnounceLocalTrustRequestBody to gRPC-generated 298 // reputation.AnnounceLocalTrustRequest_Body message. 299 func (x *AnnounceLocalTrustRequestBody) ToGRPCMessage() grpc.Message { 300 var m *reputation.AnnounceLocalTrustRequest_Body 301 302 if x != nil { 303 m = new(reputation.AnnounceLocalTrustRequest_Body) 304 305 m.SetEpoch(x.epoch) 306 m.SetTrusts(TrustsToGRPC(x.trusts)) 307 } 308 309 return m 310 } 311 312 // FromGRPCMessage tries to restore AnnounceLocalTrustRequestBody from grpc.Message. 313 // 314 // Returns message.ErrUnexpectedMessageType if m is not 315 // a gRPC-generated reputation.AnnounceLocalTrustRequest_Body message. 316 func (x *AnnounceLocalTrustRequestBody) FromGRPCMessage(m grpc.Message) error { 317 v, ok := m.(*reputation.AnnounceLocalTrustRequest_Body) 318 if !ok { 319 return message.NewUnexpectedMessageType(m, v) 320 } 321 322 var err error 323 324 x.trusts, err = TrustsFromGRPC(v.GetTrusts()) 325 if err != nil { 326 return err 327 } 328 329 x.epoch = v.GetEpoch() 330 331 return nil 332 } 333 334 // ToGRPCMessage converts AnnounceLocalTrustRequest to gRPC-generated 335 // reputation.AnnounceLocalTrustRequest message. 336 func (x *AnnounceLocalTrustRequest) ToGRPCMessage() grpc.Message { 337 var m *reputation.AnnounceLocalTrustRequest 338 339 if x != nil { 340 m = new(reputation.AnnounceLocalTrustRequest) 341 342 m.SetBody(x.body.ToGRPCMessage().(*reputation.AnnounceLocalTrustRequest_Body)) 343 x.RequestHeaders.ToMessage(m) 344 } 345 346 return m 347 } 348 349 // FromGRPCMessage tries to restore AnnounceLocalTrustRequest from grpc.Message. 350 // 351 // Returns message.ErrUnexpectedMessageType if m is not 352 // a gRPC-generated reputation.AnnounceLocalTrustRequest message. 353 func (x *AnnounceLocalTrustRequest) FromGRPCMessage(m grpc.Message) error { 354 v, ok := m.(*reputation.AnnounceLocalTrustRequest) 355 if !ok { 356 return message.NewUnexpectedMessageType(m, v) 357 } 358 359 var err error 360 361 body := v.GetBody() 362 if body == nil { 363 x.body = nil 364 } else { 365 if x.body == nil { 366 x.body = new(AnnounceLocalTrustRequestBody) 367 } 368 369 err = x.body.FromGRPCMessage(body) 370 if err != nil { 371 return err 372 } 373 } 374 375 return x.RequestHeaders.FromMessage(v) 376 } 377 378 // ToGRPCMessage converts AnnounceLocalTrustResponseBody to gRPC-generated 379 // reputation.AnnounceLocalTrustResponse_Body message. 380 func (x *AnnounceLocalTrustResponseBody) ToGRPCMessage() grpc.Message { 381 var m *reputation.AnnounceLocalTrustResponse_Body 382 383 if x != nil { 384 m = new(reputation.AnnounceLocalTrustResponse_Body) 385 } 386 387 return m 388 } 389 390 // FromGRPCMessage tries to restore AnnounceLocalTrustResponseBody from grpc.Message. 391 // 392 // Returns message.ErrUnexpectedMessageType if m is not 393 // a gRPC-generated reputation.AnnounceLocalTrustResponse_Body message. 394 func (x *AnnounceLocalTrustResponseBody) FromGRPCMessage(m grpc.Message) error { 395 v, ok := m.(*reputation.AnnounceLocalTrustResponse_Body) 396 if !ok { 397 return message.NewUnexpectedMessageType(m, v) 398 } 399 400 return nil 401 } 402 403 // ToGRPCMessage converts AnnounceLocalTrustResponse to gRPC-generated 404 // reputation.AnnounceLocalTrustResponse message. 405 func (x *AnnounceLocalTrustResponse) ToGRPCMessage() grpc.Message { 406 var m *reputation.AnnounceLocalTrustResponse 407 408 if x != nil { 409 m = new(reputation.AnnounceLocalTrustResponse) 410 411 m.SetBody(x.body.ToGRPCMessage().(*reputation.AnnounceLocalTrustResponse_Body)) 412 x.ResponseHeaders.ToMessage(m) 413 } 414 415 return m 416 } 417 418 // FromGRPCMessage tries to restore AnnounceLocalTrustResponse from grpc.Message. 419 // 420 // Returns message.ErrUnexpectedMessageType if m is not 421 // a gRPC-generated reputation.AnnounceLocalTrustResponse message. 422 func (x *AnnounceLocalTrustResponse) FromGRPCMessage(m grpc.Message) error { 423 v, ok := m.(*reputation.AnnounceLocalTrustResponse) 424 if !ok { 425 return message.NewUnexpectedMessageType(m, v) 426 } 427 428 var err error 429 430 body := v.GetBody() 431 if body == nil { 432 x.body = nil 433 } else { 434 if x.body == nil { 435 x.body = new(AnnounceLocalTrustResponseBody) 436 } 437 438 err = x.body.FromGRPCMessage(body) 439 if err != nil { 440 return err 441 } 442 } 443 444 return x.ResponseHeaders.FromMessage(v) 445 } 446 447 // ToGRPCMessage converts AnnounceIntermediateResultRequestBody to gRPC-generated 448 // reputation.AnnounceIntermediateResultRequest_Body message. 449 func (x *AnnounceIntermediateResultRequestBody) ToGRPCMessage() grpc.Message { 450 var m *reputation.AnnounceIntermediateResultRequest_Body 451 452 if x != nil { 453 m = new(reputation.AnnounceIntermediateResultRequest_Body) 454 455 m.SetEpoch(x.epoch) 456 m.SetIteration(x.iter) 457 m.SetTrust(x.trust.ToGRPCMessage().(*reputation.PeerToPeerTrust)) 458 } 459 460 return m 461 } 462 463 // FromGRPCMessage tries to restore AnnounceIntermediateResultRequestBody from grpc.Message. 464 // 465 // Returns message.ErrUnexpectedMessageType if m is not 466 // a gRPC-generated reputation.AnnounceIntermediateResultRequest_Body message. 467 func (x *AnnounceIntermediateResultRequestBody) FromGRPCMessage(m grpc.Message) error { 468 v, ok := m.(*reputation.AnnounceIntermediateResultRequest_Body) 469 if !ok { 470 return message.NewUnexpectedMessageType(m, v) 471 } 472 473 trust := v.GetTrust() 474 if trust == nil { 475 x.trust = nil 476 } else { 477 if x.trust == nil { 478 x.trust = new(PeerToPeerTrust) 479 } 480 481 err := x.trust.FromGRPCMessage(trust) 482 if err != nil { 483 return err 484 } 485 } 486 487 x.epoch = v.GetEpoch() 488 x.iter = v.GetIteration() 489 490 return nil 491 } 492 493 // ToGRPCMessage converts AnnounceIntermediateResultRequest to gRPC-generated 494 // reputation.AnnounceIntermediateResultRequest message. 495 func (x *AnnounceIntermediateResultRequest) ToGRPCMessage() grpc.Message { 496 var m *reputation.AnnounceIntermediateResultRequest 497 498 if x != nil { 499 m = new(reputation.AnnounceIntermediateResultRequest) 500 501 m.SetBody(x.body.ToGRPCMessage().(*reputation.AnnounceIntermediateResultRequest_Body)) 502 x.RequestHeaders.ToMessage(m) 503 } 504 505 return m 506 } 507 508 // FromGRPCMessage tries to restore AnnounceIntermediateResultRequest from grpc.Message. 509 // 510 // Returns message.ErrUnexpectedMessageType if m is not 511 // a gRPC-generated reputation.AnnounceIntermediateResultRequest message. 512 func (x *AnnounceIntermediateResultRequest) FromGRPCMessage(m grpc.Message) error { 513 v, ok := m.(*reputation.AnnounceIntermediateResultRequest) 514 if !ok { 515 return message.NewUnexpectedMessageType(m, v) 516 } 517 518 var err error 519 520 body := v.GetBody() 521 if body == nil { 522 x.body = nil 523 } else { 524 if x.body == nil { 525 x.body = new(AnnounceIntermediateResultRequestBody) 526 } 527 528 err = x.body.FromGRPCMessage(body) 529 if err != nil { 530 return err 531 } 532 } 533 534 return x.RequestHeaders.FromMessage(v) 535 } 536 537 // ToGRPCMessage converts AnnounceIntermediateResultResponseBody to gRPC-generated 538 // reputation.AnnounceIntermediateResultResponse_Body message. 539 func (x *AnnounceIntermediateResultResponseBody) ToGRPCMessage() grpc.Message { 540 var m *reputation.AnnounceIntermediateResultResponse_Body 541 542 if x != nil { 543 m = new(reputation.AnnounceIntermediateResultResponse_Body) 544 } 545 546 return m 547 } 548 549 // FromGRPCMessage tries to restore AnnounceIntermediateResultResponseBody from grpc.Message. 550 // 551 // Returns message.ErrUnexpectedMessageType if m is not 552 // a gRPC-generated reputation.AnnounceIntermediateResultResponse_Body message. 553 func (x *AnnounceIntermediateResultResponseBody) FromGRPCMessage(m grpc.Message) error { 554 v, ok := m.(*reputation.AnnounceIntermediateResultResponse_Body) 555 if !ok { 556 return message.NewUnexpectedMessageType(m, v) 557 } 558 559 return nil 560 } 561 562 // ToGRPCMessage converts AnnounceIntermediateResultResponse to gRPC-generated 563 // reputation.AnnounceIntermediateResultResponse message. 564 func (x *AnnounceIntermediateResultResponse) ToGRPCMessage() grpc.Message { 565 var m *reputation.AnnounceIntermediateResultResponse 566 567 if x != nil { 568 m = new(reputation.AnnounceIntermediateResultResponse) 569 570 m.SetBody(x.body.ToGRPCMessage().(*reputation.AnnounceIntermediateResultResponse_Body)) 571 x.ResponseHeaders.ToMessage(m) 572 } 573 574 return m 575 } 576 577 // FromGRPCMessage tries to restore AnnounceIntermediateResultResponse from grpc.Message. 578 // 579 // Returns message.ErrUnexpectedMessageType if m is not 580 // a gRPC-generated reputation.AnnounceIntermediateResultResponse message. 581 func (x *AnnounceIntermediateResultResponse) FromGRPCMessage(m grpc.Message) error { 582 v, ok := m.(*reputation.AnnounceIntermediateResultResponse) 583 if !ok { 584 return message.NewUnexpectedMessageType(m, v) 585 } 586 587 var err error 588 589 body := v.GetBody() 590 if body == nil { 591 x.body = nil 592 } else { 593 if x.body == nil { 594 x.body = new(AnnounceIntermediateResultResponseBody) 595 } 596 597 err = x.body.FromGRPCMessage(body) 598 if err != nil { 599 return err 600 } 601 } 602 603 return x.ResponseHeaders.FromMessage(v) 604 }