/**
* Copyright 2015 StreamSets Inc.
*
* Licensed under the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.streamsets.datacollector.util;
import com.streamsets.pipeline.api.ErrorCode;
import com.streamsets.pipeline.api.GenerateResourceBundle;
// we are using the annotation for reference purposes only.
// the annotation processor does not work on this maven project
// we have a hardcoded 'datacollector-resource-bundles.json' file in resources
@GenerateResourceBundle
public enum ContainerError implements ErrorCode {
// Unchecked exception
CONTAINER_0000("Runtime exception: {}"),
// StageContext
CONTAINER_0001("{}"),
CONTAINER_0002("{}"),
CONTAINER_0010("Stage configuration validation error: {}"),
CONTAINER_0011("Pipeline memory consumption {} MB exceeded allowed memory {} MB. Largest consumer is {} at {} MB. " +
"Remaining stages: {}"),
// RequiredFieldsErrorPredicateSink
CONTAINER_0050("The stage requires records to include the following required fields: '{}'"),
// PreconditionsErrorPredicateSink
CONTAINER_0051("Unsatisfied precondition '{}'"),
CONTAINER_0052("Failed to evaluate precondition '{}': {}"),
// PipelineManager
CONTAINER_0100("Cannot set state: {}"),
CONTAINER_0101("Cannot get state: {}"),
CONTAINER_0102("Cannot change state from {} to {}"),
CONTAINER_0103("Cannot set the source offset during a run"),
CONTAINER_0104("Cannot reset the source offset when the pipeline is running"),
CONTAINER_0105("Cannot capture a snapshot because the pipeline is not running"),
CONTAINER_0106("Cannot get error records because the pipeline is not running"),
CONTAINER_0107("Invalid batch size: {}"),
CONTAINER_0108("Cannot start the pipeline manager: {}"),
CONTAINER_0109("Pipeline {} does not exist"),
CONTAINER_0110("Cannot create pipeline '{}': {}"),
CONTAINER_0111("Cannot delete errors for pipeline '{}' when the pipeline is running"),
CONTAINER_0112("Origin Parallelism cannot be less than 1"),
CONTAINER_0113("Cannot delete history for pipeline '{}' when the pipeline is running"),
CONTAINER_0114("Error while retrieving state from cache: {}"),
CONTAINER_0115("Failed to fetch history for pipeline: '{}', '{}' due to: {}"),
CONTAINER_0116("Cannot load pipeline '{}:{}' configuration: {}"),
CONTAINER_0117("Could not determine parallelism: {}"),
// PipelineRunners
CONTAINER_0150("Pipeline configuration error: {}"),
CONTAINER_0151("Pipeline build error: {}"),
CONTAINER_0152("Stage '{}', instance '{}', variable '{}', value '{}', configuration injection error: {}"),
CONTAINER_0153("Stage '{}', instance '{}', property '{}' is not configured"),
CONTAINER_0154("Cannot preview due to the following configuration issues: {}"),
CONTAINER_0155("Instance '{}' required fields configuration must be a list instead of a '{}'"),
CONTAINER_0156("Invalid instance '{}'"),
CONTAINER_0157("Cannot do a preview stage run on an origin, instance '{}'"),
CONTAINER_0158("Cannot run the pipeline: {}"),
CONTAINER_0159("Cannot perform raw source preview because pipeline '{}' is empty"),
CONTAINER_0160("Cannot perform raw source preview until the following required parameters are configured: '{}'"),
CONTAINER_0161("Stage '{}', instance '{}', variable '{}', configuration injection error: Value List has non-string elements"),
CONTAINER_0162("Stage '{}', instance '{}', variable '{}', configuration injection error: Value Map has non-string keys"),
CONTAINER_0163("Stage '{}', instance '{}', variable '{}', configuration injection error: Value Map has non-string values"),
CONTAINER_0164("Stage '{}', instance '{}', variable '{}', configuration injection error: Value Map as List has non-string elements"),
CONTAINER_0165("Stage configuration validation issues: {}"),
CONTAINER_0166("Cannot start pipeline '{}' as there are not enough threads available. The runner.thread.pool.size property in the Data Collector configuration file, $SDC_CONF/sdc.properties, determines the number of threads in the pool that are available to run pipelines."),
//PipelineStore
CONTAINER_0200("Pipeline '{}' does not exist"),
CONTAINER_0201("Pipeline '{}' already exists"),
CONTAINER_0202("Cannot create pipeline '{}': {}"),
CONTAINER_0203("Cannot delete pipeline '{}': {}"),
CONTAINER_0204("Cannot save pipeline '{}': {}"),
CONTAINER_0205("The pipeline '{}' has been changed. Reload the page to view or edit the latest version of the pipeline."),
CONTAINER_0206("Cannot load details for pipeline '{}': {}"),
CONTAINER_0207("Definition for Stage '{}' from library '{}' with version '{}' is not available"),
CONTAINER_0208("Pipeline in state '{}' cannot be saved"),
CONTAINER_0209("Pipeline state file '{}' doesn't exist"),
CONTAINER_0210("Cannot fetch JSON string: {}"),
CONTAINER_0211("Pipeline state doesn't exist for pipeline '{}::{}' in execution mode: '{}'"),
CONTAINER_0212("Cannot save state of pipeline '{}::{}' in execution mode: '{}' as there is already an existing"
+ "pipeline '{}::{}'"),
CONTAINER_0213("Could not retrieve pipelines from Pipeline Store. See stacktrace for additional details: '{}'"),
//Previewr
CONTAINER_0250("Cannot create previewer: '{}'"),
// AdminResource
CONTAINER_0300("Reached maximum number of concurrent clients '{}'. Tailing the log through the REST API."),
//Observer
CONTAINER_0400("Failed to evaluate expression '{}' for record '{}': {}"),
CONTAINER_0401("Failed to evaluate expression '{}': {}"),
CONTAINER_0402("Cannot access alerts because the pipeline is not running"),
CONTAINER_0403("Cannot load rule definitions for pipeline '{}': {}"),
CONTAINER_0404("Cannot store rule definitions for pipeline '{}': {}"),
CONTAINER_0405("Cannot store UI info for pipeline '{}': {}"),
CONTAINER_0406("Cannot store ACL for pipeline '{}': {}"),
CONTAINER_0500("EmailSender error: {}"),
//Snapshot
CONTAINER_0600("Error retrieving snapshot '{}' for pipeline with name '{}' and revision '{}' : '{}'"),
CONTAINER_0601("Error deleting snapshot '{}' for pipeline with name '{}' and revision '{}'"),
CONTAINER_0602("Error persisting snapshot info '{}' for pipeline with name '{}' and revision '{}' : '{}'"),
CONTAINER_0603("Error persisting snapshot '{}' for pipeline with name '{}' and revision '{}' : '{}'"),
CONTAINER_0604("Error retrieving snapshot info '{}' for pipeline with name '{}' and revision '{}' : '{}'"),
CONTAINER_0605("Snapshot must be created before saving"),
CONTAINER_0700("Error stage initialization error: {}"),
CONTAINER_0701("Stage '{}' initialization error: {}"),
CONTAINER_0702("Pipeline initialization error: {}"),
CONTAINER_0703("Stats Aggregator stage initialization error: {}"),
CONTAINER_0704("Can't create additional pipeline runners: {}"),
CONTAINER_0705("Requested number of runners {} is higher than allowed maximum of {}"),
//Runner
CONTAINER_0800("Pipeline '{}' validation error : {}"),
CONTAINER_0801("Thread unexpectedly interrupted"),
//PipelineConfigurationUpgrader
CONTAINER_0900("Error while upgrading stage configuration from version '{}' to version '{}': {}"),
CONTAINER_0901("Could not find stage definition for '{}:{}'"),
CONTAINER_0902("Stage definition '{}:{}' version '{}' is older than the version specified in the configuration '{}' for stage '{}'"),
//Email Notifier
CONTAINER_01000("Error loading email template, reason : {}"),
CONTAINER_01001("Error sending email : {}"),
// Remote Control pipelines
CONTAINER_01100("Cannot perform operation: '{}' on local pipeline '{}'"),
CONTAINER_01101("Cannot perform operation: '{}' on remote pipeline '{}'"),
// ACL
CONTAINER_01200("{} '{}' doesn't have permissions {} on pipeline {}"),
CONTAINER_01201("Only owner of the pipeline {} or admin is allowed to updated the ACL information"),
// misc
CONTAINER_01300("Environment variable 'STREAMSETS_LIBRARIES_EXTRA_DIR' is not set"),
CONTAINER_01301("Invalid library name '{}'"),
;
private final String msg;
ContainerError(String msg) {
this.msg = msg;
}
@Override
public String getCode() {
return name();
}
@Override
public String getMessage() {
return msg;
}
}