From 1a22e347a618a119e66b3bf960f0ee1599fba7d7 Mon Sep 17 00:00:00 2001 From: vsaienko Date: Thu, 10 Dec 2015 14:47:52 +0200 Subject: [PATCH] Add fuel_libvirt ironic driver This driver allows to perform Power/Management operation with VM via Libvirt API. Change-Id: Ia82f7fb45d2592d96ddcc423771bbd14df1e4e28 Partial-Bug: #1524773 --- .../ironic-fa-deploy/ironic_fa_deploy/fuel.py | 21 +++++++++++++++++++ contrib/ironic/ironic-fa-deploy/setup.cfg | 1 + 2 files changed, 22 insertions(+) diff --git a/contrib/ironic/ironic-fa-deploy/ironic_fa_deploy/fuel.py b/contrib/ironic/ironic-fa-deploy/ironic_fa_deploy/fuel.py index 31c2049..45075ea 100644 --- a/contrib/ironic/ironic-fa-deploy/ironic_fa_deploy/fuel.py +++ b/contrib/ironic/ironic-fa-deploy/ironic_fa_deploy/fuel.py @@ -14,6 +14,7 @@ from ironic.drivers import base from ironic.drivers.modules import ipmitool +from ironic.drivers.modules import lib_virt from ironic.drivers.modules import ssh from ironic_fa_deploy.modules import fuel_agent @@ -56,3 +57,23 @@ class FuelAndSSHDriver(base.BaseDriver): self.deploy = fuel_agent.FuelAgentDeploy() self.management = ssh.SSHManagement() self.vendor = fuel_agent.FuelAgentVendor() + + +class FuelAndLibvirtDriver(base.BaseDriver): + """Fuel + Libvirt driver. + + NOTE: This driver is meant only for testing environments. + + This driver implements the `core` functionality, combining + :class:`ironic.drivers.modules.lib_virt.Libvirt` (for power on/off and reboot of + virtual machines tunneled over Libvirt API, with + :class:`ironic.drivers.modules.fuel_agent.FuelAgentDeploy` (for image + deployment). Implementations are in those respective classes; this class + is merely the glue between them. + """ + + def __init__(self): + self.power = lib_virt.LibvirtPower() + self.deploy = fuel_agent.FuelAgentDeploy() + self.management = lib_virt.LibvirtManagement() + self.vendor = fuel_agent.FuelAgentVendor() diff --git a/contrib/ironic/ironic-fa-deploy/setup.cfg b/contrib/ironic/ironic-fa-deploy/setup.cfg index 6347626..c7614bf 100644 --- a/contrib/ironic/ironic-fa-deploy/setup.cfg +++ b/contrib/ironic/ironic-fa-deploy/setup.cfg @@ -18,4 +18,5 @@ extra_files = [entry_points] ironic.drivers = fuel_ipmitool = ironic_fa_deploy.fuel:FuelAndIPMIToolDriver + fuel_libvirt = ironic_fa_deploy.fuel:FuelAndLibvirtDriver fuel_ssh = ironic_fa_deploy.fuel:FuelAndSSHDriver