本文整理匯總了Golang中github.com/cilium/cilium/common/types.L3n4Addr.SHA256Sum方法的典型用法代碼示例。如果您正苦於以下問題:Golang L3n4Addr.SHA256Sum方法的具體用法?Golang L3n4Addr.SHA256Sum怎麽用?Golang L3n4Addr.SHA256Sum使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/cilium/cilium/common/types.L3n4Addr
的用法示例。
在下文中一共展示了L3n4Addr.SHA256Sum方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: SVCGet
// SVCGet returns a DeepCopied frontend with its backends.
func (d *Daemon) SVCGet(feL3n4 types.L3n4Addr) (*types.LBSVC, error) {
feL3n4Uniq, err := feL3n4.SHA256Sum()
if err != nil {
return nil, err
}
return d.SVCGetBySHA256Sum(feL3n4Uniq)
}
示例2: SVCGet
// SVCGet calculates the SHA256Sum from the given frontend and sends a GET request with
// the calculated SHA256Sum to the daemon.
func (cli Client) SVCGet(fe types.L3n4Addr) (*types.LBSVC, error) {
feSHA256Sum, err := fe.SHA256Sum()
if err != nil {
return nil, fmt.Errorf("invalid SHA256Sum for front end %+v: %s", fe, err)
}
return cli.SVCGetBySHA256Sum(feSHA256Sum)
}
示例3: SVCDelete
// SVCDelete calculates the SHA256Sum from the given frontend and sends a DELETE request
// to the daemon.
func (cli Client) SVCDelete(fe types.L3n4Addr) error {
feSHA256Sum, err := fe.SHA256Sum()
if err != nil {
return fmt.Errorf("invalid SHA256Sum for front end %+v: %s", fe, err)
}
return cli.SVCDeleteBySHA256Sum(feSHA256Sum)
}
示例4: PutL3n4Addr
// PutL3n4Addr stores the given service in the kvstore and returns the L3n4AddrID
// created for the given l3n4Addr. If baseID is different than 0, it tries to acquire that
// ID to the l3n4Addr.
func (d *Daemon) PutL3n4Addr(l3n4Addr types.L3n4Addr, baseID uint32) (*types.L3n4AddrID, error) {
log.Debugf("Resolving service %+v", l3n4Addr)
// Retrieve unique SHA256Sum for service
sha256Sum, err := l3n4Addr.SHA256Sum()
if err != nil {
return nil, err
}
svcPath := path.Join(common.ServicesKeyPath, sha256Sum)
// Lock that sha256Sum
lockKey, err := d.kvClient.LockPath(svcPath)
if err != nil {
return nil, err
}
defer lockKey.Unlock()
// After lock complete, get svc's path
rmsg, err := d.kvClient.GetValue(svcPath)
if err != nil {
return nil, err
}
sl4KV := types.L3n4AddrID{}
if rmsg != nil {
if err := json.Unmarshal(rmsg, &sl4KV); err != nil {
return nil, err
}
}
if sl4KV.ID == 0 {
sl4KV.L3n4Addr = l3n4Addr
if err := d.gasNewL3n4AddrID(&sl4KV, baseID); err != nil {
return nil, err
}
err = d.kvClient.SetValue(svcPath, sl4KV)
}
return &sl4KV, err
}
示例5: SVCDelete
// SVCDelete deletes the frontend from the local bpf map.
func (d *Daemon) SVCDelete(feL3n4 types.L3n4Addr) error {
feL3n4Uniq, err := feL3n4.SHA256Sum()
if err != nil {
return err
}
var svcKey lbmap.ServiceKey
if !feL3n4.IsIPv6() {
svcKey = lbmap.NewService4Key(feL3n4.IP, feL3n4.Port, 0)
} else {
svcKey = lbmap.NewService6Key(feL3n4.IP, feL3n4.Port, 0)
}
svcKey.SetBackend(0)
d.loadBalancer.BPFMapMU.Lock()
defer d.loadBalancer.BPFMapMU.Unlock()
err = lbmap.DeleteService(svcKey)
// TODO should we delete even if err is != nil?
if err == nil {
delete(d.loadBalancer.SVCMap, feL3n4Uniq)
}
return err
}