Introduction
This document describes how to resolve an issue related to VMware localization.
Prerequisites
Requirements
Cisco recommends that you have knowledge of these topics:
- How to turn on debug logging on a Cloud Center Orchestrator (CCO)
- How to edit files in Linux (using vim, nano, etc.)
- How to use regex strings
Components Used
This information in this document is based on > Cloud Center V 4.6.0.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Problem
When you try to deploy an application to VMware, it sometimes fails with the error "device '0' is referring to a nonexisting controller '0'". This error message might be displayed in another language. The issue shows up only if the application or the instance list additional storage.
This issue is defined in CORE-15287.
Solution
The issue is listed in CORE-11988.
Cloud Center (CC) runs a regex against Vcenter resources, however, if Vcenter is installed with a different localization (Japanese, French, etc) the resources returned to CC are in a different character set and the regex will fail.
1. Secure Shell (SSH) into the CCO.
2. Open /usr/local/tomcat/webapps/ROOT/WEB-INF/gateway.properties.
3. Add a new line vmware.scsci0.label.regex:.*SCSI\\s.*0.
4. This regex should work for French localization and any localization that has a word before SCSI then the controller number of 0, this might need to be modified for some localizations.
5. Stop and start the tomcat server.
6. Re-deploy.
If you still get the same error:
1. Turn on debug logging on the CCO.
2. Deploy another application.
3. Cat /usr/local/tomcat/logs/osmosix.log | grep "SCSI0 Label check user configured regex".
5. This will return what the CCO uses in order to search for the SCSI 0.
6. Use output to edit gateway properties so that CC searches VMware properly, if the output is null then you have run into a bug with Spring, which is used in order to load the properties file.
There is a workaround in order to apply the regex properly:
1. cat /usr/local/tomcat/logs/osmosix.log | grep "PropertyPlaceholderConfigurer".
Note: The first file listed in this screenshot is /osmosix-commons-cloudprovider-4.8.0.jar.
2. /etc/init.d/tomcat stop.
3. cd /tmp.
4. cp /usr/local/tomcat/webapps/ROOT/WEB-INF/lib/fileidentified.jar /tmp.
5. jar xvf fileidentified.jar spring/cloud/nsx.properties.
6. Open nsx.properties to edit.
7. Add the line vmware.scsci0.label.regex=.*SCSI\\s.*0.
8. jar uf fileidentified.jar /spring/cloud/nsx.properties.
9. cp /tmp/filespecified.jar /usr/local/tomcat/webapps/ROOT/WEB-INF/lib/.
10. /etc/init.d/tomcat start.
Try to deploy another application and reverify with the use of these steps to confirm regex was applied properly.