def __init__(self, config): self.connectors = { "ec2": EC2Connector(config), "vsphere": VSphereConnector(config), "ipmi": IPMIConnector(config), } self.socket = None self.threads = [] self.logger = logging.getLogger("hyclops.queue")
def setUp(self): logger = logging.getLogger('hyclops.connector.vsphere') logger.addHandler(logging.NullHandler()) self.patchers = [ patch('hyclops.libcloud_driver.vsphere.VSphereNodeDriver', new=MockVSphereNodeDriver), patch('hyclops.connector.base.ZabbixAPI', new=MockZabbixAPI), ] for patcher in self.patchers: patcher.start() config_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "test.conf") self.config = configobj.ConfigObj(config_path, file_error=True) self.connector = VSphereConnector(config=self.config) self.connector.zabbix_api = MockZabbixAPI() self.driver = MockVSphereNodeDriver("key", "secret") self._set_libcloud_mock() self._set_zabbix_mock()
params = json.loads(sys.argv[3]) or {} config_file = "/opt/hyclops/hyclops.conf" # load config config = configobj.ConfigObj(config_file) log_level = config["logging"]["log_level"] log_file = config["logging"]["log_file"] log_format = '[%(asctime)s] %(name)s (%(threadName)s) %(levelname)s: %(message)s' logging.basicConfig(filename=log_file, level=logging.WARNING, format=log_format) logger = logging.getLogger('request_action') logger.setLevel(getattr(logging, log_level)) if "environments" in config: for key, value in config["environments"].items(): os.environ[key] = value # run command if driver_name == "ec2": connector = EC2Connector(config) elif driver_name == "vsphere": connector = VSphereConnector(config) elif driver_name == "ipmi": connector = IPMIConnector(config) else: print "%s driver does not supported." % driver_name sys.exit() try: result = connector.run_command(zabbix_hostname, params) print result except Exception, e: print e