revert cdn files to master versions
diff --git a/openstack/cdn/v1/base/requests_test.go b/openstack/cdn/v1/base/requests_test.go
index 2c20a71..a8d95f9 100644
--- a/openstack/cdn/v1/base/requests_test.go
+++ b/openstack/cdn/v1/base/requests_test.go
@@ -17,18 +17,18 @@
 
 	expected := HomeDocument{
 		"rel/cdn": map[string]interface{}{
-			"href-template": "services{?marker,limit}",
-			"href-vars": map[string]interface{}{
-				"marker": "param/marker",
-				"limit":  "param/limit",
-			},
-			"hints": map[string]interface{}{
-				"allow": []string{"GET"},
-				"formats": map[string]interface{}{
-					"application/json": map[string]interface{}{},
-				},
-			},
-		},
+        "href-template": "services{?marker,limit}",
+        "href-vars": map[string]interface{}{
+            "marker": "param/marker",
+            "limit": "param/limit",
+        },
+        "hints": map[string]interface{}{
+            "allow": []string{"GET"},
+            "formats": map[string]interface{}{
+                "application/json": map[string]interface{}{},
+            },
+        },
+    },
 	}
 	th.CheckDeepEquals(t, expected, *actual)
 }
diff --git a/openstack/cdn/v1/flavors/fixtures.go b/openstack/cdn/v1/flavors/fixtures.go
index d7ec1a0..f413b6b 100644
--- a/openstack/cdn/v1/flavors/fixtures.go
+++ b/openstack/cdn/v1/flavors/fixtures.go
@@ -1,24 +1,24 @@
 package flavors
 
 import (
-	"fmt"
-	"net/http"
-	"testing"
+  "fmt"
+  "net/http"
+  "testing"
 
-	th "github.com/rackspace/gophercloud/testhelper"
-	fake "github.com/rackspace/gophercloud/testhelper/client"
+  th "github.com/rackspace/gophercloud/testhelper"
+  fake "github.com/rackspace/gophercloud/testhelper/client"
 )
 
 // HandleListCDNFlavorsSuccessfully creates an HTTP handler at `/flavors` on the test handler mux
 // that responds with a `List` response.
 func HandleListCDNFlavorsSuccessfully(t *testing.T) {
-	th.Mux.HandleFunc("/flavors", func(w http.ResponseWriter, r *http.Request) {
-		th.TestMethod(t, r, "GET")
-		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
+  th.Mux.HandleFunc("/flavors", func(w http.ResponseWriter, r *http.Request) {
+    th.TestMethod(t, r, "GET")
+    th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
 
-		w.Header().Set("Content-Type", "application/json")
-		w.WriteHeader(http.StatusOK)
-		fmt.Fprintf(w, `
+    w.Header().Set("Content-Type", "application/json")
+    w.WriteHeader(http.StatusOK)
+    fmt.Fprintf(w, `
       {
         "flavors": [
             {
@@ -44,19 +44,19 @@
         ]
     }
     `)
-	})
+  })
 }
 
 // HandleGetCDNFlavorSuccessfully creates an HTTP handler at `/flavors/{id}` on the test handler mux
 // that responds with a `Get` response.
 func HandleGetCDNFlavorSuccessfully(t *testing.T) {
-	th.Mux.HandleFunc("/flavors/asia", func(w http.ResponseWriter, r *http.Request) {
-		th.TestMethod(t, r, "GET")
-		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
+  th.Mux.HandleFunc("/flavors/asia", func(w http.ResponseWriter, r *http.Request) {
+    th.TestMethod(t, r, "GET")
+    th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
 
-		w.Header().Set("Content-Type", "application/json")
-		w.WriteHeader(http.StatusOK)
-		fmt.Fprintf(w, `
+    w.Header().Set("Content-Type", "application/json")
+    w.WriteHeader(http.StatusOK)
+    fmt.Fprintf(w, `
       {
           "id" : "asia",
           "providers" : [
@@ -78,5 +78,5 @@
           ]
       }
     `)
-	})
+  })
 }
diff --git a/openstack/cdn/v1/flavors/requests_test.go b/openstack/cdn/v1/flavors/requests_test.go
index f731738..7ddf1b1 100644
--- a/openstack/cdn/v1/flavors/requests_test.go
+++ b/openstack/cdn/v1/flavors/requests_test.go
@@ -1,89 +1,90 @@
 package flavors
 
 import (
-	"testing"
+  "testing"
 
-	"github.com/rackspace/gophercloud"
-	"github.com/rackspace/gophercloud/pagination"
-	th "github.com/rackspace/gophercloud/testhelper"
-	fake "github.com/rackspace/gophercloud/testhelper/client"
+  "github.com/rackspace/gophercloud"
+  "github.com/rackspace/gophercloud/pagination"
+  th "github.com/rackspace/gophercloud/testhelper"
+  fake "github.com/rackspace/gophercloud/testhelper/client"
 )
 
 func TestList(t *testing.T) {
-	th.SetupHTTP()
-	defer th.TeardownHTTP()
+  th.SetupHTTP()
+  defer th.TeardownHTTP()
 
-	HandleListCDNFlavorsSuccessfully(t)
+  HandleListCDNFlavorsSuccessfully(t)
 
-	count := 0
+  count := 0
 
-	err := List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
-		count++
-		actual, err := ExtractFlavors(page)
-		if err != nil {
-			t.Errorf("Failed to extract flavors: %v", err)
-			return false, err
-		}
+  err := List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+    count++
+    actual, err := ExtractFlavors(page)
+    if err != nil {
+      t.Errorf("Failed to extract flavors: %v", err)
+      return false, err
+    }
 
-		expected := []Flavor{
-			Flavor{
-				ID: "europe",
-				Providers: []Provider{
-					Provider{
-						Provider: "Fastly",
-						Links: []gophercloud.Link{
-							gophercloud.Link{
-								Href: "http://www.fastly.com",
-								Rel:  "provider_url",
-							},
-						},
-					},
-				},
-				Links: []gophercloud.Link{
-					gophercloud.Link{
-						Href: "https://www.poppycdn.io/v1.0/flavors/europe",
-						Rel:  "self",
-					},
-				},
-			},
-		}
+    expected := []Flavor{
+      Flavor{
+        ID:   "europe",
+        Providers: []Provider{
+          Provider{
+            Provider: "Fastly",
+            Links: []gophercloud.Link{
+              gophercloud.Link{
+                Href: "http://www.fastly.com",
+                Rel: "provider_url",
+              },
+            },
+          },
+        },
+        Links: []gophercloud.Link{
+          gophercloud.Link{
+            Href: "https://www.poppycdn.io/v1.0/flavors/europe",
+            Rel:  "self",
+          },
+        },
+      },
+    }
 
-		th.CheckDeepEquals(t, expected, actual)
+    th.CheckDeepEquals(t, expected, actual)
 
-		return true, nil
-	})
-	th.AssertNoErr(t, err)
-	th.CheckEquals(t, 1, count)
+    return true, nil
+  })
+  th.AssertNoErr(t, err)
+  th.CheckEquals(t, 1, count)
 }
 
 func TestGet(t *testing.T) {
-	th.SetupHTTP()
-	defer th.TeardownHTTP()
+  th.SetupHTTP()
+  defer th.TeardownHTTP()
 
-	HandleGetCDNFlavorSuccessfully(t)
+  HandleGetCDNFlavorSuccessfully(t)
 
-	expected := &Flavor{
-		ID: "asia",
-		Providers: []Provider{
-			Provider{
-				Provider: "ChinaCache",
-				Links: []gophercloud.Link{
-					gophercloud.Link{
-						Href: "http://www.chinacache.com",
-						Rel:  "provider_url",
-					},
-				},
-			},
-		},
-		Links: []gophercloud.Link{
-			gophercloud.Link{
-				Href: "https://www.poppycdn.io/v1.0/flavors/asia",
-				Rel:  "self",
-			},
-		},
-	}
+  expected := &Flavor{
+    ID:   "asia",
+    Providers: []Provider{
+      Provider{
+        Provider: "ChinaCache",
+        Links: []gophercloud.Link{
+          gophercloud.Link{
+            Href: "http://www.chinacache.com",
+            Rel:  "provider_url",
+          },
+        },
+      },
+    },
+    Links: []gophercloud.Link{
+      gophercloud.Link{
+        Href: "https://www.poppycdn.io/v1.0/flavors/asia",
+        Rel:  "self",
+      },
+    },
+  }
 
-	actual, err := Get(fake.ServiceClient(), "asia").Extract()
-	th.AssertNoErr(t, err)
-	th.AssertDeepEquals(t, expected, actual)
+
+  actual, err := Get(fake.ServiceClient(), "asia").Extract()
+  th.AssertNoErr(t, err)
+  th.AssertDeepEquals(t, expected, actual)
 }
diff --git a/openstack/cdn/v1/serviceassets/fixtures.go b/openstack/cdn/v1/serviceassets/fixtures.go
index 5c6b5d0..38e7fc5 100644
--- a/openstack/cdn/v1/serviceassets/fixtures.go
+++ b/openstack/cdn/v1/serviceassets/fixtures.go
@@ -1,19 +1,19 @@
 package serviceassets
 
 import (
-	"net/http"
-	"testing"
+  "net/http"
+  "testing"
 
-	th "github.com/rackspace/gophercloud/testhelper"
-	fake "github.com/rackspace/gophercloud/testhelper/client"
+  th "github.com/rackspace/gophercloud/testhelper"
+  fake "github.com/rackspace/gophercloud/testhelper/client"
 )
 
 // HandleDeleteCDNAssetSuccessfully creates an HTTP handler at `/services/{id}/assets` on the test handler mux
 // that responds with a `Delete` response.
 func HandleDeleteCDNAssetSuccessfully(t *testing.T) {
-	th.Mux.HandleFunc("/services/96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0/assets", func(w http.ResponseWriter, r *http.Request) {
-		th.TestMethod(t, r, "DELETE")
-		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
-		w.WriteHeader(http.StatusAccepted)
-	})
+  th.Mux.HandleFunc("/services/96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0/assets", func(w http.ResponseWriter, r *http.Request) {
+    th.TestMethod(t, r, "DELETE")
+    th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
+    w.WriteHeader(http.StatusAccepted)
+  })
 }
diff --git a/openstack/cdn/v1/serviceassets/requests_test.go b/openstack/cdn/v1/serviceassets/requests_test.go
index dde7bc1..32896ee 100644
--- a/openstack/cdn/v1/serviceassets/requests_test.go
+++ b/openstack/cdn/v1/serviceassets/requests_test.go
@@ -1,18 +1,18 @@
 package serviceassets
 
 import (
-	"testing"
+  "testing"
 
-	th "github.com/rackspace/gophercloud/testhelper"
-	fake "github.com/rackspace/gophercloud/testhelper/client"
+  th "github.com/rackspace/gophercloud/testhelper"
+  fake "github.com/rackspace/gophercloud/testhelper/client"
 )
 
 func TestDelete(t *testing.T) {
-	th.SetupHTTP()
-	defer th.TeardownHTTP()
+  th.SetupHTTP()
+  defer th.TeardownHTTP()
 
-	HandleDeleteCDNAssetSuccessfully(t)
+  HandleDeleteCDNAssetSuccessfully(t)
 
-	err := Delete(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0", nil).ExtractErr()
-	th.AssertNoErr(t, err)
+  err := Delete(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0", nil).ExtractErr()
+  th.AssertNoErr(t, err)
 }
diff --git a/openstack/cdn/v1/services/fixtures.go b/openstack/cdn/v1/services/fixtures.go
index c2f6acf..d9bc9f2 100644
--- a/openstack/cdn/v1/services/fixtures.go
+++ b/openstack/cdn/v1/services/fixtures.go
@@ -311,14 +311,48 @@
 		th.TestJSONRequest(t, r, `
       [
 				{
-					"op": "replace",
-					"path": "/origins",
-					"value": [{"origin": "44.33.22.11", "port": 80, "ssl": false}]
+					"op": "add",
+					"path": "/domains/-",
+					"value": {"domain": "appended.mocksite4.com"}
+				},
+				{
+					"op": "add",
+					"path": "/domains/4",
+					"value": {"domain": "inserted.mocksite4.com"}
 				},
 				{
 					"op": "add",
 					"path": "/domains",
-					"value": [{"domain": "appended.mocksite4.com"}]
+					"value": [
+						{"domain": "bulkadded1.mocksite4.com"},
+						{"domain": "bulkadded2.mocksite4.com"}
+					]
+				},
+				{
+					"op": "replace",
+					"path": "/origins/2",
+					"value": {"origin": "44.33.22.11", "port": 80, "ssl": false}
+				},
+				{
+					"op": "replace",
+					"path": "/origins",
+					"value": [
+						{"origin": "44.33.22.11", "port": 80, "ssl": false},
+						{"origin": "55.44.33.22", "port": 443, "ssl": true}
+					]
+				},
+				{
+					"op": "remove",
+					"path": "/caching/8"
+				},
+				{
+					"op": "remove",
+					"path": "/caching"
+				},
+				{
+					"op": "replace",
+					"path": "/name",
+					"value": "differentServiceName"
 				}
     ]
    `)
diff --git a/openstack/cdn/v1/services/requests_test.go b/openstack/cdn/v1/services/requests_test.go
index c5a0405..59e826f 100644
--- a/openstack/cdn/v1/services/requests_test.go
+++ b/openstack/cdn/v1/services/requests_test.go
@@ -298,26 +298,51 @@
 	HandleUpdateCDNServiceSuccessfully(t)
 
 	expected := "https://www.poppycdn.io/v1.0/services/96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0"
-	updateOpts := UpdateOpts{
-		Replacement{
-			Value: OriginList{
-				Origin{
-					Origin: "44.33.22.11",
-					Port:   80,
-					SSL:    false,
-				},
-			},
-			Index: 0,
+	ops := UpdateOpts{
+		// Append a single Domain
+		Append{Value: Domain{Domain: "appended.mocksite4.com"}},
+		// Insert a single Domain
+		Insertion{
+			Index: 4,
+			Value: Domain{Domain: "inserted.mocksite4.com"},
 		},
+		// Bulk addition
 		Append{
 			Value: DomainList{
-				Domain{
-					Domain: "appended.mocksite4.com",
-				},
+				Domain{Domain: "bulkadded1.mocksite4.com"},
+				Domain{Domain: "bulkadded2.mocksite4.com"},
 			},
 		},
+		// Replace a single Origin
+		Replacement{
+			Index: 2,
+			Value: Origin{Origin: "44.33.22.11", Port: 80, SSL: false},
+		},
+		// Bulk replace Origins
+		Replacement{
+			Index: 0, // Ignored
+			Value: OriginList{
+				Origin{Origin: "44.33.22.11", Port: 80, SSL: false},
+				Origin{Origin: "55.44.33.22", Port: 443, SSL: true},
+			},
+		},
+		// Remove a single CacheRule
+		Removal{
+			Index: 8,
+			Path:  PathCaching,
+		},
+		// Bulk removal
+		Removal{
+			All:  true,
+			Path: PathCaching,
+		},
+		// Service name replacement
+		NameReplacement{
+			NewName: "differentServiceName",
+		},
 	}
-	actual, err := Update(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0", updateOpts).Extract()
+
+	actual, err := Update(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0", ops).Extract()
 	th.AssertNoErr(t, err)
 	th.AssertEquals(t, expected, actual)
 }