Moti Asayag has posted comments on this change.

Change subject: core: Adds custom properties to VmDevice
......................................................................


Patch Set 1: (6 inline comments)

....................................................
File 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
Line 1335: 
Line 1336:     @TypeConverterAttribute(Boolean.class)
Line 1337:     @DefaultValueAttribute("true")
Line 1338:     SupportCustomDeviceProperties(505),
Line 1339: 
Is there any reason to prevent from this property to be changed dynamically ?
Line 1340:     @TypeConverterAttribute(String.class)
Line 1341:     @DefaultValueAttribute("")
Line 1342:     CustomDeviceProperties(506),
Line 1343: 


....................................................
File 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
Line 84:     MigrationSupportForNativeUsb(ConfigAuthType.User),
Line 85:     MigrationNetworkEnabled,
Line 86:     VncKeyboardLayout(ConfigAuthType.User),
Line 87:     VncKeyboardLayoutValidValues(ConfigAuthType.User),
Line 88:     SupportCustomDeviceProperties(ConfigAuthType.User),
you probably meant a question to the community ;-)
Is there a way to prevent a user via the api to provide custom-device 
properties ?
Since we don't have permissions on property level, i don't see how we can 
prevent this from being invoked via the api.
Line 89:     CustomDeviceProperties(ConfigAuthType.User),
Line 90:     ;
Line 91: 
Line 92:     public static enum ConfigAuthType {


....................................................
File 
backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/customprop/CustomPropertiesUtils.java
Line 70: 
Line 71:     private Map<Version, Map<String, Pattern>> predefinedProperties;
Line 72:     private Map<Version, Map<String, Pattern>> userdefinedProperties;
Line 73:     private Map<Version, String> allVmProperties;
Line 74: 
Martin, would you consider extracting the custom device properties parsing and 
validation into a separate class ? 
It will ease the maintenance of this class and will allow the new 
parsing/validation class to be testable which due to the nature of 
CustomPropertiesUtils (singleton/static) it is less convenient to do.

Also providing tests for the expected and unsupported device custom properties 
will aid the developer on understanding the correct usage and its format.
Line 75:     /**
Line 76:      * Prefix for device type definition
Line 77:      */
Line 78:     private static final String TYPE_PREFIX_STR = "\\{type=(";


Line 666:      *            version of the cluster that the VM containing the 
device is in
Line 667:      * @param device
Line 668:      *            specified device
Line 669:      * @return map containing all device custom properties
Line 670:      */
i haven't found where this method is being used, and also not for the 
storeDeviceProperties() method which is called only here.
Line 671:     public Map<String, String> getDeviceProperties(Version version, 
VmDevice device) {
Line 672:         Map<String, String> map = new HashMap<String, String>();
Line 673:         storeDeviceProperties(version, device, map);
Line 674:         return map;


Line 794:         return devicePropValidationPattern.matcher(propDef).matches();
Line 795:     }
Line 796: 
Line 797:     /**
Line 798:      * Returns string decribing format custom device properties 
specification
s/decribing/describing
Line 799:      */
Line 800:     public String getCustomDevicePropSpec() {
Line 801:         return devicePropSplitStr;
Line 802:     }


....................................................
File 
backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/DeviceCustomPropertiesValueHelper.java
Line 16:         boolean result = true;
Line 17:         String errMsg = null;
Line 18: 
Line 19:         // HACK, because ConfigValues are not loaded inside 
engine-config
Line 20:         Version version = new Version(key.getVersion());
perhaps the condition could be extracted into a method:

   if (deviceCustomPropertiesSupported(version)){
      ...
   }

   boolean deviceCustomPropertiesSupprted(Version version) {
      return Version.v3_3.compareTo(version) > 0;
   }
Line 21:         if (Version.v3_3.compareTo(version) > 0) {
Line 22:             result = false;
Line 23:             errMsg = String.format("Device custom properties are not 
supported in version %s", version.toString());
Line 24:         }


--
To view, visit http://gerrit.ovirt.org/14814
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I07daa5cccbf8e3cbd6b4191bbc8ebf0729d9d9a0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Peřina <mper...@redhat.com>
Gerrit-Reviewer: Allon Mureinik <amure...@redhat.com>
Gerrit-Reviewer: Michal Skrivanek <michal.skriva...@redhat.com>
Gerrit-Reviewer: Moti Asayag <masa...@redhat.com>
Gerrit-Reviewer: Yair Zaslavsky <yzasl...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to