Karen Tung wrote:
> Hi Joe,
>
> I have comment about 1 of your response in-line below.  I removed 
> everything
> else that I have no further comment on.
>
> Joseph J. VLcek wrote:
>>
>> Hi Karen,
>>
>> Thank you for the feedback. My response are in-line below.
>>
>> Thank you!
>>
>> Joe
>>
>> Karen Tung wrote:
>>> Hi Glenn and Joe,
>>>
>>> Here are my comments on the updated webrev.
>>>
>>> usr/src/cmd/distro_const/vmc/create_vm:
>>> * lines 233-237: I think it is better to validate the value specified
>>> for disk_size immediately after you get the value in line 201.
>>> That way, we don't waste CPU power to get the other values if
>>> the disk_size is not valid. Same comment applies to the ram size,
>>
>> I feel a very minimal amount of CPU would be saved by combining the 
>> parameter gathering with the parameter validation. I also fell doing 
>> so would reduce the readability and therefor the maintainability.
>>
>> I would like to leave this as it is.
> I suppose it is up to you.  Personally, wasting CPU power or not aside,
> I think the code is easier to read if all the validation for the same 
> supplied
> argument happens in the same place instead of scattered all over.
>
> Thanks,
>
> --Karen
Hi Karen.

I agree validation should be done in one place. I planned to have it all 
under the "Validation section". One exception ended up  making sence. 
That being the validation of INTEGER.


I want to assign the INTEGER values to "integer" variables using the 
"-i" flag to typeset.

If the command line does not contain an integer when one is expected the 
typset -i results in the variable having the value "0".

e.g.:
% typeset -i int_variable=1  
% echo $int_variable         
1
% typeset -i int_variable="hi"
% echo $int_variable         
0                                                                  
%                                                               


I only confirm it is an integer prior to assigning it with "typeset -i". 
The range validation is still done under the "Validation section"

Because of this I felt this exception to where input arguments are 
validated would be acceptable.



A way to have no exception to input validation all happening under the 
"Validation section" would be to use 2 variables.

e.g.:

Instead of this:

 194 if [[ $6 != +([0-9]) ]]
 195 then
 196         print -u2 "\nImproper argument."
 197         print -u2 "\"disk size\" must be an integer, min \"12000\" (MB)."
 198         exit 1
 199 fi
 200 typeset -i DISK_SIZE=$6 # VM Disk size


I could do this:

typeset TMP_DISK_SIZE=$6 # VM Disk size <- Note no "-i" flag to typeset.

Then under validation I could do:
194 if [[ ${TMP_DISK_SIZE} != +([0-9]) ]]
 195 then
 196         print -u2 "\nImproper argument."
 197         print -u2 "\"disk size\" must be an integer, min \"12000\" (MB)."
 198         exit 1
 199 fi
 200 typeset -i DISK_SIZE=${TMP_DISK_SIZE} # VM Disk size

 233 if ((${DISK_SIZE} < 12000 || ${DISK_SIZE} > 99999999)) ; then
 234         print -u2 "\nThe disk size of ${DISK_SIZE} is invalid. It must" \
 235             " be in range [12000, 99999999] (MB)"
 236         exit 1
 237 fi


This seemed a bit overkill to me for the one exception.

I would like to leave this the way it is. I suspect that is OK with you 
since you have already written:  "I suppose it is up to you. " but I 
thought I would try to explain why it is the way it is.

What do you think?

Joe



Reply via email to