github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/session/convert.go (about) 1 package session 2 3 import ( 4 "fmt" 5 6 "github.com/TrueCloudLab/frostfs-api-go/v2/acl" 7 aclGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/acl/grpc" 8 "github.com/TrueCloudLab/frostfs-api-go/v2/refs" 9 refsGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc" 10 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc" 11 "github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message" 12 session "github.com/TrueCloudLab/frostfs-api-go/v2/session/grpc" 13 "github.com/TrueCloudLab/frostfs-api-go/v2/status" 14 statusGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/status/grpc" 15 ) 16 17 func (c *CreateRequestBody) ToGRPCMessage() grpc.Message { 18 var m *session.CreateRequest_Body 19 20 if c != nil { 21 m = new(session.CreateRequest_Body) 22 23 m.SetOwnerId(c.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID)) 24 m.SetExpiration(c.expiration) 25 } 26 27 return m 28 } 29 30 func (c *CreateRequestBody) FromGRPCMessage(m grpc.Message) error { 31 v, ok := m.(*session.CreateRequest_Body) 32 if !ok { 33 return message.NewUnexpectedMessageType(m, v) 34 } 35 36 var err error 37 38 ownerID := v.GetOwnerId() 39 if ownerID == nil { 40 c.ownerID = nil 41 } else { 42 if c.ownerID == nil { 43 c.ownerID = new(refs.OwnerID) 44 } 45 46 err = c.ownerID.FromGRPCMessage(ownerID) 47 if err != nil { 48 return err 49 } 50 } 51 52 c.expiration = v.GetExpiration() 53 54 return nil 55 } 56 57 func (c *CreateRequest) ToGRPCMessage() grpc.Message { 58 var m *session.CreateRequest 59 60 if c != nil { 61 m = new(session.CreateRequest) 62 63 m.SetBody(c.body.ToGRPCMessage().(*session.CreateRequest_Body)) 64 c.RequestHeaders.ToMessage(m) 65 } 66 67 return m 68 } 69 70 func (c *CreateRequest) FromGRPCMessage(m grpc.Message) error { 71 v, ok := m.(*session.CreateRequest) 72 if !ok { 73 return message.NewUnexpectedMessageType(m, v) 74 } 75 76 var err error 77 78 body := v.GetBody() 79 if body == nil { 80 c.body = nil 81 } else { 82 if c.body == nil { 83 c.body = new(CreateRequestBody) 84 } 85 86 err = c.body.FromGRPCMessage(body) 87 if err != nil { 88 return err 89 } 90 } 91 92 return c.RequestHeaders.FromMessage(v) 93 } 94 95 func (c *CreateResponseBody) ToGRPCMessage() grpc.Message { 96 var m *session.CreateResponse_Body 97 98 if c != nil { 99 m = new(session.CreateResponse_Body) 100 101 m.SetSessionKey(c.sessionKey) 102 m.SetId(c.id) 103 } 104 105 return m 106 } 107 108 func (c *CreateResponseBody) FromGRPCMessage(m grpc.Message) error { 109 v, ok := m.(*session.CreateResponse_Body) 110 if !ok { 111 return message.NewUnexpectedMessageType(m, v) 112 } 113 114 c.sessionKey = v.GetSessionKey() 115 c.id = v.GetId() 116 117 return nil 118 } 119 120 func (c *CreateResponse) ToGRPCMessage() grpc.Message { 121 var m *session.CreateResponse 122 123 if c != nil { 124 m = new(session.CreateResponse) 125 126 m.SetBody(c.body.ToGRPCMessage().(*session.CreateResponse_Body)) 127 c.ResponseHeaders.ToMessage(m) 128 } 129 130 return m 131 } 132 133 func (c *CreateResponse) FromGRPCMessage(m grpc.Message) error { 134 v, ok := m.(*session.CreateResponse) 135 if !ok { 136 return message.NewUnexpectedMessageType(m, v) 137 } 138 139 var err error 140 141 body := v.GetBody() 142 if body == nil { 143 c.body = nil 144 } else { 145 if c.body == nil { 146 c.body = new(CreateResponseBody) 147 } 148 149 err = c.body.FromGRPCMessage(body) 150 if err != nil { 151 return err 152 } 153 } 154 155 return c.ResponseHeaders.FromMessage(v) 156 } 157 158 func (l *TokenLifetime) ToGRPCMessage() grpc.Message { 159 var m *session.SessionToken_Body_TokenLifetime 160 161 if l != nil { 162 m = new(session.SessionToken_Body_TokenLifetime) 163 164 m.SetExp(l.exp) 165 m.SetIat(l.iat) 166 m.SetNbf(l.nbf) 167 } 168 169 return m 170 } 171 172 func (l *TokenLifetime) FromGRPCMessage(m grpc.Message) error { 173 v, ok := m.(*session.SessionToken_Body_TokenLifetime) 174 if !ok { 175 return message.NewUnexpectedMessageType(m, v) 176 } 177 178 l.exp = v.GetExp() 179 l.iat = v.GetIat() 180 l.nbf = v.GetNbf() 181 182 return nil 183 } 184 185 func (x *XHeader) ToGRPCMessage() grpc.Message { 186 var m *session.XHeader 187 188 if x != nil { 189 m = new(session.XHeader) 190 191 m.SetKey(x.key) 192 m.SetValue(x.val) 193 } 194 195 return m 196 } 197 198 func (x *XHeader) FromGRPCMessage(m grpc.Message) error { 199 v, ok := m.(*session.XHeader) 200 if !ok { 201 return message.NewUnexpectedMessageType(m, v) 202 } 203 204 x.key = v.GetKey() 205 x.val = v.GetValue() 206 207 return nil 208 } 209 210 func XHeadersToGRPC(xs []XHeader) (res []*session.XHeader) { 211 if xs != nil { 212 res = make([]*session.XHeader, 0, len(xs)) 213 214 for i := range xs { 215 res = append(res, xs[i].ToGRPCMessage().(*session.XHeader)) 216 } 217 } 218 219 return 220 } 221 222 func XHeadersFromGRPC(xs []*session.XHeader) (res []XHeader, err error) { 223 if xs != nil { 224 res = make([]XHeader, len(xs)) 225 226 for i := range xs { 227 if xs[i] != nil { 228 err = res[i].FromGRPCMessage(xs[i]) 229 if err != nil { 230 return 231 } 232 } 233 } 234 } 235 236 return 237 } 238 239 func (t *Token) ToGRPCMessage() grpc.Message { 240 var m *session.SessionToken 241 242 if t != nil { 243 m = new(session.SessionToken) 244 245 m.SetBody(t.body.ToGRPCMessage().(*session.SessionToken_Body)) 246 m.SetSignature(t.sig.ToGRPCMessage().(*refsGRPC.Signature)) 247 } 248 249 return m 250 } 251 252 func (t *Token) FromGRPCMessage(m grpc.Message) error { 253 v, ok := m.(*session.SessionToken) 254 if !ok { 255 return message.NewUnexpectedMessageType(m, v) 256 } 257 258 var err error 259 260 body := v.GetBody() 261 if body == nil { 262 t.body = nil 263 } else { 264 if t.body == nil { 265 t.body = new(TokenBody) 266 } 267 268 err = t.body.FromGRPCMessage(body) 269 if err != nil { 270 return err 271 } 272 } 273 274 sig := v.GetSignature() 275 if sig == nil { 276 t.sig = nil 277 } else { 278 if t.sig == nil { 279 t.sig = new(refs.Signature) 280 } 281 282 err = t.sig.FromGRPCMessage(sig) 283 if err != nil { 284 return err 285 } 286 } 287 288 return nil 289 } 290 291 func (r *RequestVerificationHeader) ToGRPCMessage() grpc.Message { 292 var m *session.RequestVerificationHeader 293 294 if r != nil { 295 m = new(session.RequestVerificationHeader) 296 297 m.SetBodySignature(r.bodySig.ToGRPCMessage().(*refsGRPC.Signature)) 298 m.SetMetaSignature(r.metaSig.ToGRPCMessage().(*refsGRPC.Signature)) 299 m.SetOriginSignature(r.originSig.ToGRPCMessage().(*refsGRPC.Signature)) 300 m.SetOrigin(r.origin.ToGRPCMessage().(*session.RequestVerificationHeader)) 301 } 302 303 return m 304 } 305 306 func (r *RequestVerificationHeader) FromGRPCMessage(m grpc.Message) error { 307 v, ok := m.(*session.RequestVerificationHeader) 308 if !ok { 309 return message.NewUnexpectedMessageType(m, v) 310 } 311 312 var err error 313 314 originSig := v.GetOriginSignature() 315 if originSig == nil { 316 r.originSig = nil 317 } else { 318 if r.originSig == nil { 319 r.originSig = new(refs.Signature) 320 } 321 322 err = r.originSig.FromGRPCMessage(originSig) 323 if err != nil { 324 return err 325 } 326 } 327 328 metaSig := v.GetMetaSignature() 329 if metaSig == nil { 330 r.metaSig = nil 331 } else { 332 if r.metaSig == nil { 333 r.metaSig = new(refs.Signature) 334 } 335 336 err = r.metaSig.FromGRPCMessage(metaSig) 337 if err != nil { 338 return err 339 } 340 } 341 342 bodySig := v.GetBodySignature() 343 if bodySig == nil { 344 r.bodySig = nil 345 } else { 346 if r.bodySig == nil { 347 r.bodySig = new(refs.Signature) 348 } 349 350 err = r.bodySig.FromGRPCMessage(bodySig) 351 if err != nil { 352 return err 353 } 354 } 355 356 origin := v.GetOrigin() 357 if origin == nil { 358 r.origin = nil 359 } else { 360 if r.origin == nil { 361 r.origin = new(RequestVerificationHeader) 362 } 363 364 err = r.origin.FromGRPCMessage(origin) 365 if err != nil { 366 return err 367 } 368 } 369 370 return nil 371 } 372 373 func (r *RequestMetaHeader) ToGRPCMessage() grpc.Message { 374 var m *session.RequestMetaHeader 375 376 if r != nil { 377 m = new(session.RequestMetaHeader) 378 379 m.SetVersion(r.version.ToGRPCMessage().(*refsGRPC.Version)) 380 m.SetSessionToken(r.sessionToken.ToGRPCMessage().(*session.SessionToken)) 381 m.SetBearerToken(r.bearerToken.ToGRPCMessage().(*aclGRPC.BearerToken)) 382 m.SetXHeaders(XHeadersToGRPC(r.xHeaders)) 383 m.SetEpoch(r.epoch) 384 m.SetTtl(r.ttl) 385 m.SetOrigin(r.origin.ToGRPCMessage().(*session.RequestMetaHeader)) 386 m.SetNetworkMagic(r.netMagic) 387 } 388 389 return m 390 } 391 392 func (r *RequestMetaHeader) FromGRPCMessage(m grpc.Message) error { 393 v, ok := m.(*session.RequestMetaHeader) 394 if !ok { 395 return message.NewUnexpectedMessageType(m, v) 396 } 397 398 var err error 399 400 version := v.GetVersion() 401 if version == nil { 402 r.version = nil 403 } else { 404 if r.version == nil { 405 r.version = new(refs.Version) 406 } 407 408 err = r.version.FromGRPCMessage(version) 409 if err != nil { 410 return err 411 } 412 } 413 414 sessionToken := v.GetSessionToken() 415 if sessionToken == nil { 416 r.sessionToken = nil 417 } else { 418 if r.sessionToken == nil { 419 r.sessionToken = new(Token) 420 } 421 422 err = r.sessionToken.FromGRPCMessage(sessionToken) 423 if err != nil { 424 return err 425 } 426 } 427 428 bearerToken := v.GetBearerToken() 429 if bearerToken == nil { 430 r.bearerToken = nil 431 } else { 432 if r.bearerToken == nil { 433 r.bearerToken = new(acl.BearerToken) 434 } 435 436 err = r.bearerToken.FromGRPCMessage(bearerToken) 437 if err != nil { 438 return err 439 } 440 } 441 442 origin := v.GetOrigin() 443 if origin == nil { 444 r.origin = nil 445 } else { 446 if r.origin == nil { 447 r.origin = new(RequestMetaHeader) 448 } 449 450 err = r.origin.FromGRPCMessage(origin) 451 if err != nil { 452 return err 453 } 454 } 455 456 r.xHeaders, err = XHeadersFromGRPC(v.GetXHeaders()) 457 if err != nil { 458 return err 459 } 460 461 r.epoch = v.GetEpoch() 462 r.ttl = v.GetTtl() 463 r.netMagic = v.GetNetworkMagic() 464 465 return nil 466 } 467 468 func (r *ResponseVerificationHeader) ToGRPCMessage() grpc.Message { 469 var m *session.ResponseVerificationHeader 470 471 if r != nil { 472 m = new(session.ResponseVerificationHeader) 473 474 m.SetBodySignature(r.bodySig.ToGRPCMessage().(*refsGRPC.Signature)) 475 m.SetMetaSignature(r.metaSig.ToGRPCMessage().(*refsGRPC.Signature)) 476 m.SetOriginSignature(r.originSig.ToGRPCMessage().(*refsGRPC.Signature)) 477 m.SetOrigin(r.origin.ToGRPCMessage().(*session.ResponseVerificationHeader)) 478 } 479 480 return m 481 } 482 483 func (r *ResponseVerificationHeader) FromGRPCMessage(m grpc.Message) error { 484 v, ok := m.(*session.ResponseVerificationHeader) 485 if !ok { 486 return message.NewUnexpectedMessageType(m, v) 487 } 488 489 var err error 490 491 originSig := v.GetOriginSignature() 492 if originSig == nil { 493 r.originSig = nil 494 } else { 495 if r.originSig == nil { 496 r.originSig = new(refs.Signature) 497 } 498 499 err = r.originSig.FromGRPCMessage(originSig) 500 if err != nil { 501 return err 502 } 503 } 504 505 metaSig := v.GetMetaSignature() 506 if metaSig == nil { 507 r.metaSig = nil 508 } else { 509 if r.metaSig == nil { 510 r.metaSig = new(refs.Signature) 511 } 512 513 err = r.metaSig.FromGRPCMessage(metaSig) 514 if err != nil { 515 return err 516 } 517 } 518 519 bodySig := v.GetBodySignature() 520 if bodySig == nil { 521 r.bodySig = nil 522 } else { 523 if r.bodySig == nil { 524 r.bodySig = new(refs.Signature) 525 } 526 527 err = r.bodySig.FromGRPCMessage(bodySig) 528 if err != nil { 529 return err 530 } 531 } 532 533 origin := v.GetOrigin() 534 if origin == nil { 535 r.origin = nil 536 } else { 537 if r.origin == nil { 538 r.origin = new(ResponseVerificationHeader) 539 } 540 541 err = r.origin.FromGRPCMessage(origin) 542 if err != nil { 543 return err 544 } 545 } 546 547 return nil 548 } 549 550 func (r *ResponseMetaHeader) ToGRPCMessage() grpc.Message { 551 var m *session.ResponseMetaHeader 552 553 if r != nil { 554 m = new(session.ResponseMetaHeader) 555 556 m.SetVersion(r.version.ToGRPCMessage().(*refsGRPC.Version)) 557 m.SetXHeaders(XHeadersToGRPC(r.xHeaders)) 558 m.SetEpoch(r.epoch) 559 m.SetTtl(r.ttl) 560 m.SetOrigin(r.origin.ToGRPCMessage().(*session.ResponseMetaHeader)) 561 m.SetStatus(r.status.ToGRPCMessage().(*statusGRPC.Status)) 562 } 563 564 return m 565 } 566 567 func (r *ResponseMetaHeader) FromGRPCMessage(m grpc.Message) error { 568 v, ok := m.(*session.ResponseMetaHeader) 569 if !ok { 570 return message.NewUnexpectedMessageType(m, v) 571 } 572 573 var err error 574 575 version := v.GetVersion() 576 if version == nil { 577 r.version = nil 578 } else { 579 if r.version == nil { 580 r.version = new(refs.Version) 581 } 582 583 err = r.version.FromGRPCMessage(version) 584 if err != nil { 585 return err 586 } 587 } 588 589 origin := v.GetOrigin() 590 if origin == nil { 591 r.origin = nil 592 } else { 593 if r.origin == nil { 594 r.origin = new(ResponseMetaHeader) 595 } 596 597 err = r.origin.FromGRPCMessage(origin) 598 if err != nil { 599 return err 600 } 601 } 602 603 st := v.GetStatus() 604 if st == nil { 605 r.status = nil 606 } else { 607 if r.status == nil { 608 r.status = new(status.Status) 609 } 610 611 err = r.status.FromGRPCMessage(st) 612 if err != nil { 613 return err 614 } 615 } 616 617 r.xHeaders, err = XHeadersFromGRPC(v.GetXHeaders()) 618 if err != nil { 619 return err 620 } 621 622 r.epoch = v.GetEpoch() 623 r.ttl = v.GetTtl() 624 625 return nil 626 } 627 628 func ObjectSessionVerbToGRPCField(v ObjectSessionVerb) session.ObjectSessionContext_Verb { 629 switch v { 630 case ObjectVerbPut: 631 return session.ObjectSessionContext_PUT 632 case ObjectVerbGet: 633 return session.ObjectSessionContext_GET 634 case ObjectVerbHead: 635 return session.ObjectSessionContext_HEAD 636 case ObjectVerbSearch: 637 return session.ObjectSessionContext_SEARCH 638 case ObjectVerbDelete: 639 return session.ObjectSessionContext_DELETE 640 case ObjectVerbRange: 641 return session.ObjectSessionContext_RANGE 642 case ObjectVerbRangeHash: 643 return session.ObjectSessionContext_RANGEHASH 644 default: 645 return session.ObjectSessionContext_VERB_UNSPECIFIED 646 } 647 } 648 649 func ObjectSessionVerbFromGRPCField(v session.ObjectSessionContext_Verb) ObjectSessionVerb { 650 switch v { 651 case session.ObjectSessionContext_PUT: 652 return ObjectVerbPut 653 case session.ObjectSessionContext_GET: 654 return ObjectVerbGet 655 case session.ObjectSessionContext_HEAD: 656 return ObjectVerbHead 657 case session.ObjectSessionContext_SEARCH: 658 return ObjectVerbSearch 659 case session.ObjectSessionContext_DELETE: 660 return ObjectVerbDelete 661 case session.ObjectSessionContext_RANGE: 662 return ObjectVerbRange 663 case session.ObjectSessionContext_RANGEHASH: 664 return ObjectVerbRangeHash 665 default: 666 return ObjectVerbUnknown 667 } 668 } 669 670 func (c *ObjectSessionContext) ToGRPCMessage() grpc.Message { 671 var m *session.ObjectSessionContext 672 673 if c != nil { 674 m = new(session.ObjectSessionContext) 675 676 m.SetVerb(ObjectSessionVerbToGRPCField(c.verb)) 677 m.SetTarget(c.cnr.ToGRPCMessage().(*refsGRPC.ContainerID), refs.ObjectIDListToGRPCMessage(c.objs)) 678 } 679 680 return m 681 } 682 683 func (c *ObjectSessionContext) FromGRPCMessage(m grpc.Message) error { 684 v, ok := m.(*session.ObjectSessionContext) 685 if !ok { 686 return message.NewUnexpectedMessageType(m, v) 687 } 688 689 var err error 690 691 cnr := v.GetTarget().GetContainer() 692 if cnr == nil { 693 c.cnr = nil 694 } else { 695 if c.cnr == nil { 696 c.cnr = new(refs.ContainerID) 697 } 698 699 err = c.cnr.FromGRPCMessage(cnr) 700 if err != nil { 701 return err 702 } 703 } 704 705 c.objs, err = refs.ObjectIDListFromGRPCMessage(v.GetTarget().GetObjects()) 706 if err != nil { 707 return err 708 } 709 710 c.verb = ObjectSessionVerbFromGRPCField(v.GetVerb()) 711 712 return nil 713 } 714 715 func (t *TokenBody) ToGRPCMessage() grpc.Message { 716 var m *session.SessionToken_Body 717 718 if t != nil { 719 m = new(session.SessionToken_Body) 720 721 switch typ := t.ctx.(type) { 722 default: 723 panic(fmt.Sprintf("unknown session context %T", typ)) 724 case nil: 725 m.Context = nil 726 case *ObjectSessionContext: 727 m.SetObjectSessionContext(typ.ToGRPCMessage().(*session.ObjectSessionContext)) 728 case *ContainerSessionContext: 729 m.SetContainerSessionContext(typ.ToGRPCMessage().(*session.ContainerSessionContext)) 730 } 731 732 m.SetOwnerId(t.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID)) 733 m.SetId(t.id) 734 m.SetSessionKey(t.sessionKey) 735 m.SetLifetime(t.lifetime.ToGRPCMessage().(*session.SessionToken_Body_TokenLifetime)) 736 } 737 738 return m 739 } 740 741 func (t *TokenBody) FromGRPCMessage(m grpc.Message) error { 742 v, ok := m.(*session.SessionToken_Body) 743 if !ok { 744 return message.NewUnexpectedMessageType(m, v) 745 } 746 747 var err error 748 749 t.ctx = nil 750 751 switch val := v.GetContext().(type) { 752 default: 753 err = fmt.Errorf("unknown session context %T", val) 754 case nil: 755 case *session.SessionToken_Body_Object: 756 ctx, ok := t.ctx.(*ObjectSessionContext) 757 if !ok { 758 ctx = new(ObjectSessionContext) 759 t.ctx = ctx 760 } 761 762 err = ctx.FromGRPCMessage(val.Object) 763 case *session.SessionToken_Body_Container: 764 ctx, ok := t.ctx.(*ContainerSessionContext) 765 if !ok { 766 ctx = new(ContainerSessionContext) 767 t.ctx = ctx 768 } 769 770 err = ctx.FromGRPCMessage(val.Container) 771 } 772 773 if err != nil { 774 return err 775 } 776 777 ownerID := v.GetOwnerId() 778 if ownerID == nil { 779 t.ownerID = nil 780 } else { 781 if t.ownerID == nil { 782 t.ownerID = new(refs.OwnerID) 783 } 784 785 err = t.ownerID.FromGRPCMessage(ownerID) 786 if err != nil { 787 return err 788 } 789 } 790 791 lifetime := v.GetLifetime() 792 if lifetime == nil { 793 t.lifetime = nil 794 } else { 795 if t.lifetime == nil { 796 t.lifetime = new(TokenLifetime) 797 } 798 799 err = t.lifetime.FromGRPCMessage(lifetime) 800 if err != nil { 801 return err 802 } 803 } 804 805 t.id = v.GetId() 806 t.sessionKey = v.GetSessionKey() 807 808 return nil 809 } 810 811 // ContainerSessionVerbToGRPCField converts ContainerSessionVerb 812 // to gRPC-generated session.ContainerSessionContext_Verb. 813 // 814 // If v is outside of the ContainerSessionVerb enum, 815 // session.ContainerSessionContext_VERB_UNSPECIFIED is returned. 816 func ContainerSessionVerbToGRPCField(v ContainerSessionVerb) session.ContainerSessionContext_Verb { 817 switch v { 818 default: 819 return session.ContainerSessionContext_VERB_UNSPECIFIED 820 case ContainerVerbPut: 821 return session.ContainerSessionContext_PUT 822 case ContainerVerbDelete: 823 return session.ContainerSessionContext_DELETE 824 case ContainerVerbSetEACL: 825 return session.ContainerSessionContext_SETEACL 826 } 827 } 828 829 // ContainerSessionVerbFromGRPCField converts gRPC-generated 830 // session.ContainerSessionContext_Verb to ContainerSessionVerb. 831 // 832 // If v is outside of the session.ContainerSessionContext_Verb enum, 833 // ContainerVerbUnknown is returned. 834 func ContainerSessionVerbFromGRPCField(v session.ContainerSessionContext_Verb) ContainerSessionVerb { 835 switch v { 836 default: 837 return ContainerVerbUnknown 838 case session.ContainerSessionContext_PUT: 839 return ContainerVerbPut 840 case session.ContainerSessionContext_DELETE: 841 return ContainerVerbDelete 842 case session.ContainerSessionContext_SETEACL: 843 return ContainerVerbSetEACL 844 } 845 } 846 847 // ToGRPCMessage converts ContainerSessionContext to gRPC-generated 848 // session.ContainerSessionContext message. 849 func (x *ContainerSessionContext) ToGRPCMessage() grpc.Message { 850 var m *session.ContainerSessionContext 851 852 if x != nil { 853 m = new(session.ContainerSessionContext) 854 855 m.SetVerb(ContainerSessionVerbToGRPCField(x.verb)) 856 m.SetWildcard(x.wildcard) 857 m.SetContainerId(x.cid.ToGRPCMessage().(*refsGRPC.ContainerID)) 858 } 859 860 return m 861 } 862 863 // FromGRPCMessage tries to restore ContainerSessionContext from grpc.Message. 864 // 865 // Returns message.ErrUnexpectedMessageType if m is not 866 // a gRPC-generated session.ContainerSessionContext message. 867 func (x *ContainerSessionContext) FromGRPCMessage(m grpc.Message) error { 868 v, ok := m.(*session.ContainerSessionContext) 869 if !ok { 870 return message.NewUnexpectedMessageType(m, v) 871 } 872 873 var err error 874 875 cid := v.GetContainerId() 876 if cid == nil { 877 x.cid = nil 878 } else { 879 if x.cid == nil { 880 x.cid = new(refs.ContainerID) 881 } 882 883 err = x.cid.FromGRPCMessage(cid) 884 if err != nil { 885 return err 886 } 887 } 888 889 x.verb = ContainerSessionVerbFromGRPCField(v.GetVerb()) 890 x.wildcard = v.GetWildcard() 891 892 return nil 893 }