Exemplo n.º 1
0
    def provision(self, force=False, extra_args=""):
        """
        Provision CCCP nodes.

        By default, it runs provisioning only for the first time, and
        skips for the subsequent calls.

        Args:
            force (bool): Provision forcefully.
            extra_args (str): Extra cmd line args for running ansible playbook
        """
        provision(self.hosts['controller'], force=force, extra_args=extra_args)
Exemplo n.º 2
0
    def provision(self, force=False, extra_args=""):
        """
        Provision CCCP nodes.

        By default, it runs provisioning only for the first time, and
        skips for the subsequent calls.

        Args:
            force (bool): Provision forcefully.
            extra_args (str): Extra cmd line args for running ansible playbook
        """
        controller = copy.copy(self.hosts['controller'])
        controller['hosts'] = None
        _print('Provisioning...')
        provisioned, out = provision(
            controller, force=force, extra_args=extra_args)
        if provisioned:
            _print(out[-1000:])
    def provision(self, force=False, extra_args=""):
        """
        Provision CCCP nodes.

        By default, it runs provisioning only for the first time, and
        skips for the subsequent calls.

        Args:
            force (bool): Provision forcefully.
            extra_args (str): Extra cmd line args for running ansible playbook
        """
        controller = copy.copy(self.hosts['controller'])
        controller['hosts'] = None
        _print('Provisioning...')
        provisioned, out = provision(
            controller, force=force, extra_args=extra_args)
        if provisioned:
            _print(out[-1000:])
Exemplo n.º 4
0
def run():
    os.environ.pop('CCCP_CI_PROVISIONED', None)
    os.environ.pop('CCCP_CI_HOSTS', None)

    nodes = get_nodes(count=5)

    jenkins_master_host = nodes[0]
    jenkins_slave_host = nodes[1]
    openshift_host = nodes[2]
    scanner_host = nodes[3]
    controller = nodes.pop()

    nodes_env = (
        "\nJENKINS_MASTER_HOST=%s\n"
        "JENKINS_SLAVE_HOST=%s\n"
        "OPENSHIFT_HOST=%s\n"
        "CONTROLLER=%s\n"
        "SCANNER_HOST=%s\n"
    ) % (jenkins_master_host, jenkins_slave_host,
         openshift_host, controller, scanner_host)

    with open('env.properties', 'a') as f:
        f.write(nodes_env)

    hosts_data = {
        'openshift': {
            'host': openshift_host,
            'remote_user': '******'
        },
        'jenkins_master': {
            'host': jenkins_master_host,
            'remote_user': '******'
        },
        'jenkins_slave': {
            'host': jenkins_slave_host,
            'remote_user': '******'
        },
        'controller': {
            'host': controller,
            'user': '******',
            'workdir': '/root/container-pipeline-service',
            # relative to this workdir
            'inventory_path': 'hosts'
        }
    }

    _print(hosts_data)

    generate_ansible_inventory(jenkins_master_host,
                               jenkins_slave_host,
                               openshift_host,
                               scanner_host)

    run_cmd('iptables -F', host=openshift_host)
    run_cmd('iptables -F', host=jenkins_slave_host)

    setup_controller(controller)

    provision(hosts_data['controller'])

    os.environ['CCCP_CI_PROVISIONED'] = "true"

    os.environ['CCCP_CI_HOSTS'] = json.dumps(hosts_data)

    run_cmd('~/venv/bin/nosetests ci/tests', stream=True)

    os.environ.pop('CCCP_CI_PROVISIONED', None)
    os.environ.pop('CCCP_CI_HOSTS', None)