Class: Async::GRPC::XDS::Resources::Endpoint
- Inherits:
-
Object
- Object
- Async::GRPC::XDS::Resources::Endpoint
- Defined in:
- lib/async/grpc/xds/resources.rb
Overview
Represents a single endpoint Based on envoy.config.endpoint.v3.LbEndpoint
Instance Attribute Summary collapse
-
#address ⇒ Object
readonly
Returns the value of attribute address.
-
#health_status ⇒ Object
readonly
Returns the value of attribute health_status.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#port ⇒ Object
readonly
Returns the value of attribute port.
Instance Method Summary collapse
- #healthy? ⇒ Boolean
-
#initialize(load_balancer_endpoint) ⇒ Endpoint
constructor
A new instance of Endpoint.
- #uri ⇒ Object
Constructor Details
#initialize(load_balancer_endpoint) ⇒ Endpoint
Returns a new instance of Endpoint.
219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 |
# File 'lib/async/grpc/xds/resources.rb', line 219 def initialize(load_balancer_endpoint) if load_balancer_endpoint.is_a?(Hash) endpoint_data = load_balancer_endpoint[:endpoint] || {} address_data = endpoint_data[:address] || {} socket_address = address_data[:socket_address] || {} @address = socket_address[:address] || "localhost" @port = socket_address[:port_value] || 50051 @health_status = parse_health_status(load_balancer_endpoint[:health_status]) @metadata = load_balancer_endpoint[:metadata] || {} else socket_address = load_balancer_endpoint.endpoint.address.socket_address @address = socket_address.address @port = socket_address.port_value @health_status = parse_health_status(load_balancer_endpoint.health_status) @metadata = load_balancer_endpoint. || {} end end |
Instance Attribute Details
#address ⇒ Object (readonly)
Returns the value of attribute address.
217 218 219 |
# File 'lib/async/grpc/xds/resources.rb', line 217 def address @address end |
#health_status ⇒ Object (readonly)
Returns the value of attribute health_status.
217 218 219 |
# File 'lib/async/grpc/xds/resources.rb', line 217 def health_status @health_status end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
217 218 219 |
# File 'lib/async/grpc/xds/resources.rb', line 217 def @metadata end |
#port ⇒ Object (readonly)
Returns the value of attribute port.
217 218 219 |
# File 'lib/async/grpc/xds/resources.rb', line 217 def port @port end |
Instance Method Details
#healthy? ⇒ Boolean
238 239 240 |
# File 'lib/async/grpc/xds/resources.rb', line 238 def healthy? @health_status == :HEALTHY || @health_status == :UNKNOWN end |
#uri ⇒ Object
242 243 244 245 246 |
# File 'lib/async/grpc/xds/resources.rb', line 242 def uri # Use http for insecure/docker environments (gRPC h2c) scheme = ENV["XDS_ENDPOINT_SCHEME"] || "http" "#{scheme}://#{@address}:#{@port}" end |