Documentation ¶
Overview ¶
When users need to access a server on the Internet, an IP address is required. However, it is hard to memorize an IP address. Therefore, a domain name easy to memorize is used to identify the IP address. After registering a domain name, you get the right to use it but users cannot access the website, send or receive emails using your domain name until the name is resolved. Domain name resolution is to map domain names to IP addresses. In this case, to access a website on the Internet, visitors only need to enter a domain name in the browser address bar, instead of an IP address.
Sample Code, Create a private zone.
result, err := zones.Create(client, zones.CreateOpts{ Name: "www.ba1.com.", Description: "My Zone", ZoneType: "private", Email: "test@test.com", Ttl: 3600, Router: struct { RouterId string `json:"router_id,omitempty"` RouterRegion string `json:"router_region,omitempty"` }{ RouterId: "773c3c42-d315-417b-9063-87091713148c", RouterRegion: "cn-north-1", }, }).Extract() if err != nil { panic(err) }
Sample Code, Delete a zone.
result, err := zones.Delete(client, "ff80808262baef150162bbf1bc4a167a").Extract() if err != nil { panic(err) }
Sample Code, Query a zone.
result, err := zones.Get(client, "ff80808262baef150162bbf1bc4a167a").Extract() if err != nil { panic(err) }
Sample Code, Query zones in list.
allPages, err := zones.List(client, zones.ListOpts{ Limit: "2", Type: "private", }).AllPages() result, err := zones.ExtractList(allPages.(zones.ListPage)) if err != nil { panic(err) }
Sample Code, Query name servers in a zone.
result, err := zones.ListNameServers(client, "ff80808262baef150162bbf1bc4a167a").Extract() if err != nil { panic(err) }
Sample Code, Associate a zone with a VPC.
result, err := zones.AssociateRouter(client, "ff80808262baef150162bbf1bc4a167a", zones.AssociateRouterOpts{ Router: struct { RouterId string `json:"router_id,omitempty"` RouterRegion string `json:"router_region,omitempty"` }{ RouterId: "773c3c42-d315-417b-9063-87091713148c", RouterRegion: "cn-north-1", }, }).Extract() if err != nil { panic(err) }
Sample Code, Disassociate a VPC from a zone.
result, err := zones.DisassociateRouter(client, "ff80808262baef150162bbf1bc4a167a", zones.DisassociateRouterOpts{ Router: struct { RouterId string `json:"router_id,omitempty"` RouterRegion string `json:"router_region,omitempty"` }{ RouterId: "773c3c42-d315-417b-9063-87091713148c", RouterRegion: "cn-north-1", }, }).Extract() if err != nil { panic(err) }
Index ¶
- func AssociateRouterURL(c *gophercloud.ServiceClient, zoneId string) string
- func CreateURL(c *gophercloud.ServiceClient) string
- func DeleteURL(c *gophercloud.ServiceClient, zoneId string) string
- func DisassociateRouterURL(c *gophercloud.ServiceClient, zoneId string) string
- func GetURL(c *gophercloud.ServiceClient, zoneId string) string
- func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
- func ListNameServersURL(c *gophercloud.ServiceClient, zoneId string) string
- func ListURL(c *gophercloud.ServiceClient) string
- func UpdateURL(c *gophercloud.ServiceClient, zoneId string) string
- type AssociateRouterOpts
- type AssociateRouterOptsBuilder
- type AssociateRouterResponse
- type AssociateRouterResult
- type CreateOpts
- type CreateOptsBuilder
- type CreateResult
- type DeleteResult
- type DisassociateRouterOpts
- type DisassociateRouterOptsBuilder
- type DisassociateRouterResponse
- type DisassociateRouterResult
- type GetResult
- type Link
- type ListNameServersResponse
- type ListNameServersResult
- type ListOpts
- type ListOptsBuilder
- type ListZoneResponse
- type Metadata
- type NameServer
- type Router
- type RouterCreateOpts
- type UpdateOpts
- type UpdateOptsBuilder
- type UpdateResult
- type Zone
- type ZoneCreateResponse
- type ZonePage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssociateRouterURL ¶
func AssociateRouterURL(c *gophercloud.ServiceClient, zoneId string) string
func CreateURL ¶
func CreateURL(c *gophercloud.ServiceClient) string
func DeleteURL ¶
func DeleteURL(c *gophercloud.ServiceClient, zoneId string) string
func DisassociateRouterURL ¶
func DisassociateRouterURL(c *gophercloud.ServiceClient, zoneId string) string
func GetURL ¶
func GetURL(c *gophercloud.ServiceClient, zoneId string) string
func List ¶
func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
Query zones in list.
func ListNameServersURL ¶
func ListNameServersURL(c *gophercloud.ServiceClient, zoneId string) string
func ListURL ¶
func ListURL(c *gophercloud.ServiceClient) string
func UpdateURL ¶
func UpdateURL(c *gophercloud.ServiceClient, zoneId string) string
Types ¶
type AssociateRouterOpts ¶
type AssociateRouterOpts struct { // Router information (VPC associated with the zone) Router Router `json:"router"` }
func (AssociateRouterOpts) ToZonesAssociateRouterMap ¶
func (opts AssociateRouterOpts) ToZonesAssociateRouterMap() (map[string]interface{}, error)
type AssociateRouterResponse ¶
type AssociateRouterResponse struct { // Router ID (VPC ID) RouterId string `json:"router_id"` // Region of the router (VPC).If it is left blank, the region of // the project in the token takes effect by default. RouterRegion string `json:"router_region"` // Task status.The value can be PENDING_CREATE, PENDING_DELETE, // ACTIVE, or ERROR. Status string `json:"status"` }
Router, Router (VPC) information associated with the private zone.
type AssociateRouterResult ¶
type AssociateRouterResult struct {
// contains filtered or unexported fields
}
func AssociateRouter ¶
func AssociateRouter(client *gophercloud.ServiceClient, zoneId string, opts AssociateRouterOptsBuilder) (r AssociateRouterResult)
func (AssociateRouterResult) Extract ¶
func (r AssociateRouterResult) Extract() (*AssociateRouterResponse, error)
type CreateOpts ¶
type CreateOpts struct { // Mail address of the administrator managing the zone Email string `json:"email,omitempty"` // Description of the domain name, which cannot exceed 255 // characters Description string `json:"description,omitempty"` // Name of the zone to be created,If the domain name is ended with // a dot (.), it cannot exceed 254 characters.Otherwise, the domain name cannot exceed // 253 characters. Name string `json:"name" required:"true"` // Zone type. The value must be private, indicating that private // network domain names accessible only to hosts in specified VPCs will be queried. ZoneType string `json:"zone_type" required:"true"` // Caching period of the SOA record set (in seconds).The default // value is 300s.The value range is 300–2147483647. TTL int `json:"ttl,omitempty"` // Router information (VPC associated with the private zone) Router RouterCreateOpts `json:"router"` }
func (CreateOpts) ToZonesCreateMap ¶
func (opts CreateOpts) ToZonesCreateMap() (map[string]interface{}, error)
type CreateOptsBuilder ¶
type CreateResult ¶
type CreateResult struct {
// contains filtered or unexported fields
}
CreateResult is the result of a Create request. Call its Extract method to interpret the result as a Zone.
func Create ¶
func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r CreateResult)
func (CreateResult) Extract ¶
func (r CreateResult) Extract() (*ZoneCreateResponse, error)
type DeleteResult ¶
type DeleteResult struct {
// contains filtered or unexported fields
}
DeleteResult is the result of a Delete request. Call its ExtractErr method to determine if the request succeeded or failed.
func Delete ¶
func Delete(client *gophercloud.ServiceClient, zoneId string) (r DeleteResult)
func (DeleteResult) Extract ¶
func (r DeleteResult) Extract() (*Zone, error)
type DisassociateRouterOpts ¶
type DisassociateRouterOpts struct { // Router information (VPC associated with the zone) Router Router `json:"router"` }
func (DisassociateRouterOpts) ToZonesDisassociateRouterMap ¶
func (opts DisassociateRouterOpts) ToZonesDisassociateRouterMap() (map[string]interface{}, error)
type DisassociateRouterResponse ¶
type DisassociateRouterResponse struct { // Router ID (VPC ID) RouterId string `json:"router_id"` // Region of the router (VPC).If it is left blank, the region of // the project in the token takes effect by default. RouterRegion string `json:"router_region"` // Task status.The value can be PENDING_CREATE, PENDING_DELETE, // ACTIVE, or ERROR. Status string `json:"status"` }
Router, Router (VPC) information associated with the private zone.
type DisassociateRouterResult ¶
type DisassociateRouterResult struct {
// contains filtered or unexported fields
}
func DisassociateRouter ¶
func DisassociateRouter(client *gophercloud.ServiceClient, zoneId string, opts DisassociateRouterOptsBuilder) (r DisassociateRouterResult)
func (DisassociateRouterResult) Extract ¶
func (r DisassociateRouterResult) Extract() (*DisassociateRouterResponse, error)
type GetResult ¶
type GetResult struct {
// contains filtered or unexported fields
}
GetResult is the result of a Get request. Call its Extract method to interpret the result as a Zone.
func Get ¶
func Get(client *gophercloud.ServiceClient, zoneId string) (r GetResult)
type ListNameServersResponse ¶
type ListNameServersResponse struct { // Name server list object Nameservers []NameServer `json:"nameservers"` }
type ListNameServersResult ¶
type ListNameServersResult struct {
// contains filtered or unexported fields
}
func ListNameServers ¶
func ListNameServers(client *gophercloud.ServiceClient, zoneId string) (r ListNameServersResult)
func (ListNameServersResult) Extract ¶
func (r ListNameServersResult) Extract() (*ListNameServersResponse, error)
type ListOpts ¶
type ListOpts struct { // Number of resources returned on each page.Value range: // 0–500.Commonly used values are 10, 20, and 50. Limit int `q:"limit"` // Start resource ID of pagination query.If the parameter is left // blank, only resources on the first page are queried. Marker string `q:"marker"` // Zone type, which can be public or private.public: Public zones // are queried.private: Private zones are queried.If the value is left blank, public // zones are queried by default. Type string `q:"type"` }
func (ListOpts) ToListQuery ¶
type ListOptsBuilder ¶
type ListZoneResponse ¶
type ListZoneResponse struct { // Link of the current resource or other related resources.When a // response is broken into pages, a next link is provided to retrieve all results. Links Link `json:"links"` // Zone list object Zones []Zone `json:"zones"` // Number of resources that meet the filter condition Metadata Metadata `json:"metadata"` }
func ExtractZones ¶
func ExtractZones(r pagination.Page) (*ListZoneResponse, error)
type Metadata ¶
type Metadata struct { // Total number of resources TotalCount int `json:"total_count"` }
type NameServer ¶
type Router ¶
type Router struct { // Router ID (VPC ID) RouterId string `json:"router_id" required:"true"` // Region of the router (VPC).If it is left blank, the region of // the project in the token takes effect by default. RouterRegion string `json:"router_region,omitempty"` }
Router, Router (VPC) information associated with the private zone.
type RouterCreateOpts ¶
type RouterCreateOpts struct { // Router ID (VPC ID) RouterId string `json:"router_id" required:"true"` // Region of the router (VPC).If it is left blank, the region of // the project in the token takes effect by default. RouterRegion string `json:"router_region,omitempty"` }
RouterCreateOpts,the parameters of the zone create, Router (VPC) information associated with the private zone.
type UpdateOpts ¶
type UpdateOpts struct { // Mail address of the administrator managing the zone Email string `json:"email,omitempty"` // Caching period of the SOA record set (in seconds).The default // value is 300s.The value range is 300–2147483647. TTL int `json:"ttl,omitempty"` // Description of the domain name, which cannot exceed 255 // characters Description string `json:"description,omitempty"` }
func (UpdateOpts) ToZonesUpdateMap ¶
func (opts UpdateOpts) ToZonesUpdateMap() (map[string]interface{}, error)
type UpdateOptsBuilder ¶
type UpdateResult ¶
type UpdateResult struct {
// contains filtered or unexported fields
}
UpdateResult is the result of an Update request. Call its Extract method to interpret the result as a Zone.
func Update ¶
func Update(client *gophercloud.ServiceClient, opts UpdateOptsBuilder, ZoneID string) (r UpdateResult)
func (UpdateResult) Extract ¶
func (r UpdateResult) Extract() (*Zone, error)
type Zone ¶
type Zone struct { // Zone ID, which is a UUID used to identify the zone ID string `json:"id"` // Zone name Name string `json:"name"` // Zone description Description string `json:"description"` // Mail address of the administrator managing the zone Email string `json:"email"` // Zone type, which can be or ZoneType string `json:"zone_type"` // TTL value of the SOA record set in the zone TTL int `json:"ttl"` // Serial number in the SOA record set in the zone, which // identifies the change on the primary DNS server Serial int `json:"serial"` // Resource status.The value can be PENDING_CREATE, ACTIVE, // PENDING_DELETE, or ERROR. Status string `json:"status"` // Number of record sets in the zone RecordNum int `json:"record_num"` // Pool ID of the zone, which is assigned by the system PoolId string `json:"pool_id"` // Project ID of the zone ProjectId string `json:"project_id"` // Time when the zone was created CreatedAt string `json:"created_at"` // Time when the zone was updated UpdatedAt string `json:"updated_at"` // Link of the current resource or other related resources.When a // response is broken into pages, a next link is provided to retrieve all results. Links Link `json:"links"` // Master DNS servers, from which the slave servers get DNS // information Masters []string `json:"masters"` // Routers (VPCs associated with the zone) Routers []AssociateRouterResponse `json:"routers"` }
type ZoneCreateResponse ¶
type ZoneCreateResponse struct { // Zone ID, which is a UUID used to identify the zone ID string `json:"id"` // Zone name Name string `json:"name"` // Zone description Description string `json:"description"` // Mail address of the administrator managing the zone Email string `json:"email"` // Zone type, which can be or ZoneType string `json:"zone_type"` // TTL value of the SOA record set in the zone TTL int `json:"ttl"` // Serial number in the SOA record set in the zone, which // identifies the change on the primary DNS server Serial int `json:"serial"` // Resource status.The value can be PENDING_CREATE, ACTIVE, // PENDING_DELETE, or ERROR. Status string `json:"status"` // Number of record sets in the zone RecordNum int `json:"record_num"` // Pool ID of the zone, which is assigned by the system PoolId string `json:"pool_id"` // Project ID of the zone ProjectId string `json:"project_id"` // Time when the zone was created CreatedAt string `json:"created_at"` // Time when the zone was updated UpdatedAt string `json:"updated_at"` // Link of the current resource or other related resources.When a // response is broken into pages, a next link is provided to retrieve all results. Links Link `json:"links"` // Master DNS servers, from which the slave servers get DNS // information Masters []string `json:"masters"` // Routers (VPCs associated with the zone) Router AssociateRouterResponse `json:"router"` }
ZoneCreateResponse,The response of the zone creation.
type ZonePage ¶
type ZonePage struct {
pagination.LinkedPageBase
}
Directories ¶
Path | Synopsis |
---|---|
zones unit tests package testing import ( "fmt" "net/http" "testing" "time" "github.com/dynuc/gophercloud" "github.com/dynuc/gophercloud/openstack/dns/v2/zones" th "github.com/dynuc/gophercloud/testhelper" "github.com/dynuc/gophercloud/testhelper/client" ) // List Output is a sample response to a List call.
|
zones unit tests package testing import ( "fmt" "net/http" "testing" "time" "github.com/dynuc/gophercloud" "github.com/dynuc/gophercloud/openstack/dns/v2/zones" th "github.com/dynuc/gophercloud/testhelper" "github.com/dynuc/gophercloud/testhelper/client" ) // List Output is a sample response to a List call. |