def __init__(self, platform_id, driver_config, parent_platform_id=None): """ Creates an OmsPlatformDriver instance. @param platform_id Corresponding platform ID @param driver_config with required 'oms_uri' entry. @param parent_platform_id Platform ID of my parent, if any. This is mainly used for diagnostic purposes """ PlatformDriver.__init__(self, platform_id, driver_config, parent_platform_id) if not 'oms_uri' in driver_config: raise PlatformDriverException(msg="driver_config does not indicate 'oms_uri'") oms_uri = driver_config['oms_uri'] log.debug("%r: creating OmsClient instance with oms_uri=%r", self._platform_id, oms_uri) self._oms = OmsClientFactory.create_instance(oms_uri) log.debug("%r: OmsClient instance created: %s", self._platform_id, self._oms) # TODO set-up configuration for notification of events associated # with values retrieved during platform resource monitoring # _monitors: dict { attr_id: OmsResourceMonitor } self._monitors = {} # we can instantiate this here as the the actual http server is # started via corresponding method. self._event_listener = OmsEventListener(self._notify_driver_event)
def setUp(self): self._start_container() self.container.start_rel_from_url('res/deploy/r2deploy.yml') self.rrclient = ResourceRegistryServiceClient(node=self.container.node) self.omsclient = ObservatoryManagementServiceClient(node=self.container.node) self.imsclient = InstrumentManagementServiceClient(node=self.container.node) self.damsclient = DataAcquisitionManagementServiceClient(node=self.container.node) self.dpclient = DataProductManagementServiceClient(node=self.container.node) self.pubsubcli = PubsubManagementServiceClient(node=self.container.node) self.processdispatchclient = ProcessDispatcherServiceClient(node=self.container.node) self.dataprocessclient = DataProcessManagementServiceClient(node=self.container.node) self.dataset_management = DatasetManagementServiceClient() self.platformModel_id = None # rsn_oms: to retrieve network structure and information from RSN-OMS: # Note that OmsClientFactory will create an "embedded" RSN OMS # simulator object by default. self.rsn_oms = OmsClientFactory.create_instance() self.all_platforms = {} self.topology = {} self.agent_device_map = {} self.agent_streamconfig_map = {} self._async_data_result = AsyncResult() self._data_subscribers = [] self._samples_received = [] self.addCleanup(self._stop_data_subscribers) self._async_event_result = AsyncResult() self._event_subscribers = [] self._events_received = [] self.addCleanup(self._stop_event_subscribers) self._start_event_subscriber() self._set_up_DataProduct_obj() self._set_up_PlatformModel_obj()
def setUpClass(cls): OmsTestMixin.setUpClass() cls.oms = OmsClientFactory.create_instance() OmsTestMixin.start_http_server()
import subprocess subprocess.call(dot_cmd.split()) subprocess.call(open_cmd.split()) except Exception, e: print "error generating diagrams: %s" % str(e) uri = os.getenv("OMS", "http://*****:*****@10.180.80.10:9021/") ##### import re if re.search("simulator", uri): from ion.agents.platform.oms.oms_client_factory import OmsClientFactory oms = OmsClientFactory.create_instance(uri) print "ping() = %s" % oms.ping() map = oms.getPlatformMap() print "getPlatformMap() = %s" % map nodes = NNode.create_network(map) if not "" in nodes: print "platform map does not include '' to indicate root platforms." else: dummy_root = nodes[""] gen_diagrams("sim_topology", dummy_root) sys.exit() ##### proxy = xmlrpclib.ServerProxy(uri) retval = proxy.hello.ping()