Skip to content

powervm/pypowervm

Repository files navigation

pypowervm - Python API wrapper for PowerVM

NOTE

Current versions should utilize the local authentication mechanism. The remote authentication mechanism is intended only for development and test purposes for the time being.

Overview

pypowervm provides a Python-based API wrapper for interaction with IBM PowerVM-based systems.

License

The library's license can be found in the LICENSE file. It must be reviewed prior to use.

Project Structure

  • debian/: Debian packaging metadata and controls.
  • pypowervm/: Project source code.
    • helpers/: Decorator methods suitable for passing to the helpers parameter of the pypowervm.adapter.Adapter initializer.
    • locale/: Translated message files for internationalization (I18N).
    • tasks/: Modules for performing complex tasks on PowerVM objects.
      • monitor/: Modules for tasks specific to the PowerVM Performance and Capacity Monitoring (PCM) API.
    • tests/: Functional and unit tests. The directory and file structure mirrors that of the project code. For example, tests for module pypowervm/wrappers/logical_partition.py can be found in pypowervm/tests/wrappers/test_logical_partition.py.
      • data/: Data files used by test cases. These are generally XML dumps obtained from real PowerVM REST API servers, often via the utilities found in pypowervm/tests/test_utils/.
      • helpers/: Tests for modules under pypowervm/helpers/.
      • locale/: Directory structure containing sample internationalization (I18N) files for I18N testing.
      • tasks/: Tests for modules under pypowervm/tasks/.
        • monitor/: Tests for modules under pypowervm/tasks/monitor/.
      • test_utils/: Utilities useful for test development and implementation.
      • utils/: Tests for modules under pypowervm/utils/.
      • wrappers/: Tests for modules under pypowervm/wrappers/.
        • pcm/: Tests for modules under pypowervm/wrappers/pcm/.
    • utils/: Common helper utilities.
    • wrappers/: Modules presenting intuitive hierarchical views and controls on PowerVM REST objects. Simple operations involving getting or setting single, independent attributes on an object are handled by the wrappers defined here.
      • pcm/: Wrapper modules specific to the PowerVM Performance and Capacity Monitoring (PCM) API.

Using Sonar

To enable sonar code scans through tox there are a few steps involved.

  • Install sonar locally. See: https://www.sonarqube.org/downloads/

  • Create a host mapping in /etc/hosts for the name 'sonar-server'. If the sonar server were on the local host then the entry might be:

    127.0.0.1  sonar-server
    

    Alternatively, you can set the environment variable SONAR_SERVER prior to invoking tox, to specify the server to use.

  • The following environment variable must be set in order to log onto the sonar server:

    SONAR_USER
    SONAR_PASSWORD
    

    An example invocation:

    # SONAR_USER=user SONAR_PASSWORD=password tox -e sonar
    
  • Sonar output is placed in:

    .sonar/
    

Developer Notes

  • The property pypowervm.base_partition.IOSlot.adapter is deprecated and will be removed no sooner than January 1st, 2017. It has been replaced by the pypowervm.base_partition.IOSlot.io_adapter property. Removal will break compatibility with PowerVC 1.3.0.0 and 1.3.0.1. The issue is resolved as of PowerVC 1.3.0.2.
  • The xag argument to the pypowervm.wrappers.entry_wrapper.EntryWrapper.update method is deprecated and will be removed no sooner than January 1st, 2017.
  • The xags member of the pypowervm.wrappers.virtual_io_server.VIOS class is deprecated and will be removed no sooner than January 1st, 2017. Please use the members of pypowervm.const.XAG instead.
  • Remote Restart in a NovaLink environment is handled by the consuming management layer, not by NovaLink itself. As such, the properties rr_enabled and rr_state of pypowervm.wrappers.logical_partition.LPAR should not be used. These properties are now deprecated and will be removed no sooner than January 1st, 2017. Use the srr_enabled property instead.
  • The method pypowervm.tasks.storage.crt_lu_linked_clone is deprecated and will be removed no sooner than January 1st, 2017. You should now use the pypowervm.tasks.storage.crt_lu method to create a linked clone by passing the source image LU wrapper via the clone parameter.
  • The Adapter cache is removed as of release 1.0.0.4. Attempting to create an Adapter with use_cache=True will result in a CacheNotSupportedException.
  • The property pypowervm.wrappers.managed_system.IOSlot.pci_sub_dev_id is deprecated and will be removed no sooner than January 1st, 2019. It has been replaced by the pypowervm.wrappers.managed_system.IOSlot.pci_subsys_dev_id property.
  • The property pypowervm.wrappers.managed_system.IOSlot.pci_revision_id is deprecated and will be removed no sooner than January 1st, 2019. It has been replaced by the pypowervm.wrappers.managed_system.IOSlot.pci_rev_id property.
  • The property pypowervm.wrappers.managed_system.IOSlot.pci_sub_vendor_id is deprecated and will be removed no sooner than January 1st, 2019. It has been replaced by the pypowervm.wrappers.managed_system.IOSlot.pci_subsys_vendor_id property.
  • The property pypowervm.wrappers.managed_system.IOSlot.dyn_reconfig_conn_index is deprecated and will be removed no sooner than January 1st, 2019. It has been replaced by the pypowervm.wrappers.managed_system.IOSlot.drc_index property.
  • The property pypowervm.wrappers.managed_system.IOSlot.dyn_reconfig_conn_name is deprecated and will be removed no sooner than January 1st, 2019. It has been replaced by the pypowervm.wrappers.managed_system.IOSlot.drc_name property.
  • Passing an arbitrary dictionary into the add_parms argument of pypowervm.tasks.power.power_on and power_off is deprecated. Consumers should migrate to using pypowervm.tasks.power_opts.PowerOnOpts and PowerOffOpts instead.
  • The pypowervm.tasks.power.power_off method is deprecated and will be removed no sooner than January 1st, 2019. Consumers should migrate to using pypowervm.tasks.power.PowerOp.stop for single power-off; or pypowervm.tasks.power.power_off_progressive for soft-retry flows.