diff --git a/FofbTool/Configuration.py b/FofbTool/Configuration.py index 4afd8dbbfb11fe50c889b39474ede529a6c6600e..5fc8ae58b9b42f968f5cf05f45592ca8e1006ba3 100644 --- a/FofbTool/Configuration.py +++ b/FofbTool/Configuration.py @@ -131,9 +131,9 @@ def cellnode_configure_combpm(cellnodename, bpmallowed=None): # Get device proxy try: - p = FofbTool.Utils.tangopath_cellnodes[cellnodename.lower()] + p = config["tangopath.fofbnodes"][cellnodename.lower()] except KeyError: - logger.error("Wrong cellnodename. Possibilities are {}".format(FofbTool.Utils.tangopath_cellnodes.keys())) + logger.error("Wrong cellnodename. Possibilities are {}".format(list(config['tangopath.fofbnodes'].keys()))) return False try: @@ -188,9 +188,9 @@ def cellnode_configure_ccn(cellnodename, nbpm=None, npsc=None): # Get device proxy try: - p = FofbTool.Utils.tangopath_cellnodes[cellnodename.lower()] + p = config["tangopath.fofbnodes"][cellnodename.lower()] except KeyError: - logger.error("Wrong cellnodename. Possibilities are {}".format(FofbTool.Utils.tangopath_cellnodes.keys())) + logger.error("Wrong cellnodename. Possibilities are {}".format(list(config['tangopath.fofbnodes'].keys()))) return False try: @@ -242,7 +242,7 @@ def centralnode_configure_ccn(nbpm=None, npsc=None): success: boolean True if configuration is a success """ - p = FofbTool.Utils.tangopath_nodes["centralnode"] + p = config["tangopath.fofbnodes"]["centralnode"] try: prx= tango.DeviceProxy(p) except tango.DevFailed as e: @@ -252,7 +252,7 @@ def centralnode_configure_ccn(nbpm=None, npsc=None): if nbpm is None: logger.debug("Use default value for nbpm") - nbpm = [getconf("nbpm", "ccn", n, 'i') for n in FofbTool.Utils.tangopath_cellnodes.keys()] + nbpm = [getconf("nbpm", "ccn", n, 'i') for n in config['tangopath.fofbnodes'].keys() if 'cellnode' in n] logger.debug("{} bpm expected in the ethernet frame on {}".format(nbpm, p)) if npsc is None: @@ -304,9 +304,9 @@ def cellnode_configure_comcorr(cellnodename, pscid=None, enable=True): # Get device proxy try: - p = FofbTool.Utils.tangopath_cellnodes[cellnodename.lower()] + p = config["tangopath.fofbnodes"][cellnodename.lower()] except KeyError: - logger.error("Wrong cellnodename. Possibilities are {}".format(FofbTool.Utils.tangopath_cellnodes.keys())) + logger.error("Wrong cellnodename. Possibilities are {}".format(list(config['tangopath.fofbnodes'].keys()))) return False try: @@ -343,7 +343,7 @@ def centralnode_configure_corr(): """ Configure the correction algorithm on the centralnode. """ - p = FofbTool.Utils.tangopath_nodes["centralnode"] + p = config["tangopath.fofbnodes"]["centralnode"] try: prx= tango.DeviceProxy(p) except tango.DevFailed as e: diff --git a/FofbTool/Utils.py b/FofbTool/Utils.py index 5ceb81c20876dfaf25ba22d79b3f7723bb5dbd05..303a3df9bffbef5d6293e1075088999b953a95f1 100644 --- a/FofbTool/Utils.py +++ b/FofbTool/Utils.py @@ -15,26 +15,6 @@ import FofbTool.Operation # Get the module logger logger = logging.getLogger("FofbTool") -tangopath_cellnodes = { - "cellnode-c01":"ans/dg/fofb-cellnode-c01", - "cellnode-c06":"ans/dg/fofb-cellnode-c06", - "cellnode-c09":"ans/dg/fofb-cellnode-c09", - "cellnode-c14":"ans/dg/fofb-cellnode-c14", - } - -tangopath_nodes = { - "centralnode":"ans/dg/fofb-centralnode", - } -tangopath_nodes.update(tangopath_cellnodes) - -tangopath = { - "fofb-watcher":"ans/dg/fofb-watcher", - "fofb-command":"ans/dg/fofb-command", - "fofb-manager":"ans/dg/fofb-manager", - "bpm-manager":"ans/dg/bpm-manager", - } -tangopath.update(tangopath_nodes) - def init_opcua(): """ Run init on all OPCUA devices. Catch DevFailed and inform via log. @@ -45,7 +25,7 @@ def init_opcua(): logger.warning("Not running configuration of combpm because FOFB seems to be running.") return - for i,(n,p) in enumerate(tangopath_nodes.items()): + for n,p in FofbTool.Configuration.config["tangopath.fofbnodes"].items(): logger.info("Perform init() on {} '{}'".format(n,p)) try: tango.DeviceProxy(p).init() @@ -63,11 +43,12 @@ def init_watcher(): logger.warning("Not running configuration of combpm because FOFB seems to be running.") return + p=FofbTool.Configuration.config["tangopath"]["fofb-watcher"] try: - wprx=tango.DeviceProxy(tangopath["fofb-watcher"]) + wprx=tango.DeviceProxy(p) wprx.set_timeout_millis(60000) except tango.DevFailed as e: - logger.error("Could not get DeviceProxy on {}".format(tangopath["fofb-watcher"])) + logger.error("Could not get DeviceProxy on {}".format(p)) logger.debug(str(e)) return @@ -79,17 +60,18 @@ def init_watcher(): logger.debug(str(e)) logger.info("Perform init() on Fofb-Command.") + p=FofbTool.Configuration.config["tangopath"]["fofb-command"] try: - tango.DeviceProxy(tangopath["fofb-command"]).init() + tango.DeviceProxy(p).init() except tango.DevFailed as e: - logger.error("Could not perform init() on '{}', got DevFailed.".format(tangopath['fofb-command'])) + logger.error("Could not perform init() on '{}', got DevFailed.".format(p)) logger.debug(str(e)) def confds_opcua(): """ Apply attribute configuration on all OPCUA devices. Catch DevFailed and inform via log. """ - for i,(n,p) in enumerate(tangopath_nodes.items()): + for n,p in FofbTool.Configuration.config["tangopath.fofbnodes"].items(): try: prx = tango.DeviceProxy(p) except tango.DevFailed as e: @@ -118,10 +100,11 @@ def check_fofbnotrunning(): True if FOFB is not running """ + p=FofbTool.Configuration.config["tangopath"]["fofb-watcher"] try: - prx = tango.DeviceProxy(tangopath["fofb-watcher"]) + prx = tango.DeviceProxy(p) except tango.DevFailed as e: - logger.error("Failed to get the Device proxy to '{}'".format(tangopath["fofb-watcher"])) + logger.error("Failed to get the Device proxy to '{}'".format(p)) logger.debug(str(e)) return False @@ -148,9 +131,10 @@ def conf_all_combpm(): return False success=True - for i,(n,p) in enumerate(tangopath_cellnodes.items()): - s=FofbTool.Configuration.cellnode_configure_combpm(n) - success = success and s + for n,p in FofbTool.Configuration.config["tangopath.fofbnodes"].items(): + if 'cellnode' in n: + s=FofbTool.Configuration.cellnode_configure_combpm(n) + success = success and s return success @@ -176,9 +160,10 @@ def conf_all_comcorr(enable=True): return False success=True - for i,(n,p) in enumerate(tangopath_cellnodes.items()): - s=FofbTool.Configuration.cellnode_configure_comcorr(n, enable=enable) - success = success and s + for n,p in FofbTool.Configuration.config["tangopath.fofbnodes"].items(): + if 'cellnode' in n: + s=FofbTool.Configuration.cellnode_configure_comcorr(n, enable=enable) + success = success and s return success @@ -199,9 +184,10 @@ def conf_all_ccn(): return False success=True - for i,(n,p) in enumerate(tangopath_cellnodes.items()): - s=FofbTool.Configuration.cellnode_configure_ccn(n) - success = success and s + for n,p in FofbTool.Configuration.config["tangopath.fofbnodes"].items(): + if 'cellnode' in n: + s=FofbTool.Configuration.cellnode_configure_ccn(n) + success = success and s s=FofbTool.Configuration.centralnode_configure_ccn() success = success and s @@ -224,9 +210,9 @@ def get_prx_from_nodename(nodename): """ # Get device proxy try: - p = FofbTool.Utils.tangopath_nodes[nodename.lower()] + p = FofbTool.Configuration.config["tangopath.fofbnodes"][nodename.lower()] except KeyError: - logger.error("Wrong nodename. Possibilities are {}".format(FofbTool.Utils.tangopath_nodes.keys())) + logger.error("Wrong nodename. Possibilities are {}".format(FofbTool.Configuration.config["tangopath.fofbnodes"].keys())) return None try: @@ -238,37 +224,8 @@ def get_prx_from_nodename(nodename): return prx - - -def get_prx_from_cellnodename(cellnodename): - """ - Return a tango.DeviceProxy from a cellnode name. - On failure, log error and return None. - - PARAMETERS - ---------- - nodename: str - The target fofbnode, ie 'cellnode-c09' - - RETURN - ------ - prx: tango.DeviceProxy or None - """ - # Get device proxy - try: - p = FofbTool.Utils.tangopath_cellnodes[cellnodename.lower()] - except KeyError: - logger.error("Wrong nodename. Possibilities are {}".format(FofbTool.Utils.tangopath_cellnodes.keys())) - return None - - try: - prx= tango.DeviceProxy(p) - except tango.DevFailed as e: - logger.error("Failed to get the Device proxy to '{}'".format(p)) - logger.debug(str(e)) - return None - - return prx +# No more difference +get_prx_from_cellnodename = get_prx_from_nodename def stop_all_combpm(): """ @@ -280,8 +237,9 @@ def stop_all_combpm(): if not check_fofbnotrunning(): logger.warning("Not running stop combpm because FOFB seems to be running.") - for i,(n,p) in enumerate(tangopath_cellnodes.items()): - FofbTool.Operation.stop_combpm(n) + for n,p in FofbTool.Configuration.config["tangopath.fofbnodes"].items(): + if 'cellnode' in n: + FofbTool.Operation.stop_combpm(n) def stop_all_ccn(): @@ -294,7 +252,7 @@ def stop_all_ccn(): if not check_fofbnotrunning(): logger.warning("Not running stop combpm because FOFB seems to be running.") - for i,(n,p) in enumerate(tangopath_nodes.items()): + for n,p in FofbTool.Configuration.config["tangopath.fofbnodes"].items(): FofbTool.Operation.stop_ccn(n) FofbTool.Operation.reset_ccn(n) @@ -306,8 +264,9 @@ def start_all_combpm(): """ - for i,(n,p) in enumerate(tangopath_cellnodes.items()): - FofbTool.Operation.start_combpm(n) + for n,p in FofbTool.Configuration.config["tangopath.fofbnodes"].items(): + if 'cellnode' in n: + FofbTool.Operation.start_combpm(n) def start_all_ccn(): @@ -316,7 +275,7 @@ def start_all_ccn(): """ - for i,(n,p) in enumerate(tangopath_nodes.items()): + for n,p in FofbTool.Configuration.config["tangopath.fofbnodes"].items(): FofbTool.Operation.start_ccn(n) diff --git a/FofbTool/default.cfg b/FofbTool/default.cfg index 1841bf1ffbb817a7c0e0c79b67c613252fbd3be0..3c5243ad38bbab5e3232278973689179e23df060 100644 --- a/FofbTool/default.cfg +++ b/FofbTool/default.cfg @@ -90,3 +90,16 @@ pscid = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 numbpm = 122 + +[tangopath] +fofb-watcher=ans/dg/fofb-watcher +fofb-command=ans/dg/fofb-command +fofb-manager=ans/dg/fofb-manager +bpm-manager=ans/dg/bpm-manager + +[tangopath.fofbnodes] +centralnode=ans/dg/fofb-centralnode +cellnode-c01=ans/dg/fofb-cellnode-c01 +cellnode-c06=ans/dg/fofb-cellnode-c06 +cellnode-c09=ans/dg/fofb-cellnode-c09 +cellnode-c14=ans/dg/fofb-cellnode-c14