public function setVolumes(\DBServer $server, $volumes)
{
$vlms = array();
foreach ($volumes as $volume) {
$vlms[$volume->scalrStorageId] = $volume;
}
foreach ($this->getConfigs() as $config) {
if ($vlms[$config->id]) {
$volume = new FarmRoleStorageDevice();
if (!$volume->loadById($volume->id)) {
$volume->farmRoleId = $this->farmRole->ID;
$volume->storageConfigId = $config->id;
$volume->serverIndex = $server->index;
$volume->storageId = $vlms[$config->id]->id;
$volume->cloudLocation = $server->GetCloudLocation();
$volume->envId = $server->envId;
}
switch ($config->type) {
case FarmRoleStorageConfig::TYPE_RAID_EBS:
$volume->placement = $vlms[$config->id]->disks[0]->availZone;
break;
case FarmRoleStorageConfig::TYPE_EBS:
$volume->placement = $vlms[$config->id]->availZone;
break;
}
$volume->config = $vlms[$config->id];
$volume->status = FarmRoleStorageDevice::STATUS_ACTIVE;
$volume->save();
unset($vlms[$config->id]);
}
}
//TODO: Handle zombies
}