'Create New Servers in CLC cloud
:param module: the AnsibleModule object
:param clc: the clc-sdk instance to use
:return: a list of dictionaries with server information about the servers that were created'

def _create_servers(self, module, clc, override_count=None):

    p = module.params
    request_list = []
    servers = []
    server_dict_array = []
    created_server_ids = []
    partial_created_servers_ids = []
    add_public_ip = p.get('add_public_ip')
    public_ip_protocol = p.get('public_ip_protocol')
    public_ip_ports = p.get('public_ip_ports')
    params = {'name': p.get('name'), 'template': p.get('template'), 'group_id': p.get('group'), 'network_id': p.get('network_id'), 'cpu': p.get('cpu'), 'memory': p.get('memory'), 'alias': p.get('alias'), 'password': p.get('password'), 'ip_address': p.get('ip_address'), 'storage_type': p.get('storage_type'), 'type': p.get('type'), 'primary_dns': p.get('primary_dns'), 'secondary_dns': p.get('secondary_dns'), 'additional_disks': p.get('additional_disks'), 'custom_fields': p.get('custom_fields'), 'ttl': p.get('ttl'), 'managed_os': p.get('managed_os'), 'description': p.get('description'), 'source_server_password': p.get('source_server_password'), 'cpu_autoscale_policy_id': p.get('cpu_autoscale_policy_id'), 'anti_affinity_policy_id': p.get('anti_affinity_policy_id'), 'packages': p.get('packages'), 'configuration_id': p.get('configuration_id'), 'os_type': p.get('os_type')}
    count = (override_count if override_count else p.get('count'))
    changed = (False if (count == 0) else True)
    if (not changed):
        return (server_dict_array, created_server_ids, partial_created_servers_ids, changed)
    for i in range(0, count):
        if (not module.check_mode):
            req = self._create_clc_server(clc=clc, module=module, server_params=params)
            server = req.requests[0].Server()
            request_list.append(req)
            servers.append(server)
    self._wait_for_requests(module, request_list)
    self._refresh_servers(module, servers)
    ip_failed_servers = self._add_public_ip_to_servers(module=module, should_add_public_ip=add_public_ip, servers=servers, public_ip_protocol=public_ip_protocol, public_ip_ports=public_ip_ports)
    ap_failed_servers = self._add_alert_policy_to_servers(clc=clc, module=module, servers=servers)
    for server in servers:
        if ((server in ip_failed_servers) or (server in ap_failed_servers)):
            partial_created_servers_ids.append(server.id)
        else:
            server = clc.v2.Server(server.id)
            server.data['ipaddress'] = server.details['ipAddresses'][0]['internal']
            if (add_public_ip and (len(server.PublicIPs().public_ips) > 0)):
                server.data['publicip'] = str(server.PublicIPs().public_ips[0])
            created_server_ids.append(server.id)
        server_dict_array.append(server.data)
    return (server_dict_array, created_server_ids, partial_created_servers_ids, changed)
