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

     1  package netmap
     2  
     3  import (
     4  	netmap "github.com/TrueCloudLab/frostfs-api-go/v2/netmap/grpc"
     5  	"github.com/TrueCloudLab/frostfs-api-go/v2/refs"
     6  	refsGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
     7  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
     8  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message"
     9  )
    10  
    11  func (f *Filter) ToGRPCMessage() grpc.Message {
    12  	var m *netmap.Filter
    13  
    14  	if f != nil {
    15  		m = new(netmap.Filter)
    16  
    17  		m.SetKey(f.key)
    18  		m.SetValue(f.value)
    19  		m.SetName(f.name)
    20  		m.SetOp(OperationToGRPCMessage(f.op))
    21  		m.SetFilters(FiltersToGRPC(f.filters))
    22  	}
    23  
    24  	return m
    25  }
    26  
    27  func (f *Filter) FromGRPCMessage(m grpc.Message) error {
    28  	v, ok := m.(*netmap.Filter)
    29  	if !ok {
    30  		return message.NewUnexpectedMessageType(m, v)
    31  	}
    32  
    33  	var err error
    34  
    35  	f.filters, err = FiltersFromGRPC(v.GetFilters())
    36  	if err != nil {
    37  		return err
    38  	}
    39  
    40  	f.key = v.GetKey()
    41  	f.value = v.GetValue()
    42  	f.name = v.GetName()
    43  	f.op = OperationFromGRPCMessage(v.GetOp())
    44  
    45  	return nil
    46  }
    47  
    48  func FiltersToGRPC(fs []Filter) (res []*netmap.Filter) {
    49  	if fs != nil {
    50  		res = make([]*netmap.Filter, 0, len(fs))
    51  
    52  		for i := range fs {
    53  			res = append(res, fs[i].ToGRPCMessage().(*netmap.Filter))
    54  		}
    55  	}
    56  
    57  	return
    58  }
    59  
    60  func FiltersFromGRPC(fs []*netmap.Filter) (res []Filter, err error) {
    61  	if fs != nil {
    62  		res = make([]Filter, len(fs))
    63  
    64  		for i := range fs {
    65  			if fs[i] != nil {
    66  				err = res[i].FromGRPCMessage(fs[i])
    67  				if err != nil {
    68  					return
    69  				}
    70  			}
    71  		}
    72  	}
    73  
    74  	return
    75  }
    76  
    77  func (s *Selector) ToGRPCMessage() grpc.Message {
    78  	var m *netmap.Selector
    79  
    80  	if s != nil {
    81  		m = new(netmap.Selector)
    82  
    83  		m.SetName(s.name)
    84  		m.SetAttribute(s.attribute)
    85  		m.SetFilter(s.filter)
    86  		m.SetCount(s.count)
    87  		m.SetClause(ClauseToGRPCMessage(s.clause))
    88  	}
    89  
    90  	return m
    91  }
    92  
    93  func (s *Selector) FromGRPCMessage(m grpc.Message) error {
    94  	v, ok := m.(*netmap.Selector)
    95  	if !ok {
    96  		return message.NewUnexpectedMessageType(m, v)
    97  	}
    98  
    99  	s.name = v.GetName()
   100  	s.attribute = v.GetAttribute()
   101  	s.filter = v.GetFilter()
   102  	s.count = v.GetCount()
   103  	s.clause = ClauseFromGRPCMessage(v.GetClause())
   104  
   105  	return nil
   106  }
   107  
   108  func SelectorsToGRPC(ss []Selector) (res []*netmap.Selector) {
   109  	if ss != nil {
   110  		res = make([]*netmap.Selector, 0, len(ss))
   111  
   112  		for i := range ss {
   113  			res = append(res, ss[i].ToGRPCMessage().(*netmap.Selector))
   114  		}
   115  	}
   116  
   117  	return
   118  }
   119  
   120  func SelectorsFromGRPC(ss []*netmap.Selector) (res []Selector, err error) {
   121  	if ss != nil {
   122  		res = make([]Selector, len(ss))
   123  
   124  		for i := range ss {
   125  			if ss[i] != nil {
   126  				err = res[i].FromGRPCMessage(ss[i])
   127  				if err != nil {
   128  					return
   129  				}
   130  			}
   131  		}
   132  	}
   133  
   134  	return
   135  }
   136  
   137  func (r *Replica) ToGRPCMessage() grpc.Message {
   138  	var m *netmap.Replica
   139  
   140  	if r != nil {
   141  		m = new(netmap.Replica)
   142  
   143  		m.SetSelector(r.selector)
   144  		m.SetCount(r.count)
   145  	}
   146  
   147  	return m
   148  }
   149  
   150  func (r *Replica) FromGRPCMessage(m grpc.Message) error {
   151  	v, ok := m.(*netmap.Replica)
   152  	if !ok {
   153  		return message.NewUnexpectedMessageType(m, v)
   154  	}
   155  
   156  	r.selector = v.GetSelector()
   157  	r.count = v.GetCount()
   158  
   159  	return nil
   160  }
   161  
   162  func ReplicasToGRPC(rs []Replica) (res []*netmap.Replica) {
   163  	if rs != nil {
   164  		res = make([]*netmap.Replica, 0, len(rs))
   165  
   166  		for i := range rs {
   167  			res = append(res, rs[i].ToGRPCMessage().(*netmap.Replica))
   168  		}
   169  	}
   170  
   171  	return
   172  }
   173  
   174  func ReplicasFromGRPC(rs []*netmap.Replica) (res []Replica, err error) {
   175  	if rs != nil {
   176  		res = make([]Replica, len(rs))
   177  
   178  		for i := range rs {
   179  			if rs[i] != nil {
   180  				err = res[i].FromGRPCMessage(rs[i])
   181  				if err != nil {
   182  					return
   183  				}
   184  			}
   185  		}
   186  	}
   187  
   188  	return
   189  }
   190  
   191  func (p *PlacementPolicy) ToGRPCMessage() grpc.Message {
   192  	var m *netmap.PlacementPolicy
   193  
   194  	if p != nil {
   195  		m = new(netmap.PlacementPolicy)
   196  
   197  		m.SetFilters(FiltersToGRPC(p.filters))
   198  		m.SetSelectors(SelectorsToGRPC(p.selectors))
   199  		m.SetReplicas(ReplicasToGRPC(p.replicas))
   200  		m.SetContainerBackupFactor(p.backupFactor)
   201  		m.SetSubnetID(p.subnetID.ToGRPCMessage().(*refsGRPC.SubnetID))
   202  	}
   203  
   204  	return m
   205  }
   206  
   207  func (p *PlacementPolicy) FromGRPCMessage(m grpc.Message) error {
   208  	v, ok := m.(*netmap.PlacementPolicy)
   209  	if !ok {
   210  		return message.NewUnexpectedMessageType(m, v)
   211  	}
   212  
   213  	var err error
   214  
   215  	p.filters, err = FiltersFromGRPC(v.GetFilters())
   216  	if err != nil {
   217  		return err
   218  	}
   219  
   220  	p.selectors, err = SelectorsFromGRPC(v.GetSelectors())
   221  	if err != nil {
   222  		return err
   223  	}
   224  
   225  	p.replicas, err = ReplicasFromGRPC(v.GetReplicas())
   226  	if err != nil {
   227  		return err
   228  	}
   229  
   230  	subnetID := v.GetSubnetId()
   231  	if subnetID == nil {
   232  		p.subnetID = nil
   233  	} else {
   234  		if p.subnetID == nil {
   235  			p.subnetID = new(refs.SubnetID)
   236  		}
   237  
   238  		err = p.subnetID.FromGRPCMessage(subnetID)
   239  		if err != nil {
   240  			return err
   241  		}
   242  	}
   243  
   244  	p.backupFactor = v.GetContainerBackupFactor()
   245  
   246  	return nil
   247  }
   248  
   249  func ClauseToGRPCMessage(n Clause) netmap.Clause {
   250  	return netmap.Clause(n)
   251  }
   252  
   253  func ClauseFromGRPCMessage(n netmap.Clause) Clause {
   254  	return Clause(n)
   255  }
   256  
   257  func OperationToGRPCMessage(n Operation) netmap.Operation {
   258  	return netmap.Operation(n)
   259  }
   260  
   261  func OperationFromGRPCMessage(n netmap.Operation) Operation {
   262  	return Operation(n)
   263  }
   264  
   265  func NodeStateToGRPCMessage(n NodeState) netmap.NodeInfo_State {
   266  	return netmap.NodeInfo_State(n)
   267  }
   268  
   269  func NodeStateFromRPCMessage(n netmap.NodeInfo_State) NodeState {
   270  	return NodeState(n)
   271  }
   272  
   273  func (a *Attribute) ToGRPCMessage() grpc.Message {
   274  	var m *netmap.NodeInfo_Attribute
   275  
   276  	if a != nil {
   277  		m = new(netmap.NodeInfo_Attribute)
   278  
   279  		m.SetKey(a.key)
   280  		m.SetValue(a.value)
   281  		m.SetParents(a.parents)
   282  	}
   283  
   284  	return m
   285  }
   286  
   287  func (a *Attribute) FromGRPCMessage(m grpc.Message) error {
   288  	v, ok := m.(*netmap.NodeInfo_Attribute)
   289  	if !ok {
   290  		return message.NewUnexpectedMessageType(m, v)
   291  	}
   292  
   293  	a.key = v.GetKey()
   294  	a.value = v.GetValue()
   295  	a.parents = v.GetParents()
   296  
   297  	return nil
   298  }
   299  
   300  func AttributesToGRPC(as []Attribute) (res []*netmap.NodeInfo_Attribute) {
   301  	if as != nil {
   302  		res = make([]*netmap.NodeInfo_Attribute, 0, len(as))
   303  
   304  		for i := range as {
   305  			res = append(res, as[i].ToGRPCMessage().(*netmap.NodeInfo_Attribute))
   306  		}
   307  	}
   308  
   309  	return
   310  }
   311  
   312  func AttributesFromGRPC(as []*netmap.NodeInfo_Attribute) (res []Attribute, err error) {
   313  	if as != nil {
   314  		res = make([]Attribute, len(as))
   315  
   316  		for i := range as {
   317  			if as[i] != nil {
   318  				err = res[i].FromGRPCMessage(as[i])
   319  				if err != nil {
   320  					return
   321  				}
   322  			}
   323  		}
   324  	}
   325  
   326  	return
   327  }
   328  
   329  func (ni *NodeInfo) ToGRPCMessage() grpc.Message {
   330  	var m *netmap.NodeInfo
   331  
   332  	if ni != nil {
   333  		m = new(netmap.NodeInfo)
   334  
   335  		m.SetPublicKey(ni.publicKey)
   336  		m.SetAddresses(ni.addresses)
   337  		m.SetState(NodeStateToGRPCMessage(ni.state))
   338  		m.SetAttributes(AttributesToGRPC(ni.attributes))
   339  	}
   340  
   341  	return m
   342  }
   343  
   344  func (ni *NodeInfo) FromGRPCMessage(m grpc.Message) error {
   345  	v, ok := m.(*netmap.NodeInfo)
   346  	if !ok {
   347  		return message.NewUnexpectedMessageType(m, v)
   348  	}
   349  
   350  	var err error
   351  
   352  	ni.attributes, err = AttributesFromGRPC(v.GetAttributes())
   353  	if err != nil {
   354  		return err
   355  	}
   356  
   357  	ni.publicKey = v.GetPublicKey()
   358  	ni.addresses = v.GetAddresses()
   359  	ni.state = NodeStateFromRPCMessage(v.GetState())
   360  
   361  	return nil
   362  }
   363  
   364  func (l *LocalNodeInfoRequestBody) ToGRPCMessage() grpc.Message {
   365  	var m *netmap.LocalNodeInfoRequest_Body
   366  
   367  	if l != nil {
   368  		m = new(netmap.LocalNodeInfoRequest_Body)
   369  	}
   370  
   371  	return m
   372  }
   373  
   374  func (l *LocalNodeInfoRequestBody) FromGRPCMessage(m grpc.Message) error {
   375  	v, ok := m.(*netmap.LocalNodeInfoRequest_Body)
   376  	if !ok {
   377  		return message.NewUnexpectedMessageType(m, v)
   378  	}
   379  
   380  	return nil
   381  }
   382  
   383  func (l *LocalNodeInfoRequest) ToGRPCMessage() grpc.Message {
   384  	var m *netmap.LocalNodeInfoRequest
   385  
   386  	if l != nil {
   387  		m = new(netmap.LocalNodeInfoRequest)
   388  
   389  		m.SetBody(l.body.ToGRPCMessage().(*netmap.LocalNodeInfoRequest_Body))
   390  		l.RequestHeaders.ToMessage(m)
   391  	}
   392  
   393  	return m
   394  }
   395  
   396  func (l *LocalNodeInfoRequest) FromGRPCMessage(m grpc.Message) error {
   397  	v, ok := m.(*netmap.LocalNodeInfoRequest)
   398  	if !ok {
   399  		return message.NewUnexpectedMessageType(m, v)
   400  	}
   401  
   402  	var err error
   403  
   404  	body := v.GetBody()
   405  	if body == nil {
   406  		l.body = nil
   407  	} else {
   408  		if l.body == nil {
   409  			l.body = new(LocalNodeInfoRequestBody)
   410  		}
   411  
   412  		err = l.body.FromGRPCMessage(body)
   413  		if err != nil {
   414  			return err
   415  		}
   416  	}
   417  
   418  	return l.RequestHeaders.FromMessage(v)
   419  }
   420  
   421  func (l *LocalNodeInfoResponseBody) ToGRPCMessage() grpc.Message {
   422  	var m *netmap.LocalNodeInfoResponse_Body
   423  
   424  	if l != nil {
   425  		m = new(netmap.LocalNodeInfoResponse_Body)
   426  
   427  		m.SetVersion(l.version.ToGRPCMessage().(*refsGRPC.Version))
   428  		m.SetNodeInfo(l.nodeInfo.ToGRPCMessage().(*netmap.NodeInfo))
   429  	}
   430  
   431  	return m
   432  }
   433  
   434  func (l *LocalNodeInfoResponseBody) FromGRPCMessage(m grpc.Message) error {
   435  	v, ok := m.(*netmap.LocalNodeInfoResponse_Body)
   436  	if !ok {
   437  		return message.NewUnexpectedMessageType(m, v)
   438  	}
   439  
   440  	var err error
   441  
   442  	version := v.GetVersion()
   443  	if version == nil {
   444  		l.version = nil
   445  	} else {
   446  		if l.version == nil {
   447  			l.version = new(refs.Version)
   448  		}
   449  
   450  		err = l.version.FromGRPCMessage(version)
   451  		if err != nil {
   452  			return err
   453  		}
   454  	}
   455  
   456  	nodeInfo := v.GetNodeInfo()
   457  	if nodeInfo == nil {
   458  		l.nodeInfo = nil
   459  	} else {
   460  		if l.nodeInfo == nil {
   461  			l.nodeInfo = new(NodeInfo)
   462  		}
   463  
   464  		err = l.nodeInfo.FromGRPCMessage(nodeInfo)
   465  	}
   466  
   467  	return err
   468  }
   469  
   470  func (l *LocalNodeInfoResponse) ToGRPCMessage() grpc.Message {
   471  	var m *netmap.LocalNodeInfoResponse
   472  
   473  	if l != nil {
   474  		m = new(netmap.LocalNodeInfoResponse)
   475  
   476  		m.SetBody(l.body.ToGRPCMessage().(*netmap.LocalNodeInfoResponse_Body))
   477  		l.ResponseHeaders.ToMessage(m)
   478  	}
   479  
   480  	return m
   481  }
   482  
   483  func (l *LocalNodeInfoResponse) FromGRPCMessage(m grpc.Message) error {
   484  	v, ok := m.(*netmap.LocalNodeInfoResponse)
   485  	if !ok {
   486  		return message.NewUnexpectedMessageType(m, v)
   487  	}
   488  
   489  	var err error
   490  
   491  	body := v.GetBody()
   492  	if body == nil {
   493  		l.body = nil
   494  	} else {
   495  		if l.body == nil {
   496  			l.body = new(LocalNodeInfoResponseBody)
   497  		}
   498  
   499  		err = l.body.FromGRPCMessage(body)
   500  		if err != nil {
   501  			return err
   502  		}
   503  	}
   504  
   505  	return l.ResponseHeaders.FromMessage(v)
   506  }
   507  
   508  func (x *NetworkParameter) ToGRPCMessage() grpc.Message {
   509  	var m *netmap.NetworkConfig_Parameter
   510  
   511  	if x != nil {
   512  		m = new(netmap.NetworkConfig_Parameter)
   513  
   514  		m.SetKey(x.k)
   515  		m.SetValue(x.v)
   516  	}
   517  
   518  	return m
   519  }
   520  
   521  func (x *NetworkParameter) FromGRPCMessage(m grpc.Message) error {
   522  	v, ok := m.(*netmap.NetworkConfig_Parameter)
   523  	if !ok {
   524  		return message.NewUnexpectedMessageType(m, v)
   525  	}
   526  
   527  	x.k = v.GetKey()
   528  	x.v = v.GetValue()
   529  
   530  	return nil
   531  }
   532  
   533  func (x *NetworkConfig) ToGRPCMessage() grpc.Message {
   534  	var m *netmap.NetworkConfig
   535  
   536  	if x != nil {
   537  		m = new(netmap.NetworkConfig)
   538  
   539  		var ps []*netmap.NetworkConfig_Parameter
   540  
   541  		if ln := len(x.ps); ln > 0 {
   542  			ps = make([]*netmap.NetworkConfig_Parameter, 0, ln)
   543  
   544  			for i := 0; i < ln; i++ {
   545  				ps = append(ps, x.ps[i].ToGRPCMessage().(*netmap.NetworkConfig_Parameter))
   546  			}
   547  		}
   548  
   549  		m.SetParameters(ps)
   550  	}
   551  
   552  	return m
   553  }
   554  
   555  func (x *NetworkConfig) FromGRPCMessage(m grpc.Message) error {
   556  	v, ok := m.(*netmap.NetworkConfig)
   557  	if !ok {
   558  		return message.NewUnexpectedMessageType(m, v)
   559  	}
   560  
   561  	var (
   562  		ps   []NetworkParameter
   563  		psV2 = v.GetParameters()
   564  	)
   565  
   566  	if psV2 != nil {
   567  		ln := len(psV2)
   568  
   569  		ps = make([]NetworkParameter, ln)
   570  
   571  		for i := 0; i < ln; i++ {
   572  			if psV2[i] != nil {
   573  				if err := ps[i].FromGRPCMessage(psV2[i]); err != nil {
   574  					return err
   575  				}
   576  			}
   577  		}
   578  	}
   579  
   580  	x.ps = ps
   581  
   582  	return nil
   583  }
   584  
   585  func (i *NetworkInfo) ToGRPCMessage() grpc.Message {
   586  	var m *netmap.NetworkInfo
   587  
   588  	if i != nil {
   589  		m = new(netmap.NetworkInfo)
   590  
   591  		m.SetMagicNumber(i.magicNum)
   592  		m.SetCurrentEpoch(i.curEpoch)
   593  		m.SetMsPerBlock(i.msPerBlock)
   594  		m.SetNetworkConfig(i.netCfg.ToGRPCMessage().(*netmap.NetworkConfig))
   595  	}
   596  
   597  	return m
   598  }
   599  
   600  func (i *NetworkInfo) FromGRPCMessage(m grpc.Message) error {
   601  	v, ok := m.(*netmap.NetworkInfo)
   602  	if !ok {
   603  		return message.NewUnexpectedMessageType(m, v)
   604  	}
   605  
   606  	var err error
   607  
   608  	netCfg := v.GetNetworkConfig()
   609  	if netCfg == nil {
   610  		i.netCfg = nil
   611  	} else {
   612  		if i.netCfg == nil {
   613  			i.netCfg = new(NetworkConfig)
   614  		}
   615  
   616  		err = i.netCfg.FromGRPCMessage(netCfg)
   617  		if err != nil {
   618  			return err
   619  		}
   620  	}
   621  
   622  	i.magicNum = v.GetMagicNumber()
   623  	i.curEpoch = v.GetCurrentEpoch()
   624  	i.msPerBlock = v.GetMsPerBlock()
   625  
   626  	return nil
   627  }
   628  
   629  func (l *NetworkInfoRequestBody) ToGRPCMessage() grpc.Message {
   630  	var m *netmap.NetworkInfoRequest_Body
   631  
   632  	if l != nil {
   633  		m = new(netmap.NetworkInfoRequest_Body)
   634  	}
   635  
   636  	return m
   637  }
   638  
   639  func (l *NetworkInfoRequestBody) FromGRPCMessage(m grpc.Message) error {
   640  	v, ok := m.(*netmap.NetworkInfoRequest_Body)
   641  	if !ok {
   642  		return message.NewUnexpectedMessageType(m, v)
   643  	}
   644  
   645  	return nil
   646  }
   647  
   648  func (l *NetworkInfoRequest) ToGRPCMessage() grpc.Message {
   649  	var m *netmap.NetworkInfoRequest
   650  
   651  	if l != nil {
   652  		m = new(netmap.NetworkInfoRequest)
   653  
   654  		m.SetBody(l.body.ToGRPCMessage().(*netmap.NetworkInfoRequest_Body))
   655  		l.RequestHeaders.ToMessage(m)
   656  	}
   657  
   658  	return m
   659  }
   660  
   661  func (l *NetworkInfoRequest) FromGRPCMessage(m grpc.Message) error {
   662  	v, ok := m.(*netmap.NetworkInfoRequest)
   663  	if !ok {
   664  		return message.NewUnexpectedMessageType(m, v)
   665  	}
   666  
   667  	var err error
   668  
   669  	body := v.GetBody()
   670  	if body == nil {
   671  		l.body = nil
   672  	} else {
   673  		if l.body == nil {
   674  			l.body = new(NetworkInfoRequestBody)
   675  		}
   676  
   677  		err = l.body.FromGRPCMessage(body)
   678  		if err != nil {
   679  			return err
   680  		}
   681  	}
   682  
   683  	return l.RequestHeaders.FromMessage(v)
   684  }
   685  
   686  func (i *NetworkInfoResponseBody) ToGRPCMessage() grpc.Message {
   687  	var m *netmap.NetworkInfoResponse_Body
   688  
   689  	if i != nil {
   690  		m = new(netmap.NetworkInfoResponse_Body)
   691  
   692  		m.SetNetworkInfo(i.netInfo.ToGRPCMessage().(*netmap.NetworkInfo))
   693  	}
   694  
   695  	return m
   696  }
   697  
   698  func (i *NetworkInfoResponseBody) FromGRPCMessage(m grpc.Message) error {
   699  	v, ok := m.(*netmap.NetworkInfoResponse_Body)
   700  	if !ok {
   701  		return message.NewUnexpectedMessageType(m, v)
   702  	}
   703  
   704  	var err error
   705  
   706  	netInfo := v.GetNetworkInfo()
   707  	if netInfo == nil {
   708  		i.netInfo = nil
   709  	} else {
   710  		if i.netInfo == nil {
   711  			i.netInfo = new(NetworkInfo)
   712  		}
   713  
   714  		err = i.netInfo.FromGRPCMessage(netInfo)
   715  	}
   716  
   717  	return err
   718  }
   719  
   720  func (l *NetworkInfoResponse) ToGRPCMessage() grpc.Message {
   721  	var m *netmap.NetworkInfoResponse
   722  
   723  	if l != nil {
   724  		m = new(netmap.NetworkInfoResponse)
   725  
   726  		m.SetBody(l.body.ToGRPCMessage().(*netmap.NetworkInfoResponse_Body))
   727  		l.ResponseHeaders.ToMessage(m)
   728  	}
   729  
   730  	return m
   731  }
   732  
   733  func (l *NetworkInfoResponse) FromGRPCMessage(m grpc.Message) error {
   734  	v, ok := m.(*netmap.NetworkInfoResponse)
   735  	if !ok {
   736  		return message.NewUnexpectedMessageType(m, v)
   737  	}
   738  
   739  	var err error
   740  
   741  	body := v.GetBody()
   742  	if body == nil {
   743  		l.body = nil
   744  	} else {
   745  		if l.body == nil {
   746  			l.body = new(NetworkInfoResponseBody)
   747  		}
   748  
   749  		err = l.body.FromGRPCMessage(body)
   750  		if err != nil {
   751  			return err
   752  		}
   753  	}
   754  
   755  	return l.ResponseHeaders.FromMessage(v)
   756  }
   757  
   758  func (x *NetMap) ToGRPCMessage() grpc.Message {
   759  	var m *netmap.Netmap
   760  
   761  	if x != nil {
   762  		m = new(netmap.Netmap)
   763  
   764  		m.SetEpoch(x.epoch)
   765  
   766  		if x.nodes != nil {
   767  			nodes := make([]*netmap.NodeInfo, len(x.nodes))
   768  
   769  			for i := range x.nodes {
   770  				nodes[i] = x.nodes[i].ToGRPCMessage().(*netmap.NodeInfo)
   771  			}
   772  
   773  			m.SetNodes(nodes)
   774  		}
   775  	}
   776  
   777  	return m
   778  }
   779  
   780  func (x *NetMap) FromGRPCMessage(m grpc.Message) error {
   781  	v, ok := m.(*netmap.Netmap)
   782  	if !ok {
   783  		return message.NewUnexpectedMessageType(m, v)
   784  	}
   785  
   786  	var err error
   787  
   788  	nodes := v.GetNodes()
   789  	if nodes == nil {
   790  		x.nodes = nil
   791  	} else {
   792  		x.nodes = make([]NodeInfo, len(nodes))
   793  
   794  		for i := range nodes {
   795  			err = x.nodes[i].FromGRPCMessage(nodes[i])
   796  			if err != nil {
   797  				return err
   798  			}
   799  		}
   800  	}
   801  
   802  	x.epoch = v.GetEpoch()
   803  
   804  	return nil
   805  }
   806  
   807  func (x *SnapshotRequestBody) ToGRPCMessage() grpc.Message {
   808  	var m *netmap.NetmapSnapshotRequest_Body
   809  
   810  	if x != nil {
   811  		m = new(netmap.NetmapSnapshotRequest_Body)
   812  	}
   813  
   814  	return m
   815  }
   816  
   817  func (x *SnapshotRequestBody) FromGRPCMessage(m grpc.Message) error {
   818  	v, ok := m.(*netmap.NetmapSnapshotRequest_Body)
   819  	if !ok {
   820  		return message.NewUnexpectedMessageType(m, v)
   821  	}
   822  
   823  	return nil
   824  }
   825  
   826  func (x *SnapshotRequest) ToGRPCMessage() grpc.Message {
   827  	var m *netmap.NetmapSnapshotRequest
   828  
   829  	if x != nil {
   830  		m = new(netmap.NetmapSnapshotRequest)
   831  
   832  		m.SetBody(x.body.ToGRPCMessage().(*netmap.NetmapSnapshotRequest_Body))
   833  		x.RequestHeaders.ToMessage(m)
   834  	}
   835  
   836  	return m
   837  }
   838  
   839  func (x *SnapshotRequest) FromGRPCMessage(m grpc.Message) error {
   840  	v, ok := m.(*netmap.NetmapSnapshotRequest)
   841  	if !ok {
   842  		return message.NewUnexpectedMessageType(m, v)
   843  	}
   844  
   845  	var err error
   846  
   847  	body := v.GetBody()
   848  	if body == nil {
   849  		x.body = nil
   850  	} else {
   851  		if x.body == nil {
   852  			x.body = new(SnapshotRequestBody)
   853  		}
   854  
   855  		err = x.body.FromGRPCMessage(body)
   856  		if err != nil {
   857  			return err
   858  		}
   859  	}
   860  
   861  	return x.RequestHeaders.FromMessage(v)
   862  }
   863  
   864  func (x *SnapshotResponseBody) ToGRPCMessage() grpc.Message {
   865  	var m *netmap.NetmapSnapshotResponse_Body
   866  
   867  	if x != nil {
   868  		m = new(netmap.NetmapSnapshotResponse_Body)
   869  
   870  		m.SetNetmap(x.netMap.ToGRPCMessage().(*netmap.Netmap))
   871  	}
   872  
   873  	return m
   874  }
   875  
   876  func (x *SnapshotResponseBody) FromGRPCMessage(m grpc.Message) error {
   877  	v, ok := m.(*netmap.NetmapSnapshotResponse_Body)
   878  	if !ok {
   879  		return message.NewUnexpectedMessageType(m, v)
   880  	}
   881  
   882  	var err error
   883  
   884  	netMap := v.GetNetmap()
   885  	if netMap == nil {
   886  		x.netMap = nil
   887  	} else {
   888  		if x.netMap == nil {
   889  			x.netMap = new(NetMap)
   890  		}
   891  
   892  		err = x.netMap.FromGRPCMessage(netMap)
   893  	}
   894  
   895  	return err
   896  }
   897  
   898  func (x *SnapshotResponse) ToGRPCMessage() grpc.Message {
   899  	var m *netmap.NetmapSnapshotResponse
   900  
   901  	if x != nil {
   902  		m = new(netmap.NetmapSnapshotResponse)
   903  
   904  		m.SetBody(x.body.ToGRPCMessage().(*netmap.NetmapSnapshotResponse_Body))
   905  		x.ResponseHeaders.ToMessage(m)
   906  	}
   907  
   908  	return m
   909  }
   910  
   911  func (x *SnapshotResponse) FromGRPCMessage(m grpc.Message) error {
   912  	v, ok := m.(*netmap.NetmapSnapshotResponse)
   913  	if !ok {
   914  		return message.NewUnexpectedMessageType(m, v)
   915  	}
   916  
   917  	var err error
   918  
   919  	body := v.GetBody()
   920  	if body == nil {
   921  		x.body = nil
   922  	} else {
   923  		if x.body == nil {
   924  			x.body = new(SnapshotResponseBody)
   925  		}
   926  
   927  		err = x.body.FromGRPCMessage(body)
   928  		if err != nil {
   929  			return err
   930  		}
   931  	}
   932  
   933  	return x.ResponseHeaders.FromMessage(v)
   934  }