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