Revision 64303189 snf-cyclades-app/synnefo/api/management/commands/server-list.py

b/snf-cyclades-app/synnefo/api/management/commands/server-list.py
77 77
    astakos_url = ASTAKOS_BASE_URL
78 78
    astakos_token = ASTAKOS_TOKEN
79 79

  
80
    def get_public_ip(vm):
81
        try:
82
            return vm.nics.all()[0].ipv4
83
        except IndexError:
84
            return None
80
    def get_ipv4(vm):
81
        return vm.nics.filter(ips__subnet__ipversion=4)\
82
                      .values_list("ips__address", flat=True)
83

  
84
    def get_ipv6(vm):
85
        return vm.nics.filter(ips__subnet__ipversion=6)\
86
                      .values_list("ips__address", flat=True)
85 87

  
86 88
    def format_vm_state(vm):
87 89
        if vm.operstate == "BUILD":
......
98 100
        "image.id": ("imageid", "The ID of the server's image"),
99 101
        "image.name": ("image", "The name of the server's image"),
100 102
        "state": (format_vm_state, "The current state of the server"),
101
        "ip": (get_public_ip, "The public IP of the server"),
103
        "ipv4": (get_ipv4, "The IPv4 addresses of the server"),
104
        "ipv6": (get_ipv6, "The IPv6 addresses of the server"),
102 105
        "created": ("created", "The date the server was created"),
103 106
        "deleted": ("deleted", "Whether the server is deleted or not"),
104 107
        "suspended": ("suspended", "Whether the server is administratively"

Also available in: Unified diff