public function listServers(array $parent = [], array $filters = [])
{
$envelope = null;
$servers = [];
if (isset($parent['farmId'])) {
$uri = self::getUserApiUrl("/farms/{$parent['farmId']}/servers");
} else {
if (isset($parent['farmRoleId'])) {
$uri = self::getUserApiUrl("/farm-roles/{$parent['farmRoleId']}/servers");
} else {
$uri = self::getUserApiUrl("/servers");
}
}
do {
$params = $filters;
if (isset($envelope->pagination->next)) {
$parts = parse_url($envelope->pagination->next);
parse_str($parts['query'], $params);
}
$response = $this->request($uri, Request::METHOD_GET, $params);
$this->assertEquals(200, $response->status, $this->printResponseError($response));
$this->assertDescribeResponseNotEmpty($response);
$envelope = $response->getBody();
$servers[] = $envelope->data;
} while (!empty($envelope->pagination->next));
return call_user_func_array('array_merge', $servers);
}