diff --git a/cli/dcoscli/package/main.py b/cli/dcoscli/package/main.py index e20a8ee..2f9a0bd 100644 --- a/cli/dcoscli/package/main.py +++ b/cli/dcoscli/package/main.py @@ -299,6 +299,21 @@ def _install(package_name, options_file, app_id, cli, app): if app: # Install in Marathon + version_map, version_error = pkg.software_versions() + + if version_error is not None: + emitter.publish(version_error) + return 1 + + sw_version = version_map.get(pkg_version, '?') + + message = 'Installing package [{}] version [{}]'.format( + pkg.name(), sw_version) + if app_id is not None: + message += ' with app id [{}]'.format(app_id) + + emitter.publish(message) + init_client = marathon.create_client(config) install_error = package.install_app( @@ -313,6 +328,9 @@ def _install(package_name, options_file, app_id, cli, app): if cli and pkg.is_command_defined(pkg_version): # Install subcommand + emitter.publish('Installing CLI subcommand for package [{}]'.format( + pkg.name())) + err = package.install_subcommand(pkg, pkg_version, options_json) if err is not None: emitter.publish(err) diff --git a/cli/tests/data/package/helloworld-config.json b/cli/tests/data/package/helloworld-config.json new file mode 100644 index 0000000..f96ced6 --- /dev/null +++ b/cli/tests/data/package/helloworld-config.json @@ -0,0 +1,3 @@ +{ + "helloworld/secret": "3XPSCDED52PZ" +} diff --git a/cli/tests/integrations/cli/test_package.py b/cli/tests/integrations/cli/test_package.py index 2472957..e243dd0 100644 --- a/cli/tests/integrations/cli/test_package.py +++ b/cli/tests/integrations/cli/test_package.py @@ -135,7 +135,7 @@ def test_bad_install(): '--options=tests/data/package/mesos-dns-config-bad.json']) assert returncode == 1 - assert stdout == b'' + assert stdout == b'Installing package [mesos-dns] version [alpha]\n' assert stderr == b"""\ Error: 'mesos-dns/config-url' is a required property @@ -156,7 +156,7 @@ def test_install(): '--options=tests/data/package/mesos-dns-config.json']) assert returncode == 0 - assert stdout == b'' + assert stdout == b'Installing package [mesos-dns] version [alpha]\n' assert stderr == b'' @@ -202,7 +202,9 @@ def test_install_with_id(): '--app-id=dns-1']) assert returncode == 0 - assert stdout == b'' + assert stdout == b"""Installing package [mesos-dns] version [alpha] \ +with app id [dns-1] +""" assert stderr == b'' returncode, stdout, stderr = exec_command( @@ -214,7 +216,8 @@ def test_install_with_id(): '--app-id=dns-2']) assert returncode == 0 - assert stdout == b'' + assert stdout == b"""Installing package [mesos-dns] version [alpha] \ +with app id [dns-2]\n""" assert stderr == b'' @@ -284,7 +287,7 @@ def test_list_installed(): '--options=tests/data/package/mesos-dns-config.json']) assert returncode == 0 - assert stdout == b'' + assert stdout == b'Installing package [mesos-dns] version [alpha]\n' assert stderr == b'' expected_output = b"""\