1. 01 Oct, 2019 1 commit
  2. 25 Jun, 2019 1 commit
    • Pavlo Shchelokovskyy's avatar
      Add bindep.txt · 43c54ec5
      Pavlo Shchelokovskyy authored
      This is a combination of 2 commits to solve the dependency issue, which
      came up after the announced removal of global bindep-fallback.txt
      
      1. Add bindep.txt file
      
      This is used by `bindep` [0] to assess if needed system packages are
      installed.
      It should allow easier installation of Python packages on a clean
      system from source and help packagers too.
      For now it is just a copy/merge of `devstack/files/[debs|rpms]/ironic`
      files with added platform specifiers.
      
      Packages have been tagged with certain bindep profiles:
      - default - needed to run ironic service in production
      - test - needed to compile Python dependencies and for other tox targets,
        profile of this name is used by various gate jobs
      - devstack - needed to setup VMs posing as HW nodes by the devstack
        plugin
      - imagebuild - only needed to build various types of deploy ramdisk
      
      Note that DevStack install procedure currently does not use 'bindep',
      and still relies on files in `devstack/files/...` folder.
      
      [0] http://docs.openstack.org/infra/bindep/index.html
      
      (cherry picked from commit b2fcf480)
      
      2. Update bindep.txt for doc builds
      
      https://governance.openstack.org/tc/reference/project-testing-interface.html#documentation
      specifies that doc dependencies need the doc tag in bindep, use it.
      
      Leave test environment in for transition period until we use the new
      scripts.
      
      (cherry picked from commit 6a48eba4)
      
      Change-Id: I42239e0ec960507b7345866d768b3ee06738799b
      43c54ec5
  3. 04 Jun, 2019 1 commit
    • Riccardo Pittau's avatar
      Update sphinx requirements · 872d2e7c
      Riccardo Pittau authored
      Following recent changes to global requirements [1], we need
      to update sphinx requirements locally.
      
      [1] If558f184c959e4b63b56dec3ca1571d1034cfe5c
      
      (cherry picked from commit 9ed91013)
      
      Change-Id: Ie806a891da6b28fe52f4b72bcd2e3609d4e95db8
      872d2e7c
  4. 13 May, 2019 1 commit
  5. 06 May, 2019 1 commit
  6. 03 May, 2019 1 commit
    • “leiyashuai”'s avatar
      Miss node_id in devstack lib · e3aa496a
      “leiyashuai” authored
      When installing devstack, found there is
      a missing node id in devstack/lib/ironic
      when root devices are less than 4Gb.
      
      Change-Id: Ie101d1e312bd7820294fad8b317fc62faa8769e1
      Story: #1730526
      Task: #9773
      (cherry picked from commit 4b6fe666)
      e3aa496a
  7. 24 Apr, 2019 1 commit
    • Julia Kreger's avatar
      Fix pyghmi path · 1894c84c
      Julia Kreger authored
      Pyghmi was moved from openstack namespace to the x
      namespace. As such the devstack plugin needs to match
      up otherwise devstack fails in CI to clone as cloning
      is blocked if not in the projects list... Which it is,
      as x/pyghmi.
      
      Change-Id: I87bdf65dd2dac189642d0af6def2d0ed155f3c00
      (cherry picked from commit bb8101ca)
      1894c84c
  8. 19 Apr, 2019 1 commit
  9. 10 Apr, 2019 1 commit
  10. 04 Apr, 2019 1 commit
  11. 24 Mar, 2019 1 commit
  12. 04 Feb, 2019 1 commit
    • digambar's avatar
      Fix CPU count returned by introspection in Ironic iDRAC driver · 000ce3d3
      digambar authored
      If list_cpus in dracclient, it returns below values -
      
      [CPU(id='CPU.Socket.1', cores=14, ht__enabled=True),
      CPU(id='CPU.Socket.2', cores=14, ht_enabled=True)]
      
      Each CPU socket has cores with hyperthreading enabled, so if we
      calculate the cpu per socket, we will get actual cpu count per socket,
      So objective of this patch to fetch actual CPU's per socket and sum it
      
      Story: #2004155
      Change-Id: Ia86b0462a3e73af7a2ce0a6439286f7071f74caa
      (cherry picked from commit 3e1fe5f7)
      000ce3d3
  13. 06 Feb, 2019 1 commit
  14. 10 Jan, 2019 1 commit
    • digambar's avatar
      Fix OOB introspection to use pxe_enabled flag in idrac driver · bef4af3c
      digambar authored
      Baremetal nodes fail to pxe boot during OpenStack deployment.
      Reason of this failure is because we are not checking the
      actual pxe device interface and updating the port pxe_enabled field.
      
      This patch make sure that everytime when port is created, it checks the
      the BIOS and UEFI boot modes of node and fetch the pxe device interfaces
      values matching to nic id and then update the port's pxe_enabled field.
      
      Change-Id: I2890bf16110b713e269d4a4fe410f57273dc8e83
      Story: 2004340
      (cherry picked from commit 2b74d940)
      bef4af3c
  15. 04 Jan, 2019 1 commit
    • Jim Rollenhagen's avatar
      Allow disabling instance image cache · d8521c49
      Jim Rollenhagen authored
      We document that this can be disabled by setting the
      instance_master_path config  to "<None>",
      but don't actually support it in code. oslo.config doesn't actually
      translate that value to the Python None as we expect.
      
      Allow disabling the cache by setting the config to the empty string, as
      in "instance_master_path=". This doesn't make sense as a directory to
      use as a cache anyway, so it shouldn't break anyone.
      
      Conflicts:
      	ironic/drivers/modules/deploy_utils.py
      Due to class InstanceImageCache being in iscsi_deploy.py instead of
      deploy_utils.py.
      
      Change-Id: I1bb62d55e3e18272fd5da355d63fd2c11a033acd
      Story: 2004279
      Task: 27829
      (cherry picked from commit 0498e298)
      d8521c49
  16. 02 Jan, 2019 1 commit
  17. 21 Dec, 2018 1 commit
    • Riccardo Pittau's avatar
      Temporarily mark multinode job non-voting · 85781582
      Riccardo Pittau authored
      The multinode job is failing again in stable branches pike
      and queens. In queens the job is already non-voting, marking
      it non-voting in pike as well until we are able to discover
      the root cause and have a fix.
      This will allow contributors to keep working on the pike branch
      until we resolve the job issues.
      
      Change-Id: I2f72b042996e3667315f5b79c132e1cb404b2639
      85781582
  18. 26 Nov, 2018 1 commit
    • Ruby Loo's avatar
      Don't fail when node is in CLEANFAIL state · cfff5dd1
      Ruby Loo authored
      When a timeout occurs when a node is in CLEANWAIT state, the conductor
      puts it into the CLEANFAIL state. However, it tries to do that twice, and
      our state machine doesn't support moving from a CLEANFAIL state to another
      state via the 'fail' verb/event.
      
      The code was changed so that it doesn't try to move it to CLEANFAIL twice,
      and a check is put to prevent the node from being 'failed' frome a CLEANFAIL
      state.
      
      Change-Id: Ieeb77dd28a5d3053588c46fe2a700b5e6ceabbd7
      Story: 2004299
      Task: 27855
      (cherry picked from commit 78ae60f1)
      cfff5dd1
  19. 22 Sep, 2018 1 commit
  20. 01 Sep, 2018 1 commit
  21. 16 Aug, 2018 1 commit
    • Doug Hellmann's avatar
      import zuul job settings from project-config · a58d2958
      Doug Hellmann authored
      This is a mechanically generated patch to complete step 1 of moving
      the zuul job settings out of project-config and into each project
      repository.
      
      Because there will be a separate patch on each branch, the branch
      specifiers for branch-specific jobs have been removed.
      
      Because this patch is generated by a script, there may be some
      cosmetic changes to the layout of the YAML file(s) as the contents are
      normalized.
      
      See the python3-first goal document for details:
      https://governance.openstack.org/tc/goals/stein/python3-first.html
      
      Change-Id: Idc4c6057b7403889c1461123a328868458bf3b24
      Story: #2002586
      Task: #24302
      a58d2958
  22. 04 Aug, 2018 1 commit
    • Richard Pioso's avatar
      Fix iDRAC hardware type does not work with UEFI · 62220910
      Richard Pioso authored
      This fixes an issue that caused the integrated Dell Remote Access
      Controller (iDRAC) management hardware interface implementation,
      'idrac', to fail to boot nodes in Unified Extensible Firmware Interface
      (UEFI) boot mode. That interface is supported by the 'idrac' hardware
      type. The following errors appear in the ironic conductor log:
      
      ERROR ironic.drivers.modules.agent_base_vendor   File
      "/opt/stack/new/ironic/ironic/drivers/modules/drac/management.py", line
      106, in set_boot_device
      ERROR ironic.drivers.modules.agent_base_vendor     in
      drac_boot_devices[PERSISTENT_BOOT_MODE]
      ERROR ironic.drivers.modules.agent_base_vendor KeyError: 'IPL'
      ERROR ironic.drivers.modules.agent_base_vendor
      ERROR ironic.conductor.utils [None
      req-80b5a61c-4ae1-41ea-875f-5a722142be01 None None] Error rebooting node
      cddff129-7353-4de1-b436-810b1ae0dd92 after deploy. KeyError: 'IPL'
      DEBUG ironic.common.states [None
      req-80b5a61c-4ae1-41ea-875f-5a722142be01 None None] Exiting old state
      'deploying' in response to event 'fail' {{(pid=23850) on_exit
      /opt/stack/new/ironic/ironic/common/states.py:263}}
      DEBUG ironic.common.states [None
      req-80b5a61c-4ae1-41ea-875f-5a722142be01 None None] Entering new state
      'deploy failed' in response to event 'fail' {{(pid=23850) on_enter
      /opt/stack/new/ironic/ironic/common/states.py:269}}
      
      The issue is resolved for Dell EMC PowerEdge 13th and 14th generation
      servers. It is not resolved for PowerEdge 12th generation and earlier
      servers.
      
      Prior to this change, the set_boot_device() function in
      ironic.drivers.modules.drac.management could successfully set a boot
      device that would persist during future boots only when the server's
      boot mode was configured to be BIOS. The root cause was that function
      understood only a single persistent boot mode, BIOS, and it was hard
      coded.
      
      PERSISTENT_BOOT_MODE = 'IPL'
      
      Initial Program Load (IPL) is a synonym for legacy BIOS boot mode.
      
      The iDRAC does not report nor make visible the boot source lists for
      persistent boot modes that are not configured as the server's current
      boot mode. Only the list associated with the configured boot mode is
      reported and can be modified. So, when the boot mode is configured to be
      UEFI, the iDRAC permits only its boot source list to be modified.
      However, set_boot_device() had been capable of only modifying the boot
      source list for BIOS (IPL), which was not reported. Its attempt to
      access the wrong, unreported boot source list failed.
      
      This change fixes the issue by determining the configured persistent
      boot mode at run-time and modifying its boot source list. The hard
      coding of a persistent boot mode has been eliminated. Now, nodes managed
      by the iDRAC hardware type successfully boot in either persistent boot
      mode, BIOS or UEFI. More information about using the iDRAC for boot
      management is available in the "Dell EMC BIOS and Boot Management
      Profile", Version 4.0.0, section 7.2 Boot Management, pp. 44-47 [1].
      
      The way the iDRAC hardware type deploys the operating system, by copying
      it to a disk, posed an additional challenge to this fix. UEFI discovers
      new boot sources during the next boot. How could the server be
      configured to directly boot into the newly deployed operating system
      when its boot source is unknown? It was overcome by using new iDRAC BIOS
      attributes named 'SetBootOrderFqddNN' [2]. Those make it possible to
      specify the boot source for the next boot without requiring it to be
      present in the current boot's boot source list. The server is configured
      to directly boot from the disk on which the operating system was just
      deployed. An additional reboot is not required. Note that those new
      attributes are presently available on only 13th and 14th generation
      servers. Also, this approach is only possible for configuring a
      persistent boot source.
      
      [1] http://en.community.dell.com/techcenter/extras/m/white_papers/20444495
      [2] "Configuring server boot options on 14th generation Dell EMC
      PowerEdge servers", section 3.5.2 SetBootOrderFqddNN, pp. 13-14
      (http://en.community.dell.com/techcenter/extras/m/white_papers/20487489)
      
      Conflicts:
      	ironic/tests/unit/drivers/modules/drac/test_management.py
      
      Story: 1656841
      Task: 9711
      Change-Id: Idad1db1807420eab62c44318afafe10ea8c52ee5
      (cherry picked from commit eb14f575)
      62220910
  23. 26 Jun, 2018 1 commit
    • Mark Goddard's avatar
      Fix error when deleting a non-existent port · 909cdce3
      Mark Goddard authored
      Fixes an issue seen during node tear down where a port being deleted by
      the Bare Metal service could be deleted by the Compute service, leading
      to an unhandled error from the Networking service. This change simply
      ignores the PortNotFoundClient exception raises, as is done when
      attempting to unbind a port that does not exist. See [1] for details.
      
      [1] https://storyboard.openstack.org/#!/story/2002637>
      
      Change-Id: Icd2aaa1276e75f08f99553bbc9a873102d896fb9
      Story: 2002637
      Task: 22285
      (cherry picked from commit bfed31bb)
      909cdce3
  24. 18 May, 2018 1 commit
    • Jim Rollenhagen's avatar
      Tear down console during unprovisioning · 00102e3e
      Jim Rollenhagen authored
      Before this patch, when unprovisioning a node, the console was left
      running. This allowed a user to view the console even after the instance
      was gone. Stop the console during unprovisioning to block this.
      
      ConductorManager._set_console_mode will now bubble up any exceptions
      raised, so that we can explode as needed during unprovisioning. This
      does not have any side effects, as elsewhere it is run in it's own
      thread and execution was complete after handling the exception.
      
      Also change a few mock.ANY in the relevant unit tests to the actual task
      object, as cleanup.
      
      Conflicts:
      	ironic/tests/unit/conductor/test_manager.py
      
      Change-Id: Iec128444d692e0b0fbc1737eb21b0e6f69b7ec1e
      Partial-Bug: #1769817
      Story: #2002000
      Task: #19634
      (cherry picked from commit 7a8b26db)
      00102e3e
  25. 27 Apr, 2018 1 commit
  26. 25 Apr, 2018 1 commit
    • Hironori Shiina's avatar
      Remove too large configdrive for handling error · a55331cf
      Hironori Shiina authored
      When configdrive is too large, a node object cannot be saved to DB. If
      it happens, the node cannot moved to DEPLOYFAIL because saving the node
      is prevented again by the large configdrive in the object. In this
      case, the node gets stuck in DEPLOYING, which doesn't allow any state
      transition.
      
      This patch removes the configdrive from a node object when storing the
      configdrive fails. This also catches ConfigInvalid exception, which is
      mentioned in the docsting, and any unexpected exception from
      _store_configdrive() to avoid getting a node stuck in DEPLOYING.
      
      (cherry picked from commit 927c487a)
      Change-Id: I83cf3e02622fc3ed8f5b5389f533e374c1b985f3
      Closes-Bug: 1745630
      a55331cf
  27. 20 Apr, 2018 1 commit
  28. 11 Apr, 2018 1 commit
  29. 09 Apr, 2018 1 commit
  30. 01 Apr, 2018 1 commit
  31. 28 Mar, 2018 1 commit
    • Dmitry Tantsur's avatar
      Gate: run ironic tests in the regular multinode job · 9b0dea61
      Dmitry Tantsur authored
      We don't specify any regex for this job, so it runs some tests.
      They only include test_network_basic_ops, which does not check that
      multitenancy is in effect. We have a test for it in ironic-tempest-plugin,
      but it does not run anywhere. There is a neutron test for the same,
      but it's not a smoke test and it has been skipped for quite some time.
      
      This change switches this job to the run the following tests:
      * all ironic tests (that are not skipped for any reason)
      * multinode tests from Nova
      
      Unfortunately, this patch uncovers that we don't run any tests for
      network attach/detach in practice. The devstack plugin has to be updated
      first to support more than one port per node. A TODO is left in the playbook.
      
      Change-Id: I46d94c29f858977604c0a3430257eca2bee977e3
      (cherry picked from commit 5f03daf2)
      9b0dea61
  32. 27 Mar, 2018 1 commit
    • Jacek Tomasiak's avatar
      Allow Swift endpoint override · ca4fb9b1
      Jacek Tomasiak authored
      Swiftclient uses public endpoint by default. Ironic uses the base URL
      from Swift connection to build TempURLs for generated images.
      Some drivers (e.g. iLO) use those TempURLs to mount images as vmedia.
      With public URLs it will fail if the BMC doesn't have access to the
      public network.
      
      This change introduces an option to explicitly set the endpoint URL
      used for Swift.
      
      This is a stable-only change as the problem is fixed by refactoring
      changes in later releases. This is the only version where Ironic uses
      public Swift endpoints and there is no option to override this.
      
      Change-Id: I639a421fa06fff7ab07b8eab557531b8f36c5ed9
      Closes-Bug: #1755164
      Related-Bug: #1699547
      ca4fb9b1
  33. 20 Mar, 2018 1 commit
  34. 08 Mar, 2018 1 commit
    • Moshe Levi's avatar
      Don't validate local_link_connection when port has client-id · 93012b2d
      Moshe Levi authored
      Infiniband ports do not require the local_link_connection field to be
      populated as the network topology is discoverable by the Infiniband
      Subnet Manager.
      
      This change removes the requirement for local_link_connection for
      Infiniband ports. Infiniband ports have a client-id in their extra
      field.
      
      Closes-Bug: #1753222
      Change-Id: I2bfac4ccaf825bd9aa8ea0d2b447fcd7767acbc5
      (cherry picked from commit dcebb77d)
      93012b2d
  35. 20 Feb, 2018 1 commit
    • Zhenguo Niu's avatar
      Clean nodes stuck in CLEANING state when ir-cond restarts · 8ad8c874
      Zhenguo Niu authored
      
      
      When a conductor managing a node dies abruptly mid cleaing, the
      node will get stuck in the CLEANING state.
      
      This also moves _start_service() before creating CLEANING nodes
      in tests. Finally, it adds autospec to a few places where the tests
      fail in a mysterious way otherwise.
      
      Change-Id: Ia7bce4dff57569707de4fcf3002eac241a5aa85b
      Co-Authored-By: default avatarDmitry Tantsur <dtantsur@redhat.com>
      Partial-Bug: #1651092
      (cherry picked from commit 2921fe68)
      8ad8c874
  36. 19 Feb, 2018 1 commit
    • Ryan Bridges's avatar
      Allow sqalchemy filtering by id and uuid · 504a67b4
      Ryan Bridges authored
      These additions will allow us to filter nodes
      by node uuid and id. This filter API is used
      in many places throughout the code base. It is
      natural to expect that this API would allow us to
      filter by node id and uuid in addtion to the other
      supported parameters. This also fixes a 3 year old bug.
      
      This change from lucasagomes has a bug:
      https://review.openstack.org/#/c/197141/
      
      In conductor/manager.py, he calls _fail_if_in_state()
      and uses the node_id as a filter. However this filter
      effectively does nothing because sqalchemy does not
      know how to filter by node id on the backend. My changes
      fix this problem and make the API more intuitive
      
      Closes-Bug: #1749755
      
      Change-Id: I4efc0d5cd5d5d6108a334f954e1718203b47da0a
      (cherry picked from commit 366a44a1)
      504a67b4
  37. 13 Feb, 2018 1 commit
  38. 12 Feb, 2018 1 commit
    • James E. Blair's avatar
      Zuul: Remove project name · 1bf66b1d
      James E. Blair authored
      Zuul no longer requires the project-name for in-repo configuration.
      Omitting it makes forking or renaming projects easier.
      
      Change-Id: I0778500de4479d3654a998639a4e3b1e69d2d5ae
      1bf66b1d
  39. 08 Feb, 2018 1 commit
  40. 07 Feb, 2018 1 commit