Name is an optional property and should be removable (set back to None). However:
$ ironic node-update b804c08b-98f0-473c-9eaf-38f3fc24aa6b remove name
'value' (HTTP 500)
this is on tripleo liberty, didn't try on master.
Jan 12 10:04:09 host15.beaker.tripleo.lab.eng.rdu2.redhat.com ironic-api[57785]: 2016-01-12 10:04:09.750 57785 ERROR wsme.api [req-a0438d79-7ba8-44be-a253-600b3534a9e2 ] Server-side error: "'value'". Detail:
Jan 12 10:04:09 host15.beaker.tripleo.lab.eng.rdu2.redhat.com ironic-api[57785]: Traceback (most recent call last):
Jan 12 10:04:09 host15.beaker.tripleo.lab.eng.rdu2.redhat.com ironic-api[57785]: File "/usr/lib/python2.7/site-packages/wsmeext/pecan.py", line 84, in callfunction
Jan 12 10:04:09 host15.beaker.tripleo.lab.eng.rdu2.redhat.com ironic-api[57785]: result = f(self, *args, **kwargs)
Jan 12 10:04:09 host15.beaker.tripleo.lab.eng.rdu2.redhat.com ironic-api[57785]: File "/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/node.py", line 1180, in patch
Jan 12 10:04:09 host15.beaker.tripleo.lab.eng.rdu2.redhat.com ironic-api[57785]: name = api_utils.get_patch_value(patch, '/name')
Jan 12 10:04:09 host15.beaker.tripleo.lab.eng.rdu2.redhat.com ironic-api[57785]: File "/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/utils.py", line 72, in get_patch_value
Jan 12 10:04:09 host15.beaker.tripleo.lab.eng.rdu2.redhat.com ironic-api[57785]: return p['value']
Jan 12 10:04:09 host15.beaker.tripleo.lab.eng.rdu2.redhat.com ironic-api[57785]: KeyError: 'value'
Possible suspect: https:/ /github. com/openstack/ ironic/ blob/master/ ironic/ api/controllers /v1/utils. py#L72