Commit 8a68abe2 8a68abe2ec035a262435a5549158d42414df4e99 by root

save

1 parent 58ec417e
Showing 25 changed files with 164 additions and 266 deletions
4f1d9b53c7e59b9b50ff6b896c4b75cf
\ No newline at end of file
2839aa01a4288378339399e730fe5b420da600a3
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.emercit</groupId>
<artifactId>ethmanager</artifactId>
<version>1.5</version>
</project>
a53cf425b87e9ec4de8be872bd320a5e
\ No newline at end of file
818d65e91e7b1179c93058c754857d9f7b2443fe
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>org.emercit</groupId>
<artifactId>ethmanager</artifactId>
<versioning>
<release>1.5</release>
<versions>
<version>1.5</version>
</versions>
<lastUpdated>20150728062800</lastUpdated>
</versioning>
</metadata>
5a844efd0332aab16cf1302d39dbf999
\ No newline at end of file
672cc7b82224b26ec5c356c5771488127461221a
\ No newline at end of file
1fda13cd28508b9d409a0ff4d74ff23f
\ No newline at end of file
a4499251d6c87554b464c7c3371ab40063b72ddc
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.emercit</groupId>
<artifactId>proxymanager</artifactId>
<version>1.5</version>
</project>
6b33a2fc800d3fc8a28a9565ba974db6
\ No newline at end of file
157f839ee31faa1ea298cfbeddc3c9957285bc01
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>org.emercit</groupId>
<artifactId>proxymanager</artifactId>
<versioning>
<release>1.5</release>
<versions>
<version>1.5</version>
</versions>
<lastUpdated>20150728070304</lastUpdated>
</versioning>
</metadata>
3e946c3bdf4df4bbde5990393ce07047
\ No newline at end of file
63cad08c472ebec8fd91bceac61f91e698ce1be3
\ No newline at end of file
......@@ -12,12 +12,12 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
......
......@@ -14,6 +14,25 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java-version>1.7</java-version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<executable>${env.JAVA_HOME_7}/bin/javac</executable>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
......@@ -40,10 +59,28 @@
<artifactId>json-io</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
</project>
<dependency>
<groupId>org.emercit</groupId>
<artifactId>xmldbmanager</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>org.emercit</groupId>
<artifactId>projecttools</artifactId>
<version>1.5</version>
</dependency>
</dependencies>
<repositories>
<!--other repositories if any-->
<repository>
<id>project.local</id>
<name>project</name>
<url>file:/root/git/hardwareconfig/DevTools/repo</url>
</repository>
</repositories>
</project>
......
......@@ -32,103 +32,13 @@ public class App
private static ProxyLinux proxyLinux=new ProxyLinux();
private static String eth; //Название интерфейса
private static String param; //Параметр который нужно изменить
private static String method; // Метод
private static String value; // Значение параметра
private static String name; // Название интерфейса
public static void main( String[] args )
{
ArgumentParser parser = ArgumentParsers.newArgumentParser("prog");
try {
parser.description("Настройки прокси")
.version("Version:1.0.0.0")
.defaultHelp(true);
parser.addArgument("-m")
.type(String.class)
.setDefault("get")
.help("Методы:\n 1) get - получение параметра;\n"
+ "2) set- установка параметра.\n");
parser.addArgument("-v")
.type(String.class)
.setDefault("")
.help("Значение параметра");
parser.addArgument("-p")
.type(String.class)
.setDefault("")
.help("Имя параметра\n"
+ "Возможные параметры:\n "
+ "1) host - адрес прокси сервера;\n"
+ "2) port - порт прокси сервера;\n"
+ "3) login - имя пользователя;\n"
+ "4) pass -пароль;\n"
+ "5) enabled - проксирование. Значение true -включено, false- выкл.\n"
+ "6) protocol - навзание протакола (http,https,ftp);\n"
+ "7) useauth - использовать логин и пароль. Значение true - использовать, false -нет.\n");
parser.addArgument("-protocol")
.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/ProxyManager.log");
rootLogger.addAppender(fileAppender);
} catch (IOException e) {
log.error(e.getMessage());
}
Namespace res = parser.parseArgs(args);
method=res.getString("m");
if (method.equals("set")) { //Конфигурация интерфейса
name=res.getString("protocol");
param= res.getString("p");
value=res.getString("v");
proxyLinux.ApplyConfig(name, param,(Object)value );
}else if (method.equals("get")) { //Вывод информации из файла
name=res.getString("protocol");
proxyLinux.InfoByName(name);
}
}catch(Exception e){
log.error(e.getMessage());
if(e instanceof ArgumentParserException){
log.error(e.getMessage());
}
else {
parser.handleError((ArgumentParserException) e);
log.error(e.getMessage());
System.exit(1);
}
}
proxyLinux.init();
}
}
......
......@@ -5,6 +5,8 @@ package org.emercit.proxymanager.service;
public void ApplyConfig (String p, Object v);
public void InfoByName(String name);
public void init();
......
package org.emercit.proxymanager.service;
import java.util.Vector;
import org.emercit.proxymanager.model.ProxyBean;
public interface IProxyDB {
public boolean updateDb(Vector<ProxyBean> m);
public Vector<ProxyBean> selectDb();
}
package org.emercit.proxymanager.service;
import java.util.Vector;
import java.beans.XMLEncoder;
import java.beans.XMLDecoder;
import java.io.BufferedOutputStream;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import org.apache.log4j.Logger;
import org.emercit.proxymanager.App;
import org.emercit.proxymanager.model.ProxyBean;
public class ProxyDBImpl implements IProxyDB {
private static final Logger log = Logger.getLogger(ProxyDBImpl.class);
public boolean updateDb(Vector<ProxyBean> m) {
boolean result=true;
try {
FileOutputStream fos = new FileOutputStream("/opt/devtools/beans/ProxyBeans.xml");
BufferedOutputStream bos = new BufferedOutputStream(fos);
XMLEncoder xmlEncoder = new XMLEncoder(bos);
xmlEncoder.writeObject(m);
xmlEncoder.close();
}catch(Exception e) {
log.error(e.getMessage());
result=false;
}
return result;
}
public Vector<ProxyBean> selectDb() {
Vector<ProxyBean> result=new Vector<ProxyBean>();
try {
XMLDecoder d = new XMLDecoder(
new BufferedInputStream(
new FileInputStream("/opt/devtools/beans/ProxyBeans.xml")));
result=(Vector<ProxyBean>)d.readObject();
d.close();
}catch(Exception e) {
log.error(e.getMessage());
result=null;
}
return result;
}
}
......@@ -8,99 +8,30 @@ import java.util.Vector;
import org.apache.log4j.Logger;
import org.emercit.proxymanager.model.ProxyBean;
import org.emercit.proxymanager.service.ProxyDBImpl;
import com.cedarsoftware.util.io.JsonReader;
import com.cedarsoftware.util.io.JsonWriter;
import org.emercit.xmldbmanager.service.Db;
import org.emercit.projecttools.constants.Paths;
public class ProxyLinux {
private static final Logger log = Logger.getLogger(ProxyLinux.class);
private ProxyDBImpl proxyStore=new ProxyDBImpl();
private Db db=new Db(Paths.BEAN_PROXY);
private Vector<ProxyBean> pbs;
private boolean found;
private String json;
private Object obj;
private ProxyBean pmp;
public void ApplyConfig (String protocol, String p, Object v) {
pbs=proxyStore.selectDb();
found=false;
if (p.equals("object")) {
for(ProxyBean pb : pbs) {
if(pb.getProtocol().equals(protocol)) {
found=true;
switch(p) {
case "host":pb.setHost((String)v); break;
case "port":pb.setPort(Integer.valueOf((String)v)); break;
case "login":pb.setLogin((String)v); break;
case "pass":pb.setPass((String)v); break;
case "enabled":pb.setEnabled(Boolean.valueOf((String)v)); break;
case "useauth":pb.setUseAuth(Boolean.valueOf((String)v)); break;
}
}
}
if (!found) { // Добавляем в файл ProxyBeans
if (checkProrocol(protocol)) {
ProxyBean pb=new ProxyBean();
pb.setProtocol(protocol);
pb.setHost("");
pb.setPort(0);
pb.setLogin("");
pb.setPass("");
pb.setEnabled(false);
pb.setUseAuth(false);
pbs.add(pb);
}else {
log.error(protocol+" - неизвестный тип протокола");
}
}
} else {
obj = JsonReader.jsonToJava((String)json);
pmp = (ProxyBean) obj;
for(ProxyBean pb : pbs) {
if(pb.getProtocol().equals(pmp.getProtocol())) {
pb.setHost(pmp.getHost());
pb.setPort(pmp.getPort());
pb.setLogin(pmp.getLogin());
pb.setPass(pmp.getPass());
pb.setEnabled(pmp.getEnabled());
pb.setUseAuth(pmp.getUseAuth());
}
break;
}
}
Config(pbs);
}
private boolean checkProrocol(String value) {
......@@ -111,20 +42,7 @@ public class ProxyLinux {
return false;
}
public void InfoByName(String protocol) {
pbs=proxyStore.selectDb();
if (pbs!=null) {
for(ProxyBean pb : pbs) {
if(pb.getProtocol().equals(protocol)) {
json = JsonWriter.objectToJson(pb);
System.out.println(json);
}
}
}
}
private void Config(Vector<ProxyBean> pbs) {
try {
File file = new File("/etc/environment");
......@@ -151,7 +69,7 @@ public class ProxyLinux {
}
bw.write("\n");
bw.close();
proxyStore.updateDb(pbs);
db.create(pbs);
} catch (IOException e) {
log.error(e.getMessage());
......@@ -161,5 +79,62 @@ public class ProxyLinux {
public void init() {
pbs= new Vector<ProxyBean>();
//HTTP PROXY
pmp=new ProxyBean();
pmp.setEnabled(false);
pmp.setProtocol("http");
pmp.setHost("127.0.0.1");
pmp.setPort(3632);
pmp.setLogin("root");
pmp.setPass("root");
pmp.setUseAuth(false);
pbs.add(pmp);
//HTTPS PROXY
pmp=new ProxyBean();
pmp.setEnabled(false);
pmp.setProtocol("https");
pmp.setHost("127.0.0.1");
pmp.setPort(3632);
pmp.setLogin("root");
pmp.setPass("root");
pmp.setUseAuth(false);
pbs.add(pmp);
//FTP PROXY
pmp=new ProxyBean();
pmp.setEnabled(false);
pmp.setProtocol("ftp");
pmp.setHost("127.0.0.1");
pmp.setPort(3632);
pmp.setLogin("root");
pmp.setPass("root");
pmp.setUseAuth(false);
pbs.add(pmp);
Config(pbs);
}
}
\ No newline at end of file
......