2016-07-29 21 views
0

Der Befehl: neutron.list_ports()["ports"] (Python) gibt mir alle IP-Adressen, die ich auf meinem Rechner habe.Openstack IP-Adresse Filter

Zum Beispiel:

[{u'status': u'ACTIVE', 
u'name': u'', 
u'allowed_address_pairs': [], 
u'admin_state_up': True, 
u'network_id': u'7da####81c2##79e2', 
u'dns_name': u'', 
u'extra_dhcp_opts': [], 
u'dns_assignment': [{u'hostname': u'host-193-164-#5-##', 
u'ip_address': u'193.164.#5.##', 
u'fqdn': u'host-193-164-#5-##.openstacklocal.'}], 
u'binding:vnic_type': u'normal', 
u'device_owner': u'compute:None', 
u'tenant_id': u'155##748a###3895###8b890', 
u'mac_address': u'fa:##:3e:##:##:cr', 
u'port_security_enabled': True, 
u'fixed_ips': [{u'subnet_id': u'66####e6-###-####-a7#f-4017###6d762', 
u'ip_address': u'193.164.#5.##'}], 
u'id': u'170##4c7d-571f-###-a089-5c4###97d29', 
u'security_groups': [u'ba6d##2-bd#58-40#c2-a5c#2-9###92a4##e'], 
u'device_id': u'da##5d-###-4d6f-b##b-c3###8435'}, 

{u'status': u'DOWN', 
u'name': u'', 
u'allowed_address_pairs': [], 
u'admin_state_up': True, 
u'network_id': u'##', 
u'dns_name': u'', 
u'extra_dhcp_opts': [], 
u'dns_assignment': [{u'hostname': u'host-##', 
u'ip_address': u'##', 
u'fqdn': u'host-##.openstacklocal.'}], 
u'binding:vnic_type': u'normal', 
u'device_owner': u'', 
u'tenant_id': u'##', 
u'mac_address': u'f##9:f7', 
u'port_security_enabled': True, 
u'fixed_ips': [{u'subnet_id': u'##62', 
u'ip_address': u'####'}], 
u'id': u'34f##b7c-######9138-##39##30e9', 
u'security_groups': [u'ba##-bd58-40##5c2-9##92a4##'], 
u'device_id': u''}] 

Ich setzte das "#" die IPs zu verstecken ...

Ich möchte in der Lage sein, zwischen drei Arten von IP-Adressen zu unterscheiden:

  1. A reservered und allocated IP
  2. A reserviert und NonAllocated IP
  3. A NonReserved, aber Allo Cated IP
+0

wie herauszufinden, was gilt IP? Zugewiesen oder nicht, was die Zeile beantwortet. – Igor

Antwort

0

Liste -> num -> dict

a = [{'name': 'one'}, {'name': 'two'}] 
a[0]['name'] 

Zugriff auf Elemente

network = neutron.list_ports()["ports"] 
for elem in network: 
    print a['status'] 
    print a['network_id'] 
    print a['ip_address'] 
    print a['dns_assignment'][0]['ip_address']