def __init__(self, name, loopback, CR, cluster_id, *args, **kwargs ): dirs = ['/var/log/', '/var/log/quagga', '/var/run', '/var/run/quagga', '/var/run/openvswitch', '/var/run/sshd'] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs ) self.loopback = loopback if cluster_id == "default": cluster_id = "0" cluster_id = int(cluster_id) if CR: cluster_id = cluster_id + 128 extrainfo = '%02x000000' % cluster_id self.dpid = self.loopbackDpid(self.loopback, extrainfo) self.mac = self.loopbackMac(self.loopback,"0200") self.path_ovs = "%s/%s/ovs" %(self.baseDIR, self.name) self.path_quagga = "%s/%s/quagga" %(self.baseDIR, self.name) self.path_fpm = "%s/%s/fpm-of" %(self.baseDIR, self.name) if OSHI.checked == False: self.checkQuagga() if self.OF_V == "OpenFlow13": self.checkOVS() if OSHI.SR == True: self.checkSR() OSHI.checked = True
def __init__(self, name, gobgpConfFile, zebraConfFile, intfDict, *args, **kwargs): Host.__init__(self, name, *args, **kwargs) self.gobgpConfFile = gobgpConfFile self.zebraConfFile = zebraConfFile self.intfDict = intfDict
def __init__(self, name, *args, **kwargs): dirs = [PRIVDIR] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs) self.dir = "/tmp/%s" % name self.nets = [] if not os.path.exists(self.dir): os.makedirs(self.dir)
def __init__(self, name, quaggaConfFile, zebraConfFile, intfDict, *args, **kwargs): Host.__init__(self, name, *args, **kwargs) self.quaggaConfFile = quaggaConfFile self.zebraConfFile = zebraConfFile self.intfDict = intfDict
def __init__(self, name, *args, **kwargs ): """privateDirs: list of private directories remounts: dirs to remount unmount: unmount dirs in cleanup? (True) Note: if unmount is False, you must call unmountAll() manually.""" self.privateDirs = kwargs.pop( 'privateDirs', [] ) self.remounts = kwargs.pop( 'remounts', [] ) self.unmount = kwargs.pop( 'unmount', True ) Host.__init__( self, name, *args, **kwargs ) self.rundir = '%s/%s' % ( self.mnRunDir, name ) self.root, self.private = None, None # set in createBindMounts if self.privateDirs: self.privateDirs = [ realpath( d ) for d in self.privateDirs ] self.createBindMounts() # These should run in the namespace before we chroot, # in order to put the right entries in /etc/mtab # Eventually this will allow a local pid space # Now we chroot and cd to wherever we were before. pwd = self.cmd( 'pwd' ).strip() self.sendCmd( 'exec chroot', self.root, 'bash -ms mininet:' + self.name ) self.waiting = False self.cmd( 'cd', pwd ) # In order for many utilities to work, # we need to remount /proc and /sys self.cmd( 'mount /proc' ) self.cmd( 'mount /sys' )
def __init__(self, name, *args, **kwargs): """privateDirs: list of private directories remounts: dirs to remount unmount: unmount dirs in cleanup? (True) Note: if unmount is False, you must call unmountAll() manually.""" self.privateDirs = kwargs.pop('privateDirs', []) self.remounts = kwargs.pop('remounts', []) self.unmount = kwargs.pop('unmount', True) Host.__init__(self, name, *args, **kwargs) self.rundir = '%s/%s' % (self.mnRunDir, name) if self.privateDirs: self.privateDirs = [realpath(d) for d in self.privateDirs] self.createBindMounts() # These should run in the namespace before we chroot, # in order to put the right entries in /etc/mtab # Eventually this will allow a local pid space # Now we chroot and cd to wherever we were before. pwd = self.cmd('pwd').strip() self.sendCmd('exec chroot', self.root, 'bash -ms mininet:' + self.name) self.waiting = False self.cmd('cd', pwd) # In order for many utilities to work, # we need to remount /proc and /sys self.cmd('mount /proc') self.cmd('mount /sys')
def __init__(self, name, loopback, CR, cluster_id, *args, **kwargs): dirs = [ '/var/log/', '/var/log/quagga', '/var/run', '/var/run/quagga', '/var/run/openvswitch', '/var/run/sshd' ] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs) self.loopback = loopback if cluster_id == "default": cluster_id = "0" cluster_id = int(cluster_id) if CR: cluster_id = cluster_id + 128 extrainfo = '%02x000000' % cluster_id self.dpid = self.loopbackDpid(self.loopback, extrainfo) self.mac = self.loopbackMac(self.loopback, "0200") self.path_ovs = "%s/%s/ovs" % (self.baseDIR, self.name) self.path_quagga = "%s/%s/quagga" % (self.baseDIR, self.name) self.path_fpm = "%s/%s/fpm-of" % (self.baseDIR, self.name) if OSHI.checked == False: self.checkQuagga() if self.OF_V == "OpenFlow13": self.checkOVS() if OSHI.SR == True: self.checkSR() OSHI.checked = True
def __init__(self, name, ips, ce_mac_address=None, gw=None, *args, **kwargs ): dirs = ['/var/log/', '/var/log/quagga', '/var/run', '/var/run/quagga'] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs ) self.ips = ips self.ce_mac_address = ce_mac_address self.gw = gw self.path_quagga = "%s/%s/quagga" %(self.baseDIR, self.name)
def __init__(self, name, controller_ip, ips, dpid=None, border=0, ce_ip_address=None, ce_mac_address=None, *args, **kwargs): dirs = [ '/var/log/', '/var/log/quagga', '/var/run', '/var/run/quagga', '/var/run/openvswitch' ] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs) self.path_ovs = "%s/%s/ovs" % (self.baseDIR, self.name) self.ips = ips if dpid is None: dpid = format((int(re.search(r'\d+', name).group())), '#018x')[2:] self.dpid = dpid self.controller_ip = controller_ip self.border = border self.ce_ip_address = ce_ip_address self.ce_mac_address = ce_mac_address self.path_quagga = "%s/%s/quagga" % (self.baseDIR, self.name)
def __init__(self, name, ip, mac, remoteIP, remoteMAC, iperfPort, *args, **kwargs): Host.__init__(self, name, ip=ip, mac=mac, *args, **kwargs) self.remoteIP = remoteIP self.remoteMAC = remoteMAC self.iperfPort = iperfPort
def __init__(self, name, exabgpIniFile, exabgpConfFile, intfDict, ARPDict, *args, **kwargs): Host.__init__(self, name, *args, **kwargs) self.exabgpConfFile = exabgpConfFile self.exabgpIniFile = exabgpIniFile self.intfDict = intfDict # TODO should be optional? self.ARPDict = ARPDict
def __init__(self, name, exabgpIniFile, exabgpConfFile, intfDict, ARPDict, *args, **kwargs): Host.__init__(self, name, *args, **kwargs) self.exabgpConfFile = exabgpConfFile self.exabgpIniFile = exabgpIniFile self.intfDict = intfDict self.ARPDict = ARPDict
def __init__(self, name, quaggaConfFile, zebraConfFile, intfDict, ARPDict, *args, **kwargs): Host.__init__(self, name, *args, **kwargs) self.quaggaConfFile = quaggaConfFile self.zebraConfFile = zebraConfFile self.intfDict = intfDict # TODO should be optional? self.ARPDict = ARPDict
def __init__( self, name, image='hadoop:latest', dargs=None, startString=None, **kwargs ): self.image = image self.dargs = dargs if startString is None: self.startString = "/bin/bash" self.dargs = "-di" else: self.startString = startString Host.__init__( self, name, **kwargs )
def __init__( self, name, image='myace:v1', dargs=None, startString=None, **kwargs ): self.image = image self.dargs = dargs if startString is None: self.startString = "/bin/bash" self.dargs = "-ti" else: self.startString = startString Host.__init__( self, name, **kwargs )
def __init__( self, name, image='ubuntu', dargs=None, startString=None, **kwargs ): self.image = image self.dargs = dargs if startString is None: self.startString = "/bin/bash" self.dargs = "-it" else: self.startString = startString Host.__init__( self, name, **kwargs )
def __init__(self, name, **kwargs): Host.__init__(self, name, **kwargs) if not NdnHost.inited: NdnHostCommon.init() self.nfd = Nfd(self) self.nfd.start() self.peerList = {}
def __init__(self, name, ips, gw=None, ce_mac_address=None, *args, **kwargs): Host.__init__(self, name, *args, **kwargs) self.ips = ips self.gw = gw self.ce_mac_address = ce_mac_address
def __init__(self, name, **kwargs): kwargs.update(inNamespace=True) #self.alertAction = kwargs.pop( 'alertAction', 'exception' ) Host.__init__(self, name, **kwargs) self.dir = '/tmp/%s' % self.name self.TENNISON_HOME = '/tmp' self.cmd('rm -rf', self.dir) self.TENNISON_INSTALL = self.unpackTENNISON(self.dir) setLogLevel('info')
def __init__(self, name, **kwargs): privateDirs = [('/usr/local/etc/ndn', '/tmp/%(name)s/usr/local/etc/ndn'), ] kwargs['privateDirs'] = privateDirs Host.__init__(self, name, **kwargs) if not NdnHost.inited: NdnHostCommon.init() self.nfd = Nfd(self) self.nfd.start() self.peerList = {}
def __init__(self, name, ip=None, inNamespace=True, root_dir=None, ssh_template=None, auth_keys=None, **kwargs): self.name = name self.ssh_template = ssh_template self.auth_keys = auth_keys self.root_dir = root_dir self.ssh_pid_file = None self.mounted_dirs = [] Host.__init__(self, name, inNamespace, **kwargs)
def __init__(self, name, ips, ce_mac_address=None, gw=None, *args, **kwargs): dirs = ['/var/log/', '/var/log/quagga', '/var/run', '/var/run/quagga'] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs) self.ips = ips self.ce_mac_address = ce_mac_address self.gw = gw self.path_quagga = "%s/%s/quagga" % (self.baseDIR, self.name)
def __init__(self, name, **kwargs): Host.__init__(self, name, **kwargs) if not NdnHost.inited: NdnHostCommon.init() # Create home directory for a node self.homeFolder = "%s/%s" % (self.params['workdir'], self.name) self.cmd("mkdir -p %s" % self.homeFolder) self.cmd("cd %s" % self.homeFolder) self.nfd = None self.peerList = {}
def __init__(self, name, **kwargs): Host.__init__(self, name, **kwargs) if not NdnHost.inited: NdnHostCommon.init() # Create home directory for a node self.homeFolder = "%s/%s" % (self.params['workdir'], self.name) self.cmd("mkdir -p %s" % self.homeFolder) self.cmd("cd %s" % self.homeFolder) self.nfd = Nfd(self) self.nfd.start() self.peerList = {}
def __init__(self, name, **kwargs ): self.portOffset = kwargs.pop('portOffset', 0) self.ipBase = kwargs.pop('ipBase', '192.168.123.0/24') self.ip = kwargs.pop('ip', '192.168.123.100') self.defaultGW = kwargs.pop('gw', '192.168.123.2') self.name = name kwargs.update( inNamespace=True ) #self.alertAction = kwargs.pop( 'alertAction', 'exception' ) Host.__init__( self, name, **kwargs ) self.dir = '/tmp/%s' % self.name self.TENNISON_HOME = '/tmp' self.cmd( 'rm -rf', self.dir ) self.TENNISON_INSTALL = self.unpackTENNISON( self.dir )
def __init__(self, name, controller_ip, ips, dpid=None, border=0, ce_ip_address=None, ce_mac_address=None, *args, **kwargs ): dirs = ['/var/log/', '/var/log/quagga', '/var/run', '/var/run/quagga', '/var/run/openvswitch'] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs ) self.path_ovs = "%s/%s/ovs" %(self.baseDIR, self.name) self.ips = ips if dpid is None: dpid = format((int(re.search(r'\d+', name).group())), '#018x')[2:] self.dpid = dpid self.controller_ip = controller_ip self.border = border self.ce_ip_address = ce_ip_address self.ce_mac_address = ce_mac_address self.path_quagga = "%s/%s/quagga" %(self.baseDIR, self.name)
def __init__(self, name, image=None, tmpdir=None, prefix=None, env_vars=None, vol_maps=None, startup_timeout_ms=STARTUP_TIMEOUT_MS, network=None, **kwargs): self.image = image self.tmpdir = tmpdir self.prefix = prefix if env_vars is None: env_vars = [] self.env_vars = env_vars if vol_maps is None: vol_maps = [] self.vol_maps = vol_maps self.network = network self.startup_timeout_ms = startup_timeout_ms self.name = name self.pullImage() Host.__init__(self, name, **kwargs)
def __init__(self, name, image=None, tmpdir=None, prefix=None, env_vars=[], vol_maps=[], startup_timeout_ms=STARTUP_TIMEOUT_MS, **kwargs): self.image = image self.tmpdir = tmpdir self.prefix = prefix self.env_vars = env_vars self.vol_maps = vol_maps self.startup_timeout_ms = startup_timeout_ms Host.__init__(self, name, **kwargs)
def __init__(self, name, **kwargs): Host.__init__(self, name, **kwargs) if not NdnHost.inited: NdnHostCommon.init() # Create home directory for a node self.homeFolder = "%s/%s" % (self.params['workdir'], self.name ) # Xian: using workDir will occur erro self.cmd("mkdir -p %s" % self.homeFolder) self.cmd("cd %s" % self.homeFolder) self.nfd = Nfd(self) print "ndn_host.py--------------------------Ndnhost() cla---- init" self.nfd.start() self.peerList = {}
def __init__(self, name, sched='cfs', **kwargs): """Initailized Resource Limited Host Class""" Host.__init__(self, name, **kwargs) # Initialize class if necessary if not RSLimitedHost.inited: RSLimitedHost.init() self.cgroup = 'cpu,cpuacct,cpuset,memory,blkio:/' + self.name errFail('cgcreate -g ' + self.cgroup) errFail('cgclassify -g cpu,cpuacct,memory,blkio:/%s %s' % (self.name, self.pid)) self.period_us = kwargs.get('period_us', 100000) self.sched = sched if sched == 'rt': self.checkRtGroupSched() self.rtprio = 20
def __init__(self, name, custom_type=Type.SD_CLOUD_HOST, NO_of_Dir=10, NO_of_files=20, file_size=5, Used_space=0, **pars): Host.__init__(self, name, **pars) self.NO_of_files = NO_of_files self.NO_of_Dir = NO_of_Dir self.file_size = file_size self.Used_space = Used_space self.custom_type = custom_type """AR Content""" self.cLibrary = contentLibrary() print("Cloud host has been initialized")
def __init__(self, name, custom_type="sd_cloudHost", NO_of_Dir=10, NO_of_files=20, file_size=5, Used_space=0, **pars): Host.__init__(self, name, **pars) self.NO_of_files = NO_of_files self.NO_of_Dir = NO_of_Dir self.file_size = file_size self.Used_space = Used_space self.custom_type = custom_type """AR Content""" self.AR_Library = [] #[content_identifier,content_name,content_size] AR_content = [1, "CityAR.fbx", 5000] self.AR_Library.append(AR_content) AR_content = [2, "CarAR.obj", 9000] self.AR_Library.append(AR_content) AR_content = [3, "StreetAR.fbx", 3000] self.AR_Library.append(AR_content) AR_content = [4, "HeritageAR.jpg", 850] self.AR_Library.append(AR_content) AR_content = [5, "MallAR.fbx", 5000] self.AR_Library.append(AR_content) AR_content = [6, "statueAR.obj", 9000] self.AR_Library.append(AR_content) AR_content = [7, "StAR.fbx", 3000] self.AR_Library.append(AR_content) AR_content = [8, "HallAR.jpg", 850] self.AR_Library.append(AR_content) AR_content = [9, "resturantAR.fbx", 3000] self.AR_Library.append(AR_content) AR_content = [10, "policeStationAR.fbx", 850] self.AR_Library.append(AR_content) """ for AR in self.AR_Library: for i in range(len(AR)): print ("index %s: content: %s"%(i,AR[i])) """ print "Cloud host has been initialized"
def __init__(self, name, image='ubuntu-exp', dargs=None, startString=None, bridge="control-net", **kwargs): self.image = image self.dargs = dargs if startString is None: self.startString = "/bin/bash" self.dargs = "-di" else: self.startString = startString if bridge is None: self.docker_bridge = "none" else: self.docker_bridge = bridge Host.__init__(self, name, **kwargs)
def __init__(self, name, **kwargs): Host.__init__(self, name, **kwargs) if not NdnHost.inited: NdnHostCommon.init() # Hacky quick fix if self.params.get('workdir') is None: self.params['workdir'] = '/tmp' self.params['params'] = {} # Create home directory for a node self.homeFolder = "%s/%s" % (self.params['workdir'], self.name) self.cmd("mkdir -p %s" % self.homeFolder) self.cmd("cd %s" % self.homeFolder) self.nfd = Nfd(self) self.nfd.start() self.peerList = {}
def __init__(self, name, basedir=None, tmpdir=None, env_vars=None, vol_maps=None, startup_cmd='entrypoint', **kwargs): self.basedir = basedir self.tmpdir = tmpdir self.env_vars = env_vars if env_vars is not None else [] self.vol_maps = vol_maps if vol_maps is not None else [] self.vol_maps.append((os.path.abspath(os.path.join(self.tmpdir, 'tmp')), os.path.join(self.basedir, 'tmp'))) self.name = name script_full_path = os.path.join(self.basedir, startup_cmd) self.startup_cmd = startup_cmd if startup_cmd.startswith( '/') else script_full_path self.active_pipe = None self.active_log = None Host.__init__(self, name, **kwargs)
def __init__(self, *opts, **params): """Construct NDN host. fw: forwarder constructor rout: routing constructor env: base environ for popen""" OVERRIDE_DIRS = ['/etc/ndn', '/var/log/ndn', '/var/run', '/root'] privateDirs = params.get('privateDirs', []) privateDirs = [pd for pd in privateDirs if pd[0] not in OVERRIDE_DIRS] for d in OVERRIDE_DIRS: privateDirs.append((d, '/tmp/mnndn/%(name)s' + d)) params['privateDirs'] = privateDirs Host.__init__(self, *opts, **params) self.cmd('export HOME=/root') from NfdForwarder import NfdForwarder from NlsrRouting import NlsrRouting self.fwCtor = params.pop('fw', NfdForwarder) self.routCtor = params.pop('rout', NlsrRouting) self.env = params.pop('env', {}) self.fw = None self.rout = None
def __init__(self, *opts, **params): """Construct NDN host. fw: forwarder constructor rout: routing constructor env: base environ for popen""" OVERRIDE_DIRS = ['/etc/ndn', '/var/log/ndn', '/var/run', '/root'] privateDirs = params.get('privateDirs', []) privateDirs = [ pd for pd in privateDirs if pd[0] not in OVERRIDE_DIRS ] for d in OVERRIDE_DIRS: privateDirs.append((d, '/tmp/mnndn/%(name)s' + d)) params['privateDirs'] = privateDirs Host.__init__(self, *opts, **params) self.cmd('export HOME=/root') from NfdForwarder import NfdForwarder from NlsrRouting import NlsrRouting self.fwCtor = params.pop('fw', NfdForwarder) self.routCtor = params.pop('rout', NlsrRouting) self.env = params.pop('env', {}) self.fw = None self.rout = None
def __init__(self, name, ips, gw=None, ce_mac_address=None, *args, **kwargs ): Host.__init__(self, name, *args, **kwargs ) self.ips = ips self.gw = gw self.ce_mac_address = ce_mac_address
def __init__(self, name, inNamespace=True, **params): Host.__init__(self, name, inNamespace=inNamespace, **params)
def __init__(self, name, *args, **kwargs ): #dirs = ['/var/run', '/var/run/sshd'] # NO PRIVATE DIRS, BECAUSE IT IS IN THE VM Namespace Host.__init__( self, name, *args, **kwargs ) self.id = self.newId()
def __init__(self, name, inNamespace=True, **params): Host.__init__(self, name, inNamespace=inNamespace, **params) self.exectoken = "/tmp/mn-exec-token-host-%s" % name self.cmd("touch %s" % self.exectoken)
def __init__(self, name, *args, **kwargs ): dirs = ['/var/log/', '/var/run', '/var/run/openvswitch'] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs ) self.path_ovs = "%s/%s/ovs" %(self.baseDIR, self.name)
def __init__(self, name, ips, *args, **kwargs ): dirs = ['/var/log/', '/var/log/quagga', '/var/run', '/var/run/quagga'] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs ) self.ips = ips self.path_quagga = "%s/%s/quagga" %(self.baseDIR, self.name)
def __init__(self, name, **kwargs): Host.__init__(self, name, **kwargs) self.iperf_server = None self.web_server = None self.client = None
def __init__(self, name, dimage, dcmd=None, **kwargs): """ Creates a Docker container as Mininet host. Resource limitations based on CFS scheduler: * cpu.cfs_quota_us: the total available run-time within a period (in microseconds) * cpu.cfs_period_us: the length of a period (in microseconds) (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) Default Docker resource limitations: * cpu_shares: Relative amount of max. avail CPU for container (not a hard limit, e.g. if only one container is busy and the rest idle) e.g. usage: d1=4 d2=6 <=> 40% 60% CPU * cpuset_cpus: Bind containers to CPU 0 = cpu_1 ... n-1 = cpu_n (string: '0,2') * mem_limit: Memory limit (format: <number>[<unit>], where unit = b, k, m or g) * memswap_limit: Total limit = memory + swap All resource limits can be updated at runtime! Use: * updateCpuLimits(...) * updateMemoryLimits(...) """ self.dimage = dimage self.dnameprefix = "mn" self.dcmd = dcmd if dcmd is not None else "/bin/bash" self.dc = None # pointer to the dict containing 'Id' and 'Warnings' keys of the container self.dcinfo = None self.did = None # Id of running container # let's store our resource limits to have them available through the # Mininet API later on defaults = { 'cpu_quota': -1, 'cpu_period': None, 'cpu_shares': None, 'cpuset_cpus': None, 'mem_limit': None, 'memswap_limit': None, 'environment': {}, 'volumes': [], # use ["/home/user1/:/mnt/vol2:rw"] 'tmpfs': [], # use ["/home/vol1/:size=3G,uid=1000"] 'network_mode': None, 'publish_all_ports': True, 'port_bindings': {}, 'ports': [], 'dns': [], } defaults.update(kwargs) # keep resource in a dict for easy update during container lifetime self.resources = dict(cpu_quota=defaults['cpu_quota'], cpu_period=defaults['cpu_period'], cpu_shares=defaults['cpu_shares'], cpuset_cpus=defaults['cpuset_cpus'], mem_limit=defaults['mem_limit'], memswap_limit=defaults['memswap_limit']) self.volumes = defaults['volumes'] self.tmpfs = defaults['tmpfs'] self.environment = {} if defaults['environment'] is None else defaults[ 'environment'] # setting PS1 at "docker run" may break the python docker api (update_container hangs...) # self.environment.update({"PS1": chr(127)}) # CLI support self.network_mode = defaults['network_mode'] self.publish_all_ports = defaults['publish_all_ports'] self.port_bindings = defaults['port_bindings'] self.dns = defaults['dns'] # setup docker client self.dcli = docker.APIClient(base_url='unix://var/run/docker.sock') #self.dcli = docker.from_env() # pull image if it does not exist self._check_image_exists(dimage, True) # for DEBUG debug("Created docker container object %s\n" % name) debug("image: %s\n" % str(self.dimage)) debug("dcmd: %s\n" % str(self.dcmd)) info("%s: kwargs %s\n" % (name, str(kwargs))) # creats host config for container # see: https://docker-py.readthedocs.org/en/latest/hostconfig/ hc = self.dcli.create_host_config( network_mode=self.network_mode, privileged=True, # we need this to allow mininet network setup binds=self.volumes, tmpfs=self.tmpfs, publish_all_ports=self.publish_all_ports, port_bindings=self.port_bindings, mem_limit=self.resources.get('mem_limit'), cpuset_cpus=self.resources.get('cpuset_cpus'), dns=self.dns, runtime='nvidia' #add by will ) if kwargs.get("rm", False): container_list = self.dcli.containers(all=True) for container in container_list: for container_name in container.get("Names", []): if "%s.%s" % (self.dnameprefix, name) in container_name: self.dcli.remove_container(container="%s.%s" % (self.dnameprefix, name), force=True) break # create new docker container self.dc = self.dcli.create_container( name="%s.%s" % (self.dnameprefix, name), image=self.dimage, command=self.dcmd, entrypoint=list( ), # overwrite (will be executed manually at the end) stdin_open=True, # keep container open tty=True, # allocate pseudo tty environment=self.environment, #network_disabled=True, # docker stats breaks if we disable the default network host_config=hc, ports=defaults['ports'], labels=['com.containernet'], volumes=[ self._get_volume_mount_name(v) for v in self.volumes if self._get_volume_mount_name(v) is not None ], hostname=name) # start the container self.dcli.start(self.dc) debug("Docker container %s started\n" % name) # fetch information about new container self.dcinfo = self.dcli.inspect_container(self.dc) self.did = self.dcinfo.get("Id") # call original Node.__init__ Host.__init__(self, name, **kwargs) # let's initially set our resource limits self.update_resources(**self.resources)
def __init__(self, name, intfDict, *args, **kwargs): Host.__init__(self, name, *args, **kwargs) self.intfDict = intfDict
def __init__(self, name, ip, route, *args, **kwargs): Host.__init__(self, name, ip=ip, *args, **kwargs) self.route = route
def __init__(self, name, *args, **kwargs ): Host.__init__( self, name, *args, **kwargs ) self.id = self.newId()
def __init__(self, name, *args, **kwargs ): dirs = ['/var/run', '/var/run/sshd'] Host.__init__( self, name, privateDirs=dirs, *args, **kwargs ) self.id = self.newId()
def __init__(self, name, ip, mac, remoteIP, remoteMAC, *args, **kwargs): Host.__init__(self, name, ip=ip, mac=mac, *args, **kwargs) self.remoteIP = remoteIP self.remoteMAC = remoteMAC
def __init__(self, name, ip, gw, *args, **kwargs): Host.__init__(self, name, ip=ip, *args, **kwargs) self.gw = gw
def __init__(self, name, *args, **kwargs): dirs = ['/var/mininet'] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs)
def __init__(self, name, loopback, *args, **kwargs ): dirs = ['/var/log/', '/var/log/quagga', '/var/run', '/var/run/quagga'] Host.__init__(self, name, privateDirs=dirs, *args, **kwargs ) self.loopback = loopback