Compare commits
3 Commits
dgrygorenk
...
maintenanc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24d28ec323 | ||
|
|
d3e2c0f6fc | ||
|
|
6425666f23 |
@@ -13,10 +13,10 @@
|
||||
>
|
||||
<SIGNATURE />
|
||||
</HEADER>
|
||||
|
||||
<FAMILIES>
|
||||
<FAMILY>Internet/SCP</FAMILY>
|
||||
</FAMILIES>
|
||||
|
||||
<FAMILIES>
|
||||
<FAMILY>Internet/SCP</FAMILY>
|
||||
</FAMILIES>
|
||||
|
||||
<DOCUMENTATION>
|
||||
<URL />
|
||||
@@ -108,7 +108,7 @@
|
||||
<DEFAULT>"/.ssh/id_dsa"</DEFAULT>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
<PARAMETER
|
||||
NAME="PASSPHRASE"
|
||||
FIELD="TEXT"
|
||||
NUM_ROW="50"
|
||||
@@ -125,15 +125,22 @@
|
||||
NUM_ROW="100"
|
||||
>
|
||||
<ITEMS>
|
||||
<ITEM NAME="SOURCE" />
|
||||
<ITEM NAME="SOURCE" />
|
||||
</ITEMS>
|
||||
</PARAMETER>
|
||||
|
||||
<PARAMETER
|
||||
NAME="DIE_ON_ERROR"
|
||||
FIELD="CHECK"
|
||||
NUM_ROW="120"
|
||||
>
|
||||
<DEFAULT>true</DEFAULT>
|
||||
</PARAMETER>
|
||||
</PARAMETERS>
|
||||
|
||||
<CODEGENERATION>
|
||||
<IMPORTS>
|
||||
<IMPORT NAME="Java_SCP" MODULE="ganymed-ssh2.jar" REQUIRED="true"/>
|
||||
<IMPORT NAME="Java_SCP" MODULE="ganymed-ssh2.jar" REQUIRED="true"/>
|
||||
</IMPORTS>
|
||||
</CODEGENERATION>
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ imports="
|
||||
org.talend.core.model.process.INode
|
||||
org.talend.core.model.process.ElementParameterParser
|
||||
org.talend.designer.codegen.config.CodeGeneratorArgument
|
||||
|
||||
java.util.List
|
||||
java.util.Map
|
||||
"
|
||||
@@ -13,52 +12,77 @@ imports="
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
String cid = node.getUniqueName();
|
||||
|
||||
List<Map<String, String>> filelist = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__FILELIST__");
|
||||
boolean dieOnError = "true".equals(ElementParameterParser.getValue(node, "__DIE_ON_ERROR__"));
|
||||
if(dieOnError){
|
||||
%>
|
||||
|
||||
//initial the command
|
||||
StringBuilder command_<%=cid %> = new StringBuilder();
|
||||
String dir_<%=cid%> = null;
|
||||
boolean isCmdFailed_<%= cid %> = false;
|
||||
<%
|
||||
for (int i = 0;i<filelist.size();i++) {
|
||||
%>
|
||||
dir_<%=cid%> = <%=filelist.get(i).get("SOURCE")%>;
|
||||
dir_<%=cid%> = "\""+dir_<%=cid%>+"\"";
|
||||
<%
|
||||
if(i==0){
|
||||
%>
|
||||
command_<%=cid %>.append("rm " + dir_<%=cid%>);
|
||||
nb_file_<%=cid %> ++;
|
||||
<%}else{%>
|
||||
if(command_<%=cid %>.length() > 0){
|
||||
command_<%=cid %>.append(" ");
|
||||
}
|
||||
command_<%=cid %>.append(dir_<%=cid%>);
|
||||
%>
|
||||
StringBuilder command_<%=cid %> = new StringBuilder("rm -f");
|
||||
ch.ethz.ssh2.Session sessNew_<%=cid%> = conn_<%=cid%>.openSession();
|
||||
<%
|
||||
for(Map<String,String> map : filelist){
|
||||
%>
|
||||
command_<%=cid %>.append(" ");
|
||||
command_<%=cid %>.append("\"");
|
||||
command_<%=cid %>.append(<%= map.get("SOURCE") %>);
|
||||
command_<%=cid %>.append("\"");
|
||||
nb_file_<%=cid %> ++;
|
||||
<%}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
/* Create a session */
|
||||
ch.ethz.ssh2.Session sess_<%=cid%> = conn_<%=cid%>.openSession();
|
||||
String rmCmd_<%= cid %> = command_<%=cid %>.toString();
|
||||
if(!"rm -f".equals(rmCmd_<%= cid %>)){
|
||||
sessNew_<%=cid%>.execCommand(rmCmd_<%= cid %>);
|
||||
<% if(dieOnError){ %>
|
||||
StringBuilder errMsg_<%= cid %> = new StringBuilder("File(s) deleting failed.");
|
||||
int returnCondition_<%= cid %> = sessNew_<%=cid%>.waitForCondition(ch.ethz.ssh2.ChannelCondition.EXIT_STATUS,300L);
|
||||
Integer exitCode_<%= cid %> = sessNew_<%=cid%>.getExitStatus();
|
||||
if((returnCondition_<%= cid %> & ch.ethz.ssh2.ChannelCondition.EXIT_STATUS) == ch.ethz.ssh2.ChannelCondition.EXIT_STATUS){
|
||||
if (exitCode_<%= cid %> != 0) {
|
||||
isCmdFailed_<%= cid %> = true;
|
||||
errMsg_<%= cid %>.append("Exit code: ");
|
||||
errMsg_<%= cid %>.append(exitCode_<%= cid %>);
|
||||
}
|
||||
}else if((returnCondition_<%= cid %> & ch.ethz.ssh2.ChannelCondition.TIMEOUT) == ch.ethz.ssh2.ChannelCondition.TIMEOUT){
|
||||
isCmdFailed_<%= cid %> = true;
|
||||
errMsg_<%= cid %>.append("The request timeout.");
|
||||
}else if((returnCondition_<%= cid %> & ch.ethz.ssh2.ChannelCondition.CLOSED) == ch.ethz.ssh2.ChannelCondition.CLOSED){
|
||||
isCmdFailed_<%= cid %> = true;
|
||||
errMsg_<%= cid %>.append("Unexpected closed session.");
|
||||
}else{
|
||||
System.err.println("Unexpected error.");
|
||||
isCmdFailed_<%= cid %> = true;
|
||||
}
|
||||
<% } %>
|
||||
|
||||
//execute the command
|
||||
sess_<%=cid%>.execCommand((command_<%=cid %>).toString());
|
||||
|
||||
//get the return info
|
||||
|
||||
java.io.InputStream stderr_<%=cid%> = sess_<%=cid%>.getStderr();
|
||||
java.io.InputStream stderr_<%=cid%> = sessNew_<%=cid%>.getStderr();
|
||||
java.io.BufferedReader breer_<%=cid%>= new java.io.BufferedReader(new java.io.InputStreamReader(stderr_<%=cid%>));
|
||||
String line_err_<%=cid%> = "";
|
||||
StringBuilder stringStderr_<%=cid%> =new StringBuilder();
|
||||
while((line_err_<%=cid%> = breer_<%=cid%>.readLine()) != null) {
|
||||
String errInfo_<%= cid %> = new String(line_err_<%=cid%>.getBytes(),"UTF-8");
|
||||
System.err.println(errInfo_<%= cid %>);
|
||||
stringStderr_<%=cid%>.append(line_err_<%=cid%> + "\n");
|
||||
}
|
||||
String stderrString_<%=cid %> = stringStderr_<%=cid %>.toString();
|
||||
|
||||
<%for (int i = 0;i<filelist.size();i++) {%>
|
||||
<% if(dieOnError){
|
||||
%>
|
||||
if(stderrString_<%=cid %> != null && stderrString_<%=cid %>.length() > 0){
|
||||
isCmdFailed_<%= cid %> = true;
|
||||
}
|
||||
if(isCmdFailed_<%= cid %>){
|
||||
throw new RuntimeException(errMsg_<%= cid %>.toString());
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<%for (int i = 0;i<filelist.size();i++) {%>
|
||||
if(stderrString_<%=cid %>.contains(<%=filelist.get(i).get("SOURCE")%>)){
|
||||
nb_file_<%=cid %> --;
|
||||
}
|
||||
@@ -67,11 +91,13 @@ imports="
|
||||
breer_<%=cid%>.close();
|
||||
stderr_<%=cid%>.close();
|
||||
|
||||
/* Close this session */
|
||||
sess_<%=cid%>.close();
|
||||
|
||||
if(("").equals(stringStderr_<%=cid %>.toString()) || (stringStderr_<%=cid %>.toString() == null)){
|
||||
if("".equals(stderrString_<%=cid %>) || (stderrString_<%=cid %> == null)){
|
||||
globalMap.put("<%=cid %>_STATUS","File(s) deleted OK");
|
||||
}else{
|
||||
globalMap.put("<%=cid %>_STATUS",stringStderr_<%=cid %>.toString());
|
||||
}
|
||||
|
||||
}else{
|
||||
globalMap.put("<%=cid %>_STATUS","No file to be deleted.");
|
||||
}
|
||||
sessNew_<%=cid%>.close();
|
||||
|
||||
@@ -28,3 +28,5 @@ USE_EXISTING_CONNECTION.NAME=Use an existing connection
|
||||
|
||||
STATUS.NAME=status
|
||||
NB_FILE.NAME=Number of files
|
||||
|
||||
DIE_ON_ERROR.NAME=Die on error
|
||||
|
||||
@@ -246,8 +246,8 @@
|
||||
<extension
|
||||
point="org.talend.core.runtime.service">
|
||||
<Service
|
||||
serviceId="IRepositoryService"
|
||||
class="org.talend.repository.RepositoryService"/>
|
||||
serviceId="IRepositoryService"
|
||||
class="org.talend.repository.RepositoryService"/>
|
||||
<Service
|
||||
class="org.talend.repository.StatusPreferenceInitService"
|
||||
serviceId="IStatusPreferenceInitService">
|
||||
@@ -862,13 +862,13 @@
|
||||
id="org.talend.repository.model.migration.renameMultiSchemaToMSMigrationTask"
|
||||
name="Rename the XMLMultiSchema to MSXML">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.ChangeExtendInsertDefaultValueMigrationTask"
|
||||
description="change the tMysqlOutput'extend insert default value"" from "false" to "true""
|
||||
id="org.talend.repository.model.migration.ChangeExtendInsertDefaultValueMigrationTask"
|
||||
name="ChangeExtendInsertDefaultValueMigrationTask">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.ChangeExtendInsertDefaultValueMigrationTask"
|
||||
description="change the tMysqlOutput'extend insert default value"" from "false" to "true""
|
||||
id="org.talend.repository.model.migration.ChangeExtendInsertDefaultValueMigrationTask"
|
||||
name="ChangeExtendInsertDefaultValueMigrationTask">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.RenametFSUniq"
|
||||
@@ -1158,14 +1158,14 @@
|
||||
id="org.talend.repository.model.migration.UpgrateDatabaseTypeForSybaseConnection"
|
||||
name="UpgrateDatabaseTypeForSybaseConnection">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.RenameModeParaForPigMigrationTask"
|
||||
description="Rename pig mode parameter for bug TDI-13406 "
|
||||
id="org.talend.repository.model.migration.RenameModeParaForPigMigrationTask"
|
||||
name="Rename pig mode parameter">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.SetStandaloneModeForHiveComponentsMigrationTask"
|
||||
description="Set the standalone value for the connection mode for old jobs for feature TDI-20301 "
|
||||
@@ -1185,7 +1185,7 @@
|
||||
description="Rename pig mode parameter for bug TDI-20076 "
|
||||
id="org.talend.repository.model.migration.RenameVersionParametersForPigMigrationTask"
|
||||
name="Rename pig parameters">
|
||||
</projecttask>
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.RenamePasswordParaForLdapMigrationTask"
|
||||
@@ -1296,37 +1296,37 @@
|
||||
id="org.talend.repository.model.migration.AddCopyBookXc2jFileMigrationTask"
|
||||
name="AddCopyBookXc2jFileMigrationTask">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.AddAdditionalFieldMigrationTask"
|
||||
id="org.talend.repository.model.migration.AddAdditionalFieldMigrationTask"
|
||||
name="Add additionalField to the job model">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.SetFilterTiemFromTotoFromPOPComponentsMigrationTask"
|
||||
description="Set the value from 'To' to 'From' for FILTER_TIEM in ADVANCED_FILTER of the component tPOP in Bug TDI-21568"
|
||||
id="org.talend.repository.model.migration.SetFilterTiemFromTotoFromPOPComponentsMigrationTask"
|
||||
name="SetFilterTiemFromTotoFromPOPComponentsMigrationTask">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.ChangeDefaultValueTDIBug21708"
|
||||
id="org.talend.repository.model.migration.ChangeDefaultValueTDIBug21708"
|
||||
name="ChangeDefaultValueTDIBug21708">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.ChangeOptionDefaultValueFortNormalize"
|
||||
id="org.talend.repository.model.migration.ChangeOptionDefaultValueFortNormalize"
|
||||
name="ChangeOptionDefaultValueFortNormalize">
|
||||
</projecttask>
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.ChangeOptionDefaultValueFortNormalize"
|
||||
id="org.talend.repository.model.migration.ChangeOptionDefaultValueFortNormalize"
|
||||
name="ChangeOptionDefaultValueFortNormalize">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.ChangeDefaultValueFortNormalizeCSVOption"
|
||||
id="org.talend.repository.model.migration.ChangeDefaultValueFortNormalizeCSVOption"
|
||||
name="ChangeDefaultValueFortNormalizeCSVOption">
|
||||
</projecttask>
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.ChangeDefaultValueFortNormalizeCSVOption"
|
||||
id="org.talend.repository.model.migration.ChangeDefaultValueFortNormalizeCSVOption"
|
||||
name="ChangeDefaultValueFortNormalizeCSVOption">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.ChangeMysqlJarReference4MysqlComponents"
|
||||
@@ -1334,7 +1334,7 @@
|
||||
id="org.talend.repository.model.migration.ChangeMysqlJarReference4MysqlComponents"
|
||||
name="ChangeMysqlJarReference4MysqlComponents">
|
||||
</projecttask>
|
||||
<projecttask
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.RenametStandardizePhoneNumberColumnName"
|
||||
description="Rename the schema column "IsPossiblePhoneNumber " to "IsPossiblePhoneNumber""
|
||||
@@ -1356,6 +1356,13 @@
|
||||
name="UpdateJobSettingsForMysqlMigrationTask"
|
||||
>
|
||||
</projecttask>
|
||||
<projecttask
|
||||
beforeLogon="false"
|
||||
class="org.talend.repository.model.migration.SetDieOnErrorFalse4tSCPDelete"
|
||||
description="set old tSCPDelete die on error as fasle"
|
||||
id="org.talend.repository.model.migration.SetDieOnErrorFalse4tSCPDelete"
|
||||
name="SetDieOnErrorFalse4tSCPDelete">
|
||||
</projecttask>
|
||||
</extension>
|
||||
|
||||
<extension
|
||||
@@ -1390,7 +1397,7 @@
|
||||
message="%libraryneeded.fororacleconnection"
|
||||
name="ojdbc5-11g.jar"
|
||||
required="false"/>
|
||||
<libraryNeeded
|
||||
<libraryNeeded
|
||||
context="%libraryneeded.dbconnectionwizard"
|
||||
language="java"
|
||||
message="%libraryneeded.forparaccelconnection"
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package org.talend.repository.model.migration;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
|
||||
import org.talend.core.model.components.ComponentUtilities;
|
||||
import org.talend.core.model.components.ModifyComponentsAction;
|
||||
import org.talend.core.model.components.conversions.IComponentConversion;
|
||||
import org.talend.core.model.components.filters.IComponentFilter;
|
||||
import org.talend.core.model.components.filters.NameComponentFilter;
|
||||
import org.talend.core.model.migration.AbstractJobMigrationTask;
|
||||
import org.talend.core.model.properties.Item;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.NodeType;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.ProcessType;
|
||||
|
||||
public class SetDieOnErrorFalse4tSCPDelete extends AbstractJobMigrationTask {
|
||||
|
||||
public Date getOrder() {
|
||||
return new GregorianCalendar(2014, 12, 04, 14, 0, 0).getTime();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ExecutionResult execute(Item item) {
|
||||
ProcessType processType = getProcessType(item);
|
||||
if (processType == null) {
|
||||
return ExecutionResult.NOTHING_TO_DO;
|
||||
}
|
||||
IComponentFilter filter = new NameComponentFilter("tSCPDelete");
|
||||
try {
|
||||
ModifyComponentsAction.searchAndModify(item, processType, filter,
|
||||
Arrays.<IComponentConversion> asList(new IComponentConversion() {
|
||||
public void transform(NodeType node) {
|
||||
if (ComponentUtilities.getNodeProperty(node, "DIE_ON_ERROR") == null) {
|
||||
ComponentUtilities.addNodeProperty(node, "DIE_ON_ERROR", "CHECK");
|
||||
}
|
||||
ComponentUtilities.getNodeProperty(node, "DIE_ON_ERROR").setValue("false");
|
||||
}
|
||||
}));
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
return ExecutionResult.FAILURE;
|
||||
}
|
||||
return ExecutionResult.SUCCESS_NO_ALERT;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user