The search for honest, frank, competent military advice should be a short one....the Joint Chiefs of Staff. That is the reason for their existence, to give advice, they do not command troops.
That said, they normally give advice to the Secretary of Defense and the President, who are free to ignore it. Furthermore, late in an administration, the advice they give will often be the advice that the administration (who appointed them in the first place) wants. That is also true of many senior generals in command.
To expect General Petraeus, appointed to his position by the Bush administration, to testify contrary to administration policy (as did General Shinseki) is tantamount to his offering his resignation.