$success = FALSE;
$available =
[];
$site_key = Crypt::
hmacBase64($base_url,
$this->privateKey->
get());
$fetch_url_base =
$this->updateFetcher->
getFetchBaseUrl($project);
$project_name =
$project['name'
];
if (empty($this->failed
[$fetch_url_base]) ||
$this->failed
[$fetch_url_base] <
$max_fetch_attempts) { $data =
$this->updateFetcher->
fetchProjectData($project,
$site_key);
} if (!
empty($data)) { $available =
$this->
parseXml($data);
// @todo Purge release data we don't need. See
// https://www.drupal.org/node/238950.
if (!
empty($available)) { // Only if we fetched and parsed something sane do we return success.
$success = TRUE;
} } else { $available['project_status'
] = 'not-fetched';
if (empty($this->failed
[$fetch_url_base])) { $this->failed
[$fetch_url_base] = 1;
}