344db714f23970f78fbe5cf2f1b9f0be9f59e07e
[sfa.git] / sfa / importer / iotlabimporter.py
1 # -*- coding:utf-8 -*-
2 """ Iot-LAB importer class management """
3
4 from sfa.storage.alchemy import engine
5 from sfa.storage.model import init_tables
6 from sqlalchemy import Table, MetaData
7 from sqlalchemy.exc import NoSuchTableError
8
9 class IotLabImporter:
10     """
11     Creates the iotlab specific lease table to keep track
12     of which slice hrn match OAR job
13     """
14
15     def __init__(self, auth_hierarchy, loc_logger):
16         self.logger = loc_logger
17         self.logger.setLevelDebug()
18
19     def _exists(self, tablename):
20         """
21         Checks if the table exists in SFA database.
22         """
23         metadata = MetaData(bind=engine)
24         try:
25             Table(tablename, metadata, autoload=True)
26             return True
27
28         except NoSuchTableError:
29             return False
30      
31
32     def run(self, options):
33         """ Run importer"""
34         if not self._exists('lease_table'):
35             init_tables(engine)
36             self.logger.info("iotlabimporter run lease_table created")