def test_scheduler_no_cfg(self, dev_get_all): conf = cfg.ConfigOpts(default_config_files=[]) conf._oparser = mock.Mock() conf._oparser.parse_args.return_value = mock.Mock(), None conf._oparser.parse_args.return_value[0].__dict__ = self.attrs conf() dev_get_all.return_value = ['a', 'b', 'c', 'd'] res = scheduler.schedule_loadbalancer(conf, self.lb_ref) self.assertTrue(dev_get_all.called) self.assertEqual('c', res)
def create_lb(conf, params): nodes = params.pop('nodes', []) probes = params.pop('healthMonitor', []) vips = params.pop('virtualIps', []) values = db_api.loadbalancer_pack_extra(params) lb_ref = db_api.loadbalancer_create(conf, values) device = scheduler.schedule_loadbalancer(conf, lb_ref) device_driver = drivers.get_device_driver(conf, device['id']) lb = db_api.unpack_extra(lb_ref) lb['device_id'] = device['id'] lb_ref = db_api.loadbalancer_pack_extra(lb) try: with device_driver.request_context() as ctx: commands.create_loadbalancer(ctx, lb_ref, nodes, probes, vips) except (exception.Error, exception.Invalid): lb_ref.status = lb_status.ERROR lb_ref.deployed = 'False' else: lb_ref.status = lb_status.ACTIVE lb_ref.deployed = 'True' db_api.loadbalancer_update(conf, lb['id'], lb_ref) return lb_ref['id']
def test_scheduler_with_proper_devs(self, dev_get_all): dev_get_all.return_value = ['a', 'b', 'c', 'd'] res = scheduler.schedule_loadbalancer(self.conf, self.lb_ref) self.assertTrue(dev_get_all.called) self.assertEqual('c', res)
def test_scheduler_without_devices(self, dev_get_all): dev_get_all.return_value = [] with self.assertRaises(exp.DeviceNotFound): scheduler.schedule_loadbalancer(self.conf, self.lb_ref) self.assertTrue(dev_get_all.called)
def test_scheduler_no_proper_devs(self, dev_get_all): dev_get_all.return_value = ['a', 'b'] with self.assertRaises(exp.NoValidDevice): scheduler.schedule_loadbalancer(self.conf, self.lb_ref) self.assertTrue(dev_get_all.called)