~ubuntu-branches/ubuntu/vivid/ironic/vivid-updates

« back to all changes in this revision

Viewing changes to ironic/drivers/pxe.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2015-03-30 11:14:57 UTC
  • mfrom: (1.2.6)
  • Revision ID: package-import@ubuntu.com-20150330111457-kr4ju3guf22m4vbz
Tags: 2015.1~b3-0ubuntu1
* New upstream release.
  + d/control: 
    - Align with upstream dependencies.
    - Add dh-python to build-dependencies.
    - Add psmisc as a dependency. (LP: #1358820)
  + d/p/fix-requirements.patch: Rediffed.
  + d/ironic-conductor.init.in: Fixed typos in LSB headers,
    thanks to JJ Asghar. (LP: #1429962)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
PXE Driver and supporting meta-classes.
18
18
"""
19
19
 
20
 
from oslo.utils import importutils
 
20
from oslo_utils import importutils
21
21
 
22
22
from ironic.common import exception
23
23
from ironic.common.i18n import _
24
24
from ironic.drivers import base
 
25
from ironic.drivers.modules.amt import management as amt_management
 
26
from ironic.drivers.modules.amt import power as amt_power
 
27
from ironic.drivers.modules.amt import vendor as amt_vendor
 
28
from ironic.drivers.modules import discoverd
25
29
from ironic.drivers.modules import iboot
26
30
from ironic.drivers.modules.ilo import deploy as ilo_deploy
 
31
from ironic.drivers.modules.ilo import inspect as ilo_inspect
27
32
from ironic.drivers.modules.ilo import management as ilo_management
28
33
from ironic.drivers.modules.ilo import power as ilo_power
29
34
from ironic.drivers.modules import ipminative
30
35
from ironic.drivers.modules import ipmitool
 
36
from ironic.drivers.modules.irmc import management as irmc_management
31
37
from ironic.drivers.modules.irmc import power as irmc_power
32
38
from ironic.drivers.modules import pxe
33
39
from ironic.drivers.modules import seamicro
34
40
from ironic.drivers.modules import snmp
35
41
from ironic.drivers.modules import ssh
 
42
from ironic.drivers.modules import virtualbox
36
43
from ironic.drivers import utils
37
44
 
38
45
 
51
58
        self.deploy = pxe.PXEDeploy()
52
59
        self.management = ipmitool.IPMIManagement()
53
60
        self.vendor = pxe.VendorPassthru()
 
61
        self.inspect = discoverd.DiscoverdInspect.create_if_enabled(
 
62
            'PXEAndIPMIToolDriver')
54
63
 
55
64
 
56
65
class PXEAndSSHDriver(base.BaseDriver):
70
79
        self.deploy = pxe.PXEDeploy()
71
80
        self.management = ssh.SSHManagement()
72
81
        self.vendor = pxe.VendorPassthru()
 
82
        self.inspect = discoverd.DiscoverdInspect.create_if_enabled(
 
83
            'PXEAndSSHDriver')
73
84
 
74
85
 
75
86
class PXEAndIPMINativeDriver(base.BaseDriver):
93
104
        self.deploy = pxe.PXEDeploy()
94
105
        self.management = ipminative.NativeIPMIManagement()
95
106
        self.vendor = pxe.VendorPassthru()
 
107
        self.inspect = discoverd.DiscoverdInspect.create_if_enabled(
 
108
            'PXEAndIPMINativeDriver')
96
109
 
97
110
 
98
111
class PXEAndSeaMicroDriver(base.BaseDriver):
164
177
        self.vendor = ilo_deploy.IloPXEVendorPassthru()
165
178
        self.console = ilo_deploy.IloConsoleInterface()
166
179
        self.management = ilo_management.IloManagement()
 
180
        self.inspect = ilo_inspect.IloInspect()
167
181
 
168
182
 
169
183
class PXEAndSNMPDriver(base.BaseDriver):
207
221
        self.power = irmc_power.IRMCPower()
208
222
        self.console = ipmitool.IPMIShellinaboxConsole()
209
223
        self.deploy = pxe.PXEDeploy()
210
 
        self.management = ipmitool.IPMIManagement()
211
 
        self.vendor = pxe.VendorPassthru()
 
224
        self.management = irmc_management.IRMCManagement()
 
225
        self.vendor = pxe.VendorPassthru()
 
226
 
 
227
 
 
228
class PXEAndVirtualBoxDriver(base.BaseDriver):
 
229
    """PXE + VirtualBox driver.
 
230
 
 
231
    NOTE: This driver is meant only for testing environments.
 
232
 
 
233
    This driver implements the `core` functionality, combining
 
234
    :class:`ironic.drivers.virtualbox.VirtualBoxPower` for power on/off and
 
235
    reboot of VirtualBox virtual machines, with :class:`ironic.driver.pxe.PXE`
 
236
    for image deployment. Implementations are in those respective classes;
 
237
    this class is merely the glue between them.
 
238
    """
 
239
 
 
240
    def __init__(self):
 
241
        if not importutils.try_import('pyremotevbox'):
 
242
            raise exception.DriverLoadError(
 
243
                    driver=self.__class__.__name__,
 
244
                    reason=_("Unable to import pyremotevbox library"))
 
245
        self.power = virtualbox.VirtualBoxPower()
 
246
        self.deploy = pxe.PXEDeploy()
 
247
        self.management = virtualbox.VirtualBoxManagement()
 
248
        self.vendor = pxe.VendorPassthru()
 
249
 
 
250
 
 
251
class PXEAndAMTDriver(base.BaseDriver):
 
252
    """PXE + AMT driver.
 
253
 
 
254
    This driver implements the `core` functionality, combining
 
255
    :class:`ironic.drivers.amt.AMTPower` for power on/off and reboot with
 
256
    :class:`ironic.driver.pxe.PXE` for image deployment. Implementations are in
 
257
    those respective classes; this class is merely the glue between them.
 
258
    """
 
259
 
 
260
    def __init__(self):
 
261
        if not importutils.try_import('pywsman'):
 
262
            raise exception.DriverLoadError(
 
263
                    driver=self.__class__.__name__,
 
264
                    reason=_("Unable to import pywsman library"))
 
265
        self.power = amt_power.AMTPower()
 
266
        self.deploy = pxe.PXEDeploy()
 
267
        self.management = amt_management.AMTManagement()
 
268
        self.vendor = amt_vendor.AMTPXEVendorPassthru()