I realize this one-call for both get and set is how it works in virsh command, but there's no need for us to mix the two.  It would be much clearer if we separated it into two functions, <code>node_get_memtune(**dargs)</code> and <code>node_set_memtune(shm_pages_to_scan=None, shm_sleep_millisecs=None,  shm_merge_across_nodes=None, extra_options=None, **dargs)</code>.  In the 'set' version, a <code>TypeError</code> exception should be raised if at least one parameter is not specified.