Esempio n. 1
0
    def getUriGroups(self, name, strict=None):
        """
        reimplemented from :class:`TaurusDeviceNameValidator` to check
        if scheme can be handled. Changes `psd` scheme for it fullname
        equivalent (eg. `pds-csv`), in order that it could be handled
        later by proper handler.
        """
        groups = TaurusDeviceNameValidator.getUriGroups(self, name, strict)

        try:
            scheme = groups.get('scheme')

            if scheme != 'pds':
                return groups
        except:
            return None

        import os
        _, ext = os.path.splitext(groups.get('devname'))

        for handler in schemesMap.keys():
            if schemesMap[handler].canHandle(ext):
                groups['scheme'] = handler
                return groups
        return None
Esempio n. 2
0
 def getUriGroups(self, name, strict=None):
     groups = TaurusDeviceNameValidator.getUriGroups(self, name, strict)
     if groups is not None:
         if groups.get('arch_db', None) is None:
             groups['arch_db'] = '*'  # Wildcard for archiving scheme
         groups['devname'] = '?db={arch_db}'.format(**groups)
     return groups
Esempio n. 3
0
 def getUriGroups(self, name, strict=None):
     '''Reimplementation of getUriGroups to fix the host and authority
     name using fully qualified domain name for the host.
     '''
     ret = TaurusDeviceNameValidator.getUriGroups(self, name, strict)
     if ret is not None and ret.get("host", None) is not None:
         fqdn = fqdn_no_alias(ret["host"])
         ret["host"] = fqdn
         ret["authority"] = "//{host}:{port}".format(**ret)
     return ret
Esempio n. 4
0
    def _getKey(self, name):

        if self._elementType == TaurusElementType.Attribute:
            g = TaurusAttributeNameValidator.getUriGroups(self, name)
        elif self._elementType == TaurusElementType.Device:
            g = TaurusDeviceNameValidator.getUriGroups(self, name)
        elif self._elementType == TaurusElementType.Authority:
            g = TaurusAuthorityNameValidator.getUriGroups(self, name)
        else:
            msg = '_elementType must be one of (Authority, Device, Attribute)'
            raise Exception(msg)
        if g is None:
            return None
        else:
            return g['_resname']
Esempio n. 5
0
 def getUriGroups(self, name, strict=None):
     '''reimplemented from :class:`TaurusDeviceNameValidator` to provide
     backwards compatibility with ol syntax'''
     groups = TaurusDeviceNameValidator.getUriGroups(self, name,
                                                     strict=strict)
     if groups is not None and not groups['__STRICT__']:
         _old_devname = groups['_old_devname']
         groups['devname'] = '@%s' % _old_devname
         if '.' in _old_devname:
             groups['_evalname'] = None
             groups['_evalclass'] = _old_devname
         else:
             groups['_evalname'] = _old_devname
             groups['_evalclass'] = None
     return groups
Esempio n. 6
0
    def _getKey(self, name):

        if self._elementType == TaurusElementType.Attribute:
            g = TaurusAttributeNameValidator.getUriGroups(self, name)
        elif self._elementType == TaurusElementType.Device:
            g = TaurusDeviceNameValidator.getUriGroups(self, name)
        elif self._elementType == TaurusElementType.Authority:
            g = TaurusAuthorityNameValidator.getUriGroups(self, name)
        else:
            msg = '_elementType must be one of (Authority, Device, Attribute)'
            raise Exception(msg)
        if g is None:
            return None
        else:
            return g['_resname']
Esempio n. 7
0
 def getUriGroups(self, name, strict=None):
     '''reimplemented from :class:`TaurusDeviceNameValidator` to provide
     backwards compatibility with ol syntax'''
     groups = TaurusDeviceNameValidator.getUriGroups(self,
                                                     name,
                                                     strict=strict)
     if groups is not None and not groups['__STRICT__']:
         _old_devname = groups['_old_devname']
         groups['devname'] = '@%s' % _old_devname
         if '.' in _old_devname:
             groups['_evalname'] = None
             groups['_evalclass'] = _old_devname
         else:
             groups['_evalname'] = _old_devname
             groups['_evalclass'] = None
     return groups