public boolean initializeUpgrade() throws IOException {
   currentUpgrades = getDistributedUpgrades();
   if (currentUpgrades == null) {
     // set new upgrade state
     setUpgradeState(false, FSConstants.LAYOUT_VERSION);
     return false;
   }
   Upgradeable curUO = currentUpgrades.first();
   // set and write new upgrade state into disk
   setUpgradeState(true, curUO.getVersion());
   return true;
 }
 UOSignature(Upgradeable uo) {
   this.version = uo.getVersion();
   this.type = uo.getType();
   this.className = uo.getClass().getCanonicalName();
 }