public double calculateCloneUsableCapacity(int vmfullclonesize,int vmdeltasize,int vmdisposabledisksize,int vmlogsize,int vmswapsize,int vmvideoswapsize,int vmcount,int storageoverhead,int blockdeduplicationratio,String clonetype){
  Double d=(double)((vmfullclonesize + vmdeltasize + vmdisposabledisksize+ vmlogsize+ vmswapsize+ vmvideoswapsize) * vmcount) / 1048576;
  d+=disposableusablecapacity;
  d+=localswapsizetotal;
  d*=(1.0 + (storageoverhead / 100.0));
  if (clonetype.equalsIgnoreCase("full") || clonetype.equalsIgnoreCase("assigned")) {
    d*=(1.0 - (blockdeduplicationratio / 100.0));
  }
  d=(double)Math.round(d * 100) / 100;
  return d;
}

public double calculateCloneUsableCapacity ( int vmfullclonesize , int vmdeltasize , int vmdisposabledisksize , int vmlogsize , int vmswapsize , int vmvideoswapsize , int vmcount , int storageoverhead , int blockdeduplicationratio , String clonetype ) { Double d = ( double ) ( ( vmfullclonesize + vmdeltasize + vmdisposabledisksize + vmlogsize + vmswapsize + vmvideoswapsize ) * vmcount ) / 1048576 ; d += disposableusablecapacity ; d += localswapsizetotal ; d *= ( 1.0 + ( storageoverhead / 100.0 ) ) ; if ( clonetype . equalsIgnoreCase ( "full" ) || clonetype . equalsIgnoreCase ( "assigned" ) ) { d *= ( 1.0 - ( blockdeduplicationratio / 100.0 ) ) ; } d = ( double ) Math . round ( d * 100 ) / 100 ; return d ; }
calculate clone size subset for all vm in the solution . includes all components of vm , but replica .
