azure-xplat-cli icon indicating copy to clipboard operation
azure-xplat-cli copied to clipboard

Azure vm extension set fails when file has UTF with BOM

Open matt-richardson opened this issue 8 years ago • 3 comments

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:

  1. create a vm
  2. 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.

matt-richardson avatar Feb 07 '17 00:02 matt-richardson

Looks similar to https://github.com/Azure/azure-xplat-cli/issues/1966.

matt-richardson avatar Feb 07 '17 00:02 matt-richardson

@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.

huangpf avatar Feb 09 '17 17:02 huangpf

I worked around it by editing the file in Sublime Text, so its not a blocker for me.

matt-richardson avatar Feb 09 '17 22:02 matt-richardson