def enable_root_f5(host)
      for tries in 1..10
        begin
          #This command is problematic as the F5 is not always done loading
          if host.exec(Command.new("modify sys db systemauth.disablerootlogin value false"), :acceptable_exit_codes => [0,1]).exit_code == 0 \
              and host.exec(Command.new("modify sys global-settings gui-setup disabled"), :acceptable_exit_codes => [0,1]).exit_code == 0 \
              and host.exec(Command.new("save sys config"), :acceptable_exit_codes => [0,1]).exit_code == 0
            backoff_sleep(tries)
            break
          elsif tries == 10
            raise "Instance was unable to be configured"
          end
        rescue Beaker::Host::CommandFailure => e
          @logger.debug("Instance not yet configured (#{e})")
        end
        backoff_sleep(tries)
      end
      host['user'] = 'admin'
      sha256 = Digest::SHA256.new
      password = sha256.hexdigest((1..50).map{(rand(86)+40).chr}.join.gsub(/\\/,'\&\&')) + 'password!'
      # disabling password policy to account for the enforcement level set
      # and the generated password is sometimes too `01070366:3: Bad password (admin): BAD PASSWORD: \
      # it is too simplistic/systematic`
      host.exec(Command.new('modify auth password-policy policy-enforcement disabled'))
      host.exec(Command.new("modify auth user admin password #{password}"))
      @logger.notify("f5: Configured admin password to be #{password}")
      host.close
      host['ssh'] = {:password => password}
    end
def enable_root_f5(host)
      for tries in 1..10
        begin
          #This command is problematic as the F5 is not always done loading
          if host.exec(Command.new("modify sys db systemauth.disablerootlogin value false"), :acceptable_exit_codes => [0,1]).exit_code == 0 \
              and host.exec(Command.new("modify sys global-settings gui-setup disabled"), :acceptable_exit_codes => [0,1]).exit_code == 0 \
              and host.exec(Command.new("save sys config"), :acceptable_exit_codes => [0,1]).exit_code == 0
            backoff_sleep(tries)
            break
          elsif tries == 10
            raise "Instance was unable to be configured"
          end
        rescue Beaker::Host::CommandFailure => e
          @logger.debug("Instance not yet configured (#{e})")
        end
        backoff_sleep(tries)
      end
      host['user'] = 'admin'
      sha256 = Digest::SHA256.new
      password = sha256.hexdigest((1..50).map{(rand(86)+40).chr}.join.gsub(/\\/,'\&\&')) + 'password!'
      # disabling password policy to account for the enforcement level set
      # and the generated password is sometimes too `01070366:3: Bad password (admin): BAD PASSWORD: \
      # it is too simplistic/systematic`
      host.exec(Command.new('modify auth password-policy policy-enforcement disabled'))
      host.exec(Command.new("modify auth user admin password #{password}"))
      @logger.notify("f5: Configured admin password to be #{password}")
      host.close
      host['ssh'] = {:password => password}
    end
Enables root access for a host on an f5 platform
 @note This method does not support other platforms

 @return nil
 @api private