Elaborate around drivers.

This commit is contained in:
uggla 2015-07-08 00:08:49 +02:00
parent 926a22216e
commit 6bf5f4b375
3 changed files with 55 additions and 20 deletions

View File

@ -19,3 +19,7 @@ endpoint=http://ironic/rest
drvtype=hw
paramMondo1
paramMondo2
[fakecmdb]
[fakeprovider]

View File

@ -3,11 +3,13 @@
from flask import Flask
from flask import jsonify
from flask import request
import sys
import config
import models
import pprint
import configuration_item
from alexandria.drivers import Driver
import drivers
#from django.core.files.temp import gettempdir
# Initialise Flask
app = Flask(__name__)
@ -57,7 +59,7 @@ def create_ci():
# Error cas uuid already available
alexandria_cis.update({request.json["uuid"]: ci })
driver_list = conf_file.get_drivers()
#driver_list = conf_file.get_drivers()
#for driver in driver_list:
#driver.get(ci)
@ -80,7 +82,7 @@ def api_root():
resp = jsonify(data)
resp.status_code = 200
resp.headers["AuthorSite"] = "http://uggla.fr"
resp.headers["AuthorSite"] = "https://github.com/uggla/alexandria"
return resp
@ -94,15 +96,31 @@ def shutdown_server():
class Alexandria(object):
def __init__(self):
self.version = "0.1"
# Model
self.model = models.Model()
driver_name_list = conf_file.get_drivers()
# Configuration file
self.conf_file = config.AlexandriaConfiguration("alexandria.conf")
# Build driver list from configuration file
driver_name_list = self.conf_file.get_drivers()
self.drivers = []
# Create objects !!!! TO BE CONTINUED !!!!
for driver_name in driver_name_list:
setattr(self, driver_name, Driver)
# Get class
driver_class = getattr(sys.modules["drivers"], driver_name.capitalize())
# Create object
driver_object = driver_class()
# Add to driver list
self.drivers.append(driver_object)
index = self.drivers.index(driver_object)
# Set an attribute to the coresponding driver
setattr(self, driver_name.lower(), self.drivers[index])
@ -112,20 +130,16 @@ if __name__ == "__main__":
alexandria = Alexandria()
# Define a PrettyPrinter for debugging.
pp = pprint.PrettyPrinter(indent=4)
# Configuration file
conf_file = config.AlexandriaConfiguration("alexandria.conf")
# Model
models = models.Model()
# Define a structure to handle ci
alexandria_cis = {}
print models.reference_items
print alexandria.model.reference_items
alexandria.itop.get()
#pp.pprint(models.EthernetInterface) # debugging example.
#pp.pprint(models.Manager) # debugging example.
app.run(port=int(conf_file.get_alexandria_port()))
app.run(port=int(alexandria.conf_file.get_alexandria_port()))

View File

@ -6,12 +6,29 @@ class Driver(object):
# Get credentials from conf files for CMDB
pass
class itop(Driver):
class Itop(Driver):
def get(self):
pass
print "Get from itop"
return True
def push(self):
pass
class Redfish(Driver):
pass
class Ironic(Driver):
pass
class Mondorescue(Driver):
pass
class Fakecmdb(Driver):
pass
class Fakeprovider(Driver):
pass