from requests.auth import HTTPDigestAuth
from os.path import join, expanduser, basename
from BuildHelpers import parser, getArgs
+from time import sleep
parser.add_argument("--deployUrl", help="Wildfly management URL")
parser.add_argument("--deployUser", help="Deployment user", default=None)
parser.add_argument("--deployPass", help="Deployment password", default=None)
+serverUp = None
+
+def testServer():
+ global serverUp
+
+ if serverUp is not None:
+ return serverUp
+
+ print("Checking server status")
+ i = 0
+ request = {"operation" : "read-attribute", "name" : "server-state"}
+ serverUp = False
+ while not serverUp and i < 2:
+ try:
+ print("Trying on url %s" % (getUrl()))
+ result = doPostJson(url=getUrl(), auth=getAuth(), data=json.dumps(request))
+ response = result.json()
+ if "outcome" not in response or response["outcome"] != "success":
+ # Failure
+ raise Exception(response)
+ elif "result" not in response or response["result"] != "running":
+ # Another failure
+ raise Exception(response)
+ # All OK
+ serverUp = True
+ print("Got server connection.")
+ except Exception as e:
+ print("Exception while checking server state: ", e)
+ print("Server connection failed, retrying in 5 seconds.")
+ i = i + 1
+ sleep(5)
+ return serverUp
+
# Helper for handling the full deployment
# name should end with .war
def deployWar(warFile, name=None):
+ if not testServer():
+ raise Exception("Server not up. Skipping deployment.")
+ return
if name is None:
name = basename(warFile).replace('.war', "-%s.war" % (getArgs().version.split('-')[0]))