示例#1
0
def lb_change_node_status(conf, lb_id, lb_node_id, lb_node_status):
    balancer_instance = vserver.Balancer(conf)
    balancer_instance.loadFromDB(lb_id)

    rs = db_api.server_get(conf, lb_node_id)
    sf = balancer_instance.sf
    if rs['state'] == lb_node_status:
        return "OK"

    rs['state'] = lb_node_status
    rsname = rs['name']
    if rs['parent_id'] != "":
        rs['name'] = rs['parent_id']
    logger.debug("Changing RServer status to: %s" % lb_node_status)
    device_driver = drivers.get_device_driver(
                        balancer_instance.lb['device_id'])
    with device_driver.request_context() as ctx:
        if lb_node_status == "inservice":
            commands.activate_rserver(ctx, sf, rs)
        else:
            commands.suspend_rserver(ctx, sf, rs)

    rs['name'] = rsname
    db_api.server_update(conf, rs['id'], rs)
    return "Node %s has status %s" % (lb_node_id, rs['state'])
示例#2
0
def lb_change_node_status(conf, lb_id, lb_node_id, lb_node_status):
    lb = db_api.loadbalancer_get(conf, lb_id)
    rs = db_api.server_get(conf, lb_node_id)
    sf = db_api.serverfarm_get(conf, rs['sf_id'])
    if rs['state'] == lb_node_status:
        return "OK"

    rs['state'] = lb_node_status
    rsname = rs['name']
    if rs['parent_id'] != "":
        rs['name'] = rs['parent_id']
    logger.debug("Changing RServer status to: %s" % lb_node_status)
    device_driver = drivers.get_device_driver(conf, lb['device_id'])
    with device_driver.request_context() as ctx:
        if lb_node_status == "inservice":
            commands.activate_rserver(ctx, sf, rs)
        else:
            commands.suspend_rserver(ctx, sf, rs)

    rs['name'] = rsname
    db_api.server_update(conf, rs['id'], rs)
    return db_api.unpack_extra(rs)
 def test_activate_rserver(self):
     cmd.activate_rserver(self.ctx, self.server_farm, self.rserver)
     self.assertTrue(
             self.ctx.device.activate_real_server.called,\
             "method not called")