App.java 3.64 KB
package org.emercit.dnsmanager;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.ByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import net.sourceforge.argparse4j.ArgumentParsers;
import net.sourceforge.argparse4j.impl.Arguments;
import net.sourceforge.argparse4j.inf.ArgumentParser;
import net.sourceforge.argparse4j.inf.ArgumentParserException;
import net.sourceforge.argparse4j.inf.Namespace;  

import org.apache.log4j.Logger;
import org.apache.log4j.ConsoleAppender; 
import org.apache.log4j.Level;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;
import org.emercit.dnsmanager.service.DnsLinux;

public class App 
{
	
	private static final Logger log = Logger.getLogger(App.class);
	    
	private static DnsLinux dnslinux=new DnsLinux();
	
	private static String method;
	
	private static String param;
	
	private static String value;
	
	
    public static void main( String[] args )
    {
    	ArgumentParser parser = ArgumentParsers.newArgumentParser("prog");

    	
       try {
	     
	 	 	parser.description("Конфигуратор DNS")
			 .version("Version:1.0.0.0")
			 .defaultHelp(true);

	 	 	parser.addArgument("-m")
	   		 .type(String.class)
	   		 .setDefault("get")
	   		 .help("Методы: \n"
	   		 		+ "1) get - получение всех IP DNS серверов;\n"
	   		 		+ "2) add - добавление IP адреса DNS сервера;\n"
	   		 		+ "3) del - удаление IP DNS сервера.\n");
	    	
	    	parser.addArgument("-v")
	   		 .type(String.class)
	   		 .setDefault("")
	   		 .help("Значение параметра");
	   
	   		parser.addArgument("-p")
	   		.type(String.class)
	   		.setDefault("")
	   		.help("Имя параметра.\n Возможные параметры:\n"
	   				+"1) ip - адрес DNS сервера\n");

	   		parser.addArgument("-e")
	   		.type(String.class)
	   		.setDefault("")
	   		.help("Название сетевого интерфейса");
	   		
	   		parser.addArgument("-log")
	   		.type(Integer.class)
	   		.setDefault(0)
	   		.help("Логирование. 0-выкл.; 1-консоль; 2-файл");
	   	
	    	 Logger rootLogger = Logger.getRootLogger();
	    	 PatternLayout layout = new PatternLayout("%d{ISO8601} [%t] %-5p %c %x - %m%n");
	    	 
	    	 //rootLogger.setLevel(Level.OFF);
	    	 rootLogger.setLevel(Level.DEBUG);
	    	
		     rootLogger.addAppender(new ConsoleAppender(layout));
		    try {
		    		RollingFileAppender fileAppender = new RollingFileAppender(layout, "/var/log/devtools/DnsManager.log");
		    		rootLogger.addAppender(fileAppender);
		    } catch (IOException e) {
		    	log.error(e.getMessage());
		    }
	  
		    Namespace res = parser.parseArgs(args);
      
		
		     method=res.getString("m");
	  
		    if (method.equals("add")) { //Добавление Ip  DNS сервера
		   
		    	value=res.getString("v");
		    	dnslinux.Add(value);
		    	
		    }else if (method.equals("get")) { //Вывод списка DNS в JSON формате
		   
		    	dnslinux.PrintInfoDnsAll();
		    	
		    }else if (method.equals("del")) { // Удаление IP адреса DNS
		    	
		    	value=res.getString("v");
		    	dnslinux.Delete(value);
		    }

       }catch(Exception e){

    	   if(e instanceof ArgumentParserException){
    		   log.error(e.getMessage());
		}
		else {
 		 parser.handleError((ArgumentParserException) e);
 		 log.error(e.getMessage());
 		System.exit(1);
}
}

    }
}