Skip to content

Commit

Permalink
Merge branch 'master' of github.com:ooici/coi-services
Browse files Browse the repository at this point in the history
  • Loading branch information
deverett committed Apr 17, 2013
2 parents 0411ba7 + 72011de commit cf57451
Show file tree
Hide file tree
Showing 21 changed files with 736 additions and 345 deletions.
2 changes: 1 addition & 1 deletion extern/pyon
4 changes: 2 additions & 2 deletions ion/agents/alerts/alerts.py
Expand Up @@ -159,7 +159,7 @@ def get_status(self):
status['upper_rel_op'] = self._upper_rel_op
return status

def eval_alert(self, stream_name=None, value=None, value_id=None):
def eval_alert(self, stream_name=None, value=None, value_id=None, **kwargs):

if stream_name != self._stream_name or value_id != self._value_id \
or not value:
Expand Down Expand Up @@ -309,7 +309,7 @@ def get_status(self):
status['time_delta'] = self._time_delta
return status

def eval_alert(self, stream_name=None):
def eval_alert(self, stream_name=None, **kwargs):
if stream_name != self._stream_name:
return

Expand Down
14 changes: 14 additions & 0 deletions ion/agents/instrument/instrument_agent.py
Expand Up @@ -814,6 +814,20 @@ def _async_driver_event_sample(self, val, ts):
values : [{u'value_id': u'temp', u'value': 19.0612},
{u'value_id': u'conductivity', u'value': 3.33791},
{u'value_id': u'pressure', u'value': 449.005}]
u'quality_flag': u'ok',
u'preferred_timestamp': u'port_timestamp',
u'stream_name': u'raw',
u'port_timestamp': 3575139438.357514,
u'pkt_format_id': u'JSON_Data',
u'pkt_version': 1,
u'values': [
{u'binary': True, u'value_id': u'raw', u'value': u'aABlAGEAcgB0AGIAZQBhAHQAXwBpAG4AdABlAHIAdgBhAGwAIAAwAA=='},
{u'value_id': u'length', u'value': 40},
{u'value_id': u'type', u'value': 1},
{u'value_id': u'checksum', u'value': None}
],
u'driver_timestamp': 3575139438.206242
"""

# If the sample event is encoded, load it back to a dict.
Expand Down
73 changes: 62 additions & 11 deletions ion/agents/platform/test/base_test_platform_agent_with_rsn.py
Expand Up @@ -36,7 +36,7 @@
from pyon.public import log
import logging
from pyon.public import IonObject
from pyon.core.exception import ServerError
from pyon.core.exception import ServerError, Conflict

from pyon.util.int_test import IonIntegrationTestCase

Expand All @@ -58,9 +58,12 @@
from nose.plugins.attrib import attr

from pyon.agent.agent import ResourceAgentClient
from pyon.agent.agent import ResourceAgentState
from pyon.agent.agent import ResourceAgentEvent

from interface.objects import AgentCommand, ProcessStateEnum
from interface.objects import StreamConfiguration
from interface.objects import StreamAlertType
from interface.objects import StreamAlertType, AggregateStatusType

from ion.agents.port.port_agent_process import PortAgentProcessType, PortAgentType

Expand Down Expand Up @@ -196,8 +199,8 @@

# The value should probably be defined in pyon.yml or some common place so
# clients don't have to do updates upon new versions of the egg.
SBE37_EGG = "http://sddevrepo.oceanobservatories.org/releases/seabird_sbe37smb_ooicore-0.1.0-py2.7.egg"

#SBE37_EGG = "http://sddevrepo.oceanobservatories.org/releases/seabird_sbe37smb_ooicore-0.1.1-py2.7.egg"
SBE37_EGG = "http://sddevrepo.oceanobservatories.org/releases/seabird_sbe37smb_ooicore-0.1.1-py2.7.egg"

class FakeProcess(LocalContextMixin):
"""
Expand Down Expand Up @@ -422,12 +425,12 @@ def _get_instrument_stream_configs(self):
configs copied from test_activate_instrument.py
"""
return [
StreamConfiguration(stream_name='ctd_raw',
StreamConfiguration(stream_name='raw',
parameter_dictionary_name='ctd_raw_param_dict',
records_per_granule=2,
granule_publish_rate=5),

StreamConfiguration(stream_name='ctd_parsed',
StreamConfiguration(stream_name='parsed',
parameter_dictionary_name='ctd_parsed_param_dict',
records_per_granule=2, granule_publish_rate=5)
]
Expand Down Expand Up @@ -714,19 +717,31 @@ def _make_instrument_agent_structure(self, instr_key, org_obj, agent_config=None
log.debug("new InstrumentDevice id = %s ", instrument_device_id)

#Create stream alarms
alert_def = {


temp_alert_def = {
'name' : 'temperature_warning_interval',
'stream_name' : 'ctd_parsed',
'stream_name' : 'parsed',
'message' : 'Temperature is below the normal range of 50.0 and above.',
'alert_type' : StreamAlertType.WARNING,
'aggregate_type' : AggregateStatusType.AGGREGATE_DATA,
'value_id' : 'temp',
'resource_id' : instrument_device_id,
'origin_type' : 'device',
'lower_bound' : 50.0,
'lower_rel_op' : '<',
'alert_class' : 'IntervalAlert'
}

late_data_alert_def = {
'name' : 'late_data_warning',
'stream_name' : 'parsed',
'message' : 'Expected data has not arrived.',
'alert_type' : StreamAlertType.WARNING,
'aggregate_type' : AggregateStatusType.AGGREGATE_COMMS,
'value_id' : None,
'time_delta' : 2,
'alert_class' : 'LateDataAlert'
}

instrument_driver_config = self._set_up_pre_environment_for_instrument(instr_info)

port_agent_config = {
Expand All @@ -747,7 +762,7 @@ def _make_instrument_agent_structure(self, instr_key, org_obj, agent_config=None
description="SBE37IMAgentInstance_%s" % instr_key,
driver_config=instrument_driver_config,
port_agent_config=port_agent_config,
alerts=[alert_def])
alerts=[temp_alert_def, late_data_alert_def])

instrument_agent_instance_obj.agent_config = agent_config

Expand Down Expand Up @@ -1223,3 +1238,39 @@ def _check_sync(self):
self.assertEquals(retval.result[0:3], "OK:")
return retval.result

def _stream_instruments(self):
from mi.instrument.seabird.sbe37smb.ooicore.driver import SBE37ProtocolEvent
from mi.instrument.seabird.sbe37smb.ooicore.driver import SBE37Parameter

for instrument in self._setup_instruments.itervalues():
# instruments that have been set up: instr_key: i_obj

# Start a resource agent client to talk with the instrument agent.
_ia_client = self._create_resource_agent_client(instrument.instrument_device_id)

cmd = AgentCommand(command=SBE37ProtocolEvent.START_AUTOSAMPLE)
retval = _ia_client.execute_resource(cmd)
log.debug('_stream_instruments retval: %s', retval)

return

def _idle_instruments(self):
from mi.instrument.seabird.sbe37smb.ooicore.driver import SBE37ProtocolEvent
from mi.instrument.seabird.sbe37smb.ooicore.driver import SBE37Parameter

for instrument in self._setup_instruments.itervalues():
# instruments that have been set up: instr_key: i_obj

# Start a resource agent client to talk with the instrument agent.
_ia_client = self._create_resource_agent_client(instrument.instrument_device_id)

cmd = AgentCommand(command=SBE37ProtocolEvent.STOP_AUTOSAMPLE)
with self.assertRaises(Conflict):
retval = _ia_client.execute_resource(cmd)

cmd = AgentCommand(command=ResourceAgentEvent.RESET)
retval = _ia_client.execute_agent(cmd)
state = _ia_client.get_agent_state()
self.assertEqual(state, ResourceAgentState.UNINITIALIZED)

return
2 changes: 1 addition & 1 deletion ion/core/ooiref.py
Expand Up @@ -40,7 +40,7 @@ def __init__(self, rdstr):
self.dataproduct = rdstr
else:
# <array > <site > <subs > -<nodetype> <nodeseq > -<port# > -<instclass ><series ><seq>
m = re.match('^([A-Z]{2})(?:(\d{2})(?:(\w{4})(?:-([A-Z]{2})(?:([A-Z0-9]{3})(?:-([A-Z0-9]{2})(?:-([A-Z0-9]{5})([A-Z0-9])(\d{3})?)?)?)?)?)?)?$', rdstr)
m = re.match(r'^([A-Z]{2})(?:(\d{2})(?:(\w{4})(?:-([A-Z]{2})(?:([A-Z0-9]{3})(?:-([A-Z0-9]{2})(?:-([A-Z0-9]{5})([A-Z0-9])(\d{3})?)?)?)?)?)?)?$', rdstr)
if m:
self.rd_type = "asset"
self.array, self.site, self.subsite, self.node_type, self.node_seq, self.port, self.inst_class, self.inst_series, self.inst_seq = m.groups()
Expand Down
2 changes: 1 addition & 1 deletion ion/processes/bootstrap/datastore_loader.py
Expand Up @@ -24,7 +24,7 @@ class DatastoreAdmin(ImmediateProcess):
bin/pycc -x ion.processes.bootstrap.datastore_loader.DatastoreLoader op=clear prefix=ion
bin/pycc -x ion.processes.bootstrap.datastore_loader.DatastoreLoader op=dump path=res/preload/local/my_dump
bin/pycc -fc -x ion.processes.bootstrap.datastore_loader.DatastoreLoader op=load path=res/preload/local/my_dump
bin/pycc -fc -x ion.processes.bootstrap.datastore_loader.DatastoreLoader op=dumpres
bin/pycc -x ion.processes.bootstrap.datastore_loader.DatastoreLoader op=dumpres
"""
def on_init(self):
pass
Expand Down

0 comments on commit cf57451

Please sign in to comment.