github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/container/convert.go (about)

     1  package container
     2  
     3  import (
     4  	"github.com/TrueCloudLab/frostfs-api-go/v2/acl"
     5  	aclGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
     6  	container "github.com/TrueCloudLab/frostfs-api-go/v2/container/grpc"
     7  	"github.com/TrueCloudLab/frostfs-api-go/v2/netmap"
     8  	netmapGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/netmap/grpc"
     9  	"github.com/TrueCloudLab/frostfs-api-go/v2/refs"
    10  	refsGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
    11  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
    12  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message"
    13  	"github.com/TrueCloudLab/frostfs-api-go/v2/session"
    14  	sessionGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/session/grpc"
    15  )
    16  
    17  func (a *Attribute) ToGRPCMessage() grpc.Message {
    18  	var m *container.Container_Attribute
    19  
    20  	if a != nil {
    21  		m = new(container.Container_Attribute)
    22  
    23  		m.SetKey(a.key)
    24  		m.SetValue(a.val)
    25  	}
    26  
    27  	return m
    28  }
    29  
    30  func (a *Attribute) FromGRPCMessage(m grpc.Message) error {
    31  	v, ok := m.(*container.Container_Attribute)
    32  	if !ok {
    33  		return message.NewUnexpectedMessageType(m, v)
    34  	}
    35  
    36  	a.key = v.GetKey()
    37  	a.val = v.GetValue()
    38  
    39  	return nil
    40  }
    41  
    42  func AttributesToGRPC(xs []Attribute) (res []*container.Container_Attribute) {
    43  	if xs != nil {
    44  		res = make([]*container.Container_Attribute, 0, len(xs))
    45  
    46  		for i := range xs {
    47  			res = append(res, xs[i].ToGRPCMessage().(*container.Container_Attribute))
    48  		}
    49  	}
    50  
    51  	return
    52  }
    53  
    54  func AttributesFromGRPC(xs []*container.Container_Attribute) (res []Attribute, err error) {
    55  	if xs != nil {
    56  		res = make([]Attribute, len(xs))
    57  
    58  		for i := range xs {
    59  			if xs[i] != nil {
    60  				err = res[i].FromGRPCMessage(xs[i])
    61  				if err != nil {
    62  					return
    63  				}
    64  			}
    65  		}
    66  	}
    67  
    68  	return
    69  }
    70  
    71  func (c *Container) ToGRPCMessage() grpc.Message {
    72  	var m *container.Container
    73  
    74  	if c != nil {
    75  		m = new(container.Container)
    76  
    77  		m.SetVersion(c.version.ToGRPCMessage().(*refsGRPC.Version))
    78  		m.SetOwnerId(c.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID))
    79  		m.SetPlacementPolicy(c.policy.ToGRPCMessage().(*netmapGRPC.PlacementPolicy))
    80  		m.SetAttributes(AttributesToGRPC(c.attr))
    81  		m.SetBasicAcl(c.basicACL)
    82  		m.SetNonce(c.nonce)
    83  	}
    84  
    85  	return m
    86  }
    87  
    88  func (c *Container) FromGRPCMessage(m grpc.Message) error {
    89  	v, ok := m.(*container.Container)
    90  	if !ok {
    91  		return message.NewUnexpectedMessageType(m, v)
    92  	}
    93  
    94  	var err error
    95  
    96  	version := v.GetVersion()
    97  	if version == nil {
    98  		c.version = nil
    99  	} else {
   100  		if c.version == nil {
   101  			c.version = new(refs.Version)
   102  		}
   103  
   104  		err = c.version.FromGRPCMessage(version)
   105  		if err != nil {
   106  			return err
   107  		}
   108  	}
   109  
   110  	ownerID := v.GetOwnerId()
   111  	if ownerID == nil {
   112  		c.ownerID = nil
   113  	} else {
   114  		if c.ownerID == nil {
   115  			c.ownerID = new(refs.OwnerID)
   116  		}
   117  
   118  		err = c.ownerID.FromGRPCMessage(ownerID)
   119  		if err != nil {
   120  			return err
   121  		}
   122  	}
   123  
   124  	policy := v.GetPlacementPolicy()
   125  	if policy == nil {
   126  		c.policy = nil
   127  	} else {
   128  		if c.policy == nil {
   129  			c.policy = new(netmap.PlacementPolicy)
   130  		}
   131  
   132  		err = c.policy.FromGRPCMessage(policy)
   133  		if err != nil {
   134  			return err
   135  		}
   136  	}
   137  
   138  	c.attr, err = AttributesFromGRPC(v.GetAttributes())
   139  	if err != nil {
   140  		return err
   141  	}
   142  
   143  	c.basicACL = v.GetBasicAcl()
   144  	c.nonce = v.GetNonce()
   145  
   146  	return nil
   147  }
   148  
   149  func toSignatureRFC6979(s *refs.Signature) *refsGRPC.SignatureRFC6979 {
   150  	var res *refsGRPC.SignatureRFC6979
   151  
   152  	if s != nil {
   153  		res = new(refsGRPC.SignatureRFC6979)
   154  		res.SetKey(s.GetKey())
   155  		res.SetSign(s.GetSign())
   156  	}
   157  
   158  	return res
   159  }
   160  
   161  func (r *PutRequestBody) ToGRPCMessage() grpc.Message {
   162  	var m *container.PutRequest_Body
   163  
   164  	if r != nil {
   165  		m = new(container.PutRequest_Body)
   166  
   167  		m.SetContainer(r.cnr.ToGRPCMessage().(*container.Container))
   168  		m.SetSignature(toSignatureRFC6979(r.sig))
   169  	}
   170  
   171  	return m
   172  }
   173  
   174  func (r *PutRequestBody) FromGRPCMessage(m grpc.Message) error {
   175  	v, ok := m.(*container.PutRequest_Body)
   176  	if !ok {
   177  		return message.NewUnexpectedMessageType(m, v)
   178  	}
   179  
   180  	var err error
   181  
   182  	cnr := v.GetContainer()
   183  	if cnr == nil {
   184  		r.cnr = nil
   185  	} else {
   186  		if r.cnr == nil {
   187  			r.cnr = new(Container)
   188  		}
   189  
   190  		err = r.cnr.FromGRPCMessage(cnr)
   191  		if err != nil {
   192  			return err
   193  		}
   194  	}
   195  
   196  	sig := v.GetSignature()
   197  	if sig == nil {
   198  		r.sig = nil
   199  	} else {
   200  		if r.sig == nil {
   201  			r.sig = new(refs.Signature)
   202  		}
   203  
   204  		r.sig.SetKey(sig.GetKey())
   205  		r.sig.SetSign(sig.GetSign())
   206  	}
   207  
   208  	return err
   209  }
   210  
   211  func (r *PutRequest) ToGRPCMessage() grpc.Message {
   212  	var m *container.PutRequest
   213  
   214  	if r != nil {
   215  		m = new(container.PutRequest)
   216  
   217  		m.SetBody(r.body.ToGRPCMessage().(*container.PutRequest_Body))
   218  		r.RequestHeaders.ToMessage(m)
   219  	}
   220  
   221  	return m
   222  }
   223  
   224  func (r *PutRequest) FromGRPCMessage(m grpc.Message) error {
   225  	v, ok := m.(*container.PutRequest)
   226  	if !ok {
   227  		return message.NewUnexpectedMessageType(m, v)
   228  	}
   229  
   230  	var err error
   231  
   232  	body := v.GetBody()
   233  	if body == nil {
   234  		r.body = nil
   235  	} else {
   236  		if r.body == nil {
   237  			r.body = new(PutRequestBody)
   238  		}
   239  
   240  		err = r.body.FromGRPCMessage(body)
   241  		if err != nil {
   242  			return err
   243  		}
   244  	}
   245  
   246  	return r.RequestHeaders.FromMessage(v)
   247  }
   248  
   249  func (r *PutResponseBody) ToGRPCMessage() grpc.Message {
   250  	var m *container.PutResponse_Body
   251  
   252  	if r != nil {
   253  		m = new(container.PutResponse_Body)
   254  
   255  		m.SetContainerId(r.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
   256  	}
   257  
   258  	return m
   259  }
   260  
   261  func (r *PutResponseBody) FromGRPCMessage(m grpc.Message) error {
   262  	v, ok := m.(*container.PutResponse_Body)
   263  	if !ok {
   264  		return message.NewUnexpectedMessageType(m, v)
   265  	}
   266  
   267  	var err error
   268  
   269  	cid := v.GetContainerId()
   270  	if cid == nil {
   271  		r.cid = nil
   272  	} else {
   273  		if r.cid == nil {
   274  			r.cid = new(refs.ContainerID)
   275  		}
   276  
   277  		err = r.cid.FromGRPCMessage(cid)
   278  	}
   279  
   280  	return err
   281  }
   282  
   283  func (r *PutResponse) ToGRPCMessage() grpc.Message {
   284  	var m *container.PutResponse
   285  
   286  	if r != nil {
   287  		m = new(container.PutResponse)
   288  
   289  		m.SetBody(r.body.ToGRPCMessage().(*container.PutResponse_Body))
   290  		r.ResponseHeaders.ToMessage(m)
   291  	}
   292  
   293  	return m
   294  }
   295  
   296  func (r *PutResponse) FromGRPCMessage(m grpc.Message) error {
   297  	v, ok := m.(*container.PutResponse)
   298  	if !ok {
   299  		return message.NewUnexpectedMessageType(m, v)
   300  	}
   301  
   302  	var err error
   303  
   304  	body := v.GetBody()
   305  	if body == nil {
   306  		r.body = nil
   307  	} else {
   308  		if r.body == nil {
   309  			r.body = new(PutResponseBody)
   310  		}
   311  
   312  		err = r.body.FromGRPCMessage(body)
   313  		if err != nil {
   314  			return err
   315  		}
   316  	}
   317  
   318  	return r.ResponseHeaders.FromMessage(v)
   319  }
   320  
   321  func (r *GetRequestBody) ToGRPCMessage() grpc.Message {
   322  	var m *container.GetRequest_Body
   323  
   324  	if r != nil {
   325  		m = new(container.GetRequest_Body)
   326  
   327  		m.SetContainerId(r.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
   328  	}
   329  
   330  	return m
   331  }
   332  
   333  func (r *GetRequestBody) FromGRPCMessage(m grpc.Message) error {
   334  	v, ok := m.(*container.GetRequest_Body)
   335  	if !ok {
   336  		return message.NewUnexpectedMessageType(m, v)
   337  	}
   338  
   339  	var err error
   340  
   341  	cid := v.GetContainerId()
   342  	if cid == nil {
   343  		r.cid = nil
   344  	} else {
   345  		if r.cid == nil {
   346  			r.cid = new(refs.ContainerID)
   347  		}
   348  
   349  		err = r.cid.FromGRPCMessage(cid)
   350  	}
   351  
   352  	return err
   353  }
   354  
   355  func (r *GetRequest) ToGRPCMessage() grpc.Message {
   356  	var m *container.GetRequest
   357  
   358  	if r != nil {
   359  		m = new(container.GetRequest)
   360  
   361  		m.SetBody(r.body.ToGRPCMessage().(*container.GetRequest_Body))
   362  		r.RequestHeaders.ToMessage(m)
   363  	}
   364  
   365  	return m
   366  }
   367  
   368  func (r *GetRequest) FromGRPCMessage(m grpc.Message) error {
   369  	v, ok := m.(*container.GetRequest)
   370  	if !ok {
   371  		return message.NewUnexpectedMessageType(m, v)
   372  	}
   373  
   374  	var err error
   375  
   376  	body := v.GetBody()
   377  	if body == nil {
   378  		r.body = nil
   379  	} else {
   380  		if r.body == nil {
   381  			r.body = new(GetRequestBody)
   382  		}
   383  
   384  		err = r.body.FromGRPCMessage(body)
   385  		if err != nil {
   386  			return err
   387  		}
   388  	}
   389  
   390  	return r.RequestHeaders.FromMessage(v)
   391  }
   392  
   393  func (r *GetResponseBody) ToGRPCMessage() grpc.Message {
   394  	var m *container.GetResponse_Body
   395  
   396  	if r != nil {
   397  		m = new(container.GetResponse_Body)
   398  
   399  		m.SetContainer(r.cnr.ToGRPCMessage().(*container.Container))
   400  		m.SetSessionToken(r.token.ToGRPCMessage().(*sessionGRPC.SessionToken))
   401  		m.SetSignature(toSignatureRFC6979(r.sig))
   402  	}
   403  
   404  	return m
   405  }
   406  
   407  func (r *GetResponseBody) FromGRPCMessage(m grpc.Message) error {
   408  	v, ok := m.(*container.GetResponse_Body)
   409  	if !ok {
   410  		return message.NewUnexpectedMessageType(m, v)
   411  	}
   412  
   413  	var err error
   414  
   415  	cnr := v.GetContainer()
   416  	if cnr == nil {
   417  		r.cnr = nil
   418  	} else {
   419  		if r.cnr == nil {
   420  			r.cnr = new(Container)
   421  		}
   422  
   423  		err = r.cnr.FromGRPCMessage(cnr)
   424  	}
   425  
   426  	sig := v.GetSignature()
   427  	if sig == nil {
   428  		r.sig = nil
   429  	} else {
   430  		if r.sig == nil {
   431  			r.sig = new(refs.Signature)
   432  		}
   433  
   434  		r.sig.SetKey(sig.GetKey())
   435  		r.sig.SetSign(sig.GetSign())
   436  	}
   437  
   438  	token := v.GetSessionToken()
   439  	if token == nil {
   440  		r.token = nil
   441  	} else {
   442  		if r.token == nil {
   443  			r.token = new(session.Token)
   444  		}
   445  
   446  		err = r.token.FromGRPCMessage(token)
   447  	}
   448  
   449  	return err
   450  }
   451  
   452  func (r *GetResponse) ToGRPCMessage() grpc.Message {
   453  	var m *container.GetResponse
   454  
   455  	if r != nil {
   456  		m = new(container.GetResponse)
   457  
   458  		m.SetBody(r.body.ToGRPCMessage().(*container.GetResponse_Body))
   459  		r.ResponseHeaders.ToMessage(m)
   460  	}
   461  
   462  	return m
   463  }
   464  
   465  func (r *GetResponse) FromGRPCMessage(m grpc.Message) error {
   466  	v, ok := m.(*container.GetResponse)
   467  	if !ok {
   468  		return message.NewUnexpectedMessageType(m, v)
   469  	}
   470  
   471  	var err error
   472  
   473  	body := v.GetBody()
   474  	if body == nil {
   475  		r.body = nil
   476  	} else {
   477  		if r.body == nil {
   478  			r.body = new(GetResponseBody)
   479  		}
   480  
   481  		err = r.body.FromGRPCMessage(body)
   482  		if err != nil {
   483  			return err
   484  		}
   485  	}
   486  
   487  	return r.ResponseHeaders.FromMessage(v)
   488  }
   489  
   490  func (r *DeleteRequestBody) ToGRPCMessage() grpc.Message {
   491  	var m *container.DeleteRequest_Body
   492  
   493  	if r != nil {
   494  		m = new(container.DeleteRequest_Body)
   495  
   496  		m.SetContainerId(r.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
   497  		m.SetSignature(toSignatureRFC6979(r.sig))
   498  	}
   499  
   500  	return m
   501  }
   502  
   503  func (r *DeleteRequestBody) FromGRPCMessage(m grpc.Message) error {
   504  	v, ok := m.(*container.DeleteRequest_Body)
   505  	if !ok {
   506  		return message.NewUnexpectedMessageType(m, v)
   507  	}
   508  
   509  	var err error
   510  
   511  	cid := v.GetContainerId()
   512  	if cid == nil {
   513  		r.cid = nil
   514  	} else {
   515  		if r.cid == nil {
   516  			r.cid = new(refs.ContainerID)
   517  		}
   518  
   519  		err = r.cid.FromGRPCMessage(cid)
   520  		if err != nil {
   521  			return err
   522  		}
   523  	}
   524  
   525  	sig := v.GetSignature()
   526  	if sig == nil {
   527  		r.sig = nil
   528  	} else {
   529  		if r.sig == nil {
   530  			r.sig = new(refs.Signature)
   531  		}
   532  
   533  		r.sig.SetKey(sig.GetKey())
   534  		r.sig.SetSign(sig.GetSign())
   535  	}
   536  
   537  	return err
   538  }
   539  
   540  func (r *DeleteRequest) ToGRPCMessage() grpc.Message {
   541  	var m *container.DeleteRequest
   542  
   543  	if r != nil {
   544  		m = new(container.DeleteRequest)
   545  
   546  		m.SetBody(r.body.ToGRPCMessage().(*container.DeleteRequest_Body))
   547  		r.RequestHeaders.ToMessage(m)
   548  	}
   549  
   550  	return m
   551  }
   552  
   553  func (r *DeleteRequest) FromGRPCMessage(m grpc.Message) error {
   554  	v, ok := m.(*container.DeleteRequest)
   555  	if !ok {
   556  		return message.NewUnexpectedMessageType(m, v)
   557  	}
   558  
   559  	var err error
   560  
   561  	body := v.GetBody()
   562  	if body == nil {
   563  		r.body = nil
   564  	} else {
   565  		if r.body == nil {
   566  			r.body = new(DeleteRequestBody)
   567  		}
   568  
   569  		err = r.body.FromGRPCMessage(body)
   570  		if err != nil {
   571  			return err
   572  		}
   573  	}
   574  
   575  	return r.RequestHeaders.FromMessage(v)
   576  }
   577  
   578  func (r *DeleteResponseBody) ToGRPCMessage() grpc.Message {
   579  	var m *container.DeleteResponse_Body
   580  
   581  	if r != nil {
   582  		m = new(container.DeleteResponse_Body)
   583  	}
   584  
   585  	return m
   586  }
   587  
   588  func (r *DeleteResponseBody) FromGRPCMessage(m grpc.Message) error {
   589  	v, ok := m.(*container.DeleteResponse_Body)
   590  	if !ok {
   591  		return message.NewUnexpectedMessageType(m, v)
   592  	}
   593  
   594  	return nil
   595  }
   596  
   597  func (r *DeleteResponse) ToGRPCMessage() grpc.Message {
   598  	var m *container.DeleteResponse
   599  
   600  	if r != nil {
   601  		m = new(container.DeleteResponse)
   602  
   603  		m.SetBody(r.body.ToGRPCMessage().(*container.DeleteResponse_Body))
   604  		r.ResponseHeaders.ToMessage(m)
   605  	}
   606  
   607  	return m
   608  }
   609  
   610  func (r *DeleteResponse) FromGRPCMessage(m grpc.Message) error {
   611  	v, ok := m.(*container.DeleteResponse)
   612  	if !ok {
   613  		return message.NewUnexpectedMessageType(m, v)
   614  	}
   615  
   616  	var err error
   617  
   618  	body := v.GetBody()
   619  	if body == nil {
   620  		r.body = nil
   621  	} else {
   622  		if r.body == nil {
   623  			r.body = new(DeleteResponseBody)
   624  		}
   625  
   626  		err = r.body.FromGRPCMessage(body)
   627  		if err != nil {
   628  			return err
   629  		}
   630  	}
   631  
   632  	return r.ResponseHeaders.FromMessage(v)
   633  }
   634  
   635  func (r *ListRequestBody) ToGRPCMessage() grpc.Message {
   636  	var m *container.ListRequest_Body
   637  
   638  	if r != nil {
   639  		m = new(container.ListRequest_Body)
   640  
   641  		m.SetOwnerId(r.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID))
   642  	}
   643  
   644  	return m
   645  }
   646  
   647  func (r *ListRequestBody) FromGRPCMessage(m grpc.Message) error {
   648  	v, ok := m.(*container.ListRequest_Body)
   649  	if !ok {
   650  		return message.NewUnexpectedMessageType(m, v)
   651  	}
   652  
   653  	var err error
   654  
   655  	ownerID := v.GetOwnerId()
   656  	if ownerID == nil {
   657  		r.ownerID = nil
   658  	} else {
   659  		if r.ownerID == nil {
   660  			r.ownerID = new(refs.OwnerID)
   661  		}
   662  
   663  		err = r.ownerID.FromGRPCMessage(ownerID)
   664  	}
   665  
   666  	return err
   667  }
   668  
   669  func (r *ListRequest) ToGRPCMessage() grpc.Message {
   670  	var m *container.ListRequest
   671  
   672  	if r != nil {
   673  		m = new(container.ListRequest)
   674  
   675  		m.SetBody(r.body.ToGRPCMessage().(*container.ListRequest_Body))
   676  		r.RequestHeaders.ToMessage(m)
   677  	}
   678  
   679  	return m
   680  }
   681  
   682  func (r *ListRequest) FromGRPCMessage(m grpc.Message) error {
   683  	v, ok := m.(*container.ListRequest)
   684  	if !ok {
   685  		return message.NewUnexpectedMessageType(m, v)
   686  	}
   687  
   688  	var err error
   689  
   690  	body := v.GetBody()
   691  	if body == nil {
   692  		r.body = nil
   693  	} else {
   694  		if r.body == nil {
   695  			r.body = new(ListRequestBody)
   696  		}
   697  
   698  		err = r.body.FromGRPCMessage(body)
   699  		if err != nil {
   700  			return err
   701  		}
   702  	}
   703  
   704  	return r.RequestHeaders.FromMessage(v)
   705  }
   706  
   707  func (r *ListResponseBody) ToGRPCMessage() grpc.Message {
   708  	var m *container.ListResponse_Body
   709  
   710  	if r != nil {
   711  		m = new(container.ListResponse_Body)
   712  
   713  		m.SetContainerIds(refs.ContainerIDsToGRPCMessage(r.cidList))
   714  	}
   715  
   716  	return m
   717  }
   718  
   719  func (r *ListResponseBody) FromGRPCMessage(m grpc.Message) error {
   720  	v, ok := m.(*container.ListResponse_Body)
   721  	if !ok {
   722  		return message.NewUnexpectedMessageType(m, v)
   723  	}
   724  
   725  	var err error
   726  
   727  	r.cidList, err = refs.ContainerIDsFromGRPCMessage(v.GetContainerIds())
   728  
   729  	return err
   730  }
   731  
   732  func (r *ListResponse) ToGRPCMessage() grpc.Message {
   733  	var m *container.ListResponse
   734  
   735  	if r != nil {
   736  		m = new(container.ListResponse)
   737  
   738  		m.SetBody(r.body.ToGRPCMessage().(*container.ListResponse_Body))
   739  		r.ResponseHeaders.ToMessage(m)
   740  	}
   741  
   742  	return m
   743  }
   744  
   745  func (r *ListResponse) FromGRPCMessage(m grpc.Message) error {
   746  	v, ok := m.(*container.ListResponse)
   747  	if !ok {
   748  		return message.NewUnexpectedMessageType(m, v)
   749  	}
   750  
   751  	var err error
   752  
   753  	body := v.GetBody()
   754  	if body == nil {
   755  		r.body = nil
   756  	} else {
   757  		if r.body == nil {
   758  			r.body = new(ListResponseBody)
   759  		}
   760  
   761  		err = r.body.FromGRPCMessage(body)
   762  		if err != nil {
   763  			return err
   764  		}
   765  	}
   766  
   767  	return r.ResponseHeaders.FromMessage(v)
   768  }
   769  
   770  func (r *SetExtendedACLRequestBody) ToGRPCMessage() grpc.Message {
   771  	var m *container.SetExtendedACLRequest_Body
   772  
   773  	if r != nil {
   774  		m = new(container.SetExtendedACLRequest_Body)
   775  
   776  		m.SetEacl(r.eacl.ToGRPCMessage().(*aclGRPC.EACLTable))
   777  		m.SetSignature(toSignatureRFC6979(r.sig))
   778  	}
   779  
   780  	return m
   781  }
   782  
   783  func (r *SetExtendedACLRequestBody) FromGRPCMessage(m grpc.Message) error {
   784  	v, ok := m.(*container.SetExtendedACLRequest_Body)
   785  	if !ok {
   786  		return message.NewUnexpectedMessageType(m, v)
   787  	}
   788  
   789  	var err error
   790  
   791  	eacl := v.GetEacl()
   792  	if eacl == nil {
   793  		r.eacl = nil
   794  	} else {
   795  		if r.eacl == nil {
   796  			r.eacl = new(acl.Table)
   797  		}
   798  
   799  		err = r.eacl.FromGRPCMessage(eacl)
   800  		if err != nil {
   801  			return err
   802  		}
   803  	}
   804  
   805  	sig := v.GetSignature()
   806  	if sig == nil {
   807  		r.sig = nil
   808  	} else {
   809  		if r.sig == nil {
   810  			r.sig = new(refs.Signature)
   811  		}
   812  
   813  		r.sig.SetKey(sig.GetKey())
   814  		r.sig.SetSign(sig.GetSign())
   815  	}
   816  
   817  	return err
   818  }
   819  
   820  func (r *SetExtendedACLRequest) ToGRPCMessage() grpc.Message {
   821  	var m *container.SetExtendedACLRequest
   822  
   823  	if r != nil {
   824  		m = new(container.SetExtendedACLRequest)
   825  
   826  		m.SetBody(r.body.ToGRPCMessage().(*container.SetExtendedACLRequest_Body))
   827  		r.RequestHeaders.ToMessage(m)
   828  	}
   829  
   830  	return m
   831  }
   832  
   833  func (r *SetExtendedACLRequest) FromGRPCMessage(m grpc.Message) error {
   834  	v, ok := m.(*container.SetExtendedACLRequest)
   835  	if !ok {
   836  		return message.NewUnexpectedMessageType(m, v)
   837  	}
   838  
   839  	var err error
   840  
   841  	body := v.GetBody()
   842  	if body == nil {
   843  		r.body = nil
   844  	} else {
   845  		if r.body == nil {
   846  			r.body = new(SetExtendedACLRequestBody)
   847  		}
   848  
   849  		err = r.body.FromGRPCMessage(body)
   850  		if err != nil {
   851  			return err
   852  		}
   853  	}
   854  
   855  	return r.RequestHeaders.FromMessage(v)
   856  }
   857  
   858  func (r *SetExtendedACLResponseBody) ToGRPCMessage() grpc.Message {
   859  	var m *container.SetExtendedACLResponse_Body
   860  
   861  	if r != nil {
   862  		m = new(container.SetExtendedACLResponse_Body)
   863  	}
   864  
   865  	return m
   866  }
   867  
   868  func (r *SetExtendedACLResponseBody) FromGRPCMessage(m grpc.Message) error {
   869  	v, ok := m.(*container.SetExtendedACLResponse_Body)
   870  	if !ok {
   871  		return message.NewUnexpectedMessageType(m, v)
   872  	}
   873  
   874  	return nil
   875  }
   876  
   877  func (r *SetExtendedACLResponse) ToGRPCMessage() grpc.Message {
   878  	var m *container.SetExtendedACLResponse
   879  
   880  	if r != nil {
   881  		m = new(container.SetExtendedACLResponse)
   882  
   883  		m.SetBody(r.body.ToGRPCMessage().(*container.SetExtendedACLResponse_Body))
   884  		r.ResponseHeaders.ToMessage(m)
   885  	}
   886  
   887  	return m
   888  }
   889  
   890  func (r *SetExtendedACLResponse) FromGRPCMessage(m grpc.Message) error {
   891  	v, ok := m.(*container.SetExtendedACLResponse)
   892  	if !ok {
   893  		return message.NewUnexpectedMessageType(m, v)
   894  	}
   895  
   896  	var err error
   897  
   898  	body := v.GetBody()
   899  	if body == nil {
   900  		r.body = nil
   901  	} else {
   902  		if r.body == nil {
   903  			r.body = new(SetExtendedACLResponseBody)
   904  		}
   905  
   906  		err = r.body.FromGRPCMessage(body)
   907  		if err != nil {
   908  			return err
   909  		}
   910  	}
   911  
   912  	return r.ResponseHeaders.FromMessage(v)
   913  }
   914  
   915  func (r *GetExtendedACLRequestBody) ToGRPCMessage() grpc.Message {
   916  	var m *container.GetExtendedACLRequest_Body
   917  
   918  	if r != nil {
   919  		m = new(container.GetExtendedACLRequest_Body)
   920  
   921  		m.SetContainerId(r.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
   922  	}
   923  
   924  	return m
   925  }
   926  
   927  func (r *GetExtendedACLRequestBody) FromGRPCMessage(m grpc.Message) error {
   928  	v, ok := m.(*container.GetExtendedACLRequest_Body)
   929  	if !ok {
   930  		return message.NewUnexpectedMessageType(m, v)
   931  	}
   932  
   933  	var err error
   934  
   935  	cid := v.GetContainerId()
   936  	if cid == nil {
   937  		r.cid = nil
   938  	} else {
   939  		if r.cid == nil {
   940  			r.cid = new(refs.ContainerID)
   941  		}
   942  
   943  		err = r.cid.FromGRPCMessage(cid)
   944  	}
   945  
   946  	return err
   947  }
   948  
   949  func (r *GetExtendedACLRequest) ToGRPCMessage() grpc.Message {
   950  	var m *container.GetExtendedACLRequest
   951  
   952  	if r != nil {
   953  		m = new(container.GetExtendedACLRequest)
   954  
   955  		m.SetBody(r.body.ToGRPCMessage().(*container.GetExtendedACLRequest_Body))
   956  		r.RequestHeaders.ToMessage(m)
   957  	}
   958  
   959  	return m
   960  }
   961  
   962  func (r *GetExtendedACLRequest) FromGRPCMessage(m grpc.Message) error {
   963  	v, ok := m.(*container.GetExtendedACLRequest)
   964  	if !ok {
   965  		return message.NewUnexpectedMessageType(m, v)
   966  	}
   967  
   968  	var err error
   969  
   970  	body := v.GetBody()
   971  	if body == nil {
   972  		r.body = nil
   973  	} else {
   974  		if r.body == nil {
   975  			r.body = new(GetExtendedACLRequestBody)
   976  		}
   977  
   978  		err = r.body.FromGRPCMessage(body)
   979  		if err != nil {
   980  			return err
   981  		}
   982  	}
   983  
   984  	return r.RequestHeaders.FromMessage(v)
   985  }
   986  
   987  func (r *GetExtendedACLResponseBody) ToGRPCMessage() grpc.Message {
   988  	var m *container.GetExtendedACLResponse_Body
   989  
   990  	if r != nil {
   991  		m = new(container.GetExtendedACLResponse_Body)
   992  
   993  		m.SetEacl(r.eacl.ToGRPCMessage().(*aclGRPC.EACLTable))
   994  		m.SetSignature(toSignatureRFC6979(r.sig))
   995  		m.SetSessionToken(r.token.ToGRPCMessage().(*sessionGRPC.SessionToken))
   996  	}
   997  
   998  	return m
   999  }
  1000  
  1001  func (r *GetExtendedACLResponseBody) FromGRPCMessage(m grpc.Message) error {
  1002  	v, ok := m.(*container.GetExtendedACLResponse_Body)
  1003  	if !ok {
  1004  		return message.NewUnexpectedMessageType(m, v)
  1005  	}
  1006  
  1007  	var err error
  1008  
  1009  	eacl := v.GetEacl()
  1010  	if eacl == nil {
  1011  		r.eacl = nil
  1012  	} else {
  1013  		if r.eacl == nil {
  1014  			r.eacl = new(acl.Table)
  1015  		}
  1016  
  1017  		err = r.eacl.FromGRPCMessage(eacl)
  1018  		if err != nil {
  1019  			return err
  1020  		}
  1021  	}
  1022  
  1023  	sig := v.GetSignature()
  1024  	if sig == nil {
  1025  		r.sig = nil
  1026  	} else {
  1027  		if r.sig == nil {
  1028  			r.sig = new(refs.Signature)
  1029  		}
  1030  
  1031  		r.sig.SetKey(sig.GetKey())
  1032  		r.sig.SetSign(sig.GetSign())
  1033  	}
  1034  
  1035  	token := v.GetSessionToken()
  1036  	if token == nil {
  1037  		r.token = nil
  1038  	} else {
  1039  		if r.token == nil {
  1040  			r.token = new(session.Token)
  1041  		}
  1042  
  1043  		err = r.token.FromGRPCMessage(token)
  1044  	}
  1045  
  1046  	return err
  1047  }
  1048  
  1049  func (r *GetExtendedACLResponse) ToGRPCMessage() grpc.Message {
  1050  	var m *container.GetExtendedACLResponse
  1051  
  1052  	if r != nil {
  1053  		m = new(container.GetExtendedACLResponse)
  1054  
  1055  		m.SetBody(r.body.ToGRPCMessage().(*container.GetExtendedACLResponse_Body))
  1056  		r.ResponseHeaders.ToMessage(m)
  1057  	}
  1058  
  1059  	return m
  1060  }
  1061  
  1062  func (r *GetExtendedACLResponse) FromGRPCMessage(m grpc.Message) error {
  1063  	v, ok := m.(*container.GetExtendedACLResponse)
  1064  	if !ok {
  1065  		return message.NewUnexpectedMessageType(m, v)
  1066  	}
  1067  
  1068  	var err error
  1069  
  1070  	body := v.GetBody()
  1071  	if body == nil {
  1072  		r.body = nil
  1073  	} else {
  1074  		if r.body == nil {
  1075  			r.body = new(GetExtendedACLResponseBody)
  1076  		}
  1077  
  1078  		err = r.body.FromGRPCMessage(body)
  1079  		if err != nil {
  1080  			return err
  1081  		}
  1082  	}
  1083  
  1084  	return r.ResponseHeaders.FromMessage(v)
  1085  }
  1086  
  1087  func (a *UsedSpaceAnnouncement) ToGRPCMessage() grpc.Message {
  1088  	var m *container.AnnounceUsedSpaceRequest_Body_Announcement
  1089  
  1090  	if a != nil {
  1091  		m = new(container.AnnounceUsedSpaceRequest_Body_Announcement)
  1092  
  1093  		m.SetContainerId(a.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
  1094  		m.SetEpoch(a.epoch)
  1095  		m.SetUsedSpace(a.usedSpace)
  1096  	}
  1097  
  1098  	return m
  1099  }
  1100  
  1101  func (a *UsedSpaceAnnouncement) FromGRPCMessage(m grpc.Message) error {
  1102  	v, ok := m.(*container.AnnounceUsedSpaceRequest_Body_Announcement)
  1103  	if !ok {
  1104  		return message.NewUnexpectedMessageType(m, v)
  1105  	}
  1106  
  1107  	var err error
  1108  
  1109  	cid := v.GetContainerId()
  1110  	if cid == nil {
  1111  		a.cid = nil
  1112  	} else {
  1113  		if a.cid == nil {
  1114  			a.cid = new(refs.ContainerID)
  1115  		}
  1116  
  1117  		err = a.cid.FromGRPCMessage(cid)
  1118  		if err != nil {
  1119  			return err
  1120  		}
  1121  	}
  1122  
  1123  	a.epoch = v.GetEpoch()
  1124  	a.usedSpace = v.GetUsedSpace()
  1125  
  1126  	return nil
  1127  }
  1128  
  1129  func UsedSpaceAnnouncementsToGRPCMessage(
  1130  	ids []UsedSpaceAnnouncement,
  1131  ) (res []*container.AnnounceUsedSpaceRequest_Body_Announcement) {
  1132  	if ids != nil {
  1133  		res = make([]*container.AnnounceUsedSpaceRequest_Body_Announcement, 0, len(ids))
  1134  
  1135  		for i := range ids {
  1136  			res = append(res, ids[i].ToGRPCMessage().(*container.AnnounceUsedSpaceRequest_Body_Announcement))
  1137  		}
  1138  	}
  1139  
  1140  	return
  1141  }
  1142  
  1143  func UsedSpaceAnnouncementssFromGRPCMessage(
  1144  	asV2 []*container.AnnounceUsedSpaceRequest_Body_Announcement,
  1145  ) (res []UsedSpaceAnnouncement, err error) {
  1146  	if asV2 != nil {
  1147  		res = make([]UsedSpaceAnnouncement, len(asV2))
  1148  
  1149  		for i := range asV2 {
  1150  			if asV2[i] != nil {
  1151  				err = res[i].FromGRPCMessage(asV2[i])
  1152  				if err != nil {
  1153  					return
  1154  				}
  1155  			}
  1156  		}
  1157  	}
  1158  
  1159  	return
  1160  }
  1161  
  1162  func (r *AnnounceUsedSpaceRequestBody) ToGRPCMessage() grpc.Message {
  1163  	var m *container.AnnounceUsedSpaceRequest_Body
  1164  
  1165  	if r != nil {
  1166  		m = new(container.AnnounceUsedSpaceRequest_Body)
  1167  
  1168  		m.SetAnnouncements(UsedSpaceAnnouncementsToGRPCMessage(r.announcements))
  1169  	}
  1170  
  1171  	return m
  1172  }
  1173  
  1174  func (r *AnnounceUsedSpaceRequestBody) FromGRPCMessage(m grpc.Message) error {
  1175  	v, ok := m.(*container.AnnounceUsedSpaceRequest_Body)
  1176  	if !ok {
  1177  		return message.NewUnexpectedMessageType(m, v)
  1178  	}
  1179  
  1180  	var err error
  1181  
  1182  	r.announcements, err = UsedSpaceAnnouncementssFromGRPCMessage(v.GetAnnouncements())
  1183  
  1184  	return err
  1185  }
  1186  
  1187  func (r *AnnounceUsedSpaceRequest) ToGRPCMessage() grpc.Message {
  1188  	var m *container.AnnounceUsedSpaceRequest
  1189  
  1190  	if r != nil {
  1191  		m = new(container.AnnounceUsedSpaceRequest)
  1192  
  1193  		m.SetBody(r.body.ToGRPCMessage().(*container.AnnounceUsedSpaceRequest_Body))
  1194  		r.RequestHeaders.ToMessage(m)
  1195  	}
  1196  
  1197  	return m
  1198  }
  1199  
  1200  func (r *AnnounceUsedSpaceRequest) FromGRPCMessage(m grpc.Message) error {
  1201  	v, ok := m.(*container.AnnounceUsedSpaceRequest)
  1202  	if !ok {
  1203  		return message.NewUnexpectedMessageType(m, v)
  1204  	}
  1205  
  1206  	var err error
  1207  
  1208  	body := v.GetBody()
  1209  	if body == nil {
  1210  		r.body = nil
  1211  	} else {
  1212  		if r.body == nil {
  1213  			r.body = new(AnnounceUsedSpaceRequestBody)
  1214  		}
  1215  
  1216  		err = r.body.FromGRPCMessage(body)
  1217  		if err != nil {
  1218  			return err
  1219  		}
  1220  	}
  1221  
  1222  	return r.RequestHeaders.FromMessage(v)
  1223  }
  1224  
  1225  func (r *AnnounceUsedSpaceResponseBody) ToGRPCMessage() grpc.Message {
  1226  	var m *container.AnnounceUsedSpaceResponse_Body
  1227  
  1228  	if r != nil {
  1229  		m = new(container.AnnounceUsedSpaceResponse_Body)
  1230  	}
  1231  
  1232  	return m
  1233  }
  1234  
  1235  func (r *AnnounceUsedSpaceResponseBody) FromGRPCMessage(m grpc.Message) error {
  1236  	v, ok := m.(*container.AnnounceUsedSpaceResponse_Body)
  1237  	if !ok {
  1238  		return message.NewUnexpectedMessageType(m, v)
  1239  	}
  1240  
  1241  	return nil
  1242  }
  1243  
  1244  func (r *AnnounceUsedSpaceResponse) ToGRPCMessage() grpc.Message {
  1245  	var m *container.AnnounceUsedSpaceResponse
  1246  
  1247  	if r != nil {
  1248  		m = new(container.AnnounceUsedSpaceResponse)
  1249  
  1250  		m.SetBody(r.body.ToGRPCMessage().(*container.AnnounceUsedSpaceResponse_Body))
  1251  		r.ResponseHeaders.ToMessage(m)
  1252  	}
  1253  
  1254  	return m
  1255  }
  1256  
  1257  func (r *AnnounceUsedSpaceResponse) FromGRPCMessage(m grpc.Message) error {
  1258  	v, ok := m.(*container.AnnounceUsedSpaceResponse)
  1259  	if !ok {
  1260  		return message.NewUnexpectedMessageType(m, v)
  1261  	}
  1262  
  1263  	var err error
  1264  
  1265  	body := v.GetBody()
  1266  	if body == nil {
  1267  		r.body = nil
  1268  	} else {
  1269  		if r.body == nil {
  1270  			r.body = new(AnnounceUsedSpaceResponseBody)
  1271  		}
  1272  
  1273  		err = r.body.FromGRPCMessage(body)
  1274  		if err != nil {
  1275  			return err
  1276  		}
  1277  	}
  1278  
  1279  	return r.ResponseHeaders.FromMessage(v)
  1280  }