'Create a new node
@inherits: :class:`NodeDriver.create_node`
:keyword    ex_metadata: Key/Value metadata to associate with a node
:type       ex_metadata: ``dict``
:keyword    ex_files:   File Path => File contents to create on
the node
:type       ex_files:   ``dict``
:keyword    ex_shared_ip_group_id: The server is launched into
that shared IP group
:type       ex_shared_ip_group_id: ``str``'

def create_node(self, **kwargs):

    name = kwargs['name']
    image = kwargs['image']
    size = kwargs['size']
    attributes = {'xmlns': self.XML_NAMESPACE, 'name': name, 'imageId': str(image.id), 'flavorId': str(size.id)}
    if ('ex_shared_ip_group' in kwargs):
        warnings.warn('ex_shared_ip_group    argument    is    deprecated.    Please    use    ex_shared_ip_group_id')
    if ('ex_shared_ip_group_id' in kwargs):
        shared_ip_group_id = kwargs['ex_shared_ip_group_id']
        attributes['sharedIpGroupId'] = shared_ip_group_id
    server_elm = ET.Element('server', attributes)
    metadata_elm = self._metadata_to_xml(kwargs.get('ex_metadata', {}))
    if metadata_elm:
        server_elm.append(metadata_elm)
    files_elm = self._files_to_xml(kwargs.get('ex_files', {}))
    if files_elm:
        server_elm.append(files_elm)
    resp = self.connection.request('/servers', method='POST', data=ET.tostring(server_elm))
    return self._to_node(resp.object)
