in groups/group_setup.py [0:0]
def get_subscription_definition(self, config):
"""
Get the Master Group Type's subscription definition
:param config: gg_group_setup.GroupConfigFile used with the Group Type
:return: the subscription definition used to provision the group
"""
cfg = config
d = cfg['devices']
l = cfg['lambda_functions']
s = cfg['subscriptions']
definition = [
{ # from Master belt device to MasterErrorDetector Lambda
"Id": "5",
"Source": d[self.belt_ggd_name]['thing_arn'],
"Subject": s['telemetry'],
"Target": l['MasterErrorDetector']['arn']
},
{ # from Master belt device to web device
"Id": "10",
"Source": d[self.belt_ggd_name]['thing_arn'],
"Subject": s['all'],
"Target": d[self.web_ggd_name]['thing_arn']
},
{ # from Master belt device to MasterBrain Lambda
"Id": "11",
"Source": d[self.belt_ggd_name]['thing_arn'],
"Subject": s['stages'],
"Target": l['MasterBrain']['arn']
},
{ # from MasterErrorDetector to MasterBrain Lambda
"Id": "12",
"Source": l['MasterErrorDetector']['arn'],
"Subject": s['errors'],
"Target": l['MasterBrain']['arn']
},
{ # from MasterErrorDetector to AWS cloud
"Id": "13",
"Source": l['MasterErrorDetector']['arn'],
"Subject": s['errors'],
"Target": "cloud"
},
{ # from Master belt device to AWS cloud
"Id": "15",
"Source": d[self.belt_ggd_name]['thing_arn'],
"Subject": s['stages'],
"Target": "cloud"
},
{ # from Master web device to Greengrass Core local shadow
"Id": "16",
"Source": d[self.web_ggd_name]['thing_arn'],
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get",
"Target": "GGShadowService"
},
{ # from Greengrass Core local shadow to Master web device
"Id": "17",
"Source": "GGShadowService",
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get/#",
"Target": d[self.web_ggd_name]['thing_arn']
},
{ # from Master bridge device to Master web device
"Id": "18",
"Source": d[self.bridge_ggd_name]['thing_arn'],
"Subject": "sort/arm/#",
"Target": d[self.web_ggd_name]['thing_arn']
},
{ # from Master bridge device to MasterBrain Lambda
"Id": "19",
"Source": d[self.bridge_ggd_name]['thing_arn'],
"Subject": "sort/arm/stages",
"Target": l['MasterBrain']['arn']
},
{ # from Master bridge device to MasterBrain Lambda
"Id": "20",
"Source": d[self.bridge_ggd_name]['thing_arn'],
"Subject": "sort/arm/errors",
"Target": l['MasterBrain']['arn']
},
{ # from Master bridge device to MasterBrain Lambda, stages topic
"Id": "21",
"Source": d[self.bridge_ggd_name]['thing_arn'],
"Subject": "inv/arm/stages",
"Target": l['MasterBrain']['arn']
},
{ # from Master bridge device to MasterBrain Lambda, errors topic
"Id": "22",
"Source": d[self.bridge_ggd_name]['thing_arn'],
"Subject": "inv/arm/errors",
"Target": l['MasterBrain']['arn']
},
{ # from Master bridge device to Master web device, all topics
"Id": "23",
"Source": d[self.bridge_ggd_name]['thing_arn'],
"Subject": "inv/arm/#",
"Target": d[self.web_ggd_name]['thing_arn']
},
{ # from Master belt device to Greengrass Core local shadow, get
"Id": "31",
"Source": d[self.belt_ggd_name]['thing_arn'],
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get",
"Target": "GGShadowService"
},
{ # from Greengrass Core local shadow to Master belt device, get
"Id": "32",
"Source": "GGShadowService",
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get/#",
"Target": d[self.belt_ggd_name]['thing_arn']
},
{ # from Master belt device to Greengrass Core local shadow, update
"Id": "34",
"Source": d[self.belt_ggd_name]['thing_arn'],
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update",
"Target": "GGShadowService"
},
{ # from Greengrass Core local shadow to Master belt device, update
"Id": "35",
"Source": "GGShadowService",
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update/#",
"Target": d[self.belt_ggd_name]['thing_arn']
},
{ # from InvArm arm device to Master Greengrass Core local shadow
"Id": "84",
"Source": d[self.inv_arm_ggd_name]['thing_arn'], # GGD matches ArmType
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get",
"Target": "GGShadowService"
},
{ # from Master Greengrass Core local shadow to InvArm arm device
"Id": "85",
"Source": "GGShadowService",
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get/#",
"Target": d[self.inv_arm_ggd_name]['thing_arn'] # GGD matches ArmType
},
{ # from InvArm arm device to Master Greengrass Core local shadow
"Id": "86",
"Source": d[self.inv_arm_ggd_name]['thing_arn'], # GGD matches ArmType
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update",
"Target": "GGShadowService"
},
{ # from Master Greengrass Core local shadow to InvArm arm device
"Id": "87",
"Source": "GGShadowService",
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update/#",
"Target": d[self.inv_arm_ggd_name]['thing_arn'] # GGD matches ArmType
},
{ # from SortArm arm device to Master Greengrass Core local shadow
"Id": "92",
"Source": d[self.sort_arm_ggd_name]['thing_arn'], # GGD matches ArmType
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get",
"Target": "GGShadowService"
},
{ # from Master Greengrass Core local shadow to SortArm arm device
"Id": "93",
"Source": "GGShadowService",
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/get/#",
"Target": d[self.sort_arm_ggd_name]['thing_arn'] # GGD matches ArmType
},
{ # from SortArm arm device to Master Greengrass Core local shadow
"Id": "94",
"Source": d[self.sort_arm_ggd_name]['thing_arn'], # GGD matches ArmType
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update",
"Target": "GGShadowService"
},
{ # from Master Greengrass Core local shadow to SortArm arm device
"Id": "95",
"Source": "GGShadowService",
"Subject": "$aws/things/"+ self.master_brain_shadow + "/shadow/update/#",
"Target": d[self.sort_arm_ggd_name]['thing_arn'] # GGD matches ArmType
},
{ # from Master heartbeat device to AWS cloud
"Id": "97",
"Source": d[self.heartbeat_ggd_name]['thing_arn'],
"Subject": "heart/beat",
"Target": "cloud"
},
{ # from Master button device to MasterBrain Lambda
"Id": "98",
"Source": d[self.button_ggd_name]['thing_arn'],
"Subject": "button",
"Target": l['MasterBrain']['arn']
}
]
logging.debug(
'[master.get_subscription_definition] definition:{0}'.format(
definition)
)
return definition