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)
Esempio n. 2
0
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)