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)
 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)
 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)
Exemple #4
0
 def _add_ports_to_platform_node(ports, pn):
     for port_info in ports:
         if not 'port_id' in port_info:
             raise PlatformDefinitionException(
                 "_add_ports_to_platform_node(): 'port_id' not in port_info"
             )
         port_id = port_info['port_id']
         port = PortNode(port_id)
         pn.add_port(port)
Exemple #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)
                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))
Exemple #6
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)