mirror of
https://github.com/apache/sqoop.git
synced 2025-05-02 22:31:35 +08:00
SQOOP-1469: Sqoop2: Validations: Rename constants in Status class
(Jarek Jarcec Cecho via Abraham Elmahrek)
This commit is contained in:
parent
9e1f4cbaa8
commit
d6319e3a7b
@ -20,39 +20,37 @@
|
||||
/**
|
||||
* Severity of validation message.
|
||||
*
|
||||
* Fine:
|
||||
* OK:
|
||||
* Everything is correct (default state).
|
||||
*
|
||||
* Warning:
|
||||
* WARNING:
|
||||
* Warning is something suspicious, potentially wrong but something that
|
||||
* can be ignored. For example in case of JDBC URL element, warning would
|
||||
* be if specified host is not responding - it's warning because specified
|
||||
* URL might be wrong. However at the same time URL might be right as only
|
||||
* target host might be down.
|
||||
*
|
||||
* Error:
|
||||
* ERROR:
|
||||
* Error represents unacceptable element content. For example in case of JDBC
|
||||
* URL path, error would be empty element or element containing invalid URL.
|
||||
*
|
||||
* TODO: This should really be renamed to "severity"
|
||||
*/
|
||||
public enum Status {
|
||||
/**
|
||||
* There are no issues, no warnings. Everything is correct.
|
||||
*/
|
||||
FINE, // TODO: Rename to "OK"
|
||||
OK,
|
||||
|
||||
/**
|
||||
* Validated entity is correct enough to be processed. There might be some
|
||||
* warnings, but no errors.
|
||||
*/
|
||||
ACCEPTABLE, // TODO: Rename to "WARNING"
|
||||
WARNING,
|
||||
|
||||
/**
|
||||
* There are serious issues with validated entity. We can't proceed until
|
||||
* reported issues will be resolved.
|
||||
*/
|
||||
UNACCEPTABLE, // TODO: Rename to "ERROR"
|
||||
ERROR,
|
||||
|
||||
;
|
||||
|
||||
@ -63,7 +61,7 @@ public enum Status {
|
||||
* @return The worst status
|
||||
*/
|
||||
public static Status getWorstStatus(Status ... statuses) {
|
||||
Status finalStatus = FINE;
|
||||
Status finalStatus = OK;
|
||||
|
||||
for (Status status : statuses) {
|
||||
if (finalStatus.compareTo(status) < 1) {
|
||||
@ -80,7 +78,7 @@ public static Status getWorstStatus(Status ... statuses) {
|
||||
* @return True if we can proceed with processing
|
||||
*/
|
||||
public boolean canProceed() {
|
||||
return this == FINE || this == ACCEPTABLE;
|
||||
return this == OK || this == WARNING;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -89,6 +87,6 @@ public boolean canProceed() {
|
||||
* @return Default validation status
|
||||
*/
|
||||
public static Status getDefault() {
|
||||
return FINE;
|
||||
return OK;
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ public void validate(String klass) {
|
||||
try {
|
||||
Class.forName(klass);
|
||||
} catch (ClassNotFoundException e) {
|
||||
addMessage(new Message(Status.UNACCEPTABLE, "Class not found"));
|
||||
addMessage(new Message(Status.ERROR, "Class not found"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ public class Contains extends AbstractValidator<String> {
|
||||
@Override
|
||||
public void validate(String str) {
|
||||
if(str == null || !str.contains(getStringArgument())) {
|
||||
addMessage(Status.UNACCEPTABLE, "String must contain substring: " + getStringArgument());
|
||||
addMessage(Status.ERROR, "String must contain substring: " + getStringArgument());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ public class NotEmpty extends AbstractValidator<String> {
|
||||
@Override
|
||||
public void validate(String instance) {
|
||||
if (instance == null || instance.isEmpty()) {
|
||||
addMessage(Status.UNACCEPTABLE, "Can't be null nor empty");
|
||||
addMessage(Status.ERROR, "Can't be null nor empty");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ public class NotNull<T> extends AbstractValidator<T> {
|
||||
@Override
|
||||
public void validate(T instance) {
|
||||
if (instance == null) {
|
||||
addMessage(Status.UNACCEPTABLE, "Can't be null");
|
||||
addMessage(Status.ERROR, "Can't be null");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ public class NullOrContains extends AbstractValidator<String> {
|
||||
@Override
|
||||
public void validate(String str) {
|
||||
if(str != null && !str.contains(getStringArgument())) {
|
||||
addMessage(Status.UNACCEPTABLE, "String must contain substring: " + getStringArgument());
|
||||
addMessage(Status.ERROR, "String must contain substring: " + getStringArgument());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ public class StartsWith extends AbstractValidator<String> {
|
||||
@Override
|
||||
public void validate(String str) {
|
||||
if(str == null || !str.startsWith(getStringArgument())) {
|
||||
addMessage(Status.UNACCEPTABLE, "String must start with: " + getStringArgument());
|
||||
addMessage(Status.ERROR, "String must start with: " + getStringArgument());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ public void testId() {
|
||||
|
||||
public void verifyResultA(ConfigValidationResult result) {
|
||||
assertNotNull(result);
|
||||
assertEquals(Status.UNACCEPTABLE, result.getStatus());
|
||||
assertEquals(Status.ERROR, result.getStatus());
|
||||
|
||||
Map<String, List<Message>> messages = result.getMessages();
|
||||
assertEquals(1, messages.size());
|
||||
@ -91,18 +91,18 @@ public void verifyResultA(ConfigValidationResult result) {
|
||||
assertNotNull(messagesA);
|
||||
assertEquals(2, messagesA.size());
|
||||
|
||||
assertEquals(Status.ACCEPTABLE, messagesA.get(0).getStatus());
|
||||
assertEquals(Status.WARNING, messagesA.get(0).getStatus());
|
||||
assertEquals("A", messagesA.get(0).getMessage());
|
||||
|
||||
assertEquals(Status.UNACCEPTABLE, messagesA.get(1).getStatus());
|
||||
assertEquals(Status.ERROR, messagesA.get(1).getStatus());
|
||||
assertEquals("B", messagesA.get(1).getMessage());
|
||||
}
|
||||
|
||||
public ConfigValidationResult getResultA() {
|
||||
ConfigValidationResult result = new ConfigValidationResult();
|
||||
List<Message> messages = new LinkedList<Message>();
|
||||
messages.add(new Message(Status.ACCEPTABLE, "A"));
|
||||
messages.add(new Message(Status.UNACCEPTABLE, "B"));
|
||||
messages.add(new Message(Status.WARNING, "A"));
|
||||
messages.add(new Message(Status.ERROR, "B"));
|
||||
result.addMessages("A", messages);
|
||||
return result;
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ public class TestMValidatedElement {
|
||||
public void testInitialization() {
|
||||
MValidatedElement input = new MIntegerInput("input", false);
|
||||
assertEquals("input", input.getName());
|
||||
assertEquals(Status.FINE, input.getValidationStatus());
|
||||
assertEquals(Status.OK, input.getValidationStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -46,22 +46,22 @@ public void testVarious() {
|
||||
MValidatedElement input = new MIntegerInput("input", false);
|
||||
|
||||
// Default status
|
||||
assertEquals(Status.FINE, input.getValidationStatus());
|
||||
assertEquals(Status.OK, input.getValidationStatus());
|
||||
|
||||
// Add a message
|
||||
input.addValidationMessage(new Message(Status.ACCEPTABLE, "MY_MESSAGE"));
|
||||
assertEquals(Status.ACCEPTABLE, input.getValidationStatus());
|
||||
input.addValidationMessage(new Message(Status.WARNING, "MY_MESSAGE"));
|
||||
assertEquals(Status.WARNING, input.getValidationStatus());
|
||||
assertEquals(1, input.getValidationMessages().size());
|
||||
assertEquals("MY_MESSAGE", input.getValidationMessages().get(0).getMessage());
|
||||
|
||||
// Reset
|
||||
input.resetValidationMessages();
|
||||
assertEquals(Status.FINE, input.getValidationStatus());
|
||||
assertEquals(Status.OK, input.getValidationStatus());
|
||||
assertEquals(0, input.getValidationMessages().size());
|
||||
|
||||
// Set unacceptable status
|
||||
input.addValidationMessage(new Message(Status.UNACCEPTABLE, "MY_MESSAGE"));
|
||||
assertEquals(Status.UNACCEPTABLE, input.getValidationStatus());
|
||||
input.addValidationMessage(new Message(Status.ERROR, "MY_MESSAGE"));
|
||||
assertEquals(Status.ERROR, input.getValidationStatus());
|
||||
assertEquals(1, input.getValidationMessages().size());
|
||||
assertEquals("MY_MESSAGE", input.getValidationMessages().get(0).getMessage());
|
||||
}
|
||||
|
@ -28,26 +28,26 @@ public class TestStatus {
|
||||
@Test
|
||||
public void testGetWorstStatus() {
|
||||
// Comparing itself with itself
|
||||
assertEquals(Status.FINE,
|
||||
Status.getWorstStatus(Status.FINE));
|
||||
assertEquals(Status.FINE,
|
||||
Status.getWorstStatus(Status.FINE, Status.FINE));
|
||||
assertEquals(Status.ACCEPTABLE,
|
||||
Status.getWorstStatus(Status.ACCEPTABLE, Status.ACCEPTABLE));
|
||||
assertEquals(Status.UNACCEPTABLE,
|
||||
Status.getWorstStatus(Status.UNACCEPTABLE, Status.UNACCEPTABLE));
|
||||
assertEquals(Status.OK,
|
||||
Status.getWorstStatus(Status.OK));
|
||||
assertEquals(Status.OK,
|
||||
Status.getWorstStatus(Status.OK, Status.OK));
|
||||
assertEquals(Status.WARNING,
|
||||
Status.getWorstStatus(Status.WARNING, Status.WARNING));
|
||||
assertEquals(Status.ERROR,
|
||||
Status.getWorstStatus(Status.ERROR, Status.ERROR));
|
||||
|
||||
// Retriving the worst option
|
||||
assertEquals(Status.UNACCEPTABLE,
|
||||
Status.getWorstStatus(Status.FINE, Status.UNACCEPTABLE));
|
||||
assertEquals(Status.ACCEPTABLE,
|
||||
Status.getWorstStatus(Status.FINE, Status.ACCEPTABLE));
|
||||
assertEquals(Status.ERROR,
|
||||
Status.getWorstStatus(Status.OK, Status.ERROR));
|
||||
assertEquals(Status.WARNING,
|
||||
Status.getWorstStatus(Status.OK, Status.WARNING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCanProceed() {
|
||||
assertTrue(Status.FINE.canProceed());
|
||||
assertTrue(Status.ACCEPTABLE.canProceed());
|
||||
assertFalse(Status.UNACCEPTABLE.canProceed());
|
||||
assertTrue(Status.OK.canProceed());
|
||||
assertTrue(Status.WARNING.canProceed());
|
||||
assertFalse(Status.ERROR.canProceed());
|
||||
}
|
||||
}
|
||||
|
@ -44,10 +44,10 @@ public static class ConfigValidator extends AbstractValidator<ConfigA> {
|
||||
@Override
|
||||
public void validate(ConfigA config) {
|
||||
if(config.notNull == null) {
|
||||
addMessage(Status.UNACCEPTABLE, "null");
|
||||
addMessage(Status.ERROR, "null");
|
||||
}
|
||||
if("error".equals(config.notNull)) {
|
||||
addMessage(Status.UNACCEPTABLE, "error");
|
||||
addMessage(Status.ERROR, "error");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -62,21 +62,21 @@ public void testValidateConfig() {
|
||||
// Null string should fail on Input level and should not call config level validators
|
||||
config.notNull = null;
|
||||
result = runner.validateConfig("configName", config);
|
||||
assertEquals(Status.UNACCEPTABLE, result.getStatus());
|
||||
assertEquals(Status.ERROR, result.getStatus());
|
||||
assertEquals(1, result.getMessages().size());
|
||||
assertTrue(result.getMessages().containsKey("configName.notNull"));
|
||||
|
||||
// String "error" should trigger config level error, but not Input level
|
||||
config.notNull = "error";
|
||||
result = runner.validateConfig("configName", config);
|
||||
assertEquals(Status.UNACCEPTABLE, result.getStatus());
|
||||
assertEquals(Status.ERROR, result.getStatus());
|
||||
assertEquals(1, result.getMessages().size());
|
||||
assertTrue(result.getMessages().containsKey("configName"));
|
||||
|
||||
// Acceptable state
|
||||
config.notNull = "This is truly random string";
|
||||
result = runner.validateConfig("configName", config);
|
||||
assertEquals(Status.FINE, result.getStatus());
|
||||
assertEquals(Status.OK, result.getStatus());
|
||||
assertEquals(0, result.getMessages().size());
|
||||
}
|
||||
|
||||
@ -100,7 +100,7 @@ public void testMultipleValidatorsOnSingleInput() {
|
||||
|
||||
config.str = null;
|
||||
result = runner.validateConfig("configName", config);
|
||||
assertEquals(Status.UNACCEPTABLE, result.getStatus());
|
||||
assertEquals(Status.ERROR, result.getStatus());
|
||||
assertEquals(1, result.getMessages().size());
|
||||
assertTrue(result.getMessages().containsKey("configName.str"));
|
||||
assertEquals(2, result.getMessages().get("configName.str").size());
|
||||
@ -115,14 +115,14 @@ public void testValidatorWithParameters() {
|
||||
// Sub string not found
|
||||
config.str = "Mordor";
|
||||
result = runner.validateConfig("configName", config);
|
||||
assertEquals(Status.UNACCEPTABLE, result.getStatus());
|
||||
assertEquals(Status.ERROR, result.getStatus());
|
||||
assertEquals(1, result.getMessages().size());
|
||||
assertTrue(result.getMessages().containsKey("configName.str"));
|
||||
|
||||
// Sub string found
|
||||
config.str = "Morfindmedor";
|
||||
result = runner.validateConfig("configName", config);
|
||||
assertEquals(Status.FINE, result.getStatus());
|
||||
assertEquals(Status.OK, result.getStatus());
|
||||
assertEquals(0, result.getMessages().size());
|
||||
}
|
||||
|
||||
@ -137,10 +137,10 @@ public static class ClassValidator extends AbstractValidator<ConfigurationA> {
|
||||
@Override
|
||||
public void validate(ConfigurationA conf) {
|
||||
if("error".equals(conf.formA.notNull)) {
|
||||
addMessage(Status.UNACCEPTABLE, "error");
|
||||
addMessage(Status.ERROR, "error");
|
||||
}
|
||||
if("conf-error".equals(conf.formA.notNull)) {
|
||||
addMessage(Status.UNACCEPTABLE, "conf-error");
|
||||
addMessage(Status.ERROR, "conf-error");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -155,28 +155,28 @@ public void testValidate() {
|
||||
// Null string should fail on Input level and should not call config nor class level validators
|
||||
conf.formA.notNull = null;
|
||||
result = runner.validate(conf);
|
||||
assertEquals(Status.UNACCEPTABLE, result.getStatus());
|
||||
assertEquals(Status.ERROR, result.getStatus());
|
||||
assertEquals(1, result.getMessages().size());
|
||||
assertTrue(result.getMessages().containsKey("formA.notNull"));
|
||||
|
||||
// String "error" should trigger config level error, but not Input nor class level
|
||||
conf.formA.notNull = "error";
|
||||
result = runner.validate(conf);
|
||||
assertEquals(Status.UNACCEPTABLE, result.getStatus());
|
||||
assertEquals(Status.ERROR, result.getStatus());
|
||||
assertEquals(1, result.getMessages().size());
|
||||
assertTrue(result.getMessages().containsKey("formA"));
|
||||
|
||||
// String "conf-error" should trigger class level error, but not Input nor Config level
|
||||
conf.formA.notNull = "conf-error";
|
||||
result = runner.validate(conf);
|
||||
assertEquals(Status.UNACCEPTABLE, result.getStatus());
|
||||
assertEquals(Status.ERROR, result.getStatus());
|
||||
assertEquals(1, result.getMessages().size());
|
||||
assertTrue(result.getMessages().containsKey(""));
|
||||
|
||||
// Valid string
|
||||
conf.formA.notNull = "Valid string";
|
||||
result = runner.validate(conf);
|
||||
assertEquals(Status.FINE, result.getStatus());
|
||||
assertEquals(Status.OK, result.getStatus());
|
||||
assertEquals(0, result.getMessages().size());
|
||||
}
|
||||
}
|
||||
|
@ -43,6 +43,6 @@ public void test() {
|
||||
validator.validate("net.jarcec.super.private.project.Main");
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
messages = validator.getMessages();
|
||||
assertEquals(Status.UNACCEPTABLE, messages.get(0).getStatus());
|
||||
assertEquals(Status.ERROR, messages.get(0).getStatus());
|
||||
}
|
||||
}
|
||||
|
@ -34,56 +34,56 @@ public void test() {
|
||||
|
||||
// Default, no string argument set
|
||||
validator.validate("str");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Searched substring is entire string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("str");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Just starts with
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("straaaaa");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Ends with
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("aaastr");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// In the middle
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("aaastraaa");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Null string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate(null);
|
||||
assertEquals(Status.UNACCEPTABLE, validator.getStatus());
|
||||
assertEquals(Status.ERROR, validator.getStatus());
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
|
||||
// Empty string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("");
|
||||
assertEquals(Status.UNACCEPTABLE, validator.getStatus());
|
||||
assertEquals(Status.ERROR, validator.getStatus());
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
|
||||
// "Random" string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("Ahoj tady je meduza");
|
||||
assertEquals(Status.UNACCEPTABLE, validator.getStatus());
|
||||
assertEquals(Status.ERROR, validator.getStatus());
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ public void test() {
|
||||
validator.validate("");
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
messages = validator.getMessages();
|
||||
assertEquals(Status.UNACCEPTABLE, messages.get(0).getStatus());
|
||||
assertEquals(Status.ERROR, messages.get(0).getStatus());
|
||||
|
||||
validator.reset();
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
@ -50,6 +50,6 @@ public void test() {
|
||||
validator.validate(null);
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
messages = validator.getMessages();
|
||||
assertEquals(Status.UNACCEPTABLE, messages.get(0).getStatus());
|
||||
assertEquals(Status.ERROR, messages.get(0).getStatus());
|
||||
}
|
||||
}
|
||||
|
@ -46,6 +46,6 @@ public void test() {
|
||||
|
||||
List<Message> messages = validator.getMessages();
|
||||
Message msg = messages.get(0);
|
||||
assertEquals(Status.UNACCEPTABLE, msg.getStatus());
|
||||
assertEquals(Status.ERROR, msg.getStatus());
|
||||
}
|
||||
}
|
||||
|
@ -34,63 +34,63 @@ public void test() {
|
||||
|
||||
// Default, no string argument set
|
||||
validator.validate("str");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Searched substring is entire string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("str");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Just starts with
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("straaaaa");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Ends with
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("aaastr");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// In the middle
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("aaastraaa");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Repitition
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("aaastraaastraaa");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Null string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate(null);
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Empty string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("");
|
||||
assertEquals(Status.UNACCEPTABLE, validator.getStatus());
|
||||
assertEquals(Status.ERROR, validator.getStatus());
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
|
||||
// "Random" string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("Ahoj tady je meduza");
|
||||
assertEquals(Status.UNACCEPTABLE, validator.getStatus());
|
||||
assertEquals(Status.ERROR, validator.getStatus());
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
}
|
||||
|
||||
|
@ -34,40 +34,40 @@ public void test() {
|
||||
|
||||
// Default, no string argument set
|
||||
validator.validate("str");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Searched substring is entire string
|
||||
validator.validate("str");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Just starts with
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("strstr");
|
||||
assertEquals(Status.FINE, validator.getStatus());
|
||||
assertEquals(Status.OK, validator.getStatus());
|
||||
assertEquals(0, validator.getMessages().size());
|
||||
|
||||
// Null string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate(null);
|
||||
assertEquals(Status.UNACCEPTABLE, validator.getStatus());
|
||||
assertEquals(Status.ERROR, validator.getStatus());
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
|
||||
// Empty string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("");
|
||||
assertEquals(Status.UNACCEPTABLE, validator.getStatus());
|
||||
assertEquals(Status.ERROR, validator.getStatus());
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
|
||||
// "Random" string
|
||||
validator.reset();
|
||||
validator.setStringArgument("str");
|
||||
validator.validate("Ahoj tady je meduza");
|
||||
assertEquals(Status.UNACCEPTABLE, validator.getStatus());
|
||||
assertEquals(Status.ERROR, validator.getStatus());
|
||||
assertEquals(1, validator.getMessages().size());
|
||||
}
|
||||
|
||||
|
@ -30,8 +30,8 @@ public class TestValidator {
|
||||
public static class ValidatorImpl extends AbstractValidator<String> {
|
||||
@Override
|
||||
public void validate(String msg) {
|
||||
addMessage(Status.FINE, msg);
|
||||
addMessage(new Message(Status.UNACCEPTABLE, "Prefix: " + msg));
|
||||
addMessage(Status.OK, msg);
|
||||
addMessage(new Message(Status.ERROR, "Prefix: " + msg));
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,11 +44,11 @@ public void test() {
|
||||
assertEquals(2, validator.getMessages().size());
|
||||
|
||||
Message msg = validator.getMessages().get(0);
|
||||
assertEquals(Status.FINE, msg.getStatus());
|
||||
assertEquals(Status.OK, msg.getStatus());
|
||||
assertEquals("X", msg.getMessage());
|
||||
|
||||
msg = validator.getMessages().get(1);
|
||||
assertEquals(Status.UNACCEPTABLE, msg.getStatus());
|
||||
assertEquals(Status.ERROR, msg.getStatus());
|
||||
assertEquals("Prefix: X", msg.getMessage());
|
||||
|
||||
validator.reset();
|
||||
|
@ -55,13 +55,13 @@ public static class ConfigValidator extends AbstractValidator<FromJobConfig> {
|
||||
@Override
|
||||
public void validate(FromJobConfig config) {
|
||||
if (config.tableName == null && config.sql == null) {
|
||||
addMessage(Status.UNACCEPTABLE, "Either table name or SQL must be specified");
|
||||
addMessage(Status.ERROR, "Either table name or SQL must be specified");
|
||||
}
|
||||
if (config.tableName != null && config.sql != null) {
|
||||
addMessage(Status.UNACCEPTABLE, "Both table name and SQL cannot be specified");
|
||||
addMessage(Status.ERROR, "Both table name and SQL cannot be specified");
|
||||
}
|
||||
if (config.schemaName != null && config.sql != null) {
|
||||
addMessage(Status.UNACCEPTABLE, "Both schema name and SQL cannot be specified");
|
||||
addMessage(Status.ERROR, "Both schema name and SQL cannot be specified");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ public void validate(LinkConfig linkConfig) {
|
||||
try {
|
||||
DriverManager.getConnection(linkConfig.connectionString, linkConfig.username, linkConfig.password);
|
||||
} catch (SQLException e) {
|
||||
addMessage(Status.ACCEPTABLE, "Can't connect to the database with given credentials: " + e.getMessage());
|
||||
addMessage(Status.WARNING, "Can't connect to the database with given credentials: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -50,17 +50,17 @@ public static class ConfigValidator extends AbstractValidator<ToJobConfig> {
|
||||
@Override
|
||||
public void validate(ToJobConfig config) {
|
||||
if (config.tableName == null && config.sql == null) {
|
||||
addMessage(Status.UNACCEPTABLE, "Either table name or SQL must be specified");
|
||||
addMessage(Status.ERROR, "Either table name or SQL must be specified");
|
||||
}
|
||||
if (config.tableName != null && config.sql != null) {
|
||||
addMessage(Status.UNACCEPTABLE, "Both table name and SQL cannot be specified");
|
||||
addMessage(Status.ERROR, "Both table name and SQL cannot be specified");
|
||||
}
|
||||
if (config.tableName == null && config.stageTableName != null) {
|
||||
addMessage(Status.UNACCEPTABLE,
|
||||
addMessage(Status.ERROR,
|
||||
"Stage table name cannot be specified without specifying table name");
|
||||
}
|
||||
if (config.stageTableName == null && config.shouldClearStageTable != null) {
|
||||
addMessage(Status.UNACCEPTABLE,
|
||||
addMessage(Status.ERROR,
|
||||
"Should Clear stage table cannot be specified without specifying the name of the stage table.");
|
||||
}
|
||||
}
|
||||
|
@ -293,7 +293,7 @@ public void testClearStageTableValidation() throws Exception {
|
||||
ConfigValidationResult result = validationRunner.validate(jobConfig);
|
||||
assertEquals("User should not specify clear stage table flag without " +
|
||||
"specifying name of the stage table",
|
||||
Status.UNACCEPTABLE,
|
||||
Status.ERROR,
|
||||
result.getStatus());
|
||||
assertTrue(result.getMessages().containsKey(
|
||||
"toJobConfig"));
|
||||
@ -302,7 +302,7 @@ public void testClearStageTableValidation() throws Exception {
|
||||
result = validationRunner.validate(jobConfig);
|
||||
assertEquals("User should not specify clear stage table flag without " +
|
||||
"specifying name of the stage table",
|
||||
Status.UNACCEPTABLE,
|
||||
Status.ERROR,
|
||||
result.getStatus());
|
||||
assertTrue(result.getMessages().containsKey(
|
||||
"toJobConfig"));
|
||||
@ -322,7 +322,7 @@ public void testStageTableWithoutTable() throws Exception {
|
||||
ConfigValidationRunner validationRunner = new ConfigValidationRunner();
|
||||
ConfigValidationResult result = validationRunner.validate(jobConfig);
|
||||
assertEquals("Stage table name cannot be specified without specifying " +
|
||||
"table name", Status.UNACCEPTABLE, result.getStatus());
|
||||
"table name", Status.ERROR, result.getStatus());
|
||||
assertTrue(result.getMessages().containsKey(
|
||||
"toJobConfig"));
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public void validate(LinkConfig config) {
|
||||
if (config.uri != null) {
|
||||
Matcher matcher = URI_PATTERN.matcher(config.uri);
|
||||
if (!matcher.matches()) {
|
||||
addMessage(Status.UNACCEPTABLE,
|
||||
addMessage(Status.ERROR,
|
||||
"Invalid URI" + config.uri + ". URI must either be null or a valid URI. Here are a few valid example URIs:"
|
||||
+ " hdfs://example.com:8020/, hdfs://example.com/, file:///, file:///tmp, file://localhost/tmp");
|
||||
}
|
||||
|
@ -44,12 +44,12 @@ public void validate(ToJobConfig conf) {
|
||||
if(conf.customCompression != null &&
|
||||
conf.customCompression.trim().length() > 0 &&
|
||||
conf.compression != ToCompression.CUSTOM) {
|
||||
addMessage(Status.UNACCEPTABLE, "Custom compression codec should be blank as " + conf.compression + " is being used");
|
||||
addMessage(Status.ERROR, "Custom compression codec should be blank as " + conf.compression + " is being used");
|
||||
}
|
||||
|
||||
if(conf.compression == ToCompression.CUSTOM &&
|
||||
(conf.customCompression == null || conf.customCompression.trim().length() == 0)) {
|
||||
addMessage(Status.UNACCEPTABLE, "Custom compression field is blank.");
|
||||
addMessage(Status.ERROR, "Custom compression field is blank.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -800,7 +800,7 @@ public static class InvalidConfiguration {
|
||||
public static class InternalValidator extends AbstractValidator {
|
||||
@Override
|
||||
public void validate(Object instance) {
|
||||
addMessage(Status.UNACCEPTABLE, "Simply because.");
|
||||
addMessage(Status.ERROR, "Simply because.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -114,11 +114,11 @@ List of status code
|
||||
+------------------+------------------------------------------------------------------------------------------------------------+
|
||||
| Function | Description |
|
||||
+==================+============================================================================================================+
|
||||
| ``FINE`` | There are no issues, no warnings. |
|
||||
| ``OK`` | There are no issues, no warnings. |
|
||||
+------------------+------------------------------------------------------------------------------------------------------------+
|
||||
| ``ACCEPTABLE`` | Validated entity is correct enough to be processed. There might be some warnings, but no errors. |
|
||||
| ``WARNING`` | Validated entity is correct enough to be processed. There might be some warnings, but no errors. |
|
||||
+------------------+------------------------------------------------------------------------------------------------------------+
|
||||
| ``UNACCEPTABLE`` | There are serious issues with validated entity. We can't proceed until reported issues will be resolved. |
|
||||
| ``ERROR`` | There are serious issues with validated entity. We can't proceed until reported issues will be resolved. |
|
||||
+------------------+------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
View Error or Warning message
|
||||
|
@ -69,7 +69,7 @@ private Status cloneJob(Long jobId, List<String> args, boolean isInteractive) th
|
||||
job.getConnectorId(Direction.TO));
|
||||
ResourceBundle driverConfigBundle = client.getDriverConfigBundle();
|
||||
|
||||
Status status = Status.FINE;
|
||||
Status status = Status.OK;
|
||||
|
||||
// Remove persistent id as we're making a clone
|
||||
job.setPersistenceId(MPersistableEntity.PERSISTANCE_ID_DEFAULT);
|
||||
|
@ -65,7 +65,7 @@ private Status cloneLink(Long connectionId, List<String> args, boolean isInterac
|
||||
// Remove persistent id as we're making a clone
|
||||
connection.setPersistenceId(MPersistableEntity.PERSISTANCE_ID_DEFAULT);
|
||||
|
||||
Status status = Status.FINE;
|
||||
Status status = Status.OK;
|
||||
|
||||
ResourceBundle linkConfigBundle = client.getConnectorConfigBundle(connection.getConnectorId());
|
||||
|
||||
|
@ -79,7 +79,7 @@ private Status createJob(Long fromLinkId, Long toLinkId, List<String> args, bool
|
||||
job.getConnectorId(Direction.TO));
|
||||
ResourceBundle driverConfigBundle = client.getDriverConfigBundle();
|
||||
|
||||
Status status = Status.FINE;
|
||||
Status status = Status.OK;
|
||||
|
||||
if (isInteractive) {
|
||||
printlnResource(Constants.RES_PROMPT_FILL_JOB_CONFIG);
|
||||
|
@ -64,7 +64,7 @@ private Status createLink(long connectorId, List<String> args, boolean isInterac
|
||||
|
||||
ResourceBundle connectorConfigBundle = client.getConnectorConfigBundle(connectorId);
|
||||
|
||||
Status status = Status.FINE;
|
||||
Status status = Status.OK;
|
||||
if (isInteractive) {
|
||||
printlnResource(Constants.RES_PROMPT_FILL_LINK_CONFIG);
|
||||
|
||||
|
@ -43,6 +43,6 @@ public DeleteJobFunction() {
|
||||
@Override
|
||||
public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
client.deleteJob(getLong(line, Constants.OPT_JID));
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,6 @@ public DeleteLinkFunction() {
|
||||
@Override
|
||||
public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
client.deleteLink(getLong(line, Constants.OPT_LID));
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -51,6 +51,6 @@ public boolean validateArgs(CommandLine line) {
|
||||
@Override
|
||||
public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
client.enableJob(getLong(line, Constants.OPT_JID), false);
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,6 @@ public DisableLinkFunction() {
|
||||
@Override
|
||||
public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
client.enableLink(getLong(line, Constants.OPT_LID), false);
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -43,6 +43,6 @@ public EnableJobFunction() {
|
||||
@Override
|
||||
public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
client.enableJob(getLong(line, Constants.OPT_JID), true);
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,6 @@ public EnableLinkFunction() {
|
||||
@Override
|
||||
public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
client.enableLink(getLong(line, Constants.OPT_LID), true);
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ private Status handleOptionSetting(String name, String value) {
|
||||
|
||||
setVerbose(newValue);
|
||||
printlnResource(Constants.RES_SET_VERBOSE_CHANGED, newValue);
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
if (name.equals(Constants.OPT_POLL_TIMEOUT)) {
|
||||
@ -82,7 +82,7 @@ private Status handleOptionSetting(String name, String value) {
|
||||
|
||||
setPollTimeout(newValue);
|
||||
printlnResource(Constants.RES_SET_POLL_TIMEOUT_CHANGED, newValue);
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
printlnResource(Constants.RES_SET_UNKNOWN_OPT_IGNORED, name);
|
||||
|
@ -81,6 +81,6 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
|
||||
printlnResource(Constants.RES_SET_SERVER_SUCCESSFUL);
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -23,8 +23,6 @@
|
||||
|
||||
import org.apache.commons.cli.CommandLine;
|
||||
import org.apache.commons.cli.OptionBuilder;
|
||||
import org.apache.sqoop.common.Direction;
|
||||
import org.apache.sqoop.common.SupportedDirections;
|
||||
import org.apache.sqoop.model.MConnector;
|
||||
import org.apache.sqoop.shell.core.Constants;
|
||||
import org.apache.sqoop.shell.utils.TableDisplayer;
|
||||
@ -58,7 +56,7 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
showSummary();
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
private void showSummary() {
|
||||
|
@ -45,7 +45,7 @@ public boolean validateArgs(CommandLine line) {
|
||||
@Override
|
||||
public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
showDriver();
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
private void showDriver() {
|
||||
|
@ -59,7 +59,7 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
showSummary();
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
private void showSummary() {
|
||||
|
@ -58,7 +58,7 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
showSummary();
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
private void showSummary() {
|
||||
|
@ -70,7 +70,7 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -75,7 +75,7 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
showServer(host, port, webapp, version);
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
private void showServer(boolean host, boolean port, boolean webapp, boolean version) {
|
||||
|
@ -60,7 +60,7 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
}
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
private void showSummary(Long jid) {
|
||||
|
@ -79,7 +79,7 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
showVersion(server, client, restApi);
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
|
||||
private void showVersion(boolean server, boolean client, boolean restApi) {
|
||||
|
@ -88,6 +88,6 @@ public void finished(MSubmission submission) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -54,6 +54,6 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -51,6 +51,6 @@ public Object executeFunction(CommandLine line, boolean isInteractive) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Status.FINE;
|
||||
return Status.OK;
|
||||
}
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ private Status updateJob(Long jobId, List<String> args, boolean isInteractive) t
|
||||
|
||||
ResourceBundle driverConfigBundle = client.getDriverConfigBundle();
|
||||
|
||||
Status status = Status.FINE;
|
||||
Status status = Status.OK;
|
||||
|
||||
if (isInteractive) {
|
||||
printlnResource(Constants.RES_PROMPT_UPDATE_JOB_CONFIG);
|
||||
|
@ -65,7 +65,7 @@ private Status updateLink(Long linkId, List<String> args, boolean isInteractive)
|
||||
|
||||
ResourceBundle connectorLinkConfigBundle = client.getConnectorConfigBundle(link.getConnectorId());
|
||||
|
||||
Status status = Status.FINE;
|
||||
Status status = Status.OK;
|
||||
|
||||
if (isInteractive) {
|
||||
printlnResource(Constants.RES_PROMPT_UPDATE_LINK_CONFIG);
|
||||
|
@ -134,7 +134,7 @@ public static void displayConfig(List<MConfig> configs, ResourceBundle bundle) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Method prints the warning message of ACCEPTABLE status
|
||||
* Method prints the warning message of WARNING status
|
||||
* @param entity - link or job instance
|
||||
*/
|
||||
public static void displayConfigWarning(MAccountableEntity entity) {
|
||||
@ -150,7 +150,7 @@ public static void displayConfigWarning(MAccountableEntity entity) {
|
||||
configList.addAll(job.getJobConfig(Direction.TO).getConfigs());
|
||||
}
|
||||
for(MConfig config : configList) {
|
||||
if(config.getValidationStatus() == Status.ACCEPTABLE) {
|
||||
if(config.getValidationStatus() == Status.WARNING) {
|
||||
if(showMessage) {
|
||||
print("\n@|yellow %s|@\n", resourceString(Constants.RES_CONFIG_DISPLAYER_FORM_WARNING));
|
||||
showMessage = false;
|
||||
|
@ -820,7 +820,7 @@ static String getName(ConsoleReader reader, String name) throws IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* Print validation message in cases that it's not in state "FINE"
|
||||
* Print validation message in cases that it's not in state "OK"
|
||||
*
|
||||
* @param element Validated element
|
||||
*/
|
||||
@ -831,14 +831,14 @@ static void printValidationMessage(MValidatedElement element, boolean includeInp
|
||||
|
||||
for(Message message : element.getValidationMessages())
|
||||
switch (message.getStatus()) {
|
||||
case UNACCEPTABLE:
|
||||
case ERROR:
|
||||
if (includeInputPrefix) {
|
||||
errorMessage(element, message.getMessage());
|
||||
} else {
|
||||
errorMessage(message.getMessage());
|
||||
}
|
||||
break;
|
||||
case ACCEPTABLE:
|
||||
case WARNING:
|
||||
if (includeInputPrefix) {
|
||||
warningMessage(element, message.getMessage());
|
||||
} else {
|
||||
|
@ -219,7 +219,7 @@ protected void assertRowInCities(Object... values) {
|
||||
* @param link
|
||||
*/
|
||||
protected void saveLink(MLink link) {
|
||||
assertEquals(Status.FINE, getClient().saveLink(link));
|
||||
assertEquals(Status.OK, getClient().saveLink(link));
|
||||
assertNotSame(MPersistableEntity.PERSISTANCE_ID_DEFAULT, link.getPersistenceId());
|
||||
}
|
||||
|
||||
@ -231,7 +231,7 @@ protected void saveLink(MLink link) {
|
||||
* @param job
|
||||
*/
|
||||
protected void saveJob(MJob job) {
|
||||
assertEquals(Status.FINE, getClient().saveJob(job));
|
||||
assertEquals(Status.OK, getClient().saveJob(job));
|
||||
assertNotSame(MPersistableEntity.PERSISTANCE_ID_DEFAULT, job.getPersistenceId());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user