with open(ansible_tmp, 'w') as fh:
fh.write("ANSIBLE_HOST_KEY_CHECKING=FALSE {}".format(
' '.join(ansible_command)))
- try:
- my_env = os.environ.copy()
- my_env['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
- logging.info("Executing playbook...this may take some time")
- logging.info(subprocess.check_output(ansible_command, env=my_env,
- stderr=subprocess.STDOUT).decode('utf-8'))
- except subprocess.CalledProcessError as e:
- logging.error("Error executing ansible: {}".format(
- pprint.pformat(e.output.decode('utf-8'))))
- raise
+
+ my_env = os.environ.copy()
+ my_env['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
+ logging.info("Executing playbook...this may take some time")
+ p = subprocess.Popen(ansible_command,
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ bufsize=1,
+ env=my_env,
+ universal_newlines=True)
+ # read first line
+ x = p.stdout.readline()
+ # initialize task
+ task = ''
+ while x:
+ # append lines to task
+ task += x
+ # log the line and read another
+ x = p.stdout.readline()
+ # deliver the task to info when we get a blank line
+ if not x.strip():
+ task += x
+ logging.info(task.replace('\\n', '\n'))
+ task = ''
+ x = p.stdout.readline()
+ # clean up and get return code
+ p.stdout.close()
+ rc = p.wait()
+ if rc:
+ # raise errors
+ e = "Ansible playbook failed. See Ansible logs for details."
+ logging.error(e)
+ raise Exception(e)
nets['tenant']['nic_mapping'][role]['interface-options'] =\
ds['performance'][role.title()]['vpp']['interface-options']
+ if role == 'controller' and ds.get('sfc', None):
+ ext_net = 'interface'
+
template_output = template.render(
nets=nets,
role=role,
SDN_FILE_MAP = {
'opendaylight': {
- 'sfc': 'opendaylight_sfc.yaml',
+ 'sfc': 'neutron-sfc-opendaylight.yaml',
'vpn': 'neutron-bgpvpn-opendaylight.yaml',
'gluon': 'gluon.yaml',
'vpp': {
{con.VIRT_RUN_CMD: "yum -y install "
"/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
"{}".format(OVS_NSH_KMOD_RPM)},
- {con.VIRT_RUN_CMD: "yum upgrade -y "
+ {con.VIRT_RUN_CMD: "yum downgrade -y "
"/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
"{}".format(OVS_NSH_RPM)}
])
virt_cmds.extend([
{con.VIRT_RUN_CMD: "yum -y remove opendaylight"},
{con.VIRT_RUN_CMD: "yum -y install /root/{}/*".format(
- con.DEFAULT_ODL_VERSION)},
+ ds_opts['odl_version'])},
{con.VIRT_RUN_CMD: "rm -rf /etc/puppet/modules/opendaylight"},
{con.VIRT_RUN_CMD: "cd /etc/puppet/modules && tar xzf "
"/root/puppet-opendaylight-"
--- /dev/null
+---
+- hosts: localhost
+ tasks:
+ - fail:
+ msg: "Failure to test with"
from nose.tools import (
assert_equal,
assert_is_instance,
- assert_not_is_instance)
+ assert_not_is_instance,
+ assert_raises)
NET_SETS = os.path.join(TEST_CONFIG_DIR, 'network', 'network_settings.yaml')
playbook = 'apex/tests/playbooks/test_playbook.yaml'
assert_equal(utils.run_ansible(None, os.path.join(playbook),
dry_run=True), None)
+
+ def test_failed_run_ansible(self):
+ playbook = 'apex/tests/playbooks/test_failed_playbook.yaml'
+ assert_raises(Exception, utils.run_ansible, None,
+ os.path.join(playbook), dry_run=True)
git archive --format=tar.gz --prefix=opendaylight/ HEAD > ${BUILD_DIR}/puppet-opendaylight-carbon.tar.gz
git checkout master
git archive --format=tar.gz --prefix=opendaylight/ HEAD > ${BUILD_DIR}/puppet-opendaylight-master.tar.gz
+git checkout stable/nitrogen
+git archive --format=tar.gz --prefix=opendaylight/ HEAD > ${BUILD_DIR}/puppet-opendaylight-nitrogen.tar.gz
popd > /dev/null
# cache gluon
--upload ${BUILD_DIR}/puppet-opendaylight-carbon.tar.gz:/etc/puppet/modules/ \
--run-command "cd /etc/puppet/modules/ && tar xzf puppet-opendaylight-carbon.tar.gz" \
--upload ${BUILD_DIR}/puppet-opendaylight-master.tar.gz:/root/ \
+ --upload ${BUILD_DIR}/puppet-opendaylight-nitrogen.tar.gz:/root/ \
--upload ${BUILD_DIR}/puppet-gluon.tar.gz:/etc/puppet/modules/ \
--run-command "cd /etc/puppet/modules/ && tar xzf puppet-gluon.tar.gz" \
--install python-click \
deploy_options:
sdn_controller: opendaylight
- odl_version: carbon
+ odl_version: nitrogen
tacker: true
congress: true
sfc: true
deploy_options:
sdn_controller: opendaylight
- odl_version: carbon
+ odl_version: nitrogen
tacker: true
congress: true
sfc: true