Skip to content

Commit

Permalink
take driver config from agent instance and override it where appropriate
Browse files Browse the repository at this point in the history
  • Loading branch information
ianfixes committed Mar 14, 2013
1 parent 7139e3d commit c8738e3
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
12 changes: 9 additions & 3 deletions ion/services/sa/instrument/agent_configuration_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,7 @@ def _generate_device_type(self):
return type(self._get_device()).__name__

def _generate_driver_config(self):
# should override this
return {}
return self.agent_instance_obj.driver_config

def _generate_stream_config(self):
dsm = self.clients.dataset_management
Expand Down Expand Up @@ -383,19 +382,26 @@ def _generate_startup_config(self):
return self.agent_instance_obj.startup_config

def _generate_driver_config(self):
# get default config
driver_config = super(InstrumentAgentConfigurationBuilder, self)._generate_driver_config()

instrument_agent_instance_obj = self.agent_instance_obj
agent_obj = self._get_agent()

# Create driver config.
driver_config = {
add_driver_config = {
'workdir' : tempfile.gettempdir(),
'comms_config' : instrument_agent_instance_obj.driver_config.get('comms_config'),
'pagent_pid' : instrument_agent_instance_obj.driver_config.get('pagent_pid'),
'dvr_mod' : agent_obj.driver_module,
'dvr_cls' : agent_obj.driver_class
}

for k, v in add_driver_config.iteritems():
if k in driver_config:
log.warn("Overwriting Agent driver_config[%s] of '%s' with '%s'", k, driver_config[k], v)
driver_config[k] = v

return driver_config


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -498,9 +498,13 @@ def verify_child_config(config, device_id, inst_device_id=None):
self.assertIn(key, config)
self.assertEqual('Org_1', config['org_name'])
self.assertEqual(RT.PlatformDevice, config['device_type'])
self.assertEqual({'process_type': ('ZMQPyClassDriverLauncher',)}, config['driver_config'])
self.assertEqual({'resource_id': device_id}, config['agent'])
self.assertIn('stream_config', config)
self.assertIn('driver_config', config)
self.assertIn('foo', config['driver_config'])
self.assertEqual('bar', config['driver_config']['foo'])
self.assertIn('process_type', config['driver_config'])
self.assertEqual(('ZMQPyClassDriverLauncher',), config['driver_config']['process_type'])

if None is inst_device_id:
for key in ['alarm_defs', 'children', 'startup_config']:
Expand All @@ -518,7 +522,8 @@ def verify_parent_config(config, parent_device_id, child_device_id, inst_device_
self.assertIn(key, config)
self.assertEqual('Org_1', config['org_name'])
self.assertEqual(RT.PlatformDevice, config['device_type'])
self.assertEqual({'process_type': ('ZMQPyClassDriverLauncher',)}, config['driver_config'])
self.assertIn('process_type', config['driver_config'])
self.assertEqual(('ZMQPyClassDriverLauncher',), config['driver_config']['process_type'])
self.assertEqual({'resource_id': parent_device_id}, config['agent'])
self.assertIn('stream_config', config)
for key in ['alarm_defs', 'startup_config']:
Expand All @@ -541,7 +546,7 @@ def _make_platform_agent_structure(agent_config=None):
if None is agent_config: agent_config = {}

# instance creation
platform_agent_instance_obj = any_old(RT.PlatformAgentInstance)
platform_agent_instance_obj = any_old(RT.PlatformAgentInstance, {'driver_config': {'foo': 'bar'}})
platform_agent_instance_obj.agent_config = agent_config
platform_agent_instance_id = self.IMS.create_platform_agent_instance(platform_agent_instance_obj)

Expand Down

0 comments on commit c8738e3

Please sign in to comment.