def bind_port_to_segment(self, port_dict):
        """bind_port_to_network. This call makes the REST request to the

        external SDN controller for provisioning VLAN for the switch port where
        bare metal is connected.
        """

        LOG.debug("bind_port_to_segment with port dict %(port_dict)s",
                  {'port_dict': port_dict})
        bind_dict = self._get_bind_dict(port_dict)
        is_lag = port_dict['port']['is_lag']
        if is_lag:
            resp = self._do_lag_request(port_dict, True, None)
        else:
            resp = self._do_vlan_provisioning(port_dict, True)
        port_id = port_dict['port']['id']
        if resp.status_code == 204:
            db.update_hp_ironic_swport_map_with_seg_id(self.context,
                                                       bind_dict)
            return hp_const.BIND_SUCCESS
        elif resp.status_code == 200:
            LOG.debug("lag request for physicalInterfaces is succeeded")
            lag_id = uuidutils.generate_uuid()
            ext_lag_id = resp.json()['lagId']
            lag_dict = {'id': lag_id,
                        'external_lag_id': ext_lag_id,
                        'neutron_port_id': port_id}
            db.add_hp_switch_lag_port(self.context,
                                      lag_dict)
            db.update_hp_ironic_swport_map_with_seg_id(self.context,
                                                       bind_dict)
            db.update_hp_ironic_swport_map_with_lag_id(self.context,
                                                       lag_dict)
            self._update_hp_sw_lag_id(self.context, lag_dict)
            return hp_const.BIND_SUCCESS
        else:
            return hp_const.BIND_FAILURE
 def test_delete_hp_switch_lag_port(self):
     """Test delete_hp_switch_lag_port method."""
     rec_dict = self._get_switch_lag_port_dict()
     db.add_hp_switch_lag_port(self.ctx, rec_dict)
     db.delete_hp_switch_lag_port(self.ctx, rec_dict)
     count = self.ctx.session.query(models.HPSwitchLAGPort).count()
     self.assertEqual(count, 0)
示例#3
0
 def test_delete_hp_switch_lag_port(self):
     """Test delete_hp_switch_lag_port method."""
     rec_dict = self._get_switch_lag_port_dict()
     db.add_hp_switch_lag_port(self.ctx, rec_dict)
     db.delete_hp_switch_lag_port(self.ctx, rec_dict)
     count = self.ctx.session.query(models.HPSwitchLAGPort).count()
     self.assertEqual(count, 0)
 def test_update_hp_switch_lag_port(self):
     """Test update_hp_switch_lag_port method."""
     rec_dict = self._get_switch_lag_port_dict()
     db.add_hp_switch_lag_port(self.ctx, rec_dict)
     db.update_hp_switch_lag_port(
         self.ctx, {'id': "lag1234", 'external_lag_id': "extlag456"})
     result = db.get_hp_switch_lag_port_by_id(
         self.ctx, {'id': "lag1234"})
     self.assertEqual("extlag456", result.external_lag_id)
示例#5
0
 def test_update_hp_switch_lag_port(self):
     """Test update_hp_switch_lag_port method."""
     rec_dict = self._get_switch_lag_port_dict()
     db.add_hp_switch_lag_port(self.ctx, rec_dict)
     db.update_hp_switch_lag_port(self.ctx, {
         'id': "lag1234",
         'external_lag_id': "extlag456"
     })
     result = db.get_hp_switch_lag_port_by_id(self.ctx, {'id': "lag1234"})
     self.assertEqual("extlag456", result.external_lag_id)
 def _add_switch_and_lag_port(self):
     """Add entries to hpswitchports and hpswitchlagports."""
     sw_rec_dict = self._get_switch_port_dict()
     lag_dict = self._get_switch_lag_port_dict()
     db.add_hp_switch_lag_port(self.ctx, lag_dict)
     db.add_hp_switch_port(self.ctx, sw_rec_dict)