예제 #1
0
        def set_ports(pnode):
            platform_id = pnode.platform_id
            port_infos = rsn_oms.get_platform_ports(platform_id)
            if not isinstance(port_infos, dict):
                log.warn("%r: get_platform_ports returned: %s",
                         platform_id, port_infos)
                return

            if log.isEnabledFor(logging.TRACE):
                log.trace("%r: port_infos: %s", platform_id, port_infos)

            assert platform_id in port_infos
            ports = port_infos[platform_id]
            for port_id, dic in ports.iteritems():
                port = PortNode(port_id, dic['network'])
                port.set_on(dic['is_on'])
                pnode.add_port(port)

                # add connected instruments:
                instrs_res = rsn_oms.get_connected_instruments(platform_id, port_id)
                if not isinstance(instrs_res, dict):
                    log.warn("%r: port_id=%r: get_connected_instruments "
                             "returned: %s" % (platform_id, port_id, instrs_res))
                    continue

                if log.isEnabledFor(logging.TRACE):
                    log.trace("%r: port_id=%r: get_connected_instruments "
                              "returned: %s" % (platform_id, port_id, instrs_res))
                assert platform_id in instrs_res
                assert port_id in instrs_res[platform_id]
                instr = instrs_res[platform_id][port_id]
                for instrument_id, attrs in instr.iteritems():
                    port.add_instrument(InstrumentNode(instrument_id, attrs))
예제 #2
0
        def set_ports(pnode):
            platform_id = pnode.platform_id
            port_infos = rsn_oms.get_platform_ports(platform_id)
            if not isinstance(port_infos, dict):
                log.warn("%r: get_platform_ports returned: %s", platform_id,
                         port_infos)
                return

            if log.isEnabledFor(logging.TRACE):
                log.trace("%r: port_infos: %s", platform_id, port_infos)

            assert platform_id in port_infos
            ports = port_infos[platform_id]
            for port_id, dic in ports.iteritems():
                port = PortNode(port_id, dic['network'])
                pnode.add_port(port)

                # add connected instruments:
                instrs_res = rsn_oms.get_connected_instruments(
                    platform_id, port_id)
                if not isinstance(instrs_res, dict):
                    log.warn("%r: port_id=%r: get_connected_instruments "
                             "returned: %s" %
                             (platform_id, port_id, instrs_res))
                    continue

                if log.isEnabledFor(logging.TRACE):
                    log.trace("%r: port_id=%r: get_connected_instruments "
                              "returned: %s" %
                              (platform_id, port_id, instrs_res))
                assert platform_id in instrs_res
                assert port_id in instrs_res[platform_id]
                instr = instrs_res[platform_id][port_id]
                for instrument_id, attrs in instr.iteritems():
                    port.add_instrument(InstrumentNode(instrument_id, attrs))
예제 #3
0
 def _add_ports_to_platform_node(ports, pn):
     for port_info in ports:
         _require('port_id' in port_info,
                  "_add_ports_to_platform_node(): 'port_id' not in port_info")
         port_id = port_info['port_id']
         port = PortNode(port_id)
         for instrument_id in port_info.get('instrument_ids', []):
             port.add_instrument_id(instrument_id)
         pn.add_port(port)
예제 #4
0
 def _add_ports_to_platform_node(ports, pn):
     for port_info in ports:
         _require('port_id' in port_info,
                  "_add_ports_to_platform_node(): 'port_id' not in port_info")
         port_id = port_info['port_id']
         port = PortNode(port_id)
         for instrument_id in port_info.get('instrument_ids', []):
             port.add_instrument_id(instrument_id)
         pn.add_port(port)
예제 #5
0
        def set_ports(pnode):
            platform_id = pnode.platform_id
            port_infos = rsn_oms.port.get_platform_ports(platform_id)
            if not isinstance(port_infos, dict):
                raise PlatformDriverException(
                    "%r: get_platform_ports response is not a dict: %s" % (
                    platform_id, port_infos))

            if log.isEnabledFor(logging.TRACE):
                log.trace("%r: port_infos: %s", platform_id, port_infos)

            if not platform_id in port_infos:
                raise PlatformDriverException(
                    "%r: get_platform_ports response does not include "
                    "platform_id: %s" % (platform_id, port_infos))

            ports = port_infos[platform_id]

            if not isinstance(ports, dict):
                raise PlatformDriverException(
                    "%r: get_platform_ports: entry for platform_id is "
                    "not a dict: %s" % (platform_id, ports))

            for port_id, dic in ports.iteritems():
                port = PortNode(port_id, dic['network'])
                port.set_state(dic['state'])
                pnode.add_port(port)

                # add connected instruments:
                instrs_res = rsn_oms.instr.get_connected_instruments(platform_id, port_id)
                if not isinstance(instrs_res, dict):
                    log.warn("%r: port_id=%r: get_connected_instruments "
                             "response is not a dict: %s" % (platform_id, port_id, instrs_res))
                    continue

                if log.isEnabledFor(logging.TRACE):
                    log.trace("%r: port_id=%r: get_connected_instruments "
                              "returned: %s" % (platform_id, port_id, instrs_res))

                if not platform_id in instrs_res:
                    raise PlatformDriverException(
                        "%r: port_id=%r: get_connected_instruments response"
                        "does not have entry for platform_id: %s" % (
                        platform_id, ports))

                if not port_id in instrs_res[platform_id]:
                    raise PlatformDriverException(
                        "%r: port_id=%r: get_connected_instruments response "
                        "for platform_id does not have entry for port_id: %s" % (
                        platform_id, port_id, instrs_res[platform_id]))

                instr = instrs_res[platform_id][port_id]
                for instrument_id, attrs in instr.iteritems():
                    port.add_instrument(InstrumentNode(instrument_id, attrs))
예제 #6
0
 def build_and_add_ports_to_node(ports, pn):
     for port_info in ports:
         _require('port_id' in port_info)
         port_id = port_info['port_id']
         port = PortNode(port_id)
         if 'instruments' in port_info:
             for instrument in port_info['instruments']:
                 instrument_id = instrument['instrument_id']
                 _require(not instrument_id in port.instrument_ids,
                          'port_id=%r: duplicate instrument_id=%r' % (
                          port_id, instrument_id))
                 port.add_instrument_id(instrument_id)
         pn.add_port(port)
예제 #7
0
 def build_and_add_ports_to_node(ports, pn):
     for port_info in ports:
         _require('port_id' in port_info)
         port_id = port_info['port_id']
         port = PortNode(port_id)
         if 'instruments' in port_info:
             for instrument in port_info['instruments']:
                 instrument_id = instrument['instrument_id']
                 _require(not instrument_id in port.instrument_ids,
                          'port_id=%r: duplicate instrument_id=%r' % (
                          port_id, instrument_id))
                 port.add_instrument_id(instrument_id)
         pn.add_port(port)
예제 #8
0
 def build_and_add_ports_to_node(ports, pn):
     for port_info in ports:
         assert 'port_id' in port_info
         port_id = port_info['port_id']
         port = PortNode(port_id)
         port.set_state(port_info.get('state', None))
         if 'instruments' in port_info:
             for instrument in port_info['instruments']:
                 instrument_id = instrument['instrument_id']
                 if instrument_id in port.instruments:
                     raise Exception('port_id=%r: duplicate instrument ID %r' % (
                         port_id, instrument_id))
                 port.add_instrument(InstrumentNode(instrument_id))
         pn.add_port(port)
예제 #9
0
 def build_and_add_ports_to_node(ports, pn):
     for port_info in ports:
         _require("port_id" in port_info)
         port_id = port_info["port_id"]
         port = PortNode(port_id)
         port.set_state(port_info.get("state", None))
         if "instruments" in port_info:
             for instrument in port_info["instruments"]:
                 instrument_id = instrument["instrument_id"]
                 _require(
                     not instrument_id in port.instrument_ids,
                     "port_id=%r: duplicate instrument_id=%r" % (port_id, instrument_id),
                 )
                 port.add_instrument_id(instrument_id)
         pn.add_port(port)
예제 #10
0
 def build_and_add_ports_to_node(ports, pn):
     for port_info in ports:
         assert "port_id" in port_info
         assert "network" in port_info
         port_id = port_info["port_id"]
         network = port_info["network"]
         port = PortNode(port_id, network)
         port.set_on(port_info.get("is_on", False))
         if "instruments" in port_info:
             for instrument in port_info["instruments"]:
                 instrument_id = instrument["instrument_id"]
                 if instrument_id in port.instruments:
                     raise Exception("port_id=%r: duplicate instrument ID %r" % (port_id, instrument_id))
                 port.add_instrument(InstrumentNode(instrument_id))
         pn.add_port(port)
예제 #11
0
 def build_and_add_ports_to_node(ports, pn):
     for port_info in ports:
         assert 'port_id' in port_info
         assert 'network' in port_info
         port_id = port_info['port_id']
         network = port_info['network']
         port = PortNode(port_id, network)
         port.set_on(port_info.get('is_on', False))
         if 'instruments' in port_info:
             for instrument in port_info['instruments']:
                 instrument_id = instrument['instrument_id']
                 if instrument_id in port.instruments:
                     raise Exception('port_id=%r: duplicate instrument ID %r' % (
                         port_id, instrument_id))
                 port.add_instrument(InstrumentNode(instrument_id))
         pn.add_port(port)
예제 #12
0
 def _add_ports_to_platform_node(ports, pn):
     for port_info in ports:
         assert 'port_id' in port_info
         assert 'network' in port_info
         port_id = port_info['port_id']
         network = port_info['network']
         port = PortNode(port_id, network)
         pn.add_port(port)
예제 #13
0
        def set_ports(pnode):
            platform_id = pnode.platform_id
            port_infos = rsn_oms.port.get_platform_ports(platform_id)
            if not isinstance(port_infos, dict):
                raise PlatformDriverException(
                    "%r: get_platform_ports response is not a dict: %s" %
                    (platform_id, port_infos))

            if log.isEnabledFor(logging.TRACE):
                log.trace("%r: port_infos: %s", platform_id, port_infos)

            if not platform_id in port_infos:
                raise PlatformDriverException(
                    "%r: get_platform_ports response does not include "
                    "platform_id: %s" % (platform_id, port_infos))

            ports = port_infos[platform_id]

            if not isinstance(ports, dict):
                raise PlatformDriverException(
                    "%r: get_platform_ports: entry for platform_id is "
                    "not a dict: %s" % (platform_id, ports))

            for port_id, dic in ports.iteritems():
                port = PortNode(port_id, dic['network'])
                port.set_state(dic['state'])
                pnode.add_port(port)

                # add connected instruments:
                instrs_res = rsn_oms.instr.get_connected_instruments(
                    platform_id, port_id)
                if not isinstance(instrs_res, dict):
                    log.warn("%r: port_id=%r: get_connected_instruments "
                             "response is not a dict: %s" %
                             (platform_id, port_id, instrs_res))
                    continue

                if log.isEnabledFor(logging.TRACE):
                    log.trace("%r: port_id=%r: get_connected_instruments "
                              "returned: %s" %
                              (platform_id, port_id, instrs_res))

                if not platform_id in instrs_res:
                    raise PlatformDriverException(
                        "%r: port_id=%r: get_connected_instruments response"
                        "does not have entry for platform_id: %s" %
                        (platform_id, ports))

                if not port_id in instrs_res[platform_id]:
                    raise PlatformDriverException(
                        "%r: port_id=%r: get_connected_instruments response "
                        "for platform_id does not have entry for port_id: %s" %
                        (platform_id, port_id, instrs_res[platform_id]))

                instr = instrs_res[platform_id][port_id]
                for instrument_id, attrs in instr.iteritems():
                    port.add_instrument(InstrumentNode(instrument_id, attrs))
예제 #14
0
 def build_and_add_ports_to_node(ports, pn):
     for port_info in ports:
         assert 'port_id' in port_info
         assert 'network' in port_info
         port_id = port_info['port_id']
         network = port_info['network']
         port = PortNode(port_id, network)
         port.set_on(port_info.get('is_on', False))
         if 'instruments' in port_info:
             for instrument in port_info['instruments']:
                 instrument_id = instrument['instrument_id']
                 if instrument_id in port.instruments:
                     raise Exception(
                         'port_id=%r: duplicate instrument ID %r' %
                         (port_id, instrument_id))
                 port.add_instrument(InstrumentNode(instrument_id))
         pn.add_port(port)