pkg/ns, pkg/types: refactored non linux build fix code to
authorAithal <aithal@amazon.com>
Thu, 23 Feb 2017 17:50:48 +0000 (09:50 -0800)
committerAithal <aithal@amazon.com>
Thu, 23 Feb 2017 17:50:48 +0000 (09:50 -0800)
Make GetCurrentNS platform specific instead of getCurrentThreadNetNSPath

pkg/ns/ns.go
pkg/ns/ns_linux.go
pkg/ns/ns_unspecified.go
pkg/types/types.go

index 428fb77..c212f48 100644 (file)
@@ -15,7 +15,6 @@
 package ns
 
 import (
-       "errors"
        "fmt"
        "os"
        "runtime"
@@ -62,14 +61,6 @@ type netNS struct {
 // netNS implements the NetNS interface
 var _ NetNS = &netNS{}
 
-// NotImplementedError is used to indicate that a method is not implemented for the given platform
-var NotImplementedError = errors.New("Not Implemented")
-
-// Returns an object representing the current OS thread's network namespace
-func GetCurrentNS() (NetNS, error) {
-       return GetNS(getCurrentThreadNetNSPath())
-}
-
 const (
        // https://github.com/torvalds/linux/blob/master/include/uapi/linux/magic.h
        NSFS_MAGIC   = 0x6e736673
@@ -139,7 +130,7 @@ func (ns *netNS) Do(toRun func(NetNS) error) error {
        }
 
        containedCall := func(hostNS NetNS) error {
-               threadNS, err := GetNS(getCurrentThreadNetNSPath())
+               threadNS, err := GetCurrentNS()
                if err != nil {
                        return fmt.Errorf("failed to open current netns: %v", err)
                }
@@ -155,7 +146,7 @@ func (ns *netNS) Do(toRun func(NetNS) error) error {
        }
 
        // save a handle to current network namespace
-       hostNS, err := GetNS(getCurrentThreadNetNSPath())
+       hostNS, err := GetCurrentNS()
        if err != nil {
                return fmt.Errorf("Failed to open current namespace: %v", err)
        }
index 0746f15..c9e1b4f 100644 (file)
@@ -25,6 +25,11 @@ import (
        "golang.org/x/sys/unix"
 )
 
+// Returns an object representing the current OS thread's network namespace
+func GetCurrentNS() (NetNS, error) {
+       return GetNS(getCurrentThreadNetNSPath())
+}
+
 func getCurrentThreadNetNSPath() string {
        // /proc/self/ns/net returns the namespace of the main thread, not
        // of whatever thread this goroutine is running on.  Make sure we
index da8b179..41b4468 100644 (file)
 
 package ns
 
-func getCurrentThreadNetNSPath() string {
-       return ""
+import "github.com/containernetworking/cni/pkg/types"
+
+// Returns an object representing the current OS thread's network namespace
+func GetCurrentNS() (NetNS, error) {
+       return nil, types.NotImplementedError
 }
 
 func NewNS() (NetNS, error) {
-       return nil, NotImplementedError
+       return nil, types.NotImplementedError
 }
 
 func (ns *netNS) Close() error {
-       return NotImplementedError
+       return types.NotImplementedError
 }
 
 func (ns *netNS) Set() error {
-       return NotImplementedError
+       return types.NotImplementedError
 }
index a81ac70..b7c27de 100644 (file)
@@ -16,6 +16,7 @@ package types
 
 import (
        "encoding/json"
+       "errors"
        "fmt"
        "net"
        "os"
@@ -178,3 +179,6 @@ func prettyPrint(obj interface{}) error {
        _, err = os.Stdout.Write(data)
        return err
 }
+
+// NotImplementedError is used to indicate that a method is not implemented for the given platform
+var NotImplementedError = errors.New("Not Implemented")