::
        
            POST /:login/machines/:id/metadata
        
        :Returns: current metadata
        :rtype: :py:class:`dict`
        
        Send an metadata dict update for the machine (following dict.update() 
        semantics) using the keys and values passed in the keyword arguments. 
        The method also refreshes the locally cached copy of the metadata kept 
        in the :py:attr:`metadata` attribute and returns it.

def update_metadata(self, **kwargs):
        """
        ::
        
            POST /:login/machines/:id/metadata
        
        :Returns: current metadata
        :rtype: :py:class:`dict`
        
        Send an metadata dict update for the machine (following dict.update() 
        semantics) using the keys and values passed in the keyword arguments. 
        The method also refreshes the locally cached copy of the metadata kept 
        in the :py:attr:`metadata` attribute and returns it.
        """
        j, _ = self.datacenter.request('POST', self.path + '/metadata', 
                    data=kwargs)
        self.metadata = j
        return j