} // // Rule filter provided in CLI ? // if (isset(PH::$args['filter'])) { $rulesFilter = PH::$args['filter']; if (!is_string($rulesFilter) || strlen($rulesFilter) < 1) { display_error_usage_exit('"filter" argument is not a valid string'); } } // // What kind of config input do we have. // File or API ? // // <editor-fold desc=" **** input method validation and PANOS vs Panorama auto-detect ****" defaultstate="collapsed" > $configInput = PH::processIOMethod($configInput, true); $xmlDoc = null; if ($configInput['status'] == 'fail') { fwrite(STDERR, "\n\n**ERROR** " . $configInput['msg'] . "\n\n"); exit(1); } if ($configInput['type'] == 'file') { if (isset(PH::$args['out'])) { $configOutput = PH::$args['out']; if (!is_string($configOutput) || strlen($configOutput) < 1) { display_error_usage_exit('"out" argument is not a valid string'); } } else { display_error_usage_exit('"out" is missing from arguments'); } if (!file_exists($configInput['filename'])) {
$doc = $configInput['connector']->getCandidateConfig(); } elseif ($configInput['filename'] == 'running-config') { $doc = $configInput['connector']->getRunningConfig(); } else { $doc = $configInput['connector']->getSavedConfig($configInput['filename']); } } else { derr('not supported yet'); } print " OK!!\n\n"; print "Now saving/uploading that configuration to "; // // What kind of config output do we have. // File or API ? // $configOutput = PH::processIOMethod($configOutput, false); if ($configOutput['status'] == 'fail') { fwrite(STDERR, "\n\n**ERROR** " . $configOutput['msg'] . "\n\n"); exit(1); } if ($configOutput['type'] == 'file') { if (isset(PH::$args['toxpath'])) { derr("toXpath options was used, it's incompatible with a file output"); } print "{$configOutput['filename']} ... "; $doc->save($configOutput['filename']); } elseif ($configOutput['type'] == 'api') { if ($debugAPI) { $configOutput['connector']->setShowApiCalls(true); } if (isset(PH::$args['toxpath'])) {