| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
This patch set updated two wrong words:
+ In error.py file, it should be changed from "messsage" to "message"
+ In utils.py file, it should be changed from "containg" to "contaning"
Change-Id: I5ad121ec58ccc6e5f3cc499eca50d16e691f217e
|
| |
|
|
|
|
|
|
|
| |
Shell script to create config drive being replaced with python
code in ironic-lib.
Closes-Bug: #1493328
Change-Id: I31108f1173db3fb585386b2949ec880a95305fb6
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In Python 2.6 it was required to use {0}, {1}...{n} when using the
string format function. In Python 2.7 and Python 3 it it not required.
Change {N} to {} in code.
This brings the code in style alignment with other projects like
ironic and ironic-lib.
Change-Id: I81c4bb67b0974f73905f14b589b3dd0a7131650d
Depends-On: I8f0e5405f3e2d6e35418c73f610ac6b779dd75e5
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Binding to the first interface that has an IP address is error-prone: there is
no guarantee that ironic can reach us via this inteface. It is much safer to
detect the interface facing ironic and bind to it.
Unused LookupAgentInterfaceError exception is deleted.
The TinyIPA build also requires iptables dependency at build time to insert the
required kernel modules.
Closes-Bug: #1558956
Change-Id: I9586805e6c7f52a50834bc03efeb72d1faa6cb65
|
| |
|
|
|
|
|
|
|
| |
It's normal that ironic returns 409 Conflict from time to time, so
it's a bit confusing that we report this with Exception level and
traceback.
Change-Id: I1627c61facc3fadd0f5d9d324150e7d2833c7fbc
Closes-Bug: #1533113
|
| |
|
|
|
|
|
|
|
| |
The iSCSI extension now tries to use Linux-IO first (via rtslib)
and falls back to tgtd if Linux-IO can't be used (e.g. in the CoreOS-based
image which uses containers).
Change-Id: I9cc7a30d9c93c445a66d183146e9260c2b096d33
Closes-Bug: #1504562
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ISCSIError class defines a class-level message attribute with
value: "Error starting iSCSI target". This attribute is further
processed in RESTError.__init__ method, the ISCSIError super-class, to
create an Exception message concatenating self.message with provided
details argument. However, the ISCISError.__init__ method provides a
details attribute prefixed with the same text to the super(ISCSIError,
self).__init__ method. As a result, the text appears twice:
"ISCSIError: Error starting iSCSI target: Error starting iSCSI target:
ISCSI daemon didn't initialize. Failed with exit code 107. stdout: .
stderr: tgtadm: failed to send request hdr to tgt daemon, Transport
endpoint is not connected"
The patch purpose is to remove the details prefix to avoid duplicate
text in the exception text while honouring ISCSIError.message.
Change-Id: I9e1434ae17da5112527a841ac069ed2285566cca
|
| |
|
|
|
|
|
|
| |
If an image cannot be downloaded for some reason, it is helpful for
operators to have the image path, checksum, and calculated checksums
available easily from the API.
Change-Id: I6a2fb46726245cebd730b5c51d4f25f8465f1658
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a new module ironic_python_agent.inspector and new entry point
for extensions, which will allow vendor-specific inspection.
Inspection is run on service start up just before the lookup.
Due to this early start, and due to the fact we don't even know
MAC address of nodes on inspection (to say nothing about IP addresses),
exception handling is a bit different from other agent features:
we try hard not to error out until we send at least something to inspector.
Change-Id: I00932463d41819fd0a050782e2c88eddf6fc08c6
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Exception messages weren't being bubbled up to the API because the
base exception class wasn't printing correctly. This adds a string
and representation function to ensure they print properly and show
up correctly when debugging interactively.
Cleaned up the `message` attr on the exception classes. It looks
like they started out all without a period, but started adding them
later. Changed classes that were setting error `details` == `message`
to use the default details provided in RESTError.
Change-Id: I1ce256585c9a574e1d1f857c7dc4c417a56b913b
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This does a few things:
* Update hacking to the version in global-requirements. Old hacking was
installing a version of pbr that was breaking other packages.
* Fix all the hacking/pep8 rules that updating hacking raised.
* Do some general docstring cleanup, while already in there cleaning up
a bunch of docstrings due to H405 violations.
Change-Id: I1fc1e59d4c3d7b14631f8b576e3f3854bc452188
Closes-Bug: #1461717
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will add support for in band cleaning operations to IPA and
replace the decom API that was unused.
Adds API support for get_clean_steps, which returns a list of
supported clean steps for the node, execute_clean_step, to execute
one of the steps returned by get_clean_steps.
Adds versioning and naming for hardware managers, so if a new hardware
manager version is deployed in the middle of cleaning/zapping, the
cleaning/zapping will be restarted to avoid incompatabilities.
blueprint implement-cleaning-states
blueprint inband-raid-configuration
blueprint implement-zaping-states
Depends-On: Ia2500ed5afb72058b4c5e8f41307169381cbce48
Change-Id: I750b80b9bf98b3ddc5643bb4c14a67d2052239af
|
| |
|
|
|
|
|
| |
Initially this extension supports installing a bootloader so the user
image can boot from the local disk.
Change-Id: Ia588aafc240b55119c02f1254addc0cf796f88c5
|
| |
|
|
|
|
|
| |
This extension allows IPA to be used with the PXE/iSCSI methodology of
deployment in Ironic.
Change-Id: I32ec9fa74182c0d03c7ef1b698b1d0c0e3007773
|
| |
|
|
|
|
|
|
|
|
| |
Currently, we only log the image ID and attempted URL. Now, we log the
status code recieved and detailed information about how and when things
failed.
Change-Id: I718c7facbe1500d98be78b7b6137e92fdfb2fdf1
Closes-bug: 1420981
Depends-On: I69f6f6eef4ad573f406d64d579a9811c70ac5d28
|
| |
|
|
|
|
|
|
|
|
|
| |
Currently several IPA error classes inherit from Exception. This
patch makes the base class of those classes RESTError. These
error classes are also restructured to initialize in the same
manner as other classes which inherit from RESTError. Additionally
test cases are added for these error classes.
Change-Id: Ie6235e4cc25f072b789b2e72e4592d4cf02bfedc
Closes-bug: #1410372
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes and cleans up (making it consistent) how error
instances set their details value. The base class RESTError
will set the details value; all subclasses should call their
parent's __init__().
Unit tests were added to test that the Error instances are
initialized correctly.
Change-Id: I2390fa0012f8e4e6d73cbfb188f1733dfe85e65a
Closes-Bug: #1408817
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
If this exception is called, it should contain a method argument. If
not, allow the incorrect call to bubble up rather than setting it to
None. This will ensure this error is never called without the method
argument.
Change-Id: Iedc82b3446d1ee41d6ae94ee43391e12ef4899a7
|
| |/
|
|
|
|
|
|
|
| |
This fixes some Error classes so that they are correcting invoking
their parent's __init__() method instead of some other ancestor's
method.
Change-Id: I7cb2fc56792f7516222baf75f76b50509deefcf5
Closes-Bug: 1408813
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we pick the most specific manager and use it. Instead, call
each method on each hardware manager in priority order, and consider the
call successful if the method exists and doesn't throw
IncompatibleHardwareMethodError.
This is an API breaking change for anyone with out-of-tree
HardwareManagers.
Closes-bug: 1408469
Change-Id: I30c65c9259acd4f200cb554e7d688344b7486a58
|
| |
|
|
|
|
|
|
|
|
|
| |
This commit fixes an exception that was not properly raised, and
also makes the exception more relevant.
This also fixes an outstanding bug where, if the agent
was not associated with a node, get_node_uuid() would fail in an
unexpected manner.
Change-Id: Ifca474a73dd50b5fd2242e5b7e938a5db04f27a8
|
| |
|
|
|
|
|
|
|
|
| |
This commit adds support for booting IPA from virtual
media cdrom. When IPA is booted over virtual media cdrom,
the parameters to the IPA are passed in a text file within
the virtual media floppy.
Change-Id: Ia04585416aada85022af73fb2b945bd3895606f0
Closes-Bug: #1358723
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous implementation of list_block_devices used blockdev,
which would list partitions, software RAID and other devices as block devices.
By switching to lsblk, the agent can filter down to only physical block
devices, which is all the agent cares about for any of its operations.
This change adds two new fields to the BlockDevice class: model, a string of
the block devices reported model, and rotational, a boolean representing a
spinning disk (True) or a solid state disk (False). This data can be useful
for vendor hardware managers.
Change-Id: I385c3bb378c2c49385bca14a1d7efa074933becf
Closes-Bug: 1344351
|
| |
|
|
|
|
|
| |
Exceptions raised due to processutils.execute() failing now include
stdout and stderr.
Change-Id: Id5d1b5bc51d377f9f3c338cd7303ea800f76e5cd
|
| |
|
|
|
|
|
|
|
|
|
| |
During the first heartbeat, the heartbeater asks the agent to check
its advertised address; if the advertised IP is still the default
(None), the agent tries to replace it with the IP of the first network
interface it finds. If it fails to find either a network interface or
an IP address, the agent raises an exception.
Change-Id: I6d435d39e99ed0ff5c8b4883b6aa0b356f6cb4ae
Closes-Bug: #1309110
|
| |
|
|
|
|
|
|
|
|
|
| |
Add erase_devices method to the HardwareManager class. By default this
method iterates block devices, and calls a new abstract
erase_block_device method for each device. This patch includes a
simple implementation of erase_block_device on the
GenericHardwareManager which attempts to issue an ATA secure erase on
supported devices.
Change-Id: I81da065395b8785f636f1b0a0d60c9f1c045441e
|
| |
|
|
|
|
|
|
|
|
| |
Removed creating separate extension manager for flow extension.
Instead, have made flow extension using the same extension manager
instance which is initialized in agent. It fixes circular
extension loading in stevedore.
Closes-Bug: #1316145
Change-Id: Id339f1876168a41ca43ba7473f3ff6949a233ef3
|
| |
|
|
|
|
|
|
|
| |
Introduce `serializable_fields` to express which class attributes
to be serialized.
Get rid of OrderedDict. Just replacing it with regular dict.
Change-Id: I3f7639dab171d3d62e92d0d1bb6d7b071cf963ad
|
| |
|
|
|
|
|
| |
Avoids writing a configdrive out to disk that is larger than
the intended partition.
Change-Id: I4e067ccb23ba528d96e4faad39219f67b4178e82
|
| |
|
|
|
|
|
| |
Reformats copyright messages to be comments rather than
docstring-style blocks.
Change-Id: I4d863f53b67bb49d03bda0952b9e6179b6d23c59
|
| | |
|
| |
|