#!/usr/bin/env arista-python
# Copyright (c) 2011 Arista Networks, Inc.  All rights reserved.
# Arista Networks, Inc. Confidential and Proprietary.

# Connect netns1 to netns2 with an interface 'intf' in each one.

import sys, Tac

def usage():
   sys.stderr.write( "usage: netns-connect intf <netns1> [<netns2>]\n" )
   sys.exit(1)

if len(sys.argv) < 3:
   usage()

if len(sys.argv) == 4:
   intfName, nn1, nn2 = sys.argv[1:4]
else:
   intfName, nn1 = sys.argv[1:3]
   nn2 = None

nn1pid = Tac.run( ['netns', '-q', nn1], stdout=Tac.CAPTURE ).strip()
if nn2:
   nn2pid = Tac.run( ['netns', '-q', nn2], stdout=Tac.CAPTURE ).strip()


#ip link add test1 type veth peer name test2 netns 31262
#ip link set link1-1 netns `netns -q nn1`
Tac.run( ["ip", "link", "add", intfName, "type", "veth", "peer",
          "name", intfName, 'netns', nn1pid], stdout=Tac.CAPTURE )
if nn2:
   Tac.run( ["ip", "link", "set", intfName, "netns", nn2pid], stdout=Tac.CAPTURE )


