Review Request 27: Rework all storage methods to return job and be asynchronous.

Jan Safranek reviewboard at gallagherhome.com
Fri Mar 22 14:28:37 UTC 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard-openlmi.rhcloud.com/r/27/
-----------------------------------------------------------

Review request for OpenLMI Developers.


Repository: openlmi-storage


Description
-------

This is quite large diff, because Review Board does not support patch sets. I'll do smaller topic-branches next time.

Here is summary from all patches in the series, squashed by post-review:

Added LMI_DeletePartition() to asynchronously remove partitions.


Create partitions asynchronously.


Added ReturnToStoragePool() and DeleteLV() methods to asynchronously remove LVs.


Create logical volumes asynchronously.


Added DeleteStoragePool() and DeleteVG() methods to asynchronously remove VGs.


Create volume groups asynchronously.


Added method to destroy MD RAID asynchronously.


Create MD RAID asynchronously.

CreateOrModifyMDRAID() now returns a job.

Added method invoke_async_method() to test framework to call a method and wait for job.


Added assertCIMNameEquals() to compare two CIMInstanceNames.

The names must be equal except their hostname, which is not checked.

Ignore MD RAIDs which are not active.

Now that Blivet does not start MD RAIDs on init, we can encounter some
MDRAIDArrayDevices with status=False, which tells that the RAID
is not running. We should not report these devices (at least now).
Added documentation of filesystem management.


Allow python to exit the provider even if there are threads running.

The JobManager and IndicationManager threads are marked as daemon so we
don't need to stop them manually on exit.
Added logging to init and shutdown CIMOM callbacks.


Added test for FileSystemConfigurationService.


Add UUID property to LMI_LocalFileSystem.

Also, use device name as ElementName, it's more friendly than uuid.

Added btrfs format support.

The btrfs filesystem can be created and deleted. No subvolumes support.

LMI_LocalFileSystem and its associations now support multiple devices
composing single filesystem.
Added get_uuid() to FileSystemProvider

UUID is hard to get for btrfs, let's add special method for it and let btrfs
override it.
Return device from get_format_for_id()

In most cases, we need both the format and the device when working with
device formats. Therefore get_format_for_id() shold return both.

Move the ugly hack to remove MD metadata to MDRAIDStorageExtent.


Allow multiple storage actions to be run in one job.

Sometimes we need to execute multiple StorageActions in one
openlmi.storage.util.storage.do_storage_action call, e.g. when destroying
btrfs filesystem.

do_storage_action() now accepts array of actions instead of single action.

Also, this patch removes wiping of MD RAID metadata from destroyed arrays,
the code is obsolete now.
Added LMI_FileSystemConfigurationService.DeleteFileSystem.


Fixed job returning an error

We should pass CIMInstance instead of CIMError as property.
Added possibility to set AffectedElements when a job finishes.

Job Control Subprofile says, that when a job finishes, it can point to the
resulting element using LMI_AffectedStorageJobElement. Therefore we should
add support for it.
Add indication support to the test framework.


Added workaround for rhbz#920763

- we must not use '__MethodParameters', Pegasus does not like it
In addition, moved indication properties from CIMInstance construnctor
to have all properties set in the same way.


Diffs
-----

  doc/admin/Makefile 67c7e700ed18824ad81891f2e1f22e355229c648 
  doc/admin/mof/Makefile 948abd28316c9039d09f6c305a63e3e50888d776 
  doc/admin/pic/fs-instance.uml PRE-CREATION 
  doc/admin/usage-fs.rst PRE-CREATION 
  doc/admin/usage.rst a21ab4d9f643c7fc2599cf73108a0d9ece2fa5fd 
  mof/filesystem.mof 2b6eada9926671e34782ee795a6934c1cdb6adc6 
  mof/partitions.mof 0594d0339decdae5d8f6b83d85337c0629a87be6 
  mof/storage.mof 5a9b03225f9aa301e466c3ce5a8a3d8f55089228 
  src/openlmi/storage/FormatProvider.py 72e81409ce13af899400a7c87e18711c9d63e8ff 
  src/openlmi/storage/IndicationManager.py 1a39de7b0b9e435694584a0b889d6eaa074eb6de 
  src/openlmi/storage/JobManager.py b863682b6c76f4297d74ada2dc9fc058a9baa519 
  src/openlmi/storage/LMI_DiskPartitioningConfigurationService.py a9f16961a55d0e88b07db340c9fad34cb00ca7a1 
  src/openlmi/storage/LMI_FileSystemConfigurationService.py 2a9c94d26cf63c86ce42edf681b6f0716cce7d1a 
  src/openlmi/storage/LMI_LVStorageExtent.py 4a166e295351fe89d4e0d75865a39b9050daac9c 
  src/openlmi/storage/LMI_LocalFileSystem.py addad64ce05a208e87ac2845d557bc781130e728 
  src/openlmi/storage/LMI_MDRAIDBasedOn.py e94478af340ad234f7621a61d77182cca910a0d6 
  src/openlmi/storage/LMI_MDRAIDFormatProvider.py b957ecbb4129a2aeebffedc98ac3406af032682c 
  src/openlmi/storage/LMI_MDRAIDStorageExtent.py ce783e8eb97c9a56f2785d677eec7c28c733740c 
  src/openlmi/storage/LMI_PVFormatProvider.py 5ec9d3634291d07366d778d3ccbc00b11297039a 
  src/openlmi/storage/LMI_StorageConfigurationService.py 33b5590c5f33615c708c1411787344b5978f0446 
  src/openlmi/storage/LMI_VGStoragePool.py 622e470e53ced639008b1caf5e61ae65d39caf62 
  src/openlmi/storage/LocalFileSystemProvider.py b2558b81caa850b709024f21079033ea0ef1879c 
  src/openlmi/storage/ProviderManager.py 3b107f8d895ea5d4a2912f018e04035733a7a009 
  src/openlmi/storage/cimom_entry.py 085eab91260697729234ce1476eccaf38a86e3d2 
  src/openlmi/storage/util/storage.py 76b1b039714c07d6081a538d1b077b156dcef60a 
  test/test_base.py 392b90610d2d1980f3494a47f9077b1c48c76402 
  test/test_create_fs.py PRE-CREATION 
  test/test_create_lv.py 59ccb3dd153699f0f65886ccfdfd53fbdea9c498 
  test/test_create_mdraid.py 53b6c79413cb79df95602cfe36d3a0c55b4be1b3 
  test/test_create_partition.py 0cf2faeb5de498983f38163f2011868468d3b4c5 
  test/test_create_pool.py 49699d51753a4dc055f5ba31b78b1fec56c75026 
  test/test_create_vg.py 02c4272e71eac9fdd6e45718a3d72faa7c3b154c 
  test/test_set_partition_style.py 81f4ef55534dc8fbc8b455e4f852ef0f7ea303da 
  test/test_vgpool_methods.py e8f6ee9e8417ff1fea6fdfb69d57f4b4a560bbec 

Diff: http://reviewboard-openlmi.rhcloud.com/r/27/diff/


Testing
-------


Thanks,

Jan Safranek

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/openlmi-devel/attachments/20130322/18080d02/attachment.html>


More information about the openlmi-devel mailing list