From: Tomasz Wroblewski Date: Wed, 9 Dec 2009 18:02:26 +0000 (+0000) Subject: xenvm: implement nic-list RPC X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=8f91d3e93f78fb5882e0c7726e5e332dc9d91d35;p=xenclient%2Ftoolstack.git xenvm: implement nic-list RPC --- diff --git a/xenvm/vmact.ml b/xenvm/vmact.ml index 7331156..88047c9 100644 --- a/xenvm/vmact.ml +++ b/xenvm/vmact.ml @@ -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) diff --git a/xenvm/xenvm.ml b/xenvm/xenvm.ml index 85febd6..ff4fa4c 100644 --- a/xenvm/xenvm.ml +++ b/xenvm/xenvm.ml @@ -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 ->