Beispiel #1
0
def disable_vlan(device=None, vlan_id=None):
    logger.info("Disabling VLAN '%s' in device '%s' -- context: %s" %\
                     (vlan_id, device, request["context"]))
    swinst = get_switch_instance(device)
    swinst.disable_vlan(vlan_id=vlan_id)
    defer_save_switch_cfg(device)
    invalidate_cache("/vlans/%s" % device)
Beispiel #2
0
def disable_interface(device=None, interface_id=None):
    logger.info("Disabling interface '%s' in device '%s' -- context: %s" %\
                    (interface_id, device, request["context"]))
    swinst  = get_switch_instance(device)
    swinst.disable_interface(interface_id=interface_id)
    defer_save_switch_cfg(device)
    invalidate_cache("/interfaces/%s" % device)
Beispiel #3
0
def disable_lag(device=None, lag_id=None):
    logger.info("Disabling LAG '%s' in device '%s' -- context: %s" %\
                     (lag_id, device, request["context"]))
    swinst = get_switch_instance(device)
    swinst.disable_lag(lag_id=lag_id)
    defer_save_switch_cfg(device)
    invalidate_cache("/lags/%s" % device)
Beispiel #4
0
def lag_detach_interface(device=None, lag_id=None):
    logger.info("Detaching an interface from LAG '%s' in device '%s' -- context: %s" %\
                     (lag_id, device, request["context"]))
    interface_id = request.forms.get("interface_id")
    swinst       = get_switch_instance(device)
    swinst.lag_detach_interface(lag_id=lag_id, interface_id=interface_id)
    defer_save_switch_cfg(device)
    invalidate_cache("/lags/%s" % device)
Beispiel #5
0
def destroy_lag(device=None, lag_id=None):
    logger.info("Removing LAG '%s' from device '%s' -- context: %s" %\
                     (lag_id, device, context))
    swinst = get_switch_instance(device)
    swinst.destroy_lag(lag_id=lag_id)
    defer_save_switch_cfg(device)
    invalidate_cache("/lags/%s" % device)
    response.status = 204
Beispiel #6
0
def destroy_vlan(device=None, vlan_id=None):
    logger.info("Removing VLAN '%s' from device '%s' -- context: %s" %\
                     (vlan_id, device, request["context"]))
    swinst = get_switch_instance(device)
    swinst.destroy_vlan(vlan_id=vlan_id)
    defer_save_switch_cfg(device)
    invalidate_cache("/vlans/%s" % device)
    response.status = 204
Beispiel #7
0
def lag_detach_vlan(device=None, lag_id=None):
    logger.info("Detaching a VLAN from LAG '%s' in device '%s' -- context: %s" %\
                     (lag_id, device, request["context"]))
    vlan_id = request.forms.get("vlan_id")
    tagged  = request.forms.get("tagged", "").lower() == "true"
    swinst  = get_switch_instance(device)
    swinst.lag_detach_vlan(lag_id=lag_id, vlan_id=vlan_id, tagged=tagged)
    defer_save_switch_cfg(device)
    invalidate_cache("/lags/%s" % device)
Beispiel #8
0
def create_lag(device=None, lag_id=None):
    logger.info("Creating new LAG with id '%s' in device '%s' -- context: %s" %\
                    (lag_id, device, request["context"]))
    lag_description = request.forms.get("lag_description")
    swinst = get_switch_instance(device)
    swinst.create_lag(lag_id=lag_id, lag_description=lag_description)
    defer_save_switch_cfg(device)
    invalidate_cache("/lags/%s" % device)
    response.status = 201
Beispiel #9
0
def change_vlan_description(device=None, vlan_id=None):
    logger.info("Changing VLAN '%s' description in device '%s' -- context: %s" %\
                    (vlan_id, device, request["context"]))
    vlan_description = request.forms.get("vlan_description")
    swinst  = get_switch_instance(device)
    swinst.change_vlan_description(vlan_id=vlan_id,
                                   vlan_description=vlan_description)
    defer_save_switch_cfg(device)
    invalidate_cache("/vlans/%s" % device)
Beispiel #10
0
def create_vlan(device=None, vlan_id=None):
    logger.info("Creating new VLAN with id '%s' in device '%s' -- context: %s" %\
                     (vlan_id, device, request["context"]))
    vlan_description = request.forms.get("vlan_description")
    swinst = get_switch_instance(device)
    swinst.create_vlan(vlan_id=vlan_id, vlan_description=vlan_description)
    defer_save_switch_cfg(device)
    invalidate_cache("/vlans/%s" % device)
    response.status = 201
Beispiel #11
0
def change_interface_description(device=None, interface_id=None):
    logger.info("Changing interface '%s' description in device '%s' -- context: %s" %\
                    (interface_id, device, request["context"]))
    interface_description = request.forms.get("interface_description")
    swinst  = get_switch_instance(device)
    swinst.change_interface_description(interface_id=interface_id,
                                        interface_description=interface_description)
    defer_save_switch_cfg(device)
    invalidate_cache("/interfaces/%s" % device)
Beispiel #12
0
def interface_detach_vlan(device=None, interface_id=None):
    logger.info("Detaching VLAN from the interface '%s' in device '%s' -- context: %s" %\
                    (device, interface_id, request["context"]))
    vlan_id = request.forms.get("vlan_id")
    tagged  = request.forms.get("tagged", "").lower() == "true"
    swinst  = get_switch_instance(device)
    swinst.interface_detach_vlan(interface_id=interface_id, vlan_id=vlan_id, tagged=tagged)
    defer_save_switch_cfg(device)
    invalidate_cache("/vlans/%s" % device)
Beispiel #13
0
def change_lag_description(device=None, lag_id=None):
    logger.info("Changing LAG '%s' description in device '%s' -- context: %s" %\
                    (lag_id, device, request["context"]))
    lag_description = request.forms.get("lag_description")
    swinst  = get_switch_instance(device)
    swinst.change_lag_description(lag_id=lag_id,
                                   lag_description=lag_description)
    defer_save_switch_cfg(device)
    invalidate_cache("/lags/%s" % device)
Beispiel #14
0
def device_info(device=None):
    logger.info("Showing generic information for device %s -- context: %s" %\
                    (device, request["context"]))
    swinfo = {}
    swinst = get_switch_instance(device)
    swinfo["hostname"] = swinst.show_hostname()
    swinfo["version"]  = swinst.show_version()
    swinfo["l2api"]    = { "device.mgmt-api":  "%s.%s" % (swinst.__class__.__module__,
                                                          swinst.__class__.__name__),
                           "device.mgmt-host": swinst.transport.host,
                           "device.vendor":    swinst.__VENDOR__,
                           "device.hwtype":    swinst.__HWTYPE__ }
    return swinfo
def worker():
    logger.info("Waking up persistence-control worker...")
    devices = list_pending_persistence_jobs()
    if devices is None:
        logger.info("No pending persistence jobs found")
        return
    for device in devices:
        sw_cfg_persist_lock = acquire_persistence_lock(device)
        if sw_cfg_persist_lock is None:
            logger.warn("Could not acquire persistence lock for device '%s'" % device)
            continue
        try:
            swinst = get_switch_instance(device)
            swinst.save_config()
            finish_persistence_job(device)
        except NotImplementedError, e:
            logger.exception("Error on saving configuration on device '%s'" % device)
            finish_persistence_job(device)
        except Exception, e:
            logger.exception("Error on saving configuration on device '%s'" % device)
def worker():
    logger.info("Waking up persistence-control worker...")
    devices = list_pending_persistence_jobs()
    if devices is None:
        logger.info("No pending persistence jobs found")
        return
    for device in devices:
        sw_cfg_persist_lock = acquire_persistence_lock(device)
        if sw_cfg_persist_lock is None:
            logger.warn("Could not acquire persistence lock for device '%s'. Probably because it's already acquired by another instance" % device)
            continue
        context = {"CTX-UUID": gen_context_uid()}
        try:
            logger.info("Starting persistence-job for device '%s' -- context: %s" % (device, context))
            swinst = get_switch_instance(device)
            swinst.save_config()
            finish_persistence_job(device)
        except NotImplementedError, e:
            logger.exception("Error on saving configuration on device '%s' -- context: %s" % (device, context))
            finish_persistence_job(device)
        except Exception, e:
            logger.exception("Error on saving configuration on device '%s' -- context: %s" % (device, context))
Beispiel #17
0
def worker():
    logger.info("Waking up persistence-control worker...")
    devices = list_pending_persistence_jobs()
    if devices is None:
        logger.info("No pending persistence jobs found")
        return
    for device in devices:
        sw_cfg_persist_lock = acquire_persistence_lock(device)
        if sw_cfg_persist_lock is None:
            logger.warn("Could not acquire persistence lock for device '%s'" %
                        device)
            continue
        try:
            swinst = get_switch_instance(device)
            swinst.save_config()
            finish_persistence_job(device)
        except NotImplementedError, e:
            logger.exception("Error on saving configuration on device '%s'" %
                             device)
            finish_persistence_job(device)
        except Exception, e:
            logger.exception("Error on saving configuration on device '%s'" %
                             device)
Beispiel #18
0
def show_system(device=None):
    logger.info("Showing system information from device '%s' -- context: %s" %\
                     (device, request["context"]))
    swinst = get_switch_instance(device)
    return swinst.show_system()
Beispiel #19
0
def show_version(device=None):
    logger.info("Showing version information from device '%s' -- context: %s" %\
                     (device, request["context"]))
    swinst = get_switch_instance(device)
    defer_save_switch_cfg(device)
    return swinst.show_version()
Beispiel #20
0
def show_vlans(device=None, vlan_id=None):
    logger.info("Showing VLAN information from device '%s' -- context: %s" %\
                    (device, request["context"]))
    swinst = get_switch_instance(device)
    return swinst.show_vlans(vlan_id=vlan_id)
Beispiel #21
0
def show_interfaces(device=None, interface_id=None):
    logger.info("Showing interfaces informations from device '%s' -- context: %s" %\
                     (device, request["context"]))
    swinst = get_switch_instance(device)
    return swinst.show_interfaces(interface_id=interface_id)
Beispiel #22
0
def show_lags(device=None, lag_id=None):
    logger.info("Showing LAG information from device '%s' -- context: %s" %\
                     (device, request["context"]))
    swinst = get_switch_instance(device)
    return swinst.show_lags(lag_id=lag_id)