This API method fetches a geohost configuration
Request
GET /geohost/geohost_name HTTP/1.0 Host: api.gslb.me Accept: encoding_type Authorization: Basic base64_credentials
Where:
- geohost_name is the name of the geohost you want to get configuration for (ie.: mygeohost.mydomain.com)
- base64_credentials is username:password in base64-encoded format (HTTP Basic Authentication)
- encoding_type is either application/xml or application/json (if the “Accept” header is omitted, response will be JSON-encoded)
Sample requests:
- Raw request:
GET /geohost/mygeohost.mydomain.com HTTP/1.0 Host: api.gslb.me Accept: application/json Authorization: Basic dGVzdHVzZXJAZ3NsYi5tZTp0ZXN0cGFzc3dvcmQK
- Using curl:
curl -u testuser@gslb.me:testpassword -H "Accept: application/json" -k https://api.gslb.me/geohost/mygeohost.mydomain.com
Response
- In case of invalid geohost:
HTTP/1.1 404 Not Found Content-Type: application/json {"message":"Zone not found","returncode":"2"}
- In case of internal error:
HTTP/1.1 500 Server Error Content-Type: application/json {"message":"Internal error, please contact support@gslb.me","returncode":"4"}
- In case of success:
HTTP/1.1 200 OK Content-Type: application/json { "geoHost": { "active":"false", "alerts":null, "cdn_minimumTargets":"0", "cdn_offload":"false", "cdn_offloadPercentage":"0", "howmanyreplies":"0", "lbAlgorithm":"geolb.proximity", "needscommit":"false", "TTL":"0", "georoutingRules": {"georoutingRule":[ { "active":"true", "countries": {"georoutingRuleCountries":[ {"countryCode":"BV","countryName":"Bouvet Island"}, {"countryCode":"BW","countryName":"Botswana"}, {"countryCode":"BR","countryName":"Brazil"} ]}, "description":"", "fallbacklb":"geolb.roundrobin", "primarylb":"geolb.roundrobin", "targets": {"georoutingRuleTargets":[ {"address":"canada-server.test.com","alias":"","priority":"primary"}, {"address":"india-server.test.com","alias":"","priority":"primary"}, {"address":"australia-server.test.com","alias":"","priority":"fallback"} ]} } } "targets": { "target":[ { "active":"true", "address":"149.154.152.82", "alias":"target-name.domain.com", "checks": { "check": { "active":"true", "name":"HTTP healthcheck GET /", "parameters": { "parameter":[ {"type":"check.http.port","value":"80"}, {"type":"check.http.uri","value":"/"}, {"type":"check.http.statuscode","value":"200"}, {"type":"check.http.host","value":"cdn.gslb.me"}, {"type":"check.http.regexp","value":""}, {"type":"check.http.username","value":""}, {"type":"check.http.password","value":""}, {"type":"check.http.authenabled","value":"false"} ] }, "timeout":"30", "typeTag":"check.http" } }, "geoHostName":"mygeohost", "geoHostZoneName":"mydomain.com", "priority":"1", "reqChecks":"1", "schedule":"30", "weight":"1" }, { "active":"true", "address":"149.154.158.46", "alias":"", "checks": { "check": { "active":"true", "name":"HTTP healthcheck GET /", "parameters": { "parameter":[ {"type":"check.http.port","value":"80"}, {"type":"check.http.uri","value":"/"}, {"type":"check.http.statuscode","value":"200"}, {"type":"check.http.host","value":"cdn.gslb.me"}, {"type":"check.http.regexp","value":""}, {"type":"check.http.username","value":""}, {"type":"check.http.password","value":""}, {"type":"check.http.authenabled","value":"false"} ] }, "timeout":"30", "typeTag":"check.http" } }, "geoHostName":"mygeohost", "geoHostZoneName":"mydomain.com", "priority":"1", "reqChecks":"1", "schedule":"30", "weight":"1" } ] } } }
Where:
- active: the state of the geohost
- alerts: an array detailing all alerts configured for the geohost
- cdn_minimumTargets: the minimum number of healthy targets that is required in order *NOT* to offload to CDN. In order enable CDN offload, cdn_offload must be set to true
- cdn_offload: true if CDN offload is enabled for the geohost, false otherwise
- cdn_offloadPercentage: the percentage of DNS requests that are replied with your CDN CNAME. In order to enable CDN offload, cdn_offload must be set to true
- howmanyreplies: the maximum number of rrsets that a DNS reply can include
- lbAlgorithm: the geohost balancing algorithm name. Currently supported algorithms are: geolb.roundrobin, geolb.priority, geolb.any, geolb.proximity, geolb.weighted
- needscommit: true if the geohost includes changes that have to be committed in order to become active. To commit a geohost use the Commit Geohost method
- TTL: the geohost TTL
- georoutingRules: the set of configurations needed to enable georouting
- georoutingRule: each georouting rule, which is built around a set of parameters:
- active: set to true if the rule is active, set to false if disabled
- countries: list of countries for which the rule is matched. The list is a georoutingRuleCountries object, that includes:
- countryCode: the two letters country code
- countryName: the descriptive country name
- description: the mnemonic rule description
- primarylb: the balancing algorithm used to select primary targets
- fallbacklb: the balancing algorithm used to select fallback targets
- targets: the list of primary and fallback targets used by the georouting rule. Each target is defined by the following parameters:
- address: the IP address of FQDN for the target
- alias: the IP address of FQDN for the target alias, if configured
- priority: set to “primary” if the target is used as a primary, set to “fallback”if the target is used as a fallback
- targets: array of targets. Each target is an IP address that is health-monitored through a set of “checks”:
- active: set to true if the target is enabled, set to false otherwise
- address: the IP address of the target
- checks: the array of checks for the target. Fields are self-explanatory
- geoHostName: the name of the geohost. Together with the field “geoHostZoneName” it defines the DNS FQDN of the geohost. The FQDN of the geohost is “geoHostName“.“geoHostZoneName“
- geoHostZoneName: the name of the DNS zone this geohost belongs to
- priority: the target priority, only used if lbAlgorithm is set to geolb.priority
- reqChecks: the minimum number of “healthy” checks needed to mark the target as “healthy”
- schedule: schedule interval in seconds to run all checks for the target
- weight: the target “weight”, only used if lbAlgorithm is set to geolb.weighted