We are tickled pink to announce the release of: ironic 5.0.0: OpenStack Bare Metal Provisioning This release is part of the mitaka release series. With source available at: http://git.openstack.org/cgit/openstack/ironic Please report issues through launchpad: http://bugs.launchpad.net/ironic For more details, please see below. 5.0.0 ^^^^^ This release adds support for manual cleaning and RAID configuration. Operators may now manually run clean steps, including setting up RAID on a node, while a node is in the manageable state. This release features switch to Oslo Futurist library for asynchronous thread execution and periodic tasks. Main benefit is that periodic tasks are now executed truly in parallel, and not sequentially in one green thread. New Features ************ * Add support for ipmitool's port (-p) option. This allows ipmitool support for operators that do not use the default port (623) as their IPMI port. * Pass proxy information from agent driver to IPA ramdisk, so that images can be cached on the proxy server. * Add support for a new capability called 'disk_label' to allow operators to choose the disk label that will be used when Ironic is partitioning the disk. * iLO drivers now provide out-of-band firmware update as a manual cleaning step, for supported hardware components. * Support for activation of iLO Advanced license as a manual cleaning step in iLO drivers. * Enabled Inspector Inspection for CIMC and UCS drivers * Adds support for using iPXE in UEFI mode. * Add the ability to adjust ipxe timeout during image downloading, default is still unlimited (0). * Adds out-of-band inspection support for iRMC drivers. * Add support for filtering nodes using the same driver via the API. * Adds support for manual cleaning. This is available with API version 1.15. For more information, see http://docs.openstack.org/developer/ironic/deploy/cleaning.html #manual-cleaning * Root device hints extended to support the device name. * Database migrations downgrade support was removed. More info about database migration/rollback could be found here http://docs.openstack.org/openstack-ops/content/ops_upgrades-roll- back.html * Adds ShellinaboxConsole support for virsh SSH driver. Known Issues ************ * When using caching proxy with "agent_*" drivers, caching the image on the proxy server might involve increasing [glance]swift_temp_url_duration config option value. This way, the cached entry will be valid for a period of time long enough to see the benefits of caching. Large temporary URL duration might become a security issue in some cases. Upgrade Notes ************* * Adds a [glance]swift_temp_url_cache_enabled configuration option to enable Swift temporary URL caching. It is only useful if the caching proxy is used. Also adds [glance]swift_temp_url_expected_download_start_delay, which is used to check if the Swift temporary URL duration is long enough to let the image download to start, and, if temporary URL caching is enabled, to determine if a cached entry will be still valid when download starts. The value of [glance]swift_temp_url_expected_download_start_delay must be less than the value for the [glance]swift_temp_url_duration configuration option. * Add "choices" parameter to config options. Invalid values will be rejected when first accessing them, which can happen in the middle of deployment. +-----------------------------------+------------------+ | Option | Choices | +===================================+==================+ | [DEFAULT]/auth_strategy | keystone, noauth | +-----------------------------------+------------------+ | [glance]/auth_strategy | keystone, noauth | +-----------------------------------+------------------+ | [glance]/glance_protocol | http, https | +-----------------------------------+------------------+ | [neutron]/auth_strategy | keystone, noauth | +-----------------------------------+------------------+ | [amt]/protocol | http, https | +-----------------------------------+------------------+ | [irmc]/remote_image_share_type | CIFS, NFS | +-----------------------------------+------------------+ | [irmc]/port | 443, 80 | +-----------------------------------+------------------+ | [irmc]/auth_method | basic, digest | +-----------------------------------+------------------+ | [irmc]/sensor_method | ipmitool, scci | +-----------------------------------+------------------+ * Adds a config option 'debug_tracebacks_in_api' to allow the API service to return tracebacks in API responses in an error condition. * Dependency for DRAC driver changed from "pywsman" to "python- dracclient" with version >= 0.0.5. Exceptions thrown by the driver and return values of the "set_bios_config", "commit_bios_config" and "abandon_bios_config" methods changed on the vendor-passthru interface. * Configuration option "workers_pool_size" can no longer be less or equal to 2. Please set it to greater value (the default is 100) before update. * Adds new configuration [ironic_lib]root_helper, to specify the command that is prefixed to commands that are run as root. Defaults to using the rootwrap config file at /etc/ironic/rootwrap.conf. * Moves these configuration options from [deploy] group to the new [disk_utils] group: efi_system_partition_size, dd_block_size and iscsi_verify_attempts. * Updated python-scciclient required version number for iRMC driver to 0.3.0 which fixed the bug '#1518999' and '#1519000'. Deprecation Notes ***************** * The [conductor]/clean_nodes config is deprecated and will be removed in the Newton cycle. It has been replaced by the [conductor]/automated_clean config. * Configuration option "periodic_interval" is deprecated. * Using "driver_periodic_task" decorator is deprecated. Please update your out-of-tree drivers to use "periodics.periodic" decorator from Futurist library. * The following configuration options have been moved to the [disk_utils] group; they are deprecated from the [deploy] group: efi_system_partition_size, dd_block_size and iscsi_verify_attempts. Bug Fixes ********* * No longer returns tracebacks for API errors in debug mode. * Disables default execution of clean step 'reset_ilo' during automated cleaning. Resetting of iLO is not required during every invocation of automated cleaning. If required, operator can enable the same. * DRAC driver migrated from "pywsman" to "python-dracclient" fixing the driver lockup issue caused by the python interpreter not handling signals when execution handed to the c library. * Fixes an issue with setting the boot device multiple times without a reboot in the DRAC driver by setting the boot device only before power management operations. * Add missing "lookup" method to the pxe_drac driver vendor interface enabling it to be deployed using the IPA ramdisk. * API service once again records HTTP access logs. See https://bugs.launchpad.net/ironic/+bug/1536828 for details. * Fix issues with error handling when spawning a new thread to continue cleaning. See https://bugs.launchpad.net/ironic/+bug/1539118. * Fixes an issue with the provided iPXE template where whole disk images could not be booted. See https://bugs.launchpad.net/ironic/+bug/1524403. * Periodic tasks are no longer executed all in one thread. * Fixes issue where automated cleaning fails for iLO drivers. Automated cleaning fails for iLO driver if iLO is in System POST state. iLO does not allow setting of boot device when it is in System POST state. * Fixes bug where ironic reboots the node with deploy image instead of the user image during second reboot in uefi boot mode when ipxe is enabled. * Fixes an issue that prevented the node name to be removed as part of the node update. * In conductor/rpcapi.py, object_backport_version(), object_action() and object_class_action_versions() misspell NotImplementedError with NotImplemented which returns nothing useful to users. See https://bugs.launchpad.net/ironic/+bug/1524163. * Updated python-scciclient required version number for iRMC driver to 0.3.0 which fixed the bug '#1518999' and '#1519000'. Other Notes *********** * Code related to disk partitioning was moved to ironic-lib. Changes in ironic 4.3.0..5.0.0 ------------------------------ 198ae29 Add documentation for the IPMITool driver 57d8e51 Fix error in cleaning docs b3ab84f Replace depricated tempest-lib with tempest.lib 6f36a5e Add new 'disk_label' capability 89c78df Fix JSON string in example of starting manual cleaning aa1fc2a Remove 'grub2' option in creating whole-disk-images c0350f7 Update iRMC driver doc for inspection e6b3c42 Don't use token for glance & check for some unset vars a71ac5d Use 'baremetal' flavor in devstack f316775 [devstack] Fix IPA source build on Fedora 8f7eb52 DevStack: Enable VirtualBMC logs 419aa1b Updated from global requirements 3e11338 Firmware update(iLO) as manual cleaning step 7c83c6f Updated from global requirements cf12ad9 Remove code duplication. de72fcd Update iLO documentation for clean step 'reset_ilo' efbccc8 Refactor the management verbs check to utils 5655792 Updated from global requirements 6babbee Remove duplicate doc in ironic.conf.sample a082e70 Prep for 5.0 release 036b959 Fix unittests after new releases of libraries 547bd9d Updating docs with support for DL class servers 874f982 Update CIMC driver docs to install ImcSdk from PyPi 0a04e79 Add returns to send_raw() ipmitool function 5c6de4b Add function for dump SDR to ipmitool driver f224b83 Add clean step in iLO drivers to activate iLO license 5ecda6b Update proliantutils version to 2.1.7 for Mitaka release 404bfda ipxe: add --timeout parameter to kernel and initrd 0cf2db6 Updated iLO driver documentation to recommend ipmitool version 7f46a03 Refactor driver loading to load a driver instance per node 22aa8a9 Clean up driver loading in init_host 6569cdb add wipefs to ironic-lib.filters 5b37b78 Updated from global requirements 053584c Use assertEqual/Greater/Less/IsNone d8fa64b Follow up nits of 3429e3824c060071e59a117c19c95659c78e4c8b d3859a7 API to list nodes using the same driver 1accb30 [devstack] set ipa-debug=1 for greater debugability 146eaad Loose python-oneviewclient version requirement 5b619b7 Set node last_error in TaskManager e38f345 Add possible values for config options c52dfb2 Follow up nits of irmc oob inspection 47e1898 Enable removing name when updating node 86640c6 Make some agent functions require exclusive lock c1a8606 Add db api layer for CRUD operations on node tags 6af9da9 Update proliantutils version required for Mitaka release 8e206ff Add deprecated_for_removal config info in ironic.conf.sample 84b09fe Update ironic.conf.sample b0ae5e9 Tolerate roles in context.RequestContext 3429e38 Switch to Futurist library for asynchronous execution and periodic tasks bbee55d Move _from_db_object() into base class cc66d0b Add ironic_tempest_plugin to the list of packages in setup.cfg da7aba1 Fix gate broken by sudden remove of SERVICE_TENANT_NAME variable f2d9886 Add manual cleaning to documentation 56d4945 Import host option in base test module 38201d9 Fixes automated cleaning failure in iLO drivers b203092 Updated from global requirements 7ffa1d5 DevStack: Add support for deploying nodes with pxe_ipmitool ee4f24b Change the libvirt NIC driver to virtio b4bc03f DevStack: Support to install diskimage-builder from source 24955b2 [Devstack]Add ability to enable ironic node pty console bfb5e54 Use 'node' directly in update_port() d38ca35 Add links to the standalone configdrive documentation 24ff537 DevStack: Install squashfs-tools 001513f [DevStack] fix restart of nova compute d402905 Use http_{root, url} config from "deploy" instead of "pxe" 5b724be During cleaning, store clean step index c055845 Use oslo_config.fixture in unit tests 080707f Introduce driver_internal_info in code-contribution-guide 74d242a Updated from global requirements 01f7392 Correct instance parameter description d19dfab Add node.uuid to InstanceDeploy error message c53a649 Set existing ports pxe_enabled=True when adding pxe_enabled column 1de8903 Augmenting the hashing strategy 37590a8 Add hardware inspection module for iRMC driver 959689e Document possible access problems with custom IRONIC_VM_LOG_DIR path 2692280 Add documentation for proxies usage with IPA f726831 Updated from global requirements 37a3486 Devstack: create endpoint in catalog unconditionally bf6de00 Comment out test options that already exists on tempest's tree 9220cbd Replace config 'clean_nodes' with 'automated_clean' 0b3da47 Remove 'zapping' from code 74f6661 Cache agent clean steps on node edc37cb API to manually clean nodes a028772 Replace ifconfig with ip 39a2828 Updated iLO documentation for boot mode capability 1f82783 Agent vendor handles manual cleaning 49e0475 Remove downgrade support from migrations a59d8ab Enable tinyipa for devstack Ironic 380d6bf Disable clean step 'reset_ilo' for iLO drivers by default 0ed100d Add proxy related parameters to agent driver 844c758 Update ironic.conf.samle 7e16907 Fix genconfig "tempdir" inconsistency 7276d22 Update the home page bb64c4d Follow-up on dracclient refactor 025d194 Log warning if ipmi_username/ipmi_password missing e5c5ddb Add portgroups to support LAG interfaces - net a603e3c Add portgroups to support LAG interfaces - RPC 134ad4c Add portgroups to support LAG interfaces - objs 1740ab7 Add portgroups to support LAG interfaces - DB 3afbfaf Fix missing lookup() vendor method error for pxe_drac 5131d71 Refresh ssh verification mechanism 0f73a8b Refactor install-guide to configure API/Conductor seperately 65efbfd Enable Ironic Inspector for Cisco Drivers d85b997 Fix doc8's "duplicated target names" (D000) error db068c6 Remove conditional checking the auth_strategy values 0edba8a Extend root device hints to support device name 8c8704e Fix spawn error hook in "continue_node_clean" RPC method fc72b4d Enable doc8 style checker for *.rst files 2e1f9c1 Updated from global requirements 4f8b97d Show transitions initiated by API requests 3843f55 Remove hard-coded DEPLOYWAIT timeout from Baremetal Scenario fa981fd Fix tiny format issue with install_guide 4aae854 Add priority to manual clean step example 93ca514 Use node uuid in some exception log 6bed115 Fix error message in devstack 5661db3 Updated from global requirements fde6252 [devstack] Restart nova compute before checking hypervisor stats 6f90631 Imported Translations from Zanata 8a1063e Fix minor typo 47be801 DRAC: cleanup after switch to python-dracclient 2173649 API service logs access requests again e3f5517 Updated from global requirements b464744 Correct port_id parameter description 6bcbe9d Remove duplicate words in API version history 0c9915e Remove unneeded enable_service in dev-quickstart.rst 7a5acbd Clarify that size in root device hints and local_gb are often different a8afe45 Update ImcSdk requirement to use PyPi 87974fe Clean up 'no_proxy' unit tests cb5c500 Add more unit tests for NO_PROXY validation 60aad94 Add ability to cache swift temporary URLs 51a73e1 DRAC: switch to python-dracclient on vendor-passthru 57e3ba1 Migrate Tempest tests into Ironic tree 691de30 Use Tempest plugin interface 91906c5 Fix issues with uefi-ipxe booting a74f816 Update links to OpenStack manuals 0a75c41 Fix issue where system hostname can impact genconfig 1a4d589 Add choices option to several options 2ef3b40 Reorganize the developer's main page c12cc03 Document backwards compat for passthru methods 81719c8 Drop MANIFEST.in - it's not needed pbr bea9393 Clean up unneeded deprecated_group 6dd534e Devstack: replace 'http' with SERVICE_PROTOCOL 16bb29e Clarify rejected status in RFE contribution docs ed3d71c Bring UP baremetal bridge ffb654b Document the process of proposing new features c3045f7 Updated from global requirements a23b9b7 Use assertTrue/False instead of assertEqual(T/F) 968e832 devstack 'cleanup-node' script should delete OVS bridges bab0835 Change default IRONIC_VM_SPECS_RAM to 1024 b48289e Remove release differences from flavor creation docs b0eaea1 Add documentation for standalone ilo drivers ac54456 Devstack: Make sure libvirt's hooks directory exists fd64ca7 Update the ironic.conf.sample file 72f64cc Follow-up on refactor DRAC management interface 2cde492 Allow user to set arch for the baremetal flavor and ironic node 29b3706 tox: make it possible to run pep8 on current patch only 96ad1a1 Devstack: Use [deploy] erase_devices_priority config option a7908dc Remove bashate from envlist b7d4147 Use ironic-lib's util methods 946ea0a Refactor objects into a magic registry bd60603 Don't return tracebacks in API response in debug mode ee37525 Updated from global requirements dd88841 Change assertTrue(isinstance()) by optimal assert def448e Remove */openstack/common* in tox d097010 Remove vim headers in source files 76b24d3 Trival: Remove unused logging import 60e850a Use ironic-lib's qemu_img_info() & convert_image() 13cf3c1 Update "Developer Quick-Start" guide for Fedora 23+ 73ea7ce Enable ironic devstack plugin in local.conf sample 5fa4465 Correct a tiny issue in install-guide 181e3de Install 'shellinabox' package for Ironic e3f25de Fix translations in driver base b51f7d4 Run flake8 against the python scripts under tools/ and devstack/tools 2a5005d Add UEFI support for iPXE dc080b5 Add console feature to ssh driver 16786b6 Conductor handles manual cleaning cd9975d Add extensions to the scripts at devstack/tools/ironic/scripts d7c41eb Fix "No closing quotation" error when building with tox d9a2a62 Devstack: Remove QEMU hook at ./unstack 95fcd64 Run bashate as part of the pep8 command f047ea0 Fix bashate errors in grenade plugin 49e273b Fix syntax errors in the shell scripts under devstack/tools 3bd1ecb Use the apache-ironic.template from our tree 2ab9801 Fix typo in ironic/conductor/manager.py ba58cd7 genconfig: Debug info for unknown config types 2f6dce9 Keep the console logs for all boots a1ff0a1 Use imageutils from oslo.utils 70e1f87 Add documentation for user inputs as HTTPS URLs e95a8b9 Add bashate tox command a0d2d7d Updated from global requirements 9aa7681 Add documentation for swiftless intermediate images 759db32 DRAC: switch to python-dracclient on management interface 0ced09b DRAC: switch to python-dracclient on power interface de10be5 Follow up nits of Exception to str type conversion 778fcda Clean up variables in plugin.sh c7e2b04 Replace assertEqual(None, *) with assertIsNone in tests 3012590 Add utility function to validate NO_PROXY 1a62671 Add bifrost as an option projects in Service overview bc22a20 Sequence diagrams for iLo driver documentation e08211e Refactor ilo documentation for duplicate information 7924997 Update swift HTTPs information in ilo documentation d29ab63 Updated from global requirements 5ea3d08 Deprecated tox -downloadcache option removed 19fc22d Remove override-defaults f4a7a84 Use 'service_type' of 'network'. Not 'neutron' a2df90b Update ironic.conf.sample by applying the bug fix #1522841 c0a72cf Add grenade plugin ac07388 Follow up patch to correct code-contribute-guide 952d5c5 Fix iPXE template for whole disk image a0dcef4 Add devstack plugin b218735 Copy devstack code to ironic tree 081e4e9 Add FSM.is_stable() method 40f9238 Explicitly depend on WebTest>=2.0 66cf3d0 Always pass keystone credentials to neutronclient 3daef88 Remove extra space in 'host' config comment a434ca4 Add oslo_config.Opt support in Ironic config generator 7c138f0 Refactor disk partitioner code from ironic and use ironic-lib. a59934f Simplifies exception message assurance for oneview.common tests 08c1f1d Use node.uuid directly in stop_console() 1171e25 Correct NotImplemented to NotImplementedError in rpcapi.py 55c246a Adding oneview.common tests for some method not well tested b9b6068 Add port option support for ipmitool 2649d54 Numerous debug messages due to iso8601 log level c5a8008 Handle deprecated opts' group correctly c2fbcee Updated from global requirements 10fdbcd Clarify what changes need a release note 9dbd14e Remove wsgi reset_pool_size_to_default test 4138682 Add Mitaka release notes page e936fbf Update python-scciclient version number 62407cc Add release notes from Icehouse to Liberty 0d75fa6 Add Code Contribution Guide for Ironic ec2a328 Replace HTTP 'magic numbers' with constants e91ff59 Documentation points to official release notes a47f093 Split BaseConductorManager from ConductorManager 162240a Validate arguments to clean_step() decorator Diffstat (except docs and test files) ------------------------------------- MANIFEST.in | 6 - devstack/files/apache-ironic.template | 12 + devstack/files/debs/ironic | 23 + devstack/files/hooks/qemu | 13 + devstack/files/rpms/ironic | 18 + devstack/lib/ironic | 1007 ++++++++++++ devstack/plugin.sh | 39 + devstack/settings | 1 + devstack/tools/ironic/scripts/cleanup-node.sh | 35 + devstack/tools/ironic/scripts/configure-vm.py | 114 ++ devstack/tools/ironic/scripts/create-node.sh | 86 + devstack/tools/ironic/scripts/setup-network.sh | 29 + devstack/tools/ironic/templates/brbm.xml | 6 + .../tools/ironic/templates/tftpd-xinetd.template | 14 + devstack/tools/ironic/templates/vm.xml | 49 + devstack/upgrade/settings | 5 + devstack/upgrade/shutdown.sh | 18 + devstack/upgrade/upgrade.sh | 112 ++ driver-requirements.txt | 15 +- etc/ironic/ironic.conf.sample | 689 ++++---- etc/ironic/rootwrap.d/ironic-lib.filters | 25 + etc/ironic/rootwrap.d/ironic-utils.filters | 10 - ironic/api/app.py | 12 +- ironic/api/controllers/v1/node.py | 169 +- ironic/api/controllers/v1/utils.py | 35 +- ironic/api/controllers/v1/versions.py | 6 +- ironic/api/hooks.py | 5 +- ironic/cmd/dbsync.py | 11 - ironic/common/config_generator/generator.py | 85 +- ironic/common/context.py | 14 +- ironic/common/dhcp_factory.py | 14 +- ironic/common/disk_partitioner.py | 226 --- ironic/common/driver_factory.py | 38 +- ironic/common/exception.py | 57 +- ironic/common/fsm.py | 14 +- ironic/common/glance_service/service_utils.py | 2 - ironic/common/glance_service/v2/image_service.py | 123 +- ironic/common/image_service.py | 7 +- ironic/common/images.py | 38 +- ironic/common/network.py | 18 +- ironic/common/pxe_utils.py | 36 +- ironic/common/service.py | 19 +- ironic/common/swift.py | 6 +- ironic/common/utils.py | 151 +- ironic/conductor/base_manager.py | 374 +++++ ironic/conductor/manager.py | 761 +++++---- ironic/conductor/rpcapi.py | 79 +- ironic/conductor/task_manager.py | 59 +- ironic/conductor/utils.py | 171 +- ironic/db/api.py | 194 ++- ironic/db/migration.py | 4 - .../1e1d5ace7dc6_add_inspection_started_at_and_.py | 5 - .../21b331f883ef_add_provision_updated_at.py | 4 - .../242cc6a923b3_add_node_maintenance_reason.py | 4 - .../versions/2581ebaf0cb2_initial_migration.py | 5 - .../2fb93ffd2af1_increase_node_name_length.py | 7 - .../31baaf680d2b_add_node_instance_info.py | 6 - .../versions/3ae36a5f5131_add_logical_name.py | 5 - ...25597_add_unique_constraint_to_instance_uuid.py | 5 - .../3cb628139ea4_nodes_add_console_enabled.py | 4 - ...7deb87cc9d_add_conductor_affinity_and_online.py | 7 - .../alembic/versions/48d6c242bb9b_add_node_tags.py | 4 - .../versions/4f399b21ae71_add_node_clean_step.py | 4 - .../516faf1bb9b1_resizing_column_nodes_driver.py | 4 - .../5674c57409b9_replace_nostate_with_available.py | 7 - ...10e_added_port_group_table_and_altered_ports.py | 54 + .../versions/789acc877671_add_raid_config.py | 5 - .../bb59b63f55a_add_node_driver_internal_info.py | 4 - .../versions/f6fdb920c182_set_pxe_enabled_true.py | 38 + ironic/db/sqlalchemy/api.py | 225 ++- ironic/db/sqlalchemy/models.py | 20 + ironic/dhcp/base.py | 22 +- ironic/dhcp/neutron.py | 133 +- ironic/drivers/agent.py | 5 + ironic/drivers/base.py | 180 ++- ironic/drivers/drac.py | 9 +- ironic/drivers/fake.py | 9 +- ironic/drivers/irmc.py | 3 + ironic/drivers/modules/agent.py | 76 +- ironic/drivers/modules/agent_base_vendor.py | 155 +- ironic/drivers/modules/amt/common.py | 4 +- ironic/drivers/modules/cimc/common.py | 3 - ironic/drivers/modules/cimc/management.py | 2 - ironic/drivers/modules/cimc/power.py | 2 - ironic/drivers/modules/console_utils.py | 3 +- ironic/drivers/modules/deploy_utils.py | 555 +------ ironic/drivers/modules/drac/bios.py | 391 +---- ironic/drivers/modules/drac/client.py | 268 ---- ironic/drivers/modules/drac/common.py | 40 +- ironic/drivers/modules/drac/job.py | 53 + ironic/drivers/modules/drac/management.py | 445 ++--- ironic/drivers/modules/drac/power.py | 142 +- ironic/drivers/modules/drac/resource_uris.py | 46 - ironic/drivers/modules/drac/vendor_passthru.py | 87 +- ironic/drivers/modules/ilo/boot.py | 4 +- ironic/drivers/modules/ilo/common.py | 160 +- ironic/drivers/modules/ilo/deploy.py | 45 + ironic/drivers/modules/ilo/firmware_processor.py | 389 +++++ ironic/drivers/modules/ilo/management.py | 139 +- ironic/drivers/modules/inspector.py | 5 +- ironic/drivers/modules/ipminative.py | 14 +- ironic/drivers/modules/ipmitool.py | 62 +- ironic/drivers/modules/ipxe_config.template | 12 +- ironic/drivers/modules/irmc/boot.py | 15 +- ironic/drivers/modules/irmc/common.py | 77 +- ironic/drivers/modules/irmc/inspect.py | 187 +++ ironic/drivers/modules/iscsi_deploy.py | 15 +- ironic/drivers/modules/pxe.py | 21 +- ironic/drivers/modules/seamicro.py | 6 +- ironic/drivers/modules/snmp.py | 28 + ironic/drivers/modules/ssh.py | 90 +- ironic/drivers/pxe.py | 7 + .../locale/fr/LC_MESSAGES/ironic-log-critical.po | 14 +- ironic/locale/ironic-log-error.pot | 292 ++-- ironic/locale/ironic-log-info.pot | 157 +- ironic/locale/ironic-log-warning.pot | 250 ++- ironic/locale/ironic.pot | 1692 ++++++++++---------- .../locale/ja/LC_MESSAGES/ironic-log-critical.po | 14 +- ironic/locale/ja/LC_MESSAGES/ironic.po | 171 +- .../ko_KR/LC_MESSAGES/ironic-log-critical.po | 14 +- .../pt_BR/LC_MESSAGES/ironic-log-critical.po | 14 +- ironic/objects/__init__.py | 28 +- ironic/objects/base.py | 31 +- ironic/objects/chassis.py | 14 - ironic/objects/conductor.py | 9 - ironic/objects/node.py | 8 - ironic/objects/port.py | 49 +- ironic/objects/portgroup.py | 279 ++++ ironic/openstack/__init__.py | 0 ironic/openstack/common/__init__.py | 0 ironic/openstack/common/_i18n.py | 45 - ironic/openstack/common/imageutils.py | 152 -- .../unit/drivers/ipxe_config_timeout.template | 19 + .../unit/drivers/modules/amt/test_management.py | 2 +- .../unit/drivers/modules/cimc/test_management.py | 4 +- .../unit/drivers/modules/drac/test_management.py | 602 +++---- .../drivers/modules/ilo/test_firmware_processor.py | 552 +++++++ .../unit/drivers/modules/ilo/test_management.py | 252 +++ .../unit/drivers/modules/irmc/test_inspect.py | 248 +++ .../unit/drivers/modules/oneview/test_common.py | 108 +- .../unit/drivers/modules/test_agent_base_vendor.py | 247 ++- .../unit/drivers/modules/test_agent_client.py | 3 +- .../unit/drivers/modules/test_console_utils.py | 14 +- .../unit/drivers/modules/test_deploy_utils.py | 1251 +++++---------- .../unit/drivers/modules/test_iscsi_deploy.py | 47 +- .../unit/drivers/third_party_driver_mock_specs.py | 19 + ironic_tempest_plugin/README.rst | 22 + ironic_tempest_plugin/__init__.py | 0 ironic_tempest_plugin/clients.py | 39 + ironic_tempest_plugin/common/__init__.py | 0 ironic_tempest_plugin/common/waiters.py | 48 + ironic_tempest_plugin/config.py | 69 + ironic_tempest_plugin/plugin.py | 39 + ironic_tempest_plugin/services/__init__.py | 0 .../services/baremetal/__init__.py | 0 ironic_tempest_plugin/services/baremetal/base.py | 204 +++ .../services/baremetal/v1/__init__.py | 0 .../services/baremetal/v1/json/__init__.py | 0 .../services/baremetal/v1/json/baremetal_client.py | 349 ++++ openstack-common.conf | 7 - .../notes/5.0-release-afb1fbbe595b6bc8.yaml | 6 + ...ption-support-to-ipmitool-e125d07fe13c53e7.yaml | 5 + .../add-agent-proxy-support-790e629634ca2eb7.yaml | 20 + ...dd-choice-to-some-options-9fb327c48e6bfda1.yaml | 21 + .../automated_clean_config-0170c95ae210f953.yaml | 5 + .../debug-no-api-tracebacks-a8a0caddc9676b06.yaml | 7 + ...able-clean-step-reset-ilo-1869a6e08f39901c.yaml | 6 + .../disk-label-capability-d36d126e0ad36dca.yaml | 5 + ...rac-migrate-to-dracclient-2bd8a6d1dd3fdc69.yaml | 14 + .../drac-missing-lookup-3ad98e918e1a852a.yaml | 4 + .../fix-api-access-logs-68b9ca4f411f339c.yaml | 4 + .../fix-cleaning-spawn-error-60b60281f3be51c2.yaml | 4 + ...late-for-whole-disk-image-943da0311ca7aeb5.yaml | 4 + releasenotes/notes/futurist-e9c55699f479f97a.yaml | 16 + ...-automated-cleaning-fails-14ee438de3dd8690.yaml | 7 + ...-update-manual-clean-step-e6763dc6dc0d441b.yaml | 4 + ...ctivate-manual-clean-step-84d335998d708b49.yaml | 4 + .../inspector-for-cisco-bffe1d1af7aec677.yaml | 3 + .../notes/ipxe-and-uefi-7722bd5db71df02c.yaml | 3 + releasenotes/notes/ipxe-uefi-f5be11c7b0606a84.yaml | 6 + .../ipxe_timeout_parameter-03fc3c76c520fac2.yaml | 4 + .../irmc-oob-inspection-6d072c60f6c88ecb.yaml | 3 + .../list-nodes-by-driver-a1ab9f2b73f652f8.yaml | 3 + .../notes/manual-clean-4cc2437be1aea69a.yaml | 5 + .../name-root-device-hints-a1484ea01e399065.yaml | 3 + ...no-downward-sql-migration-52279e875cd8b7a3.yaml | 5 + .../notes/node-name-remove-720aa8007f2f8b75.yaml | 4 + ...implementederror-misspell-276a181afd652cf6.yaml | 7 + .../refactor-ironic-lib-22939896d8d46a77.yaml | 20 + .../notes/ssh-console-58721af6830f8892.yaml | 3 + ...ciclient-required-version-71398d5d5e1c0bf8.yaml | 7 + releasenotes/source/current-series.rst | 5 + releasenotes/source/index.rst | 11 +- releasenotes/source/liberty.rst | 218 +++ releasenotes/source/mitaka.rst | 6 + releasenotes/source/unreleased.rst | 6 +- requirements.txt | 66 +- setup.cfg | 6 +- test-requirements.txt | 33 +- tools/config/oslo.config.generator.rc | 2 +- tools/flake8wrap.sh | 20 + tools/run_bashate.sh | 27 + tools/states_to_dot.py | 53 +- tox.ini | 12 +- 308 files changed, 19038 insertions(+), 9083 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index 5243cdc..595e830 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -7 +7 @@ -proliantutils>=2.1.5 +proliantutils>=2.1.7 @@ -11,2 +11,2 @@ python-ironic-inspector-client -python-oneviewclient<2.1.0,>=2.0.2 -python-scciclient>=0.2.0 +python-oneviewclient<3.0.0,>=2.0.2 +python-scciclient>=0.3.0 @@ -14,0 +15 @@ UcsSdk==0.8.2.2 +python-dracclient>=0.0.5 @@ -16,2 +17,2 @@ UcsSdk==0.8.2.2 -# The drac and amt driver import a python module called "pywsman", however, -# this does not exist on pypi. +# The amt driver imports a python module called "pywsman", but this does not +# exist on pypi. @@ -31,2 +32,2 @@ pyremotevbox>=0.5.0 -# The CIMC drivers use the Cisco IMC SDK version 0.7.2, which is available from -# https://communities.cisco.com/docs/DOC-56257 +# The CIMC drivers use the Cisco IMC SDK version 0.7.2 or greater +ImcSdk>=0.7.2 diff --git a/requirements.txt b/requirements.txt index d1b6a6f..4fa8227 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,3 @@ -pbr>=1.6 -SQLAlchemy<1.1.0,>=0.9.9 -alembic>=0.8.0 +pbr>=1.6 # Apache-2.0 +SQLAlchemy<1.1.0,>=1.0.10 # MIT +alembic>=0.8.0 # MIT @@ -8,10 +8,11 @@ automaton>=0.5.0 # Apache-2.0 -eventlet>=0.17.4 -WebOb>=1.2.3 -greenlet>=0.3.2 -netaddr!=0.7.16,>=0.7.12 -paramiko>=1.13.0 -python-neutronclient>=2.6.0 -python-glanceclient>=0.18.0 -python-keystoneclient!=1.8.0,>=1.6.0 -python-swiftclient>=2.2.0 -pytz>=2013.6 +eventlet!=0.18.3,>=0.18.2 # MIT +WebOb>=1.2.3 # MIT +greenlet>=0.3.2 # MIT +netaddr!=0.7.16,>=0.7.12 # BSD +paramiko>=1.16.0 # LGPL +python-neutronclient!=4.1.0,>=2.6.0 # Apache-2.0 +python-glanceclient>=2.0.0 # Apache-2.0 +python-keystoneclient!=1.8.0,!=2.1.0,>=1.6.0 # Apache-2.0 +ironic-lib>=1.1.0 # Apache-2.0 +python-swiftclient>=2.2.0 # Apache-2.0 +pytz>=2013.6 # MIT @@ -19,4 +20,4 @@ stevedore>=1.5.0 # Apache-2.0 -pysendfile>=2.0.0 -websockify>=0.6.1 -oslo.concurrency>=2.3.0 # Apache-2.0 -oslo.config>=2.7.0 # Apache-2.0 +pysendfile>=2.0.0 # MIT +websockify>=0.6.1 # LGPLv3 +oslo.concurrency>=3.5.0 # Apache-2.0 +oslo.config>=3.7.0 # Apache-2.0 @@ -24 +25 @@ oslo.context>=0.2.0 # Apache-2.0 -oslo.db>=3.2.0 # Apache-2.0 +oslo.db>=4.1.0 # Apache-2.0 @@ -26,2 +27,2 @@ oslo.rootwrap>=2.0.0 # Apache-2.0 -oslo.i18n>=1.5.0 # Apache-2.0 -oslo.log>=1.12.0 # Apache-2.0 +oslo.i18n>=2.1.0 # Apache-2.0 +oslo.log>=1.14.0 # Apache-2.0 @@ -31,7 +32,7 @@ oslo.serialization>=1.10.0 # Apache-2.0 -oslo.service>=0.12.0 # Apache-2.0 -oslo.utils>=2.8.0 # Apache-2.0 -pecan>=1.0.0 -requests>=2.8.1 -six>=1.9.0 -jsonpatch>=1.1 -WSME>=0.8 +oslo.service>=1.0.0 # Apache-2.0 +oslo.utils>=3.5.0 # Apache-2.0 +pecan>=1.0.0 # BSD +requests!=2.9.0,>=2.8.1 # Apache-2.0 +six>=1.9.0 # MIT +jsonpatch>=1.1 # BSD +WSME>=0.8 # MIT @@ -39,2 +40,2 @@ Jinja2>=2.8 # BSD License (3 clause) -keystonemiddleware!=2.4.0,>=2.0.0 -oslo.messaging!=2.8.0,>2.6.1 # Apache-2.0 +keystonemiddleware!=4.1.0,>=4.0.0 # Apache-2.0 +oslo.messaging>=4.0.0 # Apache-2.0 @@ -42,3 +43,4 @@ retrying!=1.3.0,>=1.2.3 # Apache-2.0 -oslo.versionedobjects>=0.13.0 -jsonschema!=2.5.0,<3.0.0,>=2.0.0 -psutil<2.0.0,>=1.1.1 +oslo.versionedobjects>=1.5.0 # Apache-2.0 +jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT +psutil<2.0.0,>=1.1.1 # BSD +futurist>=0.11.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index beb1974..bc4cb6f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -5,4 +5,5 @@ hacking<0.11,>=0.10.0 -coverage>=3.6 -fixtures>=1.3.1 -mock>=1.2 -Babel>=1.3 +coverage>=3.6 # Apache-2.0 +doc8 # Apache-2.0 +fixtures>=1.3.1 # Apache-2.0/BSD +mock>=1.2 # BSD +Babel>=1.3 # BSD @@ -10 +11 @@ PyMySQL>=0.6.2 # MIT License -iso8601>=0.1.9 +iso8601>=0.1.9 # MIT @@ -12,7 +13,9 @@ oslotest>=1.10.0 # Apache-2.0 -psycopg2>=2.5 -python-ironicclient>=0.8.0 -python-subunit>=0.0.18 -testtools>=1.4.0 -os-testr>=0.4.1 -testresources>=0.2.4 -testscenarios>=0.4 +psycopg2>=2.5 # LGPL/ZPL +python-ironicclient>=1.1.0 # Apache-2.0 +python-subunit>=0.0.18 # Apache-2.0/BSD +testtools>=1.4.0 # MIT +os-testr>=0.4.1 # Apache-2.0 +testresources>=0.2.4 # Apache-2.0/BSD +testscenarios>=0.4 # Apache-2.0/BSD +WebTest>=2.0 # MIT +bashate>=0.2 # Apache-2.0 @@ -21,3 +24,3 @@ testscenarios>=0.4 -sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 -sphinxcontrib-pecanwsme>=0.8 -sphinxcontrib-seqdiag +sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD +sphinxcontrib-pecanwsme>=0.8 # Apache-2.0 +sphinxcontrib-seqdiag # BSD