nlindblo opened a new issue #4468: URL: https://github.com/apache/cloudstack/issues/4468
This issue was already reported 5 years ago in https://issues.apache.org/jira/browse/CLOUDSTACK-8680 , but appears to not have been addressed. RabbitMQ message still comes through as json that is not correctly formatted ##### ISSUE TYPE * Bug Report ##### COMPONENT NAME <!-- Events --> ##### CLOUDSTACK VERSION <!-- 4.14 --> ~~~ ~~~ ##### CONFIGURATION Cloudstack 4.14 on Ubuntu 16.04, RabbitMQ 3.8.7 ##### OS / ENVIRONMENT N/A ##### SUMMARY RabbitMQ event message for VM.CREATE and VM.DESTROY events can't be parsed cleanly. Below is an example: ##### STEPS TO REPRODUCE Sample message in RabbbitMQ: "cmdInfo": "{\"response\":\"json\",\"id\":\"b780c229-7064-47e5-97d0-a8b4590b36b8\",\"sessionkey\":\"WY6E5WuM8SbqMw4bCumnVgGsgEQ\\u003d\",\"ctxDetails\":\"{\\\"com.cloud.vm.VirtualMachine\\\":\\\"b780c229-7064-47e5-97d0-a8b4590b36b8\\\"}\",\"cmdEventType\":\"VM.DESTROY\",\"ctxUserId\":\"2\",\"httpmethod\":\"GET\",\"_\":\"1438027779033\",\"uuid\":\"b780c229-7064-47e5-97d0-a8b4590b36b8\",\"ctxAccountId\":\"2\",\"ctxStartEventId\":\"6282\"}", "instanceType": "VirtualMachine", "instanceUuid": "b780c229-7064-47e5-97d0-a8b4590b36b8", "jobId": "61a62e5d-61ee-41eb-b947-0f8ef5d857c3", "status": "SUCCEEDED", "processStatus": "0", "commandEventType": "VM.DESTROY", "resultCode": "0", "command": "org.apache.cloudstack.api.command.admin.vm.DestroyVMCmdByAdmin", "jobResult": "org.apache.cloudstack.api.response.UserVmResponse/virtualmachine/{\"id\":\"b780c229-7064-47e5-97d0-a8b4590b36b8\",\"name\":\"yz-x1\",\"displayname\":\"yz-x1\",\"account\":\"admin\",\"domainid\":\"994ff03e-bb8f-11e4-b7d5-36d1d14da5e9\",\"domain\":\"ROOT\",\"created\":\"2015-07-27T12:01:12-0500\",\"state\":\"Destroyed\",\"haenable\":false,\"zoneid\":\"1b0b4859-7b8a-41dd-8522-4dbf24345509\",\"zonename\":\"sjlab\",\"templateid\":\"e6fa410f-4bf0-4b3c-9982-9d60e7ffc07e\",\"templatename\":\"Base\",\"templatedisplaytext\":\"Base with 32 GB root and cloud-init\",\"passwordenabled\":false,\"serviceofferingid\":\"11a5e901-bc78-45c6-8b81-a2a9e3530164\",\"serviceofferingname\":\"[email protected]@1.5GB\",\"cpunumber\":1,\"cpuspeed\":1000,\"memory\":1536,\"cpuused\":\"0.56%\",\"networkkbsread\":0,\"networkkbswrite\":2,\"diskkbsread\":2670,\"diskkbswrite\":163,\"diskioread\":0,\"diskiowrite\":0,\"guestosid\":\"a0c75a5b-bb8f-11e4-b7d5-36d1d14da5e9\",\"rootdeviceid\":0,\"rootdevicetype\" :\"ROOT\",\"securitygroup\":[{\"id\":\"ad13aa78-bb8f-11e4-b7d5-36d1d14da5e9\",\"name\":\"default\",\"description\":\"Default Security Group\",\"account\":\"admin\",\"ingressrule\":[],\"egressrule\":[],\"tags\":[]}],\"nic\":[{\"id\":\"1c87d7e1-f8c9-425e-809d-7edd1a30c3a6\",\"networkid\":\"abe603fe-1d8b-4b23-9aa2-0234f18de686\",\"networkname\":\"vlan106\",\"netmask\":\"255.255.255.0\",\"gateway\":\"10.0.106.1\",\"ipaddress\":\"10.0.106.170\",\"isolationuri\":\"vlan://106\",\"broadcasturi\":\"vlan://106\",\"traffictype\":\"Guest\",\"type\":\"Shared\",\"isdefault\":true,\"macaddress\":\"06:d9:2e:00:03:f6\"}],\"hypervisor\":\"XenServer\",\"instancename\":\"i-2-346-VM\",\"tags\":[],\"details\":{\"hypervisortoolsversion\":\"xenserver56\"},\"affinitygroup\":[],\"displayvm\":true,\"isdynamicallyscalable\":true,\"ostypeid\":206,\"jobid\":\"61a62e5d-61ee-41eb-b947-0f8ef5d857c3\",\"jobstatus\":0}", "account": "ad11bb05-bb8f-11e4-b7d5-36d1d14da5e9", "user": "ad129c91-bb8f-11e4-b7d5-36d1d14da5e9" } ~~~ <!-- You can also paste gist.github.com links for larger files --> ##### EXPECTED RESULTS There are two problems for above example: 1. The nested data structures are not parsed properly. As you can see, values for both “cmdInfo” and “jobResult” are strings instead of nested hash. I have to make additional calls to JSON parser on those values to parse them. 2. The string "org.apache.cloudstack.api.response.UserVmResponse/virtualmachine/“ at the beginning of the value for “jobResult” makes this value invalid to be parsed as JSON object at all. ##### ACTUAL RESULTS <!-- What actually happened? --> <!-- Paste verbatim command output between quotes below --> ~~~ ~~~ ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
