コード例 #1
0
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 + '/',
    ))
コード例 #2
0
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()
コード例 #3
0
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 + "/",
        )
    )
コード例 #4
0
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
コード例 #5
0
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()
コード例 #6
0
#!/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():