Uploaded image for project: 'Libcloud'
  1. Libcloud
  2. LIBCLOUD-148

OpenNebula's OCCI interface returns the state ACTIVE, which is unknown to libcloud

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.7.1
    • Fix Version/s: 0.8.0
    • Component/s: Compute
    • Labels:
      None
    • Environment:

      OpenNebula 3.2

      Description

      I have found that OpenNebula 3.2 returns the state ACTIVE for virtual machines that are actually running:

      For example, consider this query, using the OCCI interface:

      username@hostname:~$ wget http://hostname:4567/compute/347 -http-user=username --http-password=0000000000000000000000000000000000 --auth-no-challenge -qO

      <COMPUTE href="http://hostname:4567/compute/347"><ID>347</ID><CPU>1</CPU><MEMORY>256</MEMORY><NAME>vps1</NAME><STATE>ACTIVE</STATE><DISK id="0"><STORAGE href="http://hostname:4567/storage/14" name="Ubuntu-11.10"/><TYPE>DISK</TYPE><TARGET>hda</TARGET></DISK><NIC><NETWORK href="http://hostname:4567/network/0" name="internal"/><IP>10.0.0.3</IP><MAC>50:00:00:00:00:03</MAC></NIC></COMPUTE>

      Now, the same query, but using the native interface:

      username@hostname:~$ onevm list

      ID USER GROUP NAME STAT CPU MEM HOSTNAME TIME
      347 username users vps1 runn 0 268.2M hostname 08 01:32:13

      The same machine has two different states: running for the native interface, and active for OCCI. However, libcloud does not consider the active state, and returns unknown.

      Kind regards,

      Erik

      1. opennebula.diff
        7 kB
        Hutson Betts

        Activity

        Hide
        etserrano Erik Torres Serrano added a comment -

        It seems that the ACTIVE state can be unfolded to such different things as RUNNING, SHUTDOWN or FAILURE:

        http://doc.bonfire-project.eu/R2/reference/states-occi-resources.html

        I don't know exactly how the unfolding works, but it will be great if libcloud could match and report these "internal" states. Definitely, this is a major improvement!

        Show
        etserrano Erik Torres Serrano added a comment - It seems that the ACTIVE state can be unfolded to such different things as RUNNING, SHUTDOWN or FAILURE: http://doc.bonfire-project.eu/R2/reference/states-occi-resources.html I don't know exactly how the unfolding works, but it will be great if libcloud could match and report these "internal" states. Definitely, this is a major improvement!
        Hide
        hut101 Hutson Betts added a comment -

        From OpenNebula's documentation, the following are states that a VM can be transitioned to upon user request:
        STOPPED
        SUSPENDED
        RESUME
        CANCEL
        SHUTDOWN
        REBOOT # OpenNebula v3.2 only.
        DONE

        By reading their code, I can say that the following are the states a VM can exist in, at least as far as OCCI is concerned:
        INIT
        PENDING
        HOLD
        ACTIVE
        STOPPED
        SUSPENDED
        DONE
        FAILED

        It's interesting, their own documentation, for v3.2, shows:
        <COMPUTE href="http://www.opennebula.org/compute/32">
        ...
        <STATE>running</STATE>
        ...
        </COMPUTE>

        I still need to compare the difference between OpenNebula versions, but I hope to have a patch shortly.

        Show
        hut101 Hutson Betts added a comment - From OpenNebula's documentation, the following are states that a VM can be transitioned to upon user request: STOPPED SUSPENDED RESUME CANCEL SHUTDOWN REBOOT # OpenNebula v3.2 only. DONE By reading their code, I can say that the following are the states a VM can exist in, at least as far as OCCI is concerned: INIT PENDING HOLD ACTIVE STOPPED SUSPENDED DONE FAILED It's interesting, their own documentation, for v3.2, shows: <COMPUTE href="http://www.opennebula.org/compute/32"> ... <STATE>running</STATE> ... </COMPUTE> I still need to compare the difference between OpenNebula versions, but I hope to have a patch shortly.
        Hide
        hut101 Hutson Betts added a comment -

        Patch to update the list of states for a compute node.

        Show
        hut101 Hutson Betts added a comment - Patch to update the list of states for a compute node.
        Hide
        hut101 Hutson Betts added a comment -

        Erik,

        To my knowledge, there is no way to "unfold" the states using the OCCI interface. However, if there is a way, by all means, I would love to implement it.

        It seems that states are only pulled from "VM_STATE=%w

        {INIT PENDING HOLD ACTIVE STOPPED SUSPENDED DONE FAILED}

        "

        However, I still can't quite be sure. If I see a way to achieve the unfolding through the OCCI interface I'll be sure to implement it.

        Show
        hut101 Hutson Betts added a comment - Erik, To my knowledge, there is no way to "unfold" the states using the OCCI interface. However, if there is a way, by all means, I would love to implement it. It seems that states are only pulled from "VM_STATE=%w {INIT PENDING HOLD ACTIVE STOPPED SUSPENDED DONE FAILED} " However, I still can't quite be sure. If I see a way to achieve the unfolding through the OCCI interface I'll be sure to implement it.
        Hide
        hut101 Hutson Betts added a comment -

        Patch has been applied.

        Show
        hut101 Hutson Betts added a comment - Patch has been applied.
        Hide
        etserrano Erik Torres Serrano added a comment -

        Hi Hutson,

        Thanks for your prompt response. Incredible fast solution!

        Please, keep this going! You have a great project, and a great team.

        Regards,

        Erik

        Show
        etserrano Erik Torres Serrano added a comment - Hi Hutson, Thanks for your prompt response. Incredible fast solution! Please, keep this going! You have a great project, and a great team. Regards, Erik

          People

          • Assignee:
            hut101 Hutson Betts
            Reporter:
            etserrano Erik Torres Serrano
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development