本文整理匯總了Golang中github.com/openshift/origin/pkg/client.Client.NetNamespaces方法的典型用法代碼示例。如果您正苦於以下問題:Golang Client.NetNamespaces方法的具體用法?Golang Client.NetNamespaces怎麽用?Golang Client.NetNamespaces使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/openshift/origin/pkg/client.Client
的用法示例。
在下文中一共展示了Client.NetNamespaces方法的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: assignVNID
// assignVNID, revokeVNID and updateVNID methods updates in-memory structs and persists etcd objects
func (vmap *masterVNIDMap) assignVNID(osClient *osclient.Client, nsName string) error {
vmap.lock.Lock()
defer vmap.lock.Unlock()
netid, exists, err := vmap.allocateNetID(nsName)
if err != nil {
return err
}
if !exists {
// Create NetNamespace Object and update vnid map
netns := &osapi.NetNamespace{
TypeMeta: unversioned.TypeMeta{Kind: "NetNamespace"},
ObjectMeta: kapi.ObjectMeta{Name: nsName},
NetName: nsName,
NetID: netid,
}
_, err := osClient.NetNamespaces().Create(netns)
if err != nil {
vmap.releaseNetID(nsName)
return err
}
}
return nil
}
示例2: updateNetNamespace
func updateNetNamespace(osClient *osclient.Client, netns *sdnapi.NetNamespace, action sdnapi.PodNetworkAction, args string) (*sdnapi.NetNamespace, error) {
sdnapi.SetChangePodNetworkAnnotation(netns, action, args)
_, err := osClient.NetNamespaces().Update(netns)
if err != nil {
return nil, err
}
backoff := utilwait.Backoff{
Duration: 100 * time.Millisecond,
Factor: 2,
Steps: 5,
}
name := netns.Name
err = utilwait.ExponentialBackoff(backoff, func() (bool, error) {
netns, err = osClient.NetNamespaces().Get(name)
if err != nil {
return false, err
}
if _, _, err := sdnapi.GetChangePodNetworkAnnotation(netns); err == sdnapi.ErrorPodNetworkAnnotationNotFound {
return true, nil
} else {
return false, nil
}
})
if err != nil {
return nil, err
}
return netns, nil
}
示例3: createProject
func createProject(osClient *osclient.Client, clientConfig *restclient.Config, name string) (*sdnapi.NetNamespace, error) {
_, err := testserver.CreateNewProject(osClient, *clientConfig, name, name)
if err != nil {
return nil, fmt.Errorf("error creating project %q: %v", name, err)
}
backoff := utilwait.Backoff{
Duration: 100 * time.Millisecond,
Factor: 2,
Steps: 5,
}
var netns *sdnapi.NetNamespace
err = utilwait.ExponentialBackoff(backoff, func() (bool, error) {
netns, err = osClient.NetNamespaces().Get(name)
if kapierrors.IsNotFound(err) {
return false, nil
} else if err != nil {
return false, err
}
return true, nil
})
if err != nil {
return nil, fmt.Errorf("could not get NetNamepsace %q: %v", name, err)
}
return netns, nil
}
示例4: populateVNIDs
func (vmap *nodeVNIDMap) populateVNIDs(osClient *osclient.Client) error {
nets, err := osClient.NetNamespaces().List(kapi.ListOptions{})
if err != nil {
return err
}
for _, net := range nets.Items {
vmap.setVNID(net.Name, net.NetID)
}
return nil
}
示例5: revokeVNID
func (vmap *masterVNIDMap) revokeVNID(osClient *osclient.Client, nsName string) error {
vmap.lock.Lock()
defer vmap.lock.Unlock()
// Delete NetNamespace object
if err := osClient.NetNamespaces().Delete(nsName); err != nil {
return err
}
if err := vmap.releaseNetID(nsName); err != nil {
return err
}
return nil
}
示例6: updateVNID
func (vmap *masterVNIDMap) updateVNID(osClient *osclient.Client, netns *osapi.NetNamespace) error {
action, args, err := osapi.GetChangePodNetworkAnnotation(netns)
if err == osapi.ErrorPodNetworkAnnotationNotFound {
// Nothing to update
return nil
}
vmap.lock.Lock()
defer vmap.lock.Unlock()
netid, err := vmap.updateNetID(netns.NetName, action, args)
if err != nil {
return err
}
netns.NetID = netid
osapi.DeleteChangePodNetworkAnnotation(netns)
if _, err := osClient.NetNamespaces().Update(netns); err != nil {
return err
}
return nil
}
示例7: populateVNIDs
func (vmap *masterVNIDMap) populateVNIDs(osClient *osclient.Client) error {
netnsList, err := osClient.NetNamespaces().List(kapi.ListOptions{})
if err != nil {
return err
}
for _, netns := range netnsList.Items {
vmap.setVNID(netns.NetName, netns.NetID)
// Skip GlobalVNID, not part of netID allocation range
if netns.NetID == osapi.GlobalVNID {
continue
}
switch err := vmap.netIDManager.Allocate(netns.NetID); err {
case nil: // Expected normal case
case pnetid.ErrAllocated: // Expected when project networks are joined
default:
return fmt.Errorf("unable to allocate netid %d: %v", netns.NetID, err)
}
}
return nil
}