DBServer::SetProperties PHP Method

SetProperties() public method

Set multiple server properties
public SetProperties ( array $props )
$props array Associative array of the properties array(property => value)
    public function SetProperties(array $props)
    {
        if (empty($props)) {
            return;
        }
        $values = [];
        $stmt = '';
        foreach ($props as $k => $v) {
            $stmt .= ",(?, ?, ?)";
            $values[] = $this->serverId;
            $values[] = $k;
            $values[] = $v;
        }
        if (empty($stmt)) {
            return;
        }
        $this->Db->Execute("\n            REPLACE `server_properties` (server_id, name, value)\n            VALUES " . ltrim($stmt, ',') . "\n        ", $values);
        foreach ($props as $k => $v) {
            $this->propsCache[$k] = $v;
        }
    }

Usage Example

Example #1
0
 public static function removeIpFromServer(\DBServer $dbServer)
 {
     try {
         if ($dbServer->GetProperty(\OPENSTACK_SERVER_PROPERTIES::FLOATING_IP)) {
             if ($dbServer->farmRoleId) {
                 if ($dbServer->GetFarmRoleObject()->GetSetting(\DBFarmRole::SETTING_OPENSTACK_KEEP_FIP_ON_SUSPEND)) {
                     if (in_array($dbServer->status, array(\SERVER_STATUS::PENDING_SUSPEND, \SERVER_STATUS::SUSPENDED)) || $dbServer->GetRealStatus()->isSuspended()) {
                         return false;
                     }
                 }
             }
             $environment = $dbServer->GetEnvironmentObject();
             $osClient = $environment->openstack($dbServer->platform, $dbServer->GetCloudLocation());
             $ipId = $dbServer->GetProperty(\OPENSTACK_SERVER_PROPERTIES::FLOATING_IP_ID);
             if ($osClient->hasService('network')) {
                 $osClient->network->floatingIps->delete($ipId);
             } else {
                 $osClient->servers->deleteFloatingIp($ipId);
             }
             $dbServer->SetProperties(array(\OPENSTACK_SERVER_PROPERTIES::FLOATING_IP => null, \OPENSTACK_SERVER_PROPERTIES::FLOATING_IP_ID => null));
         }
     } catch (\Exception $e) {
         \Logger::getLogger("OpenStackObserver")->fatal("OpenStackObserver observer failed: " . $e->getMessage());
     }
 }
All Usage Examples Of DBServer::SetProperties