소스 검색

Update manage.py

qiaofeng1227 2 년 전
부모
커밋
d95cedf09a
1개의 변경된 파일75개의 추가작업 그리고 31개의 파일을 삭제
  1. 75 31
      appmanage/api/service/manage.py

+ 75 - 31
appmanage/api/service/manage.py

@@ -630,38 +630,82 @@ def app_domain_add(app_id, domains):
     else:
         raise CommandException(code, message, "")
     
-    token = get_token()
-    url = "http://172.17.0.1:9092/api/nginx/proxy-hosts"
-    headers = {
-        'Authorization': token,
-        'Content-Type': 'application/json'
-    }
-    port = get_container_port(app_id.split('_')[1])
-    host = app_id.split('_')[1]
-    data = {
-        "domain_names": domains,
-        "forward_scheme": "http",
-        "forward_host": host,
-        "forward_port": port,
-        "access_list_id": "0",
-        "certificate_id": 0,
-        "meta": {
-            "letsencrypt_agree": False,
-            "dns_challenge": False
-        },
-        "advanced_config": "",
-        "locations": [],
-        "block_exploits": False,
-        "caching_enabled": False,
-        "allow_websocket_upgrade": False,
-        "http2_support": False,
-        "hsts_enabled": False,
-        "hsts_subdomains": False,
-        "ssl_forced": False
-    }
+    proxy = get_proxy(app_id)
+    if proxy != None:
+        domains_old = proxy["domains"]
+        domain_list = domains_old
+        for domain in domains:
+            if domain in domain_list:
+                continue
+            else:
+                domain_list.append(domain)
+        proxy_id = proxy["id"]
+        token = get_token()
+        url = "http:/172.17.0.1:9092/api/nginx/proxy-hosts/" + str(proxy_id)
+        headers = {
+            'Authorization': token,
+            'Content-Type': 'application/json'
+        }
+        port = get_container_port(app_id.split('_')[1])
+        host = app_id.split('_')[1]
+        data = {
+            "domain_names": domain_list,
+            "forward_scheme": "http",
+            "forward_host": host,
+            "forward_port": port,
+            "access_list_id": "0",
+            "certificate_id": 0,
+            "meta": {
+                "letsencrypt_agree": False,
+                "dns_challenge": False
+            },
+            "advanced_config": "",
+            "locations": [],
+            "block_exploits": False,
+            "caching_enabled": False,
+            "allow_websocket_upgrade": False,
+            "http2_support": False,
+            "hsts_enabled": False,
+            "hsts_subdomains": False,
+            "ssl_forced": False
+        }
+
+        requests.put(url, data=json.dumps(data), headers=headers)
+    else:
+        # 追加
+        token = get_token()
+        url = "http://172.17.0.1:9092/api/nginx/proxy-hosts"
+        headers = {
+            'Authorization': token,
+            'Content-Type': 'application/json'
+        }
+        port = get_container_port(app_id.split('_')[1])
+        host = app_id.split('_')[1]
+        data = {
+            "domain_names": domains,
+            "forward_scheme": "http",
+            "forward_host": host,
+            "forward_port": port,
+            "access_list_id": "0",
+            "certificate_id": 0,
+            "meta": {
+                "letsencrypt_agree": False,
+                "dns_challenge": False
+            },
+            "advanced_config": "",
+            "locations": [],
+            "block_exploits": False,
+            "caching_enabled": False,
+            "allow_websocket_upgrade": False,
+            "http2_support": False,
+            "hsts_enabled": False,
+            "hsts_subdomains": False,
+            "ssl_forced": False
+        }
 
-    requests.post(url, data=json.dumps(data), headers=headers)
-    #set_domain(domains[0], app_id)
+        requests.post(url, data=json.dumps(data), headers=headers)
+        #set_domain(domains[0], app_id)
+        
     return domains
 
 def check_domains(domains):