summaryrefslogtreecommitdiffstats
path: root/scripts/DeployHelpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/DeployHelpers.py')
-rw-r--r--scripts/DeployHelpers.py79
1 files changed, 79 insertions, 0 deletions
diff --git a/scripts/DeployHelpers.py b/scripts/DeployHelpers.py
new file mode 100644
index 0000000000..c12c38d293
--- /dev/null
+++ b/scripts/DeployHelpers.py
@@ -0,0 +1,79 @@
+#coding=UTF-8
+
+### Helper class for wildfly deployments. ###
+# Related files $HOME/.deploy-url $HOME/.deploy-credentials
+
+import sys, json
+try:
+ import requests
+except Exception as e:
+ print("DeployHelpers depends on requests library. Install it with `pip install requests`")
+ sys.exit(1)
+from requests.auth import HTTPDigestAuth
+from os.path import join, expanduser, basename
+
+# .deploy-url in home folder
+deployUrlFile = join(expanduser("~"), ".deploy-url")
+
+# .deploy-credentials in home folder
+deployCredFile = join(expanduser("~"), ".deploy-credentials")
+
+# Helper for handling the full deployment
+# name should end with .war
+def deployWar(warFile, name=None):
+ if name is None:
+ name = basename(warFile)
+
+ print("Deploying to context %s" % (name[:-4]))
+ # Undeploy/Remove old version if needed
+ if deploymentExists(name):
+ removeDeployment(name)
+ # Do upload war file
+ hash = doUploadWarFile(warFile)
+ # Do deployment under name
+ doDeploy(hash, name)
+
+def deploymentExists(name):
+ # Deployment existence check data
+ data = {"operation" : "read-attribute", "name": "runtime-name", "address": [{"deployment" : name}]}
+ result = doPostJson(url=getUrl(), auth=getAuth(), data=json.dumps(data))
+ return result.json()["outcome"] == "success"
+
+def doDeploy(hash, name):
+ # Deployment data
+ data = {}
+ data["content"] = [{"hash" : hash}]
+ data["address"] = [{"deployment" : name}]
+ data["operation"] = "add"
+ data["enabled"] = True
+ return doPostJson(data=json.dumps(data), auth=getAuth(), url=getUrl())
+
+# Helper for adding Content-Type to headers
+def doPostJson(**kwargs):
+ return requests.post(headers={"Content-Type" : "application/json"}, **kwargs)
+
+def doUploadWarFile(warFile):
+ # Upload request, just see the outcome
+ result = requests.post("%s/add-content" % (getUrl()), files={"file" : open(warFile, 'rb')}, auth=getAuth()).json()
+ if "outcome" not in result or result["outcome"] != "success":
+ raise Exception("File upload failed.", result)
+ return result["result"]
+
+# Method for removing an existing deployment
+def removeDeployment(name):
+ data = {}
+ data["address"] = [{"deployment" : name}]
+ for i in ["undeploy", "remove"]:
+ print("%s old deployment of %s" % (i, name))
+ data["operation"] = i
+ doPostJson(data=json.dumps(data), auth=getAuth(), url=getUrl())
+
+# Read credentials file and return a HTTPDigestAuth object
+def getAuth():
+ (deployUser, deployPass) = open(deployCredFile).read().strip().split(",")
+ return HTTPDigestAuth(deployUser, deployPass)
+
+# Read the deploy url file and return the url
+def getUrl():
+ return open(deployUrlFile).read().strip()
+
port/47399/stable30 Nextcloud server, a safe home for all your data: https://github.com/nextcloud/serverwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/apps/theming/l10n/da.js
blob: 877964d4330901c3796be0047c94e7af9a80d3e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30