Scalr_Db_Msr_Info::setMsrSettings PHP Method

setMsrSettings() public method

public setMsrSettings ( $settings )
    public function setMsrSettings($settings)
    {
        if ($settings->volumeConfig) {
            try {
                $storageVolume = Scalr_Storage_Volume::init();
                try {
                    $storageVolume->loadById($settings->volumeConfig->id);
                    $storageVolume->setConfig($settings->volumeConfig);
                    $storageVolume->save();
                } catch (Exception $e) {
                    if (strpos($e->getMessage(), 'not found')) {
                        $storageVolume->loadBy(array('id' => $settings->volumeConfig->id, 'client_id' => $this->dbServer->clientId, 'env_id' => $this->dbServer->envId, 'name' => "'{$this->databaseType}' data volume", 'type' => $this->dbFarmRole->GetSetting(Scalr_Db_Msr::DATA_STORAGE_ENGINE), 'platform' => $this->dbServer->platform, 'size' => $settings->volumeConfig->size, 'fstype' => $settings->volumeConfig->fstype, 'purpose' => $this->databaseType, 'farm_roleid' => $this->dbFarmRole->ID, 'server_index' => $this->dbServer->index));
                        $storageVolume->setConfig($settings->volumeConfig);
                        $storageVolume->save(true);
                    } else {
                        throw $e;
                    }
                }
                $this->dbFarmRole->SetSetting(Scalr_Db_Msr::VOLUME_ID, $storageVolume->id, Entity\FarmRoleSetting::TYPE_LCL);
            } catch (Exception $e) {
                $this->logger->error(new FarmLogMessage($this->dbServer, "Cannot save storage volume: {$e->getMessage()}"));
            }
        }
        if ($settings->snapshotConfig) {
            try {
                $storageSnapshot = Scalr_Model::init(Scalr_Model::STORAGE_SNAPSHOT);
                try {
                    $storageSnapshot->loadById($settings->snapshotConfig->id);
                    $storageSnapshot->setConfig($settings->snapshotConfig);
                    $storageSnapshot->save();
                } catch (Exception $e) {
                    if (strpos($e->getMessage(), 'not found')) {
                        $storageSnapshot->loadBy(array('id' => $settings->snapshotConfig->id, 'client_id' => $this->dbServer->clientId, 'farm_id' => $this->dbServer->farmId, 'farm_roleid' => $this->dbServer->farmRoleId, 'env_id' => $this->dbServer->envId, 'name' => sprintf(_("'{$this->databaseType}' data bundle #%s"), $settings->snapshotConfig->id), 'type' => $this->dbFarmRole->GetSetting(Scalr_Db_Msr::DATA_STORAGE_ENGINE), 'platform' => $this->dbServer->platform, 'description' => sprintf(_("'{$this->databaseType}' data bundle created on Farm '%s' -> Role '%s'"), $this->dbFarmRole->GetFarmObject()->name, $this->dbFarmRole->GetRoleObject()->name), 'service' => $this->databaseType));
                        $storageSnapshot->setConfig($settings->snapshotConfig);
                        $storageSnapshot->save(true);
                    } else {
                        throw $e;
                    }
                }
                $this->dbFarmRole->SetSetting(Scalr_Db_Msr::SNAPSHOT_ID, $storageSnapshot->id, Entity\FarmRoleSetting::TYPE_LCL);
            } catch (Exception $e) {
                $this->logger->error(new FarmLogMessage($this->dbServer, "Cannot save storage snapshot: {$e->getMessage()}"));
            }
        }
    }

Usage Example

Exemplo n.º 1
0
 public function setMsrSettings($settings)
 {
     if ($this->replicationMaster) {
         parent::setMsrSettings($settings);
         $roleSettings = array(Scalr_Db_Msr_Postgresql::ROOT_USERNAME => $settings->rootUser, Scalr_Db_Msr_Postgresql::ROOT_PASSWORD => $settings->rootPassword, Scalr_Db_Msr_Postgresql::ROOT_SSH_PRIV_KEY => $settings->rootSshPrivateKey, Scalr_Db_Msr_Postgresql::ROOT_SSH_PUB_KEY => $settings->rootSshPublicKey, Scalr_Db_Msr_Postgresql::XLOG_LOCATION => $settings->currentXlogLocation);
         foreach ($roleSettings as $name => $value) {
             $this->dbFarmRole->SetSetting($name, $value, DBFarmRole::TYPE_LCL);
         }
     }
 }
All Usage Examples Of Scalr_Db_Msr_Info::setMsrSettings