����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.110 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/www/vendor/rackspace/php-opencloud/lib/OpenCloud/LoadBalancer/Resource/ |
Upload File : |
<?php
/**
* Copyright 2012-2014 Rackspace US, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace OpenCloud\LoadBalancer\Resource;
use OpenCloud\Common\Resource\PersistentResource;
/**
* The nodes defined by the load balancer are responsible for servicing the
* requests received through the load balancer's virtual IP. By default, the
* load balancer employs a basic health check that ensures the node is listening
* on its defined port. The node is checked at the time of addition and at regular
* intervals as defined by the load balancer health check configuration. If a
* back-end node is not listening on its port or does not meet the conditions of
* the defined active health check for the load balancer, then the load balancer
* will not forward connections and its status will be listed as "OFFLINE". Only
* nodes that are in an "ONLINE" status will receive and be able to service
* traffic from the load balancer.
*
* All nodes have an associated status that indicates whether the node is
* ONLINE, OFFLINE, or DRAINING. Only nodes that are in ONLINE status will
* receive and be able to service traffic from the load balancer. The OFFLINE
* status represents a node that cannot accept or service traffic. A node in
* DRAINING status represents a node that stops the traffic manager from sending
* any additional new connections to the node, but honors established sessions.
* If the traffic manager receives a request and session persistence requires
* that the node is used, the traffic manager will use it. The status is
* determined by the passive or active health monitors.
*
* If the WEIGHTED_ROUND_ROBIN load balancer algorithm mode is selected, then
* the caller should assign the relevant weights to the node as part of the
* weight attribute of the node element. When the algorithm of the load balancer
* is changed to WEIGHTED_ROUND_ROBIN and the nodes do not already have an
* assigned weight, the service will automatically set the weight to "1" for all nodes.
*
* One or more secondary nodes can be added to a specified load balancer so that
* if all the primary nodes fail, traffic can be redirected to secondary nodes.
* The type attribute allows configuring the node as either PRIMARY or SECONDARY.
*/
class Node extends PersistentResource
{
public $id;
/**
* IP address or domain name for the node.
*
* @var string
*/
public $address;
/**
* Port number for the service you are load balancing.
*
* @var int
*/
public $port;
/**
* Condition for the node, which determines its role within the load balancer.
*
* @var string
*/
public $condition;
/**
* Current state of the node. Can either be ONLINE, OFFLINE or DRAINING.
*
* @var string
*/
public $status;
/**
* Weight of node to add. If the WEIGHTED_ROUND_ROBIN load balancer algorithm
* mode is selected, then the user should assign the relevant weight to the
* node using the weight attribute for the node. Must be an integer from 1 to 100.
*
* @var int
*/
public $weight;
/**
* Type of node to add:
*
* * PRIMARY: Nodes defined as PRIMARY are in the normal rotation to receive
* traffic from the load balancer.
*
* * SECONDARY: Nodes defined as SECONDARY are only in the rotation to
* receive traffic from the load balancer when all the primary nodes fail.
*
* @var string
*/
public $type;
protected static $json_name = false;
protected static $json_collection_name = 'nodes';
protected static $url_resource = 'nodes';
public $createKeys = array(
'address',
'port',
'condition',
'type',
'weight'
);
/**
* returns the Node name
*
* @return string
*/
public function name()
{
return get_class() . '[' . $this->Id() . ']';
}
public function createJson()
{
$nodes = array('node' => array());
foreach ($this->createKeys as $key) {
$nodes['node'][$key] = $this->$key;
}
return array('nodes' => array($nodes));
}
protected function updateJson($params = array())
{
if ($this->condition) {
$params['condition'] = $this->condition;
}
if ($this->type) {
$params['type'] = $this->type;
}
if ($this->weight) {
$params['weight'] = $this->weight;
}
return (object) array('node' => (object) $params);
}
/**
* Returns a Metadata item
*
* @return Metadata
*/
public function metadata($data = null)
{
return $this->getService()->resource('Metadata', $data, $this);
}
/**
* Returns a paginated collection of metadata
*
* @return PaginatedIterator
*/
public function metadataList()
{
return $this->getService()->resourceList('Metadata', null, $this);
}
}