def update_project_dir(): logger.debug('unzipping ' + MPK_FILE + ' to ' + INCOMING_MPK_DIR) subprocess.check_call(('rm', '-rf', INCOMING_MPK_DIR)) buildpackutil.mkdir_p(INCOMING_MPK_DIR) subprocess.check_call(('unzip', '-oqq', MPK_FILE, '-d', INCOMING_MPK_DIR)) new_mpr = os.path.basename(buildpackutil.get_mpr_file_from_dir( INCOMING_MPK_DIR)) existing_mpr_path = buildpackutil.get_mpr_file_from_dir(PROJECT_DIR) if existing_mpr_path: existing_mpr = os.path.basename(existing_mpr_path) else: existing_mpr = None logger.debug('rsync from incoming to intermediate') if buildpackutil.get_buildpack_loglevel() < logging.INFO: quiet_or_verbose = '--verbose' else: quiet_or_verbose = '--quiet' subprocess.call(( 'rsync', '--recursive', '--checksum', '--delete', INCOMING_MPK_DIR + '/', INTERMEDIATE_MPK_DIR + '/', )) logger.debug('rsync from intermediate to project') if new_mpr == existing_mpr: update_or_delete = '--update' else: update_or_delete = '--delete' subprocess.call(( 'rsync', '--recursive', update_or_delete, quiet_or_verbose, INTERMEDIATE_MPK_DIR + '/', PROJECT_DIR + '/', ))
def build(): logger.debug('unzipping ' + MPK_FILE + ' to ' + INCOMING_MPK_DIR) subprocess.check_call(('rm', '-rf', INCOMING_MPK_DIR)) buildpackutil.mkdir_p(INCOMING_MPK_DIR) subprocess.check_call(('unzip', '-oqq', MPK_FILE, '-d', INCOMING_MPK_DIR)) logger.debug('rsync from incoming to intermediate') if buildpackutil.get_buildpack_loglevel() < logging.INFO: quiet_or_verbose = '--verbose' else: quiet_or_verbose = '--quiet' subprocess.call(( 'rsync', '--recursive', '--checksum', '--delete', INCOMING_MPK_DIR + '/', INTERMEDIATE_MPK_DIR + '/', )) logger.debug('rsync from intermediate to project') subprocess.call(( 'rsync', '--recursive', '--update', quiet_or_verbose, INTERMEDIATE_MPK_DIR + '/', PROJECT_DIR + '/', )) mpr = os.path.abspath(buildpackutil.get_mpr_file_from_dir(PROJECT_DIR)) response = requests.post( 'http://localhost:6666/build', data=json.dumps({ 'target': 'Deploy', 'projectFilePath': mpr, 'forceFullDeployment': False }), headers={'Content-Type': 'application/json'}, timeout=120, ) response.raise_for_status() for name in ('web', 'model'): subprocess.call(( 'rsync', '-a', os.path.join(DEPLOYMENT_DIR, name) + '/', os.path.join(ROOT_DIR, name) + '/', )) return response.json()
def update_project_dir(): logger.debug("unzipping " + MPK_FILE + " to " + INCOMING_MPK_DIR) subprocess.check_call(("rm", "-rf", INCOMING_MPK_DIR)) buildpackutil.mkdir_p(INCOMING_MPK_DIR) subprocess.check_call(("unzip", "-oqq", MPK_FILE, "-d", INCOMING_MPK_DIR)) new_mpr = os.path.basename( buildpackutil.get_mpr_file_from_dir(INCOMING_MPK_DIR) ) existing_mpr_path = buildpackutil.get_mpr_file_from_dir(PROJECT_DIR) if existing_mpr_path: existing_mpr = os.path.basename(existing_mpr_path) else: existing_mpr = None logger.debug("rsync from incoming to intermediate") if buildpackutil.get_buildpack_loglevel() < logging.INFO: quiet_or_verbose = "--verbose" else: quiet_or_verbose = "--quiet" subprocess.call( ( "rsync", "--recursive", "--checksum", "--delete", INCOMING_MPK_DIR + "/", INTERMEDIATE_MPK_DIR + "/", ) ) logger.debug("rsync from intermediate to project") if new_mpr == existing_mpr: update_or_delete = "--update" else: update_or_delete = "--delete" subprocess.call( ( "rsync", "--recursive", update_or_delete, quiet_or_verbose, INTERMEDIATE_MPK_DIR + "/", PROJECT_DIR + "/", ) )
import os import json import yaml import subprocess import buildpackutil import database_config from m2ee import logger DD_SIDECAR = "cf-datadog-sidecar-v0.11.1_master_78318.tar.gz" MX_AGENT_JAR = "mx-agent-v0.12.0.jar" logger.setLevel(buildpackutil.get_buildpack_loglevel()) def get_api_key(): return os.getenv("DD_API_KEY") def is_enabled(): return get_api_key() is not None def _is_installed(): return os.path.exists(".local/datadog/datadog-agent") def _get_service(): dd_service = os.environ.get("DD_SERVICE") if dd_service is None: dd_service = buildpackutil.get_hostname() return dd_service
import datadog import database_config import telegraf import buildpackutil from m2ee.version import MXVersion BUILDPACK_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) BUILD_DIR = sys.argv[1] CACHE_DIR = os.path.join(sys.argv[2], "bust") DOT_LOCAL_LOCATION = os.path.join(BUILD_DIR, ".local") BUILD_ERRORS_JSON = "/tmp/builderrors.json" logging.basicConfig( level=buildpackutil.get_buildpack_loglevel(), stream=sys.stdout, format="%(levelname)s: %(message)s", ) logging.getLogger("requests").setLevel(logging.WARNING) def get_runtime_version(): file_name = os.path.join(BUILD_DIR, "model", "metadata.json") try: with open(file_name) as file_handle: data = json.loads(file_handle.read()) return MXVersion(data["RuntimeVersion"]) except IOError: mpr = get_mpr_file()
#!/usr/bin/env python import json import os import re import signal import subprocess import time import sys sys.path.insert(0, 'lib') import requests import buildpackutil from m2ee import M2EE, logger logger.setLevel(buildpackutil.get_buildpack_loglevel()) logger.info('Started Mendix Cloud Foundry Buildpack') def pre_process_m2ee_yaml(): runtime_port = int(os.environ['PORT']) subprocess.check_call([ 'sed', '-i', 's|BUILD_PATH|%s|g; s|RUNTIME_PORT|%d|; s|ADMIN_PORT|%d|' % (os.getcwd(), runtime_port, runtime_port + 1), '.local/m2ee.yaml' ]) def get_vcap_data():