]> xenbits.xen.org Git - xenclient/toolstack.git/commitdiff
xenvm: implement nic-list RPC
authorTomasz Wroblewski <tomasz.wroblewski@citrix.com>
Wed, 9 Dec 2009 18:02:26 +0000 (18:02 +0000)
committerTomasz Wroblewski <tomasz.wroblewski@citrix.com>
Wed, 9 Dec 2009 18:02:26 +0000 (18:02 +0000)
xenvm/vmact.ml
xenvm/xenvm.ml

index 7331156d7e59315db9aef0074a7b8d03d56106d2..88047c91cab5a9a325eb4a802adf14ccedd544cf 100644 (file)
@@ -798,6 +798,21 @@ let add_pci state id domain bus slot func bind msitranslate power_mgmt =
        set_new_config state cfg;
        Xenvmlib.Ok
 
+let list_nic state =
+        let cfg = state.vm_cfg in
+       let header = " id |   bridge   |       mac         | model" in
+       let nic_string nic =
+         Printf.sprintf "%3d |%11s |%18s |%30s"
+           nic.Vmconfig.nic_id
+           nic.Vmconfig.nic_bridge
+           nic.Vmconfig.nic_mac
+           nic.Vmconfig.nic_model
+       in
+       let nics = List.sort (fun a b -> compare a.nic_id b.nic_id) cfg.nics in
+       let nic_lines = List.map nic_string nics in
+       let msg = List.fold_left (fun acc x -> acc ^ "\n" ^ x) "" nic_lines in
+       Xenvmlib.Msg (header ^ msg)
+
 let list_pci state =
         let header = "pci-dom | bus | slot | func | bind | msi-trans | power-mgmt" in
         let pci_dev_string p =
@@ -808,5 +823,5 @@ let list_pci state =
          Printf.sprintf "%7d |%4d |%5d |%5d |%5s |%10d |%11d" 
            p.pci_domain p.pci_bus p.pci_slot p.pci_func bind msi_trans power_mgmt in
         let pci_lines = List.map pci_dev_string state.vm_pcis in
-       let msg = List.fold_left (fun x acc -> "\n" ^ acc ^ x) "" pci_lines in
+       let msg = List.fold_left (fun acc x -> acc ^ "\n" ^ x) "" pci_lines in
        Xenvmlib.Msg (header ^ msg)
index 85febd67c95b2f1185b7c2c86e947005256eb3f1..ff4fa4c0788930c5f7608fcfb4810c4bc93c7066 100644 (file)
@@ -499,8 +499,10 @@ let do_task state (task, args) =
                Vmact.add_pci state id domain bus slot func bind msitranslate power_mgmt
        | Tasks.DelDisk | Tasks.DelNic | Tasks.DelPCI ->
                Xenvmlib.Error "not implemented"
-       | Tasks.ListDisk | Tasks.ListNic ->
+       | Tasks.ListDisk ->
                Xenvmlib.Error "not implemented"
+       | Tasks.ListNic ->
+               Vmact.list_nic state
        | Tasks.ListPCI ->
                Vmact.list_pci state
        | Tasks.Get ->