fixes virtual container parts addressing

This commit is contained in:
Ronald Steinke 2018-10-05 10:48:50 +02:00
parent 6f923ec2cd
commit bc819069f2

View File

@ -13,6 +13,12 @@ from openmtc_server.exc import ConfigurationError
from openmtc_server.util import log_error from openmtc_server.util import log_error
container_virtual_mapping = {
'la': 'latest',
'ol': 'oldest'
}
class OneM2MMethodDomain(Component): class OneM2MMethodDomain(Component):
def __init__(self, config, *args, **kw): def __init__(self, config, *args, **kw):
super(OneM2MMethodDomain, self).__init__(*args, **kw) super(OneM2MMethodDomain, self).__init__(*args, **kw)
@ -209,11 +215,11 @@ class OneM2MMethodDomain(Component):
# oldest, latest -> Container # oldest, latest -> Container
# TODO(rst): fanOutPoint -> group # TODO(rst): fanOutPoint -> group
# TODO(rst): pollingChannelURI -> pollingChannel # TODO(rst): pollingChannelURI -> pollingChannel
if path.endswith(('latest', 'oldest')): if path.endswith(tuple(container_virtual_mapping.keys())):
parent_path, virtual = path.rsplit('/', 1) parent_path, virtual = path.rsplit('/', 1)
parent = get_resource(parent_path) parent = get_resource(parent_path)
if isinstance(parent, model.Container): if isinstance(parent, model.Container):
resource = getattr(parent, virtual) resource = getattr(parent, container_virtual_mapping[virtual])
if resource is None: if resource is None:
raise CSENotFound() raise CSENotFound()
return resource return resource