package com.asb.inms;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.net.ftp.FTPClient;
import com.asb.inms.entity.ReporterStatusEntity;
import com.asb.inms.entity.StatusEntity;
public class Ftp {
FTPClient ftpClient;
String hostname = "";
String username = "";
String password = "";
String remoteFileName = "";
PrintWriter out;
public Ftp(String hostname, String username, String password, String remoteFileName) throws IOException{
this.hostname = hostname;
this.username = username;
this.password = password;
this.remoteFileName = remoteFileName;
ftpClient = new FTPClient();
// out = new PrintWriter(ftpClient.appendFileStream(this.remoteFileName));
}
public boolean connect() throws Exception{
ftpClient.connect(hostname);
ftpClient.setControlEncoding("utf-8");
return ftpClient.login(username, password);
}
public void disConnect() throws IOException {
// ftpClient.logout();
ftpClient.disconnect();
}
//文件名为yyyyMMddhh
public void buildOut() throws IOException{
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMddHH");
out = new PrintWriter(ftpClient.appendFileStream(this.remoteFileName+formater.format(new Date())));
}
//将告警写到ftp服务器
public void writeFile(ReporterStatusEntity status) throws IOException {
out.println("<ALARMSTART>");
out.println(" SERIAL:"+status.getSERIAL());
out.println(" NODE:"+status.getNODE());
out.println(" ALERTGROUP:"+status.getALERTGROUP());
out.println(" ALERTKEY:"+status.getALERTKEY());
out.println(" SUMMARY:"+status.getSUMMARY());
out.println(" TYPE:"+status.getTYPE());
out.println(" SEVERITY:"+status.getSEVERITY());
out.println(" X733SPECIFICPROB:"+status.getX733SPECIFICPROB());
out.println(" X733CORRNOTIF:"+status.getX733CORRNOTIF());
out.println(" ALARM_SEQ:"+status.getASB_ALARM_SEQ());
out.println(" ADAPTER_ID:"+status.getASB_NMSEMS_ADAPTER_ID());
out.println(" OWNERGID:"+status.getOWNERGID());
out.println(" ASB_NETYPE:"+status.getASB_NETYPE());
out.println(" ASB_EMSEVENTTIME:"+status.getASB_EMSEVENTTIME());
out.println("<ALARMEND>");
// out.println("hello..");
out.flush();
}
public void writeFile(StatusEntity status) throws IOException {
out.println("<ALARMSTART>");
out.println(" SERIAL:"+status.getSerial());
out.println(" NODE:"+status.getNode());
out.println(" ALERTGROUP:"+status.getAlertGroup());
out.println(" ALERTKEY:"+status.getAlertKey());
out.println(" SUMMARY:"+status.getSummary());
out.println(" TYPE:"+status.getType());
out.println(" SEVERITY:"+status.getSeverity());
out.println(" X733SPECIFICPROB:"+status.getX733SpecificProb());
out.println(" X733CORRNOTIF:"+status.getX733CorrNotif());
out.println(" ALARM_SEQ:"+status.getASB_Alarm_SEQ());
out.println(" ADAPTER_ID:"+status.getASB_NmsEms_Adapter_ID());
out.println(" OWNERGID:"+status.getOwnerGID());
out.println(" ASB_NETYPE:"+status.getASB_NEType());
out.println(" ASB_EMSEVENTTIME:"+status.getASB_EmsEventTime());
out.println("<ALARMEND>");
// out.println("hello..");
out.flush();
}
public void closeOut(PrintWriter out){
out.close();
}
}