azure-xplat-cli
azure-xplat-cli copied to clipboard
Azure vm extension set fails when file has UTF with BOM
CLI Version: 0.10.8 (node: 6.2.2)
OS Type: Mac 10.12.2
Installation via: npm
(i thnk)
Mode: ARM
Environment: AzureCloud
Description:
azure vm extension
set fails when settings file is UTF8 with BOM
Steps to reproduce:
- create a vm
- apply an extension where the public config file is UTF8 with a BOM
$ azure vm extension set <vm-name> <extension-name> <extension-publisher> <extension-version> --public-config-path publicSettings.json --private-config-path privateSettings.json
info: Executing command vm extension set
+ Getting virtual machines
+ Updating vm extension
error: Invalid extension reference parameter value in JSON configuration data for the Role: <vm-name>, Reference name: <extension-name>.
error: Error information has been recorded to ~/.azure/azure.err
error: vm extension set command failed
Error stack trace:
2017-02-07T00:40:48.514Z:
{ Error: Invalid extension reference parameter value in JSON configuration data for the Role: <vm-name>, Reference name: <extension-name>.
at Function.ServiceClient._normalizeError (/usr/local/lib/node_modules/azure-cli/node_modules/azure-common/lib/services/serviceclient.js:814:23)
at /usr/local/lib/node_modules/azure-cli/node_modules/azure-common/lib/services/filters/errorhandlingfilter.js:44:29
at Request._callback (/usr/local/lib/node_modules/azure-cli/node_modules/azure-common/lib/http/request-pipeline.js:109:14)
at Request.self.callback (/usr/local/lib/node_modules/azure-cli/node_modules/request/request.js:187:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/usr/local/lib/node_modules/azure-cli/node_modules/request/request.js:1044:10)
at emitOne (events.js:101:20)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/azure-cli/node_modules/request/request.js:965:12)
code: 'BadRequest',
statusCode: 400,
requestId: '7bd6fd9081d174a9a3bedbbf5fd0eb1e' }
Error: Invalid extension reference parameter value in JSON configuration data for the Role: <v-name>, Reference name: <extension-name>.
at Function.ServiceClient._normalizeError (/usr/local/lib/node_modules/azure-cli/node_modules/azure-common/lib/services/serviceclient.js:814:23)
at /usr/local/lib/node_modules/azure-cli/node_modules/azure-common/lib/services/filters/errorhandlingfilter.js:44:29
at Request._callback (/usr/local/lib/node_modules/azure-cli/node_modules/azure-common/lib/http/request-pipeline.js:109:14)
at Request.self.callback (/usr/local/lib/node_modules/azure-cli/node_modules/request/request.js:187:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/usr/local/lib/node_modules/azure-cli/node_modules/request/request.js:1044:10)
at emitOne (events.js:101:20)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/azure-cli/node_modules/request/request.js:965:12)
Changing the file to UTF without a BOM works fine.
Looks similar to https://github.com/Azure/azure-xplat-cli/issues/1966.
@matt-richardson I will take a further look.
Just curious -- do you have any BOM stripping command/utils that you can leverage and mitigate by yourself on your system? Thanks.
I worked around it by editing the file in Sublime Text, so its not a blocker for me.