self.load_previous_disk_order

in cookbooks/fb_storage/libraries/storage.rb [304:352]


    def self.load_previous_disk_order(include_version = false)
      
      
      
      
      version = disks = nil
      if File.size?(PREVIOUS_DISK_ORDER)
        f = JSON.parse(File.read(PREVIOUS_DISK_ORDER))
        
        case f
        when Array
          version = 1
          disks = f.empty? ? nil : f
        when Hash
          unless f['version'] == 2
            fail 'fb_storage: Unknown format of persistent-order cache file!'
          end
          version = f['version']
          disklist = []
          f['disks'].each do |id|
            
            if id.nil?
              return nil
            end

            sysfile = "#{DEV_ID_DIR}/#{id}"
            if File.exist?(sysfile)
              disklist << File.basename(File.readlink(sysfile))
            else
              Chef::Log.warn(
                "fb_storage: Unable to translate #{id} into" +
                ' drive path - probably replaced disk.',
              )
              
              
              disklist << id
            end
          end
          disks = disklist
        end
        if include_version
          return { 'version' => version, 'disks' => disks }
        else
          return disks
        end
      end
      nil
    end