Azure-plugin not sending REST calls to Azure cloud
[multicloud/azure.git] / azure / aria / aria-rest-server / build.py
diff --git a/azure/aria/aria-rest-server/build.py b/azure/aria/aria-rest-server/build.py
new file mode 100644 (file)
index 0000000..cd2bcbf
--- /dev/null
@@ -0,0 +1,95 @@
+#
+# ============LICENSE_START===================================================
+# Copyright (c) 2018 Amdocs.  All rights reserved.
+# ===================================================================
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy
+# of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+# ============LICENSE_END====================================================
+#
+
+import subprocess
+import os
+import sys
+import glob
+import xml.etree.ElementTree as etree
+
+# create and enter venv
+def create_venv( name):
+    if subprocess.call("virtualenv {}".format(name), shell = True):
+        raise Exception("virtualenv create failed")
+    ret = subprocess.call(". {}/bin/activate && python {} run". \
+                    format(name,__file__), shell = True)
+    sys.exit(ret)
+
+def init_venv():
+    subprocess.call("pip install -U pip", shell = True)
+    subprocess.call("pip install -U setuptools", shell = True)
+    subprocess.call("pip install wheel", shell = True)
+    subprocess.call("pip install twine", shell = True)
+
+
+if len(sys.argv) == 1:
+    create_venv ("mavenvenv")
+else:
+    init_venv()
+
+    if os.environ['MVN_PHASE'] == 'package':
+        wheelname = os.environ['WHEEL_NAME']
+        inputdir = os.environ['INPUT_DIR']
+        outputdir = os.environ['OUTPUT_DIR']
+        savedir = os.getcwd()
+        os.chdir(inputdir)
+
+        if subprocess.call( [ "python",
+                             "setup.py",
+                             "bdist_wheel",
+                             "-d",
+                             outputdir
+                             ]):
+            sys.stderr("wheel create failed")
+            sys.exit(1)
+        f = glob.glob(outputdir+"/*.whl")[0]
+        os.rename(f , outputdir+"/"+ wheelname)
+
+    elif os.environ['MVN_PHASE'] == 'deploy':
+
+        it = etree.iterparse(os.environ['SETTINGS_FILE'])
+        for _, el in it:
+            el.tag = el.tag.split('}', 1)[1]  # strip namespace
+        settings = it.root
+
+        username = settings.find('.//server[id="{}"]/username'.format(
+                                os.environ['PYPI_SERVERID'])).text
+        password = settings.find('.//server[id="{}"]/password'.format(
+                                os.environ['PYPI_SERVERID'])).text
+
+        try:
+            if subprocess.call( [ "twine",
+                             "upload",
+                             "--username",
+                             username,
+                             "--password",
+                             password,
+                             "--repository-url",
+                             os.environ["PYPI_SERVER_BASEURL"],
+                             os.environ["WHEEL_PATH"]
+                             ] ):
+                sys.stderr.write("pypi upload failed")
+                sys.exit(1)
+        finally:
+            subprocess.call("rm -rf mavenvenv", shell = True)
+
+        sys.exit(0)
+    else:
+        sys.stderr.write("Unrecognized phase '{}'\n".format(
+            os.environ('MVN_PHASE')))
+        sys.exit(1)