###
# ============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_NS_EXC=\
                  MSO-RA-5298I|\
                  VFC Adatper Message: {0}|\
                  No resolution needed|\
                  VFC Adatper 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                                                                                                                                                                                                                                                                                                                                                                   
