// CDNURL returns the unique CDN URI for the given container and object. func CDNURL(c *gophercloud.ServiceClient, containerName, objectName string) (string, error) { h, err := cdncontainers.Get(c, containerName).Extract() if err != nil { return "", err } return h.CDNUri + "/" + objectName, nil }
func TestCDNContainers(t *testing.T) { raxClient, err := createClient(t, false) th.AssertNoErr(t, err) createres := raxContainers.Create(raxClient, "gophercloud-test", nil) th.AssertNoErr(t, createres.Err) t.Logf("Headers from Create Container request: %+v\n", createres.Header) defer func() { res := raxContainers.Delete(raxClient, "gophercloud-test") th.AssertNoErr(t, res.Err) }() raxCDNClient, err := createClient(t, true) th.AssertNoErr(t, err) enableRes := raxCDNContainers.Enable(raxCDNClient, "gophercloud-test", raxCDNContainers.EnableOpts{CDNEnabled: true, TTL: 900}) t.Logf("Header map from Enable CDN Container request: %+v\n", enableRes.Header) enableHeader, err := enableRes.Extract() th.AssertNoErr(t, err) t.Logf("Headers from Enable CDN Container request: %+v\n", enableHeader) t.Logf("Container Names available to the currently issued token:") count := 0 err = raxCDNContainers.List(raxCDNClient, &osContainers.ListOpts{Full: false}).EachPage(func(page pagination.Page) (bool, error) { t.Logf("--- Page %02d ---", count) names, err := raxCDNContainers.ExtractNames(page) th.AssertNoErr(t, err) for i, name := range names { t.Logf("[%02d] %s", i, name) } count++ return true, nil }) th.AssertNoErr(t, err) if count == 0 { t.Errorf("No CDN containers listed for your current token.") } updateOpts := raxCDNContainers.UpdateOpts{XCDNEnabled: raxCDNContainers.Disabled, XLogRetention: raxCDNContainers.Enabled} updateHeader, err := raxCDNContainers.Update(raxCDNClient, "gophercloud-test", updateOpts).Extract() th.AssertNoErr(t, err) t.Logf("Headers from Update CDN Container request: %+v\n", updateHeader) getRes := raxCDNContainers.Get(raxCDNClient, "gophercloud-test") getHeader, err := getRes.Extract() th.AssertNoErr(t, err) t.Logf("Headers from Get CDN Container request (after update): %+v\n", getHeader) metadata, err := getRes.ExtractMetadata() t.Logf("Metadata from Get CDN Container request (after update): %+v\n", metadata) }