public static ChefModes detectChefMode(Entity entity) { ChefModes mode = entity.getConfig(ChefConfig.CHEF_MODE); if (mode == ChefModes.AUTODETECT) { // TODO server via API ProcessTaskWrapper<Boolean> installCheck = DynamicTasks.queue(ChefServerTasks.isKnifeInstalled()); mode = installCheck.get() ? ChefModes.KNIFE : ChefModes.SOLO; log.debug( "Using Chef in " + mode + " mode due to autodetect exit code " + installCheck.getExitCode()); } Preconditions.checkNotNull( mode, "Non-null " + ChefConfig.CHEF_MODE + " required for " + entity); return mode; }