def add_nic(self, **params): """ Add new or setup existing NIC with optional model type and mac address @param: **params: Additional NIC parameters to set. @param: nic_name: Name for device @param: mac: Optional MAC address, None to randomly generate. @param: ip: Optional IP address to register in address_cache @return: Dict with new NIC's info. """ if not params.has_key('nic_name'): params['nic_name'] = utils_misc.generate_random_id() nic_name = params['nic_name'] if nic_name in self.virtnet.nic_name_list(): self.virtnet[nic_name].update(**params) else: self.virtnet.append(params) nic = self.virtnet[nic_name] if not nic.has_key('mac'): # generate random mac logging.debug("Generating random mac address for nic") self.virtnet.generate_mac_address(nic_name) # mac of '' or invaid format results in not setting a mac if nic.has_key('ip') and nic.has_key('mac'): if not self.address_cache.has_key(nic.mac): logging.debug("(address cache) Adding static " "cache entry: %s ---> %s" % (nic.mac, nic.ip)) else: logging.debug("(address cache) Updating static " "cache entry from: %s ---> %s" " to: %s ---> %s" % (nic.mac, self.address_cache[nic.mac], nic.mac, nic.ip)) self.address_cache[nic.mac] = nic.ip return nic
def add_nic(self, **params): """ Add new or setup existing NIC with optional model type and mac address :param **params: Additional NIC parameters to set. :param nic_name: Name for device :param mac: Optional MAC address, None to randomly generate. :param ip: Optional IP address to register in address_cache :return: Dict with new NIC's info. """ if not params.has_key('nic_name'): params['nic_name'] = utils_misc.generate_random_id() nic_name = params['nic_name'] if nic_name in self.virtnet.nic_name_list(): self.virtnet[nic_name].update(**params) else: self.virtnet.append(params) nic = self.virtnet[nic_name] if not nic.has_key('mac'): # generate random mac logging.debug("Generating random mac address for nic") self.virtnet.generate_mac_address(nic_name) # mac of '' or invaid format results in not setting a mac if nic.has_key('ip') and nic.has_key('mac'): if not self.address_cache.has_key(nic.mac): logging.debug("(address cache) Adding static " "cache entry: %s ---> %s" % (nic.mac, nic.ip)) else: logging.debug( "(address cache) Updating static " "cache entry from: %s ---> %s" " to: %s ---> %s" % (nic.mac, self.address_cache[nic.mac], nic.mac, nic.ip)) self.address_cache[nic.mac] = nic.ip return nic
def add_nic(self, **params): """ Add new or setup existing NIC with optional model type and mac address :param params: Dict with additional NIC parameters to set. :return: Dict with new NIC's info. """ if not params.has_key("nic_name"): params["nic_name"] = utils_misc.generate_random_id() nic_name = params["nic_name"] if nic_name in self.virtnet.nic_name_list(): self.virtnet[nic_name].update(**params) else: self.virtnet.append(params) nic = self.virtnet[nic_name] if not nic.has_key("mac"): # generate random mac logging.debug("Generating random mac address for nic") self.virtnet.generate_mac_address(nic_name) # mac of '' or invaid format results in not setting a mac if nic.has_key("ip") and nic.has_key("mac"): if not self.address_cache.has_key(nic.mac): logging.debug("(address cache) Adding static " "cache entry: %s ---> %s" % (nic.mac, nic.ip)) else: logging.debug( "(address cache) Updating static " "cache entry from: %s ---> %s" " to: %s ---> %s" % (nic.mac, self.address_cache[nic.mac], nic.mac, nic.ip) ) self.address_cache[nic.mac] = nic.ip return nic