'Sets control access for the specified node.
:param  node: node
:type   node: :class:`Node`
:param  control_access: control access settings
:type   control_access: :class:`ControlAccess`
:rtype: ``None``'

def ex_set_control_access(self, node, control_access):

    xml = ET.Element('ControlAccessParams', {'xmlns': 'http://www.vmware.com/vcloud/v1.5'})
    shared_to_everyone = ET.SubElement(xml, 'IsSharedToEveryone')
    if control_access.everyone_access_level:
        shared_to_everyone.text = 'true'
        everyone_access_level = ET.SubElement(xml, 'EveryoneAccessLevel')
        everyone_access_level.text = control_access.everyone_access_level
    else:
        shared_to_everyone.text = 'false'
    if control_access.subjects:
        access_settings_elem = ET.SubElement(xml, 'AccessSettings')
    for subject in control_access.subjects:
        setting = ET.SubElement(access_settings_elem, 'AccessSetting')
        if subject.id:
            href = subject.id
        else:
            res = self.ex_query(type=subject.type, filter=('name==' + subject.name))
            if (not res):
                raise LibcloudError(('Specified    subject    "%s    %s"    not    found    ' % (subject.type, subject.name)))
            href = res[0]['href']
        ET.SubElement(setting, 'Subject', {'href': href})
        ET.SubElement(setting, 'AccessLevel').text = subject.access_level
    headers = {'Content-Type': 'application/vnd.vmware.vcloud.controlAccess+xml'}
    self.connection.request(('%s/action/controlAccess' % get_url_path(node.id)), data=ET.tostring(xml), headers=headers, method='POST')
