You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Ryan Lei (JIRA)" <ji...@apache.org> on 2013/10/30 07:33:25 UTC

[jira] [Created] (CLOUDSTACK-4998) assignVirtualMachine API has wrong response string, causing Cloudmonkey to crash

Ryan Lei created CLOUDSTACK-4998:
------------------------------------

             Summary: assignVirtualMachine API has wrong response string, causing Cloudmonkey to crash
                 Key: CLOUDSTACK-4998
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-4998
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
          Components: API, Cloudmonkey
    Affects Versions: 4.2.0
         Environment: CloudStack 4.2.0, XenServer 6.2, Cloudmonkey 5.0.0
            Reporter: Ryan Lei
             Fix For: 4.2.1, 4.3.0


>From mailing list discussion:

@Ryan Lei says:
For now, the only way to change the ownership of a VM is by the assignVirtualMachine API.

But executing this API using Cloudmonkey leads to the following error that crashes the program:

> assign virtualmachine virtualmachineid=7fe548bb-b2a7-4aec-92c5-5012ef9fd4f4 account=domain1-user1 domainid=cfc19b03-0858-4f39-9058-e0b67685bc2f
Traceback (most recent call last):
  File "/usr/bin/cloudmonkey", line 9, in <module>
    load_entry_point('cloudmonkey==5.0.0', 'console_scripts', 'cloudmonkey')()
  File "/usr/lib/python2.6/site-packages/cloudmonkey-5.0.0-py2.6.egg/cloudmonkey/cloudmonkey.py", line 536, in main
    shell.cmdloop()
  File "/usr/lib/python2.6/site-packages/cloudmonkey-5.0.0-py2.6.egg/cloudmonkey/cloudmonkey.py", line 106, in cmdloop
    super(CloudMonkeyShell, self).cmdloop(intro="")
  File "/usr/lib64/python2.6/cmd.py", line 142, in cmdloop
    stop = self.onecmd(line)
  File "/usr/lib64/python2.6/cmd.py", line 219, in onecmd
    return func(arg)
  File "/usr/lib/python2.6/site-packages/cloudmonkey-5.0.0-py2.6.egg/cloudmonkey/cloudmonkey.py", line 134, in grammar_closure
    self.default("%s %s" % (cmd, args))
  File "/usr/lib/python2.6/site-packages/cloudmonkey-5.0.0-py2.6.egg/cloudmonkey/cloudmonkey.py", line 303, in default
    result = self.make_request(apiname, args_dict, isasync)
  File "/usr/lib/python2.6/site-packages/cloudmonkey-5.0.0-py2.6.egg/cloudmonkey/cloudmonkey.py", line 257, in make_request
    self.timeout, self.protocol, self.path)
  File "/usr/lib/python2.6/site-packages/cloudmonkey-5.0.0-py2.6.egg/cloudmonkey/requester.py", line 121, in monkeyrequest
    responsekey = filter(lambda x: 'response' in x, response.keys())[0]
IndexError: list index out of range
[cs42]~#

@Sebastien Goasguen says:
I think the error is in the java code of AssignVirtualMachine:
api/src/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java:

@APICommand(name = "assignVirtualMachine", description="Change ownership of a VM from one account to another. This API is available for Basic zones with security groups and Advanced zones with guest networks. A root administrator can reassign a VM from any account to any other account in any domain. A domain administrator can reassign a VM to any account in the same domain.", responseObject=UserVmResponse.class, since="3.0.0")
public class AssignVMCmd extends BaseCmd  {
    public static final Logger s_logger = Logger.getLogger(AssignVMCmd.class.getName());

   private static final String s_name = "moveuservmresponse";
}

Shouldn't the string be "assignvirtualmachineresponse" ?





--
This message was sent by Atlassian JIRA
(v6.1#6144)