5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-06 17:01:59 +08:00

SQOOP-2117: Sqoop2: Shell command 'show link' should show connector name

(Szehon Ho via Abraham Elmahrek)
This commit is contained in:
Abraham Elmahrek 2015-02-19 02:11:50 -08:00
parent 3f1420f715
commit 263e362045
3 changed files with 47 additions and 11 deletions

View File

@ -19,14 +19,18 @@
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.OptionBuilder;
import org.apache.sqoop.model.MConnector;
import org.apache.sqoop.model.MLink;
import org.apache.sqoop.shell.core.Constants;
import org.apache.sqoop.shell.utils.TableDisplayer;
import org.apache.sqoop.validation.Status;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import static org.apache.sqoop.shell.ShellEnvironment.*;
import static org.apache.sqoop.shell.utils.ConfigDisplayer.*;
@ -67,22 +71,25 @@ private void showSummary() {
List<String> header = new LinkedList<String>();
header.add(resourceString(Constants.RES_TABLE_HEADER_ID));
header.add(resourceString(Constants.RES_TABLE_HEADER_NAME));
header.add(resourceString(Constants.RES_TABLE_HEADER_CONNECTOR));
header.add(resourceString(Constants.RES_TABLE_HEADER_CONNECTOR_ID));
header.add(resourceString(Constants.RES_TABLE_HEADER_CONNECTOR_NAME));
header.add(resourceString(Constants.RES_TABLE_HEADER_ENABLED));
List<String> ids = new LinkedList<String>();
List<String> names = new LinkedList<String>();
List<String> connectors = new LinkedList<String>();
List<String> connectorIds = new LinkedList<String>();
List<String> availabilities = new LinkedList<String>();
for(MLink link : links) {
for (MLink link : links) {
ids.add(String.valueOf(link.getPersistenceId()));
names.add(link.getName());
connectors.add(String.valueOf(link.getConnectorId()));
connectorIds.add(String.valueOf(link.getConnectorId()));
availabilities.add(String.valueOf(link.getEnabled()));
}
TableDisplayer.display(header, ids, names, connectors, availabilities);
List<String> connectorNames = getConnectorNames(connectorIds);
TableDisplayer.display(header, ids, names, connectorIds, connectorNames, availabilities);
}
private void showLinks() {
@ -117,10 +124,36 @@ private void displayLink(MLink link) {
);
long connectorId = link.getConnectorId();
printlnResource(Constants.RES_SHOW_PROMPT_LINK_CID_INFO, connectorId);
MConnector connector = client.getConnector(connectorId);
String connectorName = "";
if (connector != null) {
connectorName = connector.getUniqueName();
}
printlnResource(Constants.RES_SHOW_PROMPT_LINK_CID_INFO, connectorName, connectorId);
// Display link config
displayConfig(link.getConnectorLinkConfig().getConfigs(),
client.getConnectorConfigBundle(connectorId));
}
private List<String> getConnectorNames(List<String> connectorIds) {
Map<String, String> connectorIdToName = new HashMap<String, String>();
for (String connectorId : connectorIds) {
if (!connectorIdToName.containsKey(connectorId)) {
MConnector connector = client.getConnector(Long.valueOf(connectorId));
if (connector != null) {
connectorIdToName.put(connectorId, connector.getUniqueName());
}
}
}
List<String> connectorNames = new ArrayList<String>();
for (String connectorId : connectorIds) {
if (connectorIdToName.get(connectorId) != null) {
connectorNames.add(connectorIdToName.get(connectorId));
} else {
connectorNames.add("");
}
}
return connectorNames;
}
}

View File

@ -337,8 +337,10 @@ public class Constants {
"table.header.class";
public static final String RES_TABLE_HEADER_SUPPORTED_DIRECTIONS =
"table.header.supported_directions";
public static final String RES_TABLE_HEADER_CONNECTOR =
"table.header.connector";
public static final String RES_TABLE_HEADER_CONNECTOR_NAME =
"table.header.connector.name";
public static final String RES_TABLE_HEADER_CONNECTOR_ID =
"table.header.connector.id";
public static final String RES_TABLE_HEADER_FROM_CONNECTOR =
"table.header.connector.from";
public static final String RES_TABLE_HEADER_TO_CONNECTOR =

View File

@ -131,7 +131,7 @@ show.prompt_display_link_lid = Display the link with lid
show.link_usage = Usage: show link
show.prompt_links_to_show = @|bold {0} link(s) to show: |@
show.prompt_link_info = link with id {0} and name {1} (Enabled: {2}, Created by {3} at {4}, Updated by {5} at {6})
show.prompt_link_cid_info = Using Connector id {0}
show.prompt_link_cid_info = Using Connector @|bold {0}|@ with id @|bold {1}|@
show.prompt_display_all_connectors = Display all connectors
show.prompt_display_connector_cid = Display the connector with cid
@ -192,7 +192,8 @@ table.header.name = Name
table.header.version = Version
table.header.class = Class
table.header.supported_directions = Supported Directions
table.header.connector = Connector
table.header.connector.id = Connector Id
table.header.connector.name = Connector Name
table.header.connector.from = From Connector
table.header.connector.to = To Connector
table.header.jid = Job Id