Skip to content

Commit

Permalink
Update IMS prepare_platform_device_support to have PAI instead of PA …
Browse files Browse the repository at this point in the history
…assoc
  • Loading branch information
Dave Foster committed May 24, 2013
1 parent cdfdff6 commit c1936aa
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
2 changes: 1 addition & 1 deletion extern/ion-definitions
30 changes: 30 additions & 0 deletions ion/services/sa/instrument/instrument_management_service.py
Expand Up @@ -2086,6 +2086,36 @@ def prepare_platform_device_support(self, platform_device_id=''):
'unassign_instrument_device_from_platform_device', { "instrument_device_id": "$(instrument_device_id)",
"platform_device_id": platform_device_id })

####
extended_resource_handler.set_service_requests(resource_data.associations['PlatformAgentInstance'].assign_request,
'instrument_management',
'assign_platform_agent_instance_to_platform_device',
{'platform_device_id': platform_device_id,
'platform_agent_instance_id': '$(platform_agent_instance_id)' })

extended_resource_handler.set_service_requests(resource_data.associations['PlatformAgentInstance'].unassign_request,
'instrument_management',
'unassign_platform_agent_instance_to_platform_device',
{'platform_device_id': platform_device_id,
'platform_agent_instance_id': '$(platform_agent_instance_id)' })

# prepare grouping for PAI
pa_to_pm = [a for a in self.RR2.find_associations(predicate='hasModel') if a.st=='PlatformAgent']
pai_to_pa = self.RR2.find_associations(predicate='hasAgentDefinition')

# discussions indicate we want to only show unassociated PAIs or PAIs associated with this PD
# this is a list of all PAIs resids currently associated to an PD, not including this current PD we're preparing for
cur_pd_to_pai_without_this = [a.o for a in self.RR2.find_associations(predicate='hasAgentInstance') if a.st=='PlatformDevice' and a.s != platform_device_id]
def allowed(pai):
return pai not in cur_pd_to_pai_without_this

pa_to_pai = defaultdict(list)
for a in pai_to_pa:
if allowed(a.s):
pa_to_pai[a.o].append(a.s)

resource_data.associations['PlatformAgentInstance'].group = {'group_by': 'PlatformModel',
'resources': {papmassoc.o:pa_to_pai[papmassoc.s] for papmassoc in pa_to_pm}}

return resource_data

0 comments on commit c1936aa

Please sign in to comment.