def child_device_detected(self, parent_device_id, parent_port_no, child_device_type, channel_id, **kw): id = ID() id.id = parent_device_id ppn = IntType() ppn.val = parent_port_no cdt = StrType() cdt.val = child_device_type channel = IntType() channel.val = channel_id to_topic = self.get_core_topic(parent_device_id) reply_topic = self.get_adapter_topic() # to_topic = createSubTopic(self.core_topic, parent_device_id) # reply_topic = createSubTopic(self.listening_topic, parent_device_id) args = self._to_proto(**kw) res = yield self.invoke(rpc="ChildDeviceDetected", to_topic=to_topic, reply_topic=reply_topic, parent_device_id=id, parent_port_no=ppn, child_device_type=cdt, channel_id=channel, **args) returnValue(res)
def port_state_update(self, device_id, port_type, port_no, oper_status): id = ID() id.id = device_id pt = IntType() pt.val = port_type pNo = IntType() pNo.val = port_no o_status = IntType() o_status.val = oper_status to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() # to_topic = createSubTopic(self.core_topic, device_id) # reply_topic = createSubTopic(self.listening_topic, device_id) res = yield self.invoke(rpc="PortStateUpdate", to_topic=to_topic, reply_topic=reply_topic, device_id=id, port_type=pt, port_no=pNo, oper_status=o_status) returnValue(res)
def child_devices_state_update(self, parent_device_id, oper_status=None, connect_status=None): id = ID() id.id = parent_device_id o_status = IntType() if oper_status or oper_status == OperStatus.UNKNOWN: o_status.val = oper_status else: o_status.val = -1 c_status = IntType() if connect_status or connect_status == ConnectStatus.UNKNOWN: c_status.val = connect_status else: c_status.val = -1 to_topic = self.get_core_topic(parent_device_id) reply_topic = self.get_adapter_topic() # to_topic = createSubTopic(self.core_topic, parent_device_id) # reply_topic = createSubTopic(self.listening_topic, parent_device_id) res = yield self.invoke(rpc="child_devices_state_update", to_topic=to_topic, reply_topic=reply_topic, parent_device_id=id, oper_status=o_status, connect_status=c_status) returnValue(res)
def ports_state_update( self, # TODO: Golang rw-core hdoes not have filter device_id, port_type_filter, oper_status): log.debug("ports_state_update", device_id=device_id, oper_status=oper_status) dev_id = ID() dev_id.id = device_id t_filter = IntType() t_filter.val = port_type_filter o_status = IntType() o_status.val = oper_status to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="PortsStateUpdate", to_topic=to_topic, reply_topic=reply_topic, device_id=dev_id, port_type_filter=t_filter, oper_status=o_status) log.debug("ports_state_update_response", device_id=device_id, port_type_filter=port_type_filter, oper_status=oper_status, response=res) returnValue(res)
def children_state_update(self, device_id, oper_status=None, connect_status=None): dev_id = ID() dev_id.id = device_id o_status = IntType() if oper_status or oper_status == OperStatus.UNKNOWN: o_status.val = oper_status else: o_status.val = -1 c_status = IntType() if connect_status or connect_status == ConnectStatus.UNKNOWN: c_status.val = connect_status else: c_status.val = -1 to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="ChildrenStateUpdate", to_topic=to_topic, reply_topic=reply_topic, device_id=dev_id, oper_status=o_status, connect_status=c_status) returnValue(res)
def ports_state_update(self, device_id, port_type_filter, oper_status): log.debug("ports_state_update", device_id=device_id, oper_status=oper_status) id = ID() id.id = device_id t_filter = IntType() t_filter.val = port_type_filter o_status = IntType() o_status.val = oper_status to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() # to_topic = createSubTopic(self.core_topic, device_id) # reply_topic = createSubTopic(self.listening_topic, device_id) res = yield self.invoke(rpc="PortsStateUpdate", to_topic=to_topic, reply_topic=reply_topic, device_id=id, port_type_filter=t_filter, oper_status=o_status) log.debug("ports_state_update_response", device_id=device_id, port_type_filter=port_type_filter, oper_status=oper_status, response=res) returnValue(res)
def get_child_devices(self, parent_device_id): log.debug("get-child-devices") id = ID() id.id = parent_device_id to_topic = self.get_core_topic(parent_device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="GetChildDevices", to_topic=to_topic, reply_topic=reply_topic, device_id=id) returnValue(res)
def get_child_device_with_proxy_address(self, proxy_address): log.debug("get-child-device-with-proxy-address") id = ID() id.id = proxy_address.device_id to_topic = self.get_core_topic(proxy_address.device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="GetChildDeviceWithProxyAddress", to_topic=to_topic, reply_topic=reply_topic, proxy_address=proxy_address) returnValue(res)
def get_child_device(self, parent_device_id, **kwargs): log.debug("get-child-device") id = ID() id.id = parent_device_id to_topic = self.get_core_topic(parent_device_id) reply_topic = self.get_adapter_topic() args = self._to_proto(**kwargs) res = yield self.invoke(rpc="GetChildDevice", to_topic=to_topic, reply_topic=reply_topic, device_id=id, **args) returnValue(res)
def port_created(self, device_id, port): log.debug("port_created") proto_id = ID() proto_id.id = device_id to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="PortCreated", to_topic=to_topic, reply_topic=reply_topic, device_id=proto_id, port=port) returnValue(res)
def get_ports(self, device_id, port_type): dev_id = ID() dev_id.id = device_id p_type = IntType() p_type.val = port_type to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="GetPorts", to_topic=to_topic, reply_topic=reply_topic, device_id=dev_id, port_type=p_type) returnValue(res)
def device_reason_update(self, device_id, reason): dev_id = ID() dev_id.id = device_id rsn = StrType() rsn.val = reason to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="DeviceReasonUpdate", to_topic=to_topic, reply_topic=reply_topic, device_id=dev_id, device_reason=rsn) returnValue(res)
def reconcile_child_devices(self, parent_device_id): log.warn("todo", reason='This has not been debugged yet') dev_id = ID() dev_id.id = parent_device_id to_topic = self.get_core_topic(parent_device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="ReconcileChildDevices", to_topic=to_topic, reply_topic=reply_topic, device_id=dev_id) returnValue(res)
def get_device(self, device_id): log.debug("get-device") dev_id = ID() dev_id.id = device_id # Once we have a device being managed, all communications between the # the adapter and the core occurs over a topic associated with that # device to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="GetDevice", to_topic=to_topic, reply_topic=reply_topic, device_id=dev_id) returnValue(res)
def get_ports(self, device_id, port_type): id = ID() id.id = device_id p_type = IntType() p_type.val = port_type to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() # to_topic = createSubTopic(self.core_topic, device_id) # reply_topic = createSubTopic(self.listening_topic, device_id) res = yield self.invoke(rpc="GetPorts", to_topic=to_topic, reply_topic=reply_topic, device_id=id, port_type=p_type) returnValue(res)
def send_packet_in(self, device_id, port, packet, response_required=True): log.debug("send_packet_in", device_id=device_id) proto_id = ID() proto_id.id = device_id port_num = IntType() port_num.val = port pac = Packet() pac.payload = packet to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="PacketIn", to_topic=to_topic, reply_topic=reply_topic, device_id=proto_id, port=port_num, packet=pac, response_required=response_required) returnValue(res)
def send_packet_in(self, device_id, port, packet): log.debug("send_packet_in", device_id=device_id) proto_id = ID() proto_id.id = device_id p = IntType() p.val = port pac = Packet() pac.payload = packet to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() # to_topic = createSubTopic(self.core_topic, device_id) # reply_topic = createSubTopic(self.listening_topic, device_id) res = yield self.invoke(rpc="PacketIn", to_topic=to_topic, reply_topic=reply_topic, device_id=proto_id, port=p, packet=pac) returnValue(res)
def port_state_update(self, device_id, port_type, port_no, oper_status): dev_id = ID() dev_id.id = device_id ptype = IntType() ptype.val = port_type pnumber = IntType() pnumber.val = port_no o_status = IntType() o_status.val = oper_status to_topic = self.get_core_topic(device_id) reply_topic = self.get_adapter_topic() res = yield self.invoke(rpc="PortStateUpdate", to_topic=to_topic, reply_topic=reply_topic, device_id=dev_id, port_type=ptype, port_no=pnumber, oper_status=o_status) returnValue(res)