def plug(self, instance, vif, vm_ref=None, device=None): if not vm_ref: vm_ref = vm_utils.lookup(self._session, instance['name']) # if VIF already exists, return this vif_ref directly vif_ref = self._get_vif_ref(vif, vm_ref) if vif_ref: LOG.debug("VIF %s already exists when plug vif", vif_ref, instance=instance) return vif_ref if not device: device = 0 # with OVS model, always plug into an OVS integration bridge # that is already created network_ref = network_utils.find_network_with_bridge( self._session, CONF.xenserver.ovs_integration_bridge) vif_rec = {} vif_rec['device'] = str(device) vif_rec['network'] = network_ref vif_rec['VM'] = vm_ref vif_rec['MAC'] = vif['address'] vif_rec['MTU'] = '1500' vif_rec['qos_algorithm_type'] = '' vif_rec['qos_algorithm_params'] = {} # OVS on the hypervisor monitors this key and uses it to # set the iface-id attribute vif_rec['other_config'] = {'nicira-iface-id': vif['id']} return self._create_vif(vif, vif_rec, vm_ref)
def plug(self, instance, vif, vm_ref=None, device=None): if not vm_ref: vm_ref = vm_utils.lookup(self._session, instance['name']) if not device: device = 0 if vif['network'].get_meta('should_create_vlan'): network_ref = self._ensure_vlan_bridge(vif['network']) else: network_ref = network_utils.find_network_with_bridge( self._session, vif['network']['bridge']) vif_rec = {} vif_rec['device'] = str(device) vif_rec['network'] = network_ref vif_rec['VM'] = vm_ref vif_rec['MAC'] = vif['address'] vif_rec['MTU'] = '1500' vif_rec['other_config'] = {} if vif.get_meta('rxtx_cap'): vif_rec['qos_algorithm_type'] = 'ratelimit' vif_rec['qos_algorithm_params'] = {'kbps': str(int(vif.get_meta('rxtx_cap')) * 1024)} else: vif_rec['qos_algorithm_type'] = '' vif_rec['qos_algorithm_params'] = {} return vif_rec
def plug(self, instance, vif, vm_ref=None, device=None): if not vm_ref: vm_ref = vm_utils.lookup(self._session, instance['name']) if not device: device = 0 if vif['network'].get_meta('should_create_vlan'): network_ref = self._ensure_vlan_bridge(vif['network']) else: network_ref = network_utils.find_network_with_bridge( self._session, vif['network']['bridge']) vif_rec = {} vif_rec['device'] = str(device) vif_rec['network'] = network_ref vif_rec['VM'] = vm_ref vif_rec['MAC'] = vif['address'] vif_rec['MTU'] = '1500' vif_rec['other_config'] = {} if vif.get_meta('rxtx_cap'): vif_rec['qos_algorithm_type'] = 'ratelimit' vif_rec['qos_algorithm_params'] = { 'kbps': str(int(vif.get_meta('rxtx_cap')) * 1024) } else: vif_rec['qos_algorithm_type'] = '' vif_rec['qos_algorithm_params'] = {} return vif_rec
def test_find_network_with_bridge_works(self): session = mock.Mock() session.network.get_all_records_where.return_value = {"net": "asdf"} result = network_utils.find_network_with_bridge(session, "bridge") self.assertEqual(result, "net") expr = 'field "name__label" = "bridge" or field "bridge" = "bridge"' session.network.get_all_records_where.assert_called_once_with(expr)
def plug(self, instance, vif, vm_ref=None, device=None): if not vm_ref: vm_ref = vm_utils.lookup(self._session, instance['name']) if not vm_ref: raise exception.VirtualInterfacePlugException( "Cannot find instance %s, discard vif plug" % instance['name']) # if VIF already exists, return this vif_ref directly vif_ref = self._get_vif_ref(vif, vm_ref) if vif_ref: LOG.debug("VIF %s already exists when plug vif", vif_ref, instance=instance) return vif_ref if not device: device = 0 if vif['network'].get_meta('should_create_vlan'): network_ref = self._ensure_vlan_bridge(vif['network']) else: network_ref = network_utils.find_network_with_bridge( self._session, vif['network']['bridge']) vif_rec = {} vif_rec['device'] = str(device) vif_rec['network'] = network_ref vif_rec['VM'] = vm_ref vif_rec['MAC'] = vif['address'] vif_rec['MTU'] = '1500' vif_rec['other_config'] = {} if vif.get_meta('rxtx_cap'): vif_rec['qos_algorithm_type'] = 'ratelimit' vif_rec['qos_algorithm_params'] = { 'kbps': str(int(vif.get_meta('rxtx_cap')) * 1024) } else: vif_rec['qos_algorithm_type'] = '' vif_rec['qos_algorithm_params'] = {} return self._create_vif(vif, vif_rec, vm_ref)
def plug(self, instance, vif, vm_ref=None, device=None): if not vm_ref: vm_ref = vm_utils.lookup(self._session, instance.name) if not device: device = 0 # with OVS model, always plug into an OVS integration bridge # that is already created network_ref = network_utils.find_network_with_bridge( self._session, FLAGS.xenapi_ovs_integration_bridge) vif_rec = {} vif_rec['device'] = str(device) vif_rec['network'] = network_ref vif_rec['VM'] = vm_ref vif_rec['MAC'] = vif['address'] vif_rec['MTU'] = '1500' vif_rec['qos_algorithm_type'] = '' vif_rec['qos_algorithm_params'] = {} # OVS on the hypervisor monitors this key and uses it to # set the iface-id attribute vif_rec['other_config'] = {'nicira-iface-id': vif['id']} return vif_rec
def plug(self, instance, vif, vm_ref=None, device=None): if not vm_ref: vm_ref = vm_utils.lookup(self._session, instance['name']) if not vm_ref: raise exception.VirtualInterfacePlugException( "Cannot find instance %s, discard vif plug" % instance['name']) # if VIF already exists, return this vif_ref directly vif_ref = self._get_vif_ref(vif, vm_ref) if vif_ref: LOG.debug("VIF %s already exists when plug vif", vif_ref, instance=instance) return vif_ref if not device: device = 0 if vif['network'].get_meta('should_create_vlan'): network_ref = self._ensure_vlan_bridge(vif['network']) else: network_ref = network_utils.find_network_with_bridge( self._session, vif['network']['bridge']) vif_rec = {} vif_rec['device'] = str(device) vif_rec['network'] = network_ref vif_rec['VM'] = vm_ref vif_rec['MAC'] = vif['address'] vif_rec['MTU'] = '1500' vif_rec['other_config'] = {} if vif.get_meta('rxtx_cap'): vif_rec['qos_algorithm_type'] = 'ratelimit' vif_rec['qos_algorithm_params'] = {'kbps': str(int(vif.get_meta('rxtx_cap')) * 1024)} else: vif_rec['qos_algorithm_type'] = '' vif_rec['qos_algorithm_params'] = {} return self._create_vif(vif, vif_rec, vm_ref)