class T1FrontendModule(PTMModule): def __init__(self, huburl = None, prefix = None, *args, **kw): super(T1FrontendModule, self).__init__(*args, **kw) self.client = PTMClient(huburl) self.serializer = FrontendModuleSerializer(self.client, prefix) self.prefix = prefix def _get_identifier(self, identifier): identifier = GlobalIdentifier(identifier, default_prefix = self.prefix) if identifier.prefix != self.prefix: return Identifier("/ptm-" + identifier.prefix) / Identifier(identifier) return Identifier(identifier) def get_resource(self, identifier): identifier = self._get_identifier(identifier) return self._get_resource(identifier) def _get_resource(self, identifier): resource = self.client.get_resource(identifier) return self.serializer.dumps(resource) def add_resource(self, parent_id, typename, config): parent_id = self._get_identifier(parent_id) config.pop("identifier", None) resource = self.client.add_resource(parent_id, None, typename, config) return self.serializer.dumps(resource) def delete_resource(self, identifier): identifier = self._get_identifier(identifier) resource = self.client.get_resource(identifier) resource.delete() def update_resource(self, identifier, config): identifier = self._get_identifier(identifier) resource = self.client.get_resource(identifier) config.pop("identifier", None) resource.set_configuration(config) return self.serializer.dumps(resource) def execute_method_resource(self, identifier, name, **params): identifier = self._get_identifier(identifier) resource = self.client.get_resource(identifier) params.pop("identifier", None) resource.execute_method(identifier, name, **params) return self.serializer.dumps(resource)