Hi! I also tried with [0], but it fails, too.
The command line: (local) 🐵 > deploy virtualmachine zoneid=9c667177-4f6e-4d51-b841-2b83f5e851ac domainid=6ff469a6-d975-11e5-98dc-001e8c29bd11 templateid=14c5e883-c6c3-4fed-83d5-451d1064dcad networkids=42b962bf-27f1-434b-bd14-239a909a206e serviceofferingid=8aab1d01-1ec3-4eec-85ab-6caba370288a details[0].cpuNumber=2 details[0].cpuSpeed=1000 details[0].Memory=512M name=test1 Error 401 Authentication error errorcode = 401 errortext = unable to verify user credentials and/or request signature uuidList: From the cloudmonkey log: 2016-03-23 15:09:23,953 - connectionpool.py:207 - [INFO] Starting new HTTP connection (1): localhost 2016-03-23 15:09:23,984 - connectionpool.py:387 - [DEBUG] "GET /client/api?networkids=42b962bf-27f1-434b-bd14-239a909a206e&domainid=6ff469a6-d975-11e5-98dc-001e8c29bd11&apiKey=M5-9oj4BbFevrrNL92dHA3N_emaWHirVzFLxhKenCT8z8dMpzb1PmeeAJv2ICmNuSsnj6tl371T8VYxjGtPLJg&name=test1&details%5B0%5D.cpuSpeed=1000&expires=2016-03-23T14%3A19%3A23%2B0000&signatureversion=3&zoneid=9c667177-4f6e-4d51-b841-2b83f5e851ac&details%5B0%5D.cpuNumber=2&command=deployVirtualMachine&templateid=14c5e883-c6c3-4fed-83d5-451d1064dcad&response=json&signature=VDammkzNSFJI25IZNRzMX9I0K7U%3D&serviceofferingid=8aab1d01-1ec3-4eec-85ab-6caba370288a&details%5B0%5D.Memory=512M HTTP/1.1" 401 137 2016-03-23 15:09:23,985 - requester.py:49 - [DEBUG] Request sent: http://localhost:8080/client/api?networkids=42b962bf-27f1-434b-bd14-239a909a206e&domainid=6ff469a6-d975-11e5-98dc-001e8c29bd11&apiKey=M5-9oj4BbFevrrNL92dHA3N_emaWHirVzFLxhKenCT8z8dMpzb1PmeeAJv2ICmNuSsnj6tl371T8VYxjGtPLJg&name=test1&details%5B0%5D.cpuSpeed=1000&expires=2016-03-23T14%3A19%3A23%2B0000&signatureversion=3&zoneid=9c667177-4f6e-4d51-b841-2b83f5e851ac&details%5B0%5D.cpuNumber=2&command=deployVirtualMachine&templateid=14c5e883-c6c3-4fed-83d5-451d1064dcad&response=json&signature=VDammkzNSFJI25IZNRzMX9I0K7U%3D&serviceofferingid=8aab1d01-1ec3-4eec-85ab-6caba370288a&details%5B0%5D.Memory=512M 2016-03-23 15:09:23,985 - requester.py:49 - [DEBUG] Response received: {"deployvirtualmachineresponse":{"uuidList":[],"errorcode":401,"errortext":"unable to verify user credentials and/or request signature"}} 2016-03-23 15:09:23,985 - requester.py:49 - [DEBUG] Error: 401 Authentication error 2016-03-23 15:09:23,985 - requester.py:49 - [DEBUG] ======== END Request ======== This is the corresponding line in the cloudstack management log: 2016-03-23 15:09:23,963 DEBUG [c.c.a.ApiServlet] (catalina-exec-10:ctx-57c16d4d) (logid:e9a26d51) ===START=== 0:0:0:0:0:0:0:1 -- GET networkids=42b962bf-27f1-434b-bd14-239a909a206e&domainid=6ff469a6-d975-11e5-98dc-001e8c29bd11&apiKey=M5-9oj4BbFevrrNL92dHA3N_emaWHirVzFLxhKenCT8z8dMpzb1PmeeAJv2ICmNuSsnj6tl371T8VYxjGtPLJg&name=test1&details%5B0%5D.cpuSpeed=1000&expires=2016-03-23T14%3A19%3A23%2B0000&signatureversion=3&zoneid=9c667177-4f6e-4d51-b841-2b83f5e851ac&details%5B0%5D.cpuNumber=2&command=deployVirtualMachine&templateid=14c5e883-c6c3-4fed-83d5-451d1064dcad&response=json&signature=VDammkzNSFJI25IZNRzMX9I0K7U%3D&serviceofferingid=8aab1d01-1ec3-4eec-85ab-6caba370288a&details%5B0%5D.Memory=512M 2016-03-23 15:09:23,966 INFO [c.c.a.ApiServer] (catalina-exec-10:ctx-57c16d4d ctx-d31c96e2) (logid:e9a26d51) User signature: VDammkzNSFJI25IZNRzMX9I0K7U= is not equaled to computed signature: +JnMQMYaEovhHAgcMSqShFHx5NY= 2016-03-23 15:09:23,975 DEBUG [c.c.a.ApiServlet] (catalina-exec-10:ctx-57c16d4d ctx-d31c96e2) (logid:e9a26d51) ===END=== 0:0:0:0:0:0:0:1 -- GET networkids=42b962bf-27f1-434b-bd14-239a909a206e&domainid=6ff469a6-d975-11e5-98dc-001e8c29bd11&apiKey=M5-9oj4BbFevrrNL92dHA3N_emaWHirVzFLxhKenCT8z8dMpzb1PmeeAJv2ICmNuSsnj6tl371T8VYxjGtPLJg&name=test1&details%5B0%5D.cpuSpeed=1000&expires=2016-03-23T14%3A19%3A23%2B0000&signatureversion=3&zoneid=9c667177-4f6e-4d51-b841-2b83f5e851ac&details%5B0%5D.cpuNumber=2&command=deployVirtualMachine&templateid=14c5e883-c6c3-4fed-83d5-451d1064dcad&response=json&signature=VDammkzNSFJI25IZNRzMX9I0K7U%3D&serviceofferingid=8aab1d01-1ec3-4eec-85ab-6caba370288a&details%5B0%5D.Memory=512M If I just change "Memory" to "memory", I get this (I know, there's also another network ID): (local) 🐵 > deploy virtualmachine zoneid=9c667177-4f6e-4d51-b841-2b83f5e851ac domainid=6ff469a6-d975-11e5-98dc-001e8c29bd11 templateid=14c5e883-c6c3-4fed-83d5-451d1064dcad networkids=9cb521cf-4e31-4e4e-9cc3-0594c0d86b23 serviceofferingid=8aab1d01-1ec3-4eec-85ab-6caba370288a details[0].cpuNumber=2 details[0].cpuSpeed=1000 details[0].Memory=512M name=test1 Error 401 Authentication error errorcode = 401 errortext = unable to verify user credentials and/or request signature uuidList: (local) 🐵 > deploy virtualmachine zoneid=9c667177-4f6e-4d51-b841-2b83f5e851ac domainid=6ff469a6-d975-11e5-98dc-001e8c29bd11 templateid=14c5e883-c6c3-4fed-83d5-451d1064dcad networkids=9cb521cf-4e31-4e4e-9cc3-0594c0d86b23 serviceofferingid=8aab1d01-1ec3-4eec-85ab-6caba370288a details[0].cpuNumber=2 details[0].cpuSpeed=1000 details[0].memory=512M name=test1 Error 431: Invalid memory value, specify a value between 32 and 2147483647 MB cserrorcode = 4350 errorcode = 431 errortext = Invalid memory value, specify a value between 32 and 2147483647 MB uuidList: So it looks like the key is only being validated when the commands are validated successfully: If the call would be valid, it fails at the key check, otherwise it is rejected, too. Creating a VM via the Web GUI works fine, here's a request from the management.log: 2016-03-23 15:10:03,242 DEBUG [c.c.a.ApiServlet] (catalina-exec-12:ctx-1c7c46b2) (logid:2387765e) ===START=== 172.24.187.83 -- GET command=deployVirtualMachine&response=json&zoneid=9c667177-4f6e-4d51-b841-2b83f5e851ac&templateid=14c5e883-c6c3-4fed-83d5-451d1064dcad&hypervisor=XenServer&serviceofferingid=8aab1d01-1ec3-4eec-85ab-6caba370288a&details%5B0%5D.cpuNumber=2&details%5B0%5D.cpuSpeed=1000&details%5B0%5D.memory=512&iptonetworklist%5B0%5D.networkid=9cb521cf-4e31-4e4e-9cc3-0594c0d86b23&displayname=test2&name=test2&_=1458742213708 2016-03-23 15:10:03,260 DEBUG [c.c.u.AccountManagerImpl] (catalina-exec-12:ctx-1c7c46b2 ctx-e288c668) (logid:2387765e) Access granted to Acct[f191fec4-d975-11e5-98dc-001e8c29bd11-admin] to org.apache.cloudstack.quota.vo.ServiceOfferingVO$$EnhancerByCGLIB$$83782f89@580c534b by AffinityGroupAccessChecker There's no signature at all, but the _ is probably some kind of session ID... Ciao Martin -----Ursprüngliche Nachricht----- Von: Rohit Yadav [mailto:rohit.ya...@shapeblue.com] Gesendet: Mittwoch, 23. März 2016 15:28 An: users@cloudstack.apache.org Betreff: RE: API deploy virtualmachine failed with custom offering Hi Martin, The details argument for this API is a map, CloudMonkey simply wraps given arguments and creates a HTTP request so for maps it's always been a syntax like map[0].key=value. The usage of maps has been documented here: https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+cloudmonkey+CLI#CloudStackcloudmonkeyCLI-Argumentpassing This has not changed since 4.1/4.2. You may also debug by tailing cloudmonkey logs if you get further issues: tail -f ~/.cloudmonkey/log Though I think it's a good idea to automatically add this weird syntax so users can pass maps directly as map.key=value (your syntax). I'll see what I can do to fix this :) Regards. Regards, Rohit Yadav rohit.ya...@shapeblue.com www.shapeblue.com 53 Chandos Place, Covent Garden, London WC2N 4HSUK @shapeblue -----Original Message----- From: Martin Emrich [mailto:martin.emr...@empolis.com] Sent: Wednesday, March 23, 2016 2:50 PM To: users@cloudstack.apache.org Subject: API deploy virtualmachine failed with custom offering HI! I try to deploy a virtual machine with a custom offering via the API. But I get "401 unable to verify user credentials and/or request signature". First I thought my signing code is wonky (although it worked fine for over a year now)... But if I use cloudmonkey I get the same: (local) > deploy virtualmachine zoneid=e99e796c-4e5c-4549-a0d7-ddd3d8526c06 domainid=5b6fbb96-db68-11e3-86e7-0030487e0d0c name=martin1 serviceofferingid=d16eb08f-ad36-496e-a7bd-b5e43f104ce6 details.cpuSpeed=1000 details.Memory=1024MB details.cpuNumber=2 networkids=0ba76ecd-39cf-403e-bbf7-68e4c44e43ac templateid=dc3c32ca-21a2-46a4-83f1-229d83b0588d Error 401 Authentication error errorcode = 401 errortext = unable to verify user credentials and/or request signature uuidList: (local) > It only happens when I specify the details[0] values, so maybe there's something wrong regarding the square braces []? I use ACS 4.8.0, and I remember that it worked some time ago with 4.4.3. Thanks for any hints! Regards Martin