###
# ============LICENSE_START=======================================================
# ECOMP MSO
# ================================================================================
# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# Licensed 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.
# ============LICENSE_END=========================================================
###

########################################################################
#Resource key=Error Code|Message text|Resolution text |Description text
#######
# {component}-{subcomponent}-{4-digit code}{classification}
#Newlines can be utilized to add some clarity ensuring continuing line
#has atleast one leading space
#ResourceKey=\
#             ERR0000E\
#             Sample error msg txt\
#             Sample resolution msg\
#             Sample description txt
#
#######
#Error code classification category
#1200-1299	Security/Permission Related
#2200-2299	Availability/Timeout Related
#3200-3299	Data Access/Integrity Related
#4200-4299	Schema Interface Type/Validation
#5200-5299	Business/Flow Processing Related
#6200-6299	Reserved \u2013 do not use
#9200-9299	Unknown Errors
#
######
#{classification} description
# I = Information
# W = Warning
# E = Error
# F = Fatal
########################################################################
RA_CREATE_STACK_TIMEOUT=\
                  MSO-RA-2200E|\
                  Create Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\
                  Please check other logs for more detailed info|\
                  Create Stack timeout
RA_DELETE_STACK_TIMEOUT=\
                  MSO-RA-2201E|\
                  Delete Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\
                  Please check other logs for more detailed info|\
                  Delete Stack timeout  
RA_UPDATE_STACK_TIMEOUT=\
                  MSO-RA-2202E|\
                  Update Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\
                  Please check other logs for more detailed info|\
                  Delete Stack timeout   
RA_MISSING_PARAM=\
                  MSO-RA-4200I|\
                  Missing Required parameter: {0}|\
                  No resolution needed|\
                  Mandatory Parameter Missing  
RA_PARSING_ERROR=\
                  MSO-RA-4201E|\
                  Error parsing file {0}|\
                  No resolution needed|\
                  Error parsing file                     
RA_MARSHING_ERROR=\
                  MSO-RA-4202E|\
                  Error marshalling callback request with JaxB|\
                  Please check other logs for more detailed info|\
                  Error marshalling callback request 
RA_PARSING_REQUEST_ERROR=\
                  MSO-RA-4203E|\
                  Error parsing request:{0}|\
                  Please check other logs for more detailed info|\
                  Error parsing request                                                        
RA_VLAN_PARSE=\
                  MSO-RA-4204E|\
                  Error parsing VLAN parameter in network stack {0}:{1}|\
                  Please check other logs for more detailed info|\
                  Error parsing VLAN parameter in network stack 
RA_GENERAL_WARNING=\
                  MSO-RA-5201W|\
                  WARNING: {0}|\
                  Please check other logs for more detailed info|\
                  General warning 
RA_AUDIT_EXEC=\
                  MSO-RA-5202I|\
                  Executing method: {0}. {1}|\
                  No resolution needed|\
                  Executing method
RA_GENERAL_METRICS=\
                  MSO-RA-5205I|\
                  Executed method: {0}. {1}|\
                  No resolution needed|\
                  Generate information for Metric events  
RA_PROPERTIES_NOT_FOUND=\
                  MSO-RA-5206E|\
                  Properties file: {0} not found|\
                  Please verify whether properties file exist or readable|\
                  Properties file not found 
RA_LOAD_PROPERTIES_SUC=\
                  MSO-RA-5207I|\
                  Properties file loaded successfully from file {0}|\
                  No resolution needed|\
                  Properties file loaded successfully     
RA_PARAM_NOT_FOUND=\
                  MSO-RA-5208E|\
                  Attribute {0} not found in DB. For {1}={2}|\
                  No resolution needed|\
                  Attribute not found in DB    
RA_UNKOWN_PARAM=\
                  MSO-RA-5209E|\
                  Unknown {0}:{1}|\
                  Please check other logs for more detailed info|\
                  Unknown attribute  
RA_CONFIG_EXC=\
                  MSO-RA-5210E|\
                  Configuration error:{0}|\
                  Please check other logs for more detailed info|\
                  Configuration Error  
RA_CONFIG_NOT_FOUND=\
                  MSO-RA-5211E|\
                  Could not found configuration file:{0}|\
                  Please verify whether configuration file exist or readable|\
                  Configuration file not found                    
RA_SEND_REQUEST_SDNC=\
                  MSO-RA-5212I|\
                  Sending request to SDNC:{0}|\
                  No resolution needed|\
                  Sending request to SDNC      
RA_RESPONSE_FROM_SDNC=\
                  MSO-RA-5213I|\
                  Response received from SDNC:{0}|\
                  No resolution needed|\
                  Response received from SDNC     
RA_CALLBACK_BPEL=\
                  MSO-RA-5218E|\
                  Callback to BPEL:{0} |\
                  Please check other logs for more detailed info|\
                  Callback to BPEL       
RA_NETWORK_ALREADY_EXIST=\
                  MSO-RA-5240W|\
                  Network already exists: {0} in {1}/{2}|\
                  Please check other logs for more detailed info|\
                  Network already exists
RA_NETWORK_NOT_FOUND=\
                  MSO-RA-5241E|\
                  Network doesn't exist: {0} in {1}/{2}|\
                  Please check other logs for more detailed info|\
                  Network doesn't exist  
RA_NETWORK_ORCHE_MODE_NOT_SUPPORT=\
                  MSO-RA-5243E|\
                  Network Type Orchestrated mode:{0} is not supported|\
                  Please check other logs for more detailed info|\
                  Network Type Orchestrated mode                                                                                                                          
RA_ROLLBACK_NULL=\
                  MSO-RA-5249W|\
                  Rollback: No action to perform|\
                  No resolution needed|\
                  Rollback: No action to perform                                                                 
RA_ASYNC_ROLLBACK=\
                  MSO-RA-5251I|\
                  Async Rollback Network {0}|\
                  No resolution needed|\
                  Async Rollback Network  
RA_WSDL_NOT_FOUND=\
                  MSO-RA-5252E|\
                  Unable to find wsdl file {0} in classpath|\
                  No resolution needed|\
                  Unable to find wsdl file in classpath                                                                                       
RA_CALLBACK_BPEL_COMPLETE=\
                  MSO-RA-5258I|\
                  Completed processing BPEL request|\
                  No resolution needed|\
                  Completed processing BPEL request  
RA_SDNC_MISS_CONFIG_PARAM=\
                  MSO-RA-5259E|\
                  Missing configuration for:{0}|\
                  Please check other logs for more detailed info|\
                  Missing configuration for  
RA_SDNC_INVALID_CONFIG=\
                  MSO-RA-5260W|\
                  Invalid configuration(most requests require atleast 3 params:method,timeout,action) for Key:{0} Value:{1}|\
                  Please check other logs for more detailed info|\
                  Invalid configuration                    
RA_TENANT_NOT_FOUND=\
                  MSO-RA-5263E|\
                  Tenant not found: tenant={0}, cloudSiteId={1}|\
                  Please check other logs for more detailed info|\
                  Tenant not found     
RA_PRINT_URL=\
                  MSO-RA-5264I|\
                  {0} URL:{1}|\
                  No resolution needed|\
                  Log the URL    
RA_RECEIVE_SDNC_NOTIF=\
                  MSO-RA-5268I|\
                  Received SDNC Notification. XML:{0}|\
                  No resolution needed|\
                  Received SDNC Notification   
RA_INIT_SDNC_ADAPTER=\
                  MSO-RA-5269I|\
                  Initializing mso-sdnc-adapter|\
                  No resolution needed|\
                  Initializing mso-sdnc-adapter     
RA_RECEIVE_BPEL_REQUEST=\
                  MSO-RA-5270I|\
                  BPEL request received [{0}] with callback URL [{1}]|\
                  No resolution needed|\
                  BPEL request received  
RA_SEND_REQUEST_SDNC_ERR=\
                  MSO-RA-5271E|\
                  Error sending request to SDNC. Failed to start SDNC Client thread|\
                  Please check other logs for more detailed info|\
                  Error sending request to SDNC         
RA_TENANT_ALREADY_EXIST=\
                  MSO-RA-5272E|\
                  Tenant {0} already exists in {1}|\
                  No resolution needed|\
                  Tenant alaredy exists                    
RA_SEND_REQUEST_APPC_ERR=\
                  MSO-RA-5273E|\
                  Error sending request to APPC|\
                  Please check other logs for more detailed info|\
                  Error sending request to APPC     
RA_VNF_ALREADY_EXIST=\
                  MSO-RA-5275E|\
                  Stack {0} already exists in {1}/{2}|\
                  No resolution needed|\
                  VNF already exists   
RA_VNF_UNKNOWN_PARAM=\
                  MSO-RA-5276E|\
                  Unknown  {0}:{1}|\
                  No resolution needed|\
                  Uknown parameter  
RA_VNF_EXTRA_PARAM=\
                  MSO-RA-5277E|\
                  Create Stack ({0}) extra input params received:{1}|\
                  Please check other logs for more detailed info|\
                  Extra input params received   
RA_VNF_NOT_EXIST=\
                  MSO-RA-5278E|\
                  Stack {0} does not exist in {1}/{2}|\
                  No resolution needed|\
                  Stack does not exist                                                                                                                                                                                                                                            
RA_ASYNC_CREATE_VNF=\
                  MSO-RA-5282I|\
                  Async Create VNF :{0} of type {1} in {2}/{3}|\
                  No resolution needed|\
                  Async Create VNF 
RA_SEND_VNF_NOTIF_ERR=\
                  MSO-RA-5283E|\
                  Error sending createVnf notification|\
                  Please check other logs for more detailed info|\
                  Error sending createVnf notification                                                                                                                                                                                                                                                                                         
RA_ASYNC_CREATE_VNF_COMPLETE=\
                  MSO-RA-5284I|\
                  Completed createVnfA|\
                  No resolution needed|\
                  Completed createVnfA 
RA_ASYNC_UPDATE_VNF=\
                  MSO-RA-5285I|\
                  Async Update VNF :{0} of type {1} in {2}/{3}|\
                  No resolution needed|\
                  Async Update VNF
RA_ASYNC_UPDATE_VNF_COMPLETE=\
                  MSO-RA-5286I|\
                  Completed updateVnfA|\
                  No resolution needed|\
                  Completed updateVnfA                    
RA_ASYNC_QUERY_VNF=\
                  MSO-RA-5287I|\
                  Async Query VNF :{0} of type {1} in {2}/{3}|\
                  No resolution needed|\
                  Async Query VNF
RA_ASYNC_QUERY_VNF_COMPLETE=\
                  MSO-RA-5288I|\
                  Completed queryVnfA|\
                  No resolution needed|\
                  Completed queryVnfA    
RA_ASYNC_DELETE_VNF=\
                  MSO-RA-5289I|\
                  Async Delete VNF :{0} of type {1} in {2}/{3}|\
                  No resolution needed|\
                  Async Delete VNF
RA_ASYNC_DELETE_VNF_COMPLETE=\
                  MSO-RA-5290I|\
                  Completed deleteVnfA|\
                  No resolution needed|\
                  Completed deleteVnfA    
RA_ASYNC_ROLLBACK_VNF=\
                  MSO-RA-5291I|\
                  Async Rollback VNF|\
                  No resolution needed|\
                  Async Rollback VNF
RA_ASYNC_ROLLBACK_VNF_COMPLETE=\
                  MSO-RA-5292I|\
                  Completed rollbackVnfA|\
                  No resolution needed|\
                  Completed rollbackVnfA     
RA_DB_INVALID_STATUS=\
                  MSO-RA-5293E|\
                  Invalid status value|\
                  Please check other logs for more detailed info|\
                  Invalid status value
RA_DB_REQUEST_NOT_EXIST=\
                  MSO-RA-5294E|\
                  Request ID={0} does not exist in DB|\
                  Please check other logs for more detailed info|\
                  Record does not exist in DB                  
RA_CANT_UPDATE_REQUEST=\
                  MSO-RA-5295E|\
                  Enable to update {0} in DB for Request ID={1}|\
                  Please check other logs for more detailed info|\
                  Enable to update DB    
RA_CONFIG_LOAD=\
                  MSO-RA-5296I|\
                  Configuration loaded from {0}|\
                  Please check other logs for more detailed info|\
                  Configuration loaded  \
RA_RECEIVE_WORKFLOW_MESSAGE=\
                  MSO-RA-5297I|\
                  Received Workflow Message: {0}|\
                  No resolution needed|\
                  Received Workflow Message                                                                   
RA_GENERAL_EXCEPTION_ARG=\
                  MSO-RA-9200E|\
                  Exception: {0}|\
                  Please check other logs for more detailed info|\
                  General exception with reason 
RA_GENERAL_EXCEPTION=\
                  MSO-RA-9201E|\
                  Exception encountered|\
                  Please check other logs for more detailed info|\
                  Exception encountered     
RA_CONNECTION_EXCEPTION=\
                  MSO-RA-9202E|\
                  Exception communicating with {0}: {1}|\
                  Please check other logs for more detailed info|\
                  Communication Exception 
RA_EXCEPTION_COMMUNICATE_SDNC=\
                  MSO-RA-9203E|\
                  Exception while processing request to SDNC|\
                  Please check other logs for more detailed info|\
                  Exception while processing request to SDNC   
RA_EVALUATE_XPATH_ERROR=\
                  MSO-RA-9204E|\
                  Error while evaluating xpath {0} - {1}|\
                  Please check other logs for more detailed info|\
                  Error while evaluating xpath   
RA_ANALYZE_ERROR_EXC=\
                  MSO-RA-9205E|\
                  Problem analyzing error returned by SDN-C|\
                  Please check other logs for more detailed info|\
                  Problem analyzing error returned by SDN-C  
RA_ERROR_GET_RESPONSE_SDNC=\
                  MSO-RA-9206E|\
                  Error getting response code from errored SDNC request|\
                  Please check other logs for more detailed info|\
                  Error getting response code from errored SDNC request
RA_INIT_CALLBACK_WSDL_ERR=\
                  MSO-RA-9207E|\
                  Caught exception initializing Callback wsdl:{0} |\
                  Please check other logs for more detailed info|\
                  Caught exception initializing Callback wsdl
RA_CREATE_STACK_ERR=\
                  MSO-RA-9208E|\
                  Create Stack Error: {0}|\
                  Please check other logs for more detailed info|\
                  Create Stack Error  
RA_UPDATE_STACK_ERR=\
                  MSO-RA-9209E|\
                  Update Stack Error - Polling complete with non-success status: {0}, {1}|\
                  Please check other logs for more detailed info|\
                  Update Stack Error
RA_UPDATE_NETWORK_ERR=\
                  MSO-RA-9210E|\
                  Exception while update network, {0} in {1}/{2}|\
                  Please check other logs for more detailed info |\
                  Update Network Error  
RA_QUERY_NETWORK_EXC=\
                  MSO-RA-9211E|\
                  Exception while query network: {0} in {1}/{2}|\
                  Please check other logs for more detailed info|\
                  Exception while query network:    
RA_CREATE_NETWORK_EXC=\
                  MSO-RA-9212E|\
                  Exception while create network: {0} in {1}/{2}|\
                  Please check other logs for more detailed info|\
                  Create Network Error  
RA_DELETE_NETWORK_EXC=\
                  MSO-RA-9213E|\
                  Exception while delete network: {0} in {1}/{2}|\
                  Please check other logs for more detailed info|\
                  delete Network Error
RA_CREATE_NETWORK_NOTIF_EXC=\
                  MSO-RA-9214E|\
                  Error sending createNetwork notification|\
                  Please check other logs for more detailed info|\
                  Error sending createNetwork notification
RA_WSDL_URL_CONVENTION_EXC=\
                  MSO-RA-9215E|\
                  {0} URL converion failed|\
                  Please check other logs for more detailed info|\
                  WSDL URL converion failed 
RA_INIT_NOTIF_EXC=\
                  MSO-RA-9216E|\
                  Caught exception initializing Notification Url|\
                  Please check other logs for more detailed info|\
                  Caught exception initializing Notification Url  
RA_SET_CALLBACK_AUTH_EXC=\
                  MSO-RA-9217E|\
                  Unable to set authorization in callback request|\
                  Please check other logs for more detailed info|\
                  Unable to set authorization in callback request
RA_FAULT_INFO_EXC=\
                  MSO-RA-9218E|\
                  Exception caught while getting fault info|\
                  Please check other logs for more detailed info|\
                  Exception caught while getting fault info 
RA_CALLBACK_BPEL_EXC=\
                  MSO-RA-9219E|\
                  Error sending BPEL Callback request|\
                  Please check other logs for more detailed info|\
                  Error sending BPEL Callback request
RA_CREATE_TENANT_ERR=\
                  MSO-RA-9220E|\
                  Create Tenant Error: {0}|\
                  Please check other logs for more detailed info|\
                  Create Tenant Error  
RA_DELETE_TEMAMT_ERR=\
                  MSO-RA-9221E|\
                  Delete Tenant Error: {0}|\
                  Please check other logs for more detailed info|\
                  Delete Tenant Error
RA_ERROR_CREATE_SDNC_REQUEST=\
                  MSO-RA-9222E|\
                  Error creating SDNC request|\
                  Please check other logs for more detailed info|\
                  Error creating SDNC request  
RA_ERROR_CREATE_SDNC_RESPONSE=\
                  MSO-RA-9223E|\
                  Error creating SDNC response|\
                  Please check other logs for more detailed info|\
                  Error creating SDNC response   
RA_ERROR_CONVERT_XML2STR=\
                  MSO-RA-9224E|\
                  Error converting xml Document to String|\
                  Please check other logs for more detailed info |\
                  Error converting xml Document to String
RA_UPDATE_TENANT_ERR=\
                  MSO-RA-9225E|\
                  Update Tenant Error: {0}|\
                  Please check other logs for more detailed info|\
                  Update Tenant Error  
RA_ROLLBACK_TENANT_ERR=\
                  MSO-RA-9226E|\
                  Rollback Tenant Error: {0}|\
                  Please check other logs for more detailed info|\
                  Rollback Tenant Error  
RA_QUERY_VNF_ERR=\
                  MSO-RA-9227E|\
                  Exception while query VNF:{0} in {1}/{2}|\
                  Please check other logs for more detailed info|\
                  Exception while query VNF
RA_UPDATE_VNF_ERR=\
                  MSO-RA-9228E|\
                  Exception while update VNF:{0} in {1}/{2}|\
                  Please check other logs for more detailed info|\
                  Exception while update VNF 
RA_DELETE_VNF_ERR=\
                  MSO-RA-9229E|\
                  Exception while delete VNF:{0} in {1}/{2}|\
                  Please check other logs for more detailed info|\
                  Exception while delete VNF     
RA_CREATE_VNF_ERR=\
                  MSO-RA-9230E|\
                  Exception while create VNF:{0} in {1}/{2}|\
                  Please check other logs for more detailed info|\
                  Exception while create VNF
RA_ROLLBACK_VNF_ERR=\
                  MSO-RA-9231E|\
                  Exception while rollback VNF|\
                  Please check other logs for more detailed info|\
                  Exception while rollback VNF                                                                                                                                                                                                                                                                                                                                                                   
