Move plugin configuration to plugins.ini - a config file.

This commit is contained in:
Somik Behera 2011-05-19 17:21:48 -07:00
parent c7e632d3f9
commit 5f0ad8bfa4
3 changed files with 14 additions and 9 deletions

View File

@ -27,9 +27,10 @@ import random
import subprocess
import socket
import sys
import ConfigParser
from quantum.common import exception
from quantum.common.exception import ProcessExecutionError
from common import exceptions
from exceptions import ProcessExecutionError
TIME_FORMAT = "%Y-%m-%dT%H:%M:%SZ"
@ -184,6 +185,11 @@ def isotime(at=None):
def parse_isotime(timestr):
return datetime.datetime.strptime(timestr, TIME_FORMAT)
def getPluginFromConfig(file="config.ini"):
Config = ConfigParser.ConfigParser()
Config.read(file)
return Config.get("PLUGIN", "provider")
class LazyPluggable(object):
"""A pluggable backend loaded lazily based on some value."""

View File

@ -24,20 +24,16 @@ plugin that concretely implement quantum_plugin_base class
The caller should make sure that QuantumManager is a singleton.
"""
import utils
from common import utils
from quantum_plugin_base import QuantumPluginBase
CONFIG_FILE = "quantum_plugin.conf"
CONFIG_FILE = "plugins.ini"
class QuantumManager(object):
def __init__(self,config=CONFIG_FILE):
self.configuration_file = CONFIG_FILE
#TODO(somik): plugin location should be grabbed from a
# configuration file as opposed to hard-coding the location
#
#plugin_location = get_plugin_location(configuration_file)
plugin_location = "plugins.SamplePlugin.DummyDataPlugin"
plugin_location = utils.getPluginFromConfig(CONFIG_FILE)
plugin_klass = utils.import_class(plugin_location)
if not issubclass(plugin_klass, QuantumPluginBase):
raise Exception("Configured Quantum plug-in didn't pass compatibility test")

3
quantum/plugins.ini Normal file
View File

@ -0,0 +1,3 @@
[PLUGIN]
# Quantum plugin provider module
provider = plugins.SamplePlugin.DummyDataPlugin