fix: socket file permission (#55)

diff --git a/apisix/runner/server/server.py b/apisix/runner/server/server.py
index eb7cd3a..347d51b 100644
--- a/apisix/runner/server/server.py
+++ b/apisix/runner/server/server.py
@@ -84,6 +84,12 @@
         self.sock.bind(self.fd)
         self.sock.listen(1024)
 
+        # the default socket permission is 0755, which prevents the 'nobody' worker process
+        # from writing to it if the APISIX is run under root.
+        os.chmod(self.fd, 0o766)
+        if os.stat(self.fd).st_mode & 0xfff != 0o766:
+            raise Exception("can't change mode for unix socket permission to 766")
+
         self.logger = NewServerLogger(config.logging.level)
 
         print("listening on unix:%s" % self.fd)
diff --git a/ci/apisix/config.yaml b/ci/apisix/config.yaml
index 379137a..455f2b2 100644
--- a/ci/apisix/config.yaml
+++ b/ci/apisix/config.yaml
@@ -16,21 +16,39 @@
 #
 
 apisix:
-  allow_admin:
-    - 0.0.0.0/0
+  node_listen:
+    - 9080
   enable_control: true
   control:
     ip: "0.0.0.0"
     port: 9092
-  admin_key:
-    - name: admin
-      key: edd1c9f034335f136f87ad84b625c8f1
-      role: admin
-etcd:
-   host:
-     - http://etcd:2379
-   prefix: "/apisix"
-   timeout: 30
+
+deployment:
+  role: traditional
+  role_traditional:
+    config_provider: etcd
+  admin:
+    admin_key:
+      -
+        name: admin
+        key: edd1c9f034335f136f87ad84b625c8f1
+        role: admin
+
+    enable_admin_cors: true
+    allow_admin:
+      - 0.0.0.0/0
+    admin_listen:
+      ip: 0.0.0.0
+      port: 9180
+
+    admin_api_version: v3
+
+  etcd:
+    host:
+      - "http://etcd:2379"
+    timeout: 30
+    startup_retry: 2
+
 ext-plugin:
   path_for_test: /tmp/runner.sock
 nginx_config:
diff --git a/ci/docker-compose.yml b/ci/docker-compose.yml
index 0843858..40faba1 100644
--- a/ci/docker-compose.yml
+++ b/ci/docker-compose.yml
@@ -27,6 +27,7 @@
     depends_on:
       - etcd
     ports:
+      - "9180:9180/tcp"
       - "9080:9080/tcp"
       - "9091:9091/tcp"
       - "9443:9443/tcp"
diff --git a/tests/e2e/plugins/plugins_rewrite_test.go b/tests/e2e/plugins/plugins_rewrite_test.go
index 31056e8..4a23e99 100644
--- a/tests/e2e/plugins/plugins_rewrite_test.go
+++ b/tests/e2e/plugins/plugins_rewrite_test.go
@@ -32,7 +32,7 @@
 			tools.RunTestCase(tc)
 		},
 		table.Entry("create python runner rewrite plugin route success", tools.HttpTestCase{
-			Object: tools.GetA6Expect(),
+			Object: tools.PutA6Conf(),
 			Method: http.MethodPut,
 			Path:   "/apisix/admin/routes/1",
 			Body: `{
diff --git a/tests/e2e/plugins/plugins_stop_test.go b/tests/e2e/plugins/plugins_stop_test.go
index 19f7410..930c1ba 100644
--- a/tests/e2e/plugins/plugins_stop_test.go
+++ b/tests/e2e/plugins/plugins_stop_test.go
@@ -32,7 +32,7 @@
 			tools.RunTestCase(tc)
 		},
 		table.Entry("create python runner stop plugin route success", tools.HttpTestCase{
-			Object: tools.GetA6Expect(),
+			Object: tools.PutA6Conf(),
 			Method: http.MethodPut,
 			Path:   "/apisix/admin/routes/1",
 			Body: `{
diff --git a/tests/e2e/tools/tools.go b/tests/e2e/tools/tools.go
index 064d93b..69af9d4 100644
--- a/tests/e2e/tools/tools.go
+++ b/tests/e2e/tools/tools.go
@@ -27,16 +27,22 @@
 
 var (
 	token  = "edd1c9f034335f136f87ad84b625c8f1"
-	A6Host = "http://127.0.0.1:9080"
+	A6_CP_Host = "http://127.0.0.1:9180"
+	A6_DP_Host = "http://127.0.0.1:9080"
 )
 
 func GetAdminToken() string {
 	return token
 }
 
+func PutA6Conf() *httpexpect.Expect {
+	t := ginkgo.GinkgoT()
+	return httpexpect.New(t, A6_CP_Host)
+}
+
 func GetA6Expect() *httpexpect.Expect {
 	t := ginkgo.GinkgoT()
-	return httpexpect.New(t, A6Host)
+	return httpexpect.New(t, A6_DP_Host)
 }
 
 type HttpTestCase struct {