-
Notifications
You must be signed in to change notification settings - Fork 1
/
driver_manager.py
43 lines (33 loc) · 1.4 KB
/
driver_manager.py
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
__author__ = 'aymen'
from oslo.config import cfg
from neutron.plugins.map import models
from neutron.openstack.common import importutils
from neutron.plugins.map.cli_driver import ios_parser_translator
from neutron.openstack.common import log
from neutron.plugins.map import map_utils
LOG = log.getLogger(__name__)
class DriverManager():
def __init__(self, resources):
self.resources = resources
self.initialize()
pass
def initialize(self):
self.ordered_driver = []
for driver_class in cfg.CONF.map.drivers:
LOG.error(_("Les drivers sont %s"), driver_class)
driver = importutils.import_object(driver_class, self.resources )
self.ordered_driver.append(driver)
def configure_equipments(self, nodes):
LOG.error(_("Les drivers sont %s"), self.ordered_driver)
for node, configuration in nodes.iteritems():
node_configured = False
for driver in self.ordered_driver:
LOG.info(_("Driver %(driver)s is used to configure %(name)s"),
{"driver": driver.name,
"name": node.name})
if driver.configure_equipment(node, configuration):
break
else:
raise map_utils.NoDriverException(_("No driver can "
+ "communicate with device ") + _(node.name))
pass