Coverage for /media/ldata/code/tendril/tendril/entityhub/macs/__init__.py: 0%

# Coverage for /media/ldata/code/tendril/tendril/entityhub/macs/__init__.py : 0%

## 63 statements 0 run 63 missing 0 excluded

Hot-keys on this page

r m x p toggle line displays

j k next/prev highlighted chunk

0 (zero) top of page

1 (one) first highlighted chunk

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | #!/usr/bin/env python # encoding: utf-8 # Copyright (C) 2015 Chintalagiri Shashank # # This file is part of tendril. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. """ Docstring for __init__.py """ import os from tendril.gedaif.conffile import ConfigsFile from tendril.gedaif.conffile import NoGedaProjectException from tendril.entityhub import serialnos from tendril.entityhub import projects from tendril.utils.db import with_db from tendril.utils.config import INSTANCE_ROOT from tendril.utils.fsutils import import_ from tendril.utils import log logger = log.get_logger(__name__, log.DEFAULT) macs_folder = os.path.join(INSTANCE_ROOT, 'macs') @with_db def get_mac_from_sno(serialno=None, session=None): devicetype = serialnos.get_serialno_efield(sno=serialno) try: projectfolder = projects.cards[devicetype] except KeyError: raise AttributeError("Project for " + devicetype + " not found.") try: gcf = ConfigsFile(projectfolder) logger.debug("Using gEDA configs file from : " + projects.cards[devicetype]) except NoGedaProjectException: raise AttributeError("gEDA project for " + devicetype + " not found.") modname = gcf.mactype funcname = 'get_mac_from_sno' mod = import_(os.path.join(macs_folder, modname)) func = getattr(mod, funcname) return func(serialno=serialno, session=session) @with_db def get_sno_from_mac(mac=None, mactype=None, devicetype=None, session=None): if mactype is None: try: projectfolder = projects.cards[devicetype] except KeyError: raise AttributeError("Project for " + devicetype + " not found.") try: gcf = ConfigsFile(projectfolder) logger.debug("Using gEDA configs file from : " + projects.cards[devicetype]) except NoGedaProjectException: raise AttributeError( "gEDA project for " + devicetype + " not found." ) modname = gcf.mactype else: modname = mactype funcname = 'get_sno_from_mac' mod = import_(os.path.join(macs_folder, modname)) func = getattr(mod, funcname) return func(mac=mac, session=session) def get_device_mac(mactype='QASCv1', **kwargs): if mactype == 'QASCv1': funcname = 'get_device_mac' modname = mactype params = {} elif mactype == 'FT232DEVICEv1': funcname = 'get_device_mac' modname = mactype params = {'description': kwargs['description']} else: raise ValueError("Unrecognized MACTYPE") mod = import_(os.path.join(macs_folder, modname)) func = getattr(mod, funcname) return func(**params) def get_sno_from_device(mactype='QASCv1', **kwargs): mac = get_device_mac(mactype, **kwargs) return get_sno_from_mac(mac=mac, mactype=mactype)