mirror of
https://github.com/OpenMTC/OpenMTC.git
synced 2025-05-11 21:02:50 +00:00
fixes transport poa handling
This commit is contained in:
parent
5066bb29d1
commit
cb5d2a49ca
@ -32,7 +32,7 @@ class OneM2MTransportDomain(Component):
|
|||||||
else:
|
else:
|
||||||
self.originator = "//" + self.sp_id + "/" + self.cse_id
|
self.originator = "//" + self.sp_id + "/" + self.cse_id
|
||||||
|
|
||||||
ssl_certs = self.config.get("onem2m", {}).get("ssl_certs")
|
ssl_certs = self.config.get("onem2m", {}).get("ssl_certs", {})
|
||||||
self.key_file = ssl_certs.get("key")
|
self.key_file = ssl_certs.get("key")
|
||||||
self.cert_file = ssl_certs.get("crt")
|
self.cert_file = ssl_certs.get("crt")
|
||||||
self.ca_file = ssl_certs.get("ca")
|
self.ca_file = ssl_certs.get("ca")
|
||||||
@ -53,26 +53,18 @@ class OneM2MTransportDomain(Component):
|
|||||||
self.events = api.events
|
self.events = api.events
|
||||||
|
|
||||||
# addresses
|
# addresses
|
||||||
self._api.events.interface_created.register_handler(
|
self._api.events.interface_created.register_handler(self._handle_interface_created)
|
||||||
self._handle_interface_created)
|
self._api.events.interface_removed.register_handler(self._handle_interface_removed)
|
||||||
self._api.events.interface_removed.register_handler(
|
self._api.events.address_created.register_handler(self._handle_address_created)
|
||||||
self._handle_interface_removed)
|
self._api.events.address_removed.register_handler(self._handle_address_removed)
|
||||||
self._api.events.address_created.register_handler(
|
|
||||||
self._handle_address_created)
|
|
||||||
self._api.events.address_removed.register_handler(
|
|
||||||
self._handle_address_removed)
|
|
||||||
|
|
||||||
# remote CSEs
|
# remote CSEs
|
||||||
self.events.resource_created.register_handler(
|
self.events.resource_created.register_handler(self._handle_cse_created, RemoteCSE)
|
||||||
self._handle_cse_created, RemoteCSE)
|
self.events.resource_updated.register_handler(self._handle_cse_updated, RemoteCSE)
|
||||||
self.events.resource_updated.register_handler(
|
self.events.resource_deleted.register_handler(self._handle_cse_deleted, RemoteCSE)
|
||||||
self._handle_cse_updated, RemoteCSE)
|
|
||||||
self.events.resource_deleted.register_handler(
|
|
||||||
self._handle_cse_deleted, RemoteCSE)
|
|
||||||
|
|
||||||
interfaces = self._api.network_manager.get_interfaces().get()
|
interfaces = self._api.network_manager.get_interfaces().get()
|
||||||
self._addresses = {i.name: filter(self._filter_out_link_local,
|
self._addresses = {i.name: filter(self._filter_out_link_local, i.addresses)
|
||||||
i.addresses)
|
|
||||||
for i in interfaces}
|
for i in interfaces}
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -108,8 +100,7 @@ class OneM2MTransportDomain(Component):
|
|||||||
|
|
||||||
# interface handling
|
# interface handling
|
||||||
def _handle_interface_created(self, interface):
|
def _handle_interface_created(self, interface):
|
||||||
self._addresses[interface.name] = filter(self._filter_out_link_local,
|
self._addresses[interface.name] = filter(self._filter_out_link_local, interface.addresses)
|
||||||
interface.addresses)
|
|
||||||
self._create_endpoints()
|
self._create_endpoints()
|
||||||
|
|
||||||
def _handle_interface_removed(self, interface):
|
def _handle_interface_removed(self, interface):
|
||||||
@ -123,25 +114,25 @@ class OneM2MTransportDomain(Component):
|
|||||||
|
|
||||||
def _handle_address_removed(self, interface_name, address):
|
def _handle_address_removed(self, interface_name, address):
|
||||||
if self._filter_out_link_local(address):
|
if self._filter_out_link_local(address):
|
||||||
|
try:
|
||||||
self._addresses[interface_name].remove(address)
|
self._addresses[interface_name].remove(address)
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
self._create_endpoints()
|
self._create_endpoints()
|
||||||
|
|
||||||
# cse handling
|
# cse handling
|
||||||
# TODO(rst): find out if IDs starting with slash or not
|
# TODO(rst): find out if IDs starting with slash or not
|
||||||
def _handle_cse_created(self, instance, req=None):
|
def _handle_cse_created(self, instance, req=None):
|
||||||
self.logger.debug("_handle_cse_created(instance=%s, req=%s)",
|
self.logger.debug("_handle_cse_created(instance=%s, req=%s)", instance, req)
|
||||||
instance, req)
|
self.add_poa_list(instance.CSE_ID.lstrip('/'), instance.pointOfAccess)
|
||||||
self.add_poa_list(instance.CSE_ID[1:], instance.pointOfAccess)
|
|
||||||
|
|
||||||
def _handle_cse_updated(self, instance, req=None):
|
def _handle_cse_updated(self, instance, req=None):
|
||||||
self.logger.debug("_handle_cse_updated(instance=%s, req=%s)",
|
self.logger.debug("_handle_cse_updated(instance=%s, req=%s)", instance, req)
|
||||||
instance, req)
|
self.add_poa_list(instance.CSE_ID.lstrip('/'), instance.pointOfAccess)
|
||||||
# self._remove_poas(req_ind.path)
|
|
||||||
# self.add_poa_list(instance.pointOfAccess, instance.path)
|
|
||||||
|
|
||||||
def _handle_cse_deleted(self, instance, req):
|
def _handle_cse_deleted(self, instance, req):
|
||||||
self.logger.debug("_handle_cse_deleted(req_ind=%s)", req)
|
self.logger.debug("_handle_cse_deleted(req=%s)", req)
|
||||||
# self._remove_poas(req.path)
|
self.remove_poa_list(instance.CSE_ID.lstrip('/'))
|
||||||
|
|
||||||
# api functions
|
# api functions
|
||||||
def register_client(self, schemes, get_client):
|
def register_client(self, schemes, get_client):
|
||||||
@ -213,3 +204,9 @@ class OneM2MTransportDomain(Component):
|
|||||||
|
|
||||||
def add_poa_list(self, identifier, poa_list):
|
def add_poa_list(self, identifier, poa_list):
|
||||||
self._poa_lists[identifier] = poa_list
|
self._poa_lists[identifier] = poa_list
|
||||||
|
|
||||||
|
def remove_poa_list(self, identifier):
|
||||||
|
try:
|
||||||
|
del self._poa_lists[identifier]
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
Loading…
x
Reference in New Issue
Block a user