Scalr\Farm\Role\FarmRoleStorageDevice::save PHP Method

save() public method

public save ( )
    public function save()
    {
        $this->db->Execute("INSERT INTO farm_role_storage_devices SET\n            farm_role_id = ?,\n            server_index = ?,\n            storage_config_id = ?,\n            env_id = ?,\n            cloud_location = ?,\n            config = ?,\n            placement = ?,\n            storage_id = ?,\n            status = ?\n        ON DUPLICATE KEY UPDATE config = ?, status = ?, placement = ?\n        ", array($this->farmRoleId, $this->serverIndex, $this->storageConfigId, $this->envId, $this->cloudLocation, @json_encode($this->config), $this->placement, $this->storageId, $this->status, @json_encode($this->config), $this->status, $this->placement));
        return $this;
    }

Usage Example

Esempio n. 1
0
 public function setVolumes(DBServer $server, $volumes)
 {
     $vlms = [];
     foreach ($volumes as $volume) {
         $vlms[$volume->scalrStorageId] = $volume;
     }
     foreach ($this->getConfigs() as $config) {
         if ($vlms[$config->id]) {
             $volume = new FarmRoleStorageDevice();
             if (!$volume->loadById($vlms[$config->id]->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
 }