Discussion:
[Libstoragemgmt-devel] LSM Constants to discuss
Gris Ge
2014-08-27 12:09:07 UTC
Permalink
Hey Guys,

I would like request some comments for these constants changes:

# Generated by check_const.pl
======
PY_MISS ACCESS_GROUP_MASKED 502(502)
PY_MISS EMPTY_ACCESS_GROUP 511(511)
# These two should be named as LSM_ERR_XXX


PY_MISS LSM_DISK_STATUS_STATUS_REMOVED 0x0000000000000020(32)
# Rename to LSM_DISK_STATUS_REMOVED
PY_MISS LSM_DISL_TYPE_NOT_APPLICABLE 2(2)
# Typo, Rename to LSM_DISK_TYPE_NOT_APPLICABLE
PY_MISS LSM_ERR_CONNREFUSED 140(140)
# Rename to LSM_ERROR_NETWORK_CONNREFUSED
PY_MISS LSM_ERR_HOSTDOWN 141(141)
# Rename to LSM_ERR_NETWORK_HOSTDOWN

PY_MISS LSM_ERR_NOT_FOUND_INITIATOR 207(207)
# Remove.

PY_MISS LSM_ERR_DOMAIN_FRAME_WORK 0(0)
PY_MISS LSM_ERR_DOMAIN_PLUG_IN 1(1)
PY_MISS LSM_FLAG_RSVD 0(0)
PY_MISS LSM_JOB_VOL_CREATE 1(1)
PY_MISS LSM_JOB_VOL_REPLICATE 3(3)
PY_MISS LSM_JOB_VOL_RESIZE 2(2)
# No idea what's these. Do we need to define them in python also?

PY_MISS LSM_PORT_TYPE_FC 2(2)
PY_MISS LSM_PORT_TYPE_FCOE 3(3)
PY_MISS LSM_PORT_TYPE_ISCSI 4(4)
PY_MISS LSM_PORT_TYPE_OTHER 1(1)
PY_MISS LSM_PORT_TYPE_UNKNOWN 0(0)
# Rename to LSM_TGT_PORT_TYPE_FC?

PY_MISS LSM_PROVISION_DEFAULT 3(3)
PY_MISS LSM_PROVISION_FULL 2(2)
PY_MISS LSM_PROVISION_THIN 1(1)
# Rename to LSM_VOLUME_XXX

PY_MISS LSM_VOLUME_ACCESS_NONE 3(3)
PY_MISS LSM_VOLUME_ACCESS_READ_ONLY 1(1)
PY_MISS LSM_VOLUME_ACCESS_READ_WRITE 2(2)
# Remove

PY_MISS LSM_VOLUME_ADMIN_STATE_DISABLE 0x0(0)
# Renamed from DISABLE to DISABLED

PY_MISS LSM_VOLUME_STATUS_OFFLINE 2(2)
PY_MISS LSM_VOLUME_STATUS_ONLINE 1(1)
# Remove

C_MISS lsm.Disk.STATUS_REMOVED 1 << 5(32)
C_MISS lsm.Disk.TYPE_NOT_APPLICABLE 2(2)
C_MISS lsm.ErrorNumber.ACCESS_GROUP_MASKED 502(502)
C_MISS lsm.ErrorNumber.EMPTY_ACCESS_GROUP 511(511)
C_MISS lsm.ErrorNumber.NETWORK_CONNREFUSED 140(140)
C_MISS lsm.ErrorNumber.NETWORK_HOSTDOWN 141(141)
C_MISS lsm.ErrorNumber.PLUGIN_REGISTRATION 308(308)
# Should be OK if C library renamed.

C_MISS lsm.TargetPort.PORT_TYPE_FC 2(2)
C_MISS lsm.TargetPort.PORT_TYPE_FCOE 3(3)
C_MISS lsm.TargetPort.PORT_TYPE_ISCSI 4(4)
C_MISS lsm.TargetPort.PORT_TYPE_OTHER 1(1)
C_MISS lsm.TargetPort.PORT_TYPE_UNKNOWN 0(0)
# Rename to lsm.TargetPort.TYPE_XXX

C_MISS lsm.Volume.ADMIN_STATE_DISABLED 0(0)
C_MISS lsm.Volume.PROVISION_DEFAULT 3(3)
C_MISS lsm.Volume.PROVISION_FULL 2(2)
C_MISS lsm.Volume.PROVISION_THIN 1(1)
# Should be OK if C library renamed.
=====

Generally, I am surprised we didn't have any inconsistent constant value.

Comments are welcomed in IRC or mailist.
Thank you in advance.
Best regards.
--
Gris Ge
Tony Asleson
2014-08-27 19:39:59 UTC
Permalink
Post by Gris Ge
Hey Guys,
# Generated by check_const.pl
Thanks for writing this script, it's proving to be most useful!
I will post a patch with proposed changes, your script passes clean with
that patch.
Post by Gris Ge
======
PY_MISS ACCESS_GROUP_MASKED 502(502)
PY_MISS EMPTY_ACCESS_GROUP 511(511)
# These two should be named as LSM_ERR_XXX
Correct
Post by Gris Ge
PY_MISS LSM_DISK_STATUS_STATUS_REMOVED 0x0000000000000020(32)
# Rename to LSM_DISK_STATUS_REMOVED
OK
Post by Gris Ge
PY_MISS LSM_DISL_TYPE_NOT_APPLICABLE 2(2)
# Typo, Rename to LSM_DISK_TYPE_NOT_APPLICABLE
OK
Post by Gris Ge
PY_MISS LSM_ERR_CONNREFUSED 140(140)
# Rename to LSM_ERROR_NETWORK_CONNREFUSED
LSM_ERR_NETWORK_CONNREFUSED
Post by Gris Ge
PY_MISS LSM_ERR_HOSTDOWN 141(141)
# Rename to LSM_ERR_NETWORK_HOSTDOWN
OK
Post by Gris Ge
PY_MISS LSM_ERR_NOT_FOUND_INITIATOR 207(207)
# Remove.
Yes remove, we don't have initiators as their own class anymore
Post by Gris Ge
PY_MISS LSM_ERR_DOMAIN_FRAME_WORK 0(0)
PY_MISS LSM_ERR_DOMAIN_PLUG_IN 1(1)
The C code error structure has a field that tells you where the error
occurred, eg. in the framework or in the plug-in. This appears to be
supplanted with generic bug numbers. My patch rips it out and the error
level too, which wasn't being used.
Post by Gris Ge
PY_MISS LSM_FLAG_RSVD 0(0)
This is a constant for the C API for the 'flags' parameter. Added for
python in client class and renamed C to LSM_CLIENT_FLAG_RSVD.
Post by Gris Ge
PY_MISS LSM_JOB_VOL_CREATE 1(1)
PY_MISS LSM_JOB_VOL_REPLICATE 3(3)
PY_MISS LSM_JOB_VOL_RESIZE 2(2)
# No idea what's these. Do we need to define them in python also?
Left over from old code, deleted
Post by Gris Ge
PY_MISS LSM_PORT_TYPE_FC 2(2)
PY_MISS LSM_PORT_TYPE_FCOE 3(3)
PY_MISS LSM_PORT_TYPE_ISCSI 4(4)
PY_MISS LSM_PORT_TYPE_OTHER 1(1)
PY_MISS LSM_PORT_TYPE_UNKNOWN 0(0)
# Rename to LSM_TGT_PORT_TYPE_FC?
LSM_TARGET_PORT_TYPE_XXX would be fine
Post by Gris Ge
PY_MISS LSM_PROVISION_DEFAULT 3(3)
PY_MISS LSM_PROVISION_FULL 2(2)
PY_MISS LSM_PROVISION_THIN 1(1)
# Rename to LSM_VOLUME_XXX
Yes
Post by Gris Ge
PY_MISS LSM_VOLUME_ACCESS_NONE 3(3)
PY_MISS LSM_VOLUME_ACCESS_READ_ONLY 1(1)
PY_MISS LSM_VOLUME_ACCESS_READ_WRITE 2(2)
# Remove
Correct
Post by Gris Ge
PY_MISS LSM_VOLUME_ADMIN_STATE_DISABLE 0x0(0)
# Renamed from DISABLE to DISABLED
OK
Post by Gris Ge
PY_MISS LSM_VOLUME_STATUS_OFFLINE 2(2)
PY_MISS LSM_VOLUME_STATUS_ONLINE 1(1)
# Remove
OK
Post by Gris Ge
C_MISS lsm.Disk.STATUS_REMOVED 1 << 5(32)
C_MISS lsm.Disk.TYPE_NOT_APPLICABLE 2(2)
C_MISS lsm.ErrorNumber.ACCESS_GROUP_MASKED 502(502)
C_MISS lsm.ErrorNumber.EMPTY_ACCESS_GROUP 511(511)
C_MISS lsm.ErrorNumber.NETWORK_CONNREFUSED 140(140)
C_MISS lsm.ErrorNumber.NETWORK_HOSTDOWN 141(141)
C_MISS lsm.ErrorNumber.PLUGIN_REGISTRATION 308(308)
# Should be OK if C library renamed.
Yes
Post by Gris Ge
C_MISS lsm.TargetPort.PORT_TYPE_FC 2(2)
C_MISS lsm.TargetPort.PORT_TYPE_FCOE 3(3)
C_MISS lsm.TargetPort.PORT_TYPE_ISCSI 4(4)
C_MISS lsm.TargetPort.PORT_TYPE_OTHER 1(1)
C_MISS lsm.TargetPort.PORT_TYPE_UNKNOWN 0(0)
# Rename to lsm.TargetPort.TYPE_XXX
Yes
Post by Gris Ge
C_MISS lsm.Volume.ADMIN_STATE_DISABLED 0(0)
C_MISS lsm.Volume.PROVISION_DEFAULT 3(3)
C_MISS lsm.Volume.PROVISION_FULL 2(2)
C_MISS lsm.Volume.PROVISION_THIN 1(1)
# Should be OK if C library renamed.
Yes
Post by Gris Ge
=====
Generally, I am surprised we didn't have any inconsistent constant value.
Me too!

Thanks,
Tony

Loading...