nova/nova/virt/hyperv
Sean Mooney f3d48000b1 Add autopep8 to tox and pre-commit
autopep8 is a code formating tool that makes python code pep8
compliant without changing everything. Unlike black it will
not radically change all code and the primary change to the
existing codebase is adding a new line after class level doc strings.

This change adds a new tox autopep8 env to manually run it on your
code before you submit a patch, it also adds autopep8 to pre-commit
so if you use pre-commit it will do it for you automatically.

This change runs autopep8 in diff mode with --exit-code in the pep8
tox env so it will fail if autopep8 would modify your code if run
in in-place mode. This allows use to gate on autopep8 not modifying
patches that are submited. This will ensure authorship of patches is
maintianed.

The intent of this change is to save the large amount of time we spend
on ensuring style guidlines are followed automatically to make it
simpler for both new and old contibutors to work on nova and save
time and effort for all involved.

Change-Id: Idd618d634cc70ae8d58fab32f322e75bfabefb9d
2021-11-08 12:37:27 +00:00
..
README.rst Keep pre-commit inline with hacking and fix whitespace 2019-12-12 14:56:39 +00:00
__init__.py Add Hyper-V driver in the "compute_driver" option description 2014-07-24 02:47:32 -07:00
block_device_manager.py Rename block_device_info_get_root 2018-01-11 20:46:13 +00:00
constants.py hyper-v rbd volume support 2021-03-02 12:58:11 +00:00
driver.py fup: Remove unused legacy block_device_info format 2021-08-20 13:26:46 +01:00
eventhandler.py Remove translation of log messages 2017-06-13 11:20:28 +07:00
hostops.py libvirt: Drop support for Xen 2021-01-22 10:06:40 +00:00
imagecache.py Consolidate [image_cache] conf options 2019-11-13 11:09:03 -06:00
livemigrationops.py Avoid error state for recovered instances after failed migrations 2019-08-26 11:36:56 +03:00
migrationops.py Hyper-V: Perform proper cleanup after cold migration 2017-08-30 17:50:11 +00:00
pathutils.py Remove six.text_type (1/2) 2020-12-13 11:25:31 +00:00
rdpconsoleops.py Hyper-V: adds os-win library 2015-12-02 16:34:24 +02:00
serialconsolehandler.py Add autopep8 to tox and pre-commit 2021-11-08 12:37:27 +00:00
serialconsoleops.py Remove six.text_type (1/2) 2020-12-13 11:25:31 +00:00
serialproxy.py Add missing ws seperator between words 2018-11-26 23:42:18 +00:00
snapshotops.py trivial: Remove log translations 2020-05-27 09:40:47 +00:00
vif.py hyperv: Remove vestigial nova-network support 2019-11-29 17:20:02 +00:00
vmops.py Merge "hyperv: Configures chassis asset tags for VMs." 2021-02-05 01:37:55 +00:00
volumeops.py hyper-v rbd volume support 2021-03-02 12:58:11 +00:00

README.rst

Hyper-V Volumes Management

To enable the volume features, the first thing that needs to be done is to enable the iSCSI service on the Windows compute nodes and set it to start automatically.

sc config msiscsi start= auto net start msiscsi

In Windows Server 2012, it's important to execute the following commands to prevent having the volumes being online by default:

diskpart san policy=OfflineAll exit

How to check if your iSCSI configuration is working properly:

On your OpenStack controller:

1. Create a volume with e.g. "nova volume-create 1" and note the generated volume id

On Windows:

  1. iscsicli QAddTargetPortal <your_iSCSI_target>
  2. iscsicli ListTargets

The output should contain the iqn related to your volume: iqn.2010-10.org.openstack:volume-<volume_id>

How to test Boot from volume in Hyper-V from the OpenStack dashboard:

  1. Fist of all create a volume
  2. Get the volume ID of the created volume

3. Upload and untar to the Cloud controller the next VHD image: http://dev.opennebula.org/attachments/download/482/ttylinux.vhd.gz 4. sudo dd if=/path/to/vhdfileofstep3 of=/dev/nova-volumes/volume-XXXXX <- Related to the ID of step 2 5. Launch an instance from any image (this is not important because we are just booting from a volume) from the dashboard, and don't forget to select boot from volume and select the volume created in step2. Important: Device name must be "vda".