diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors |
Publish
Diffstat (limited to 'clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors')
11 files changed, 153 insertions, 0 deletions
diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/InternalFailure.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/InternalFailure.java new file mode 100644 index 00000000000..10b629a29e4 --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/InternalFailure.java @@ -0,0 +1,9 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +public class InternalFailure extends StateRestApiException { + + public InternalFailure(String description) { + super("Internal failure. Should not happen: " + description); + } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/InvalidContentException.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/InvalidContentException.java new file mode 100644 index 00000000000..86f6dc81926 --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/InvalidContentException.java @@ -0,0 +1,11 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +public class InvalidContentException extends StateRestApiException { + + public InvalidContentException(String description) { + super(description); + setHtmlCode(400); + setHtmlStatus("Content of HTTP request had invalid data"); + } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/InvalidOptionValueException.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/InvalidOptionValueException.java new file mode 100644 index 00000000000..48700e3f343 --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/InvalidOptionValueException.java @@ -0,0 +1,11 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +public class InvalidOptionValueException extends StateRestApiException { + + public InvalidOptionValueException(String option, String value, String description) { + super("Option '" + option + "' have invalid value '" + value + "': " + description); + setHtmlCode(400); + setHtmlStatus("Option '" + option + "' have invalid value '" + value + "'"); + } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/MissingResourceException.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/MissingResourceException.java new file mode 100644 index 00000000000..4a0cb76f278 --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/MissingResourceException.java @@ -0,0 +1,11 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +/** + * @author hakon + */ +public class MissingResourceException extends StateRestApiException { + public MissingResourceException(String resource) { + super("Missing resource '" + resource + "'"); + } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/MissingUnitException.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/MissingUnitException.java new file mode 100644 index 00000000000..037d82fa0b0 --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/MissingUnitException.java @@ -0,0 +1,21 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +public class MissingUnitException extends StateRestApiException { + + private static String createMessage(String[] path, int level) { + StringBuilder sb = new StringBuilder(); + sb.append("No such resource '"); + for (int i=0; i<=level; ++i) { + if (i != 0) sb.append('/'); + sb.append(path[i]); + } + return sb.append("'.").toString(); + } + + public MissingUnitException(String[] path, int level) { + super(createMessage(path, level)); + setHtmlCode(404); + setHtmlStatus(getMessage()); + } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/NotMasterException.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/NotMasterException.java new file mode 100644 index 00000000000..46e964d77ef --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/NotMasterException.java @@ -0,0 +1,9 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +public abstract class NotMasterException extends StateRestApiException { + + public NotMasterException(String description) { + super(description); + } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/OperationNotSupportedForUnitException.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/OperationNotSupportedForUnitException.java new file mode 100644 index 00000000000..e9ebccbfb66 --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/OperationNotSupportedForUnitException.java @@ -0,0 +1,19 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +import java.util.Arrays; + +public class OperationNotSupportedForUnitException extends StateRestApiException { + + private static String createMessage(String[] path, String description) { + return new StringBuilder() + .append(Arrays.toString(path)).append(": ").append(description) + .toString(); + } + + public OperationNotSupportedForUnitException(String path[], String description) { + super(createMessage(path, description)); + setHtmlCode(405); + setHtmlStatus("Operation not supported for resource"); + } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/OtherMasterException.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/OtherMasterException.java new file mode 100644 index 00000000000..4a9c4fc60db --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/OtherMasterException.java @@ -0,0 +1,16 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +public class OtherMasterException extends NotMasterException { + private final String masterHost; + private final int masterPort; + + public OtherMasterException(String masterHost, int masterPort) { + super("Cluster controller not master. Use master at " + masterHost + ":" + masterPort + "."); + this.masterHost = masterHost; + this.masterPort = masterPort; + } + + public String getHost() { return masterHost; } + public int getPort() { return masterPort; } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/StateRestApiException.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/StateRestApiException.java new file mode 100644 index 00000000000..6509b31c2c9 --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/StateRestApiException.java @@ -0,0 +1,32 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +public abstract class StateRestApiException extends Exception { + private Integer htmlCode; + private String htmlStatus; + + public StateRestApiException(String description) { + super(description); + } + + /** + * If given, this HTML code is set in the response. If not given, a value will + * be autogenerated to fit. + */ + public StateRestApiException setHtmlCode(int code) { + htmlCode = code; + return this; + } + + /** + * If given, this HTML status string is set in the response. If not given, a value will + * be autogenerated to fit. + */ + public StateRestApiException setHtmlStatus(String status) { + htmlStatus = status; + return this; + } + + public Integer getCode() { return htmlCode; } + public String getStatus() { return htmlStatus; } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/UnknownMasterException.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/UnknownMasterException.java new file mode 100644 index 00000000000..408d4c05092 --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/UnknownMasterException.java @@ -0,0 +1,9 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +public class UnknownMasterException extends NotMasterException { + + public UnknownMasterException() { + super("No known master cluster controller currently exists."); + } +} diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/package-info.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/package-info.java new file mode 100644 index 00000000000..6925d804cdb --- /dev/null +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/errors/package-info.java @@ -0,0 +1,5 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +@ExportPackage +package com.yahoo.vespa.clustercontroller.utils.staterestapi.errors; + +import com.yahoo.osgi.annotation.ExportPackage; |