Joseph J. VLcek wrote: > 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 >
Karen and I have discussed this off line. The agreed upon solution is the one I proposed above using the two variables. So I will change the code to do that. Thank you for your help Karen. Joe