'List the available VPCs
:keyword    project: Optional project under which VPCs are present.
:type       project: :class:`.CloudStackProject`
:rtype ``list`` of :class:`CloudStackVPC`'

def ex_list_vpcs(self, project=None):

    args = {}
    if (project is not None):
        args['projectid'] = project.id
    res = self._sync_request(command='listVPCs', params=args, method='GET')
    vpcs = res.get('vpc', [])
    networks = []
    for vpc in vpcs:
        networks.append(CloudStackVPC(vpc['name'], vpc['vpcofferingid'], vpc['id'], vpc['cidr'], self, vpc['zoneid'], vpc['displaytext']))
    return networks
