From 2cc3c8deba3b7711f8d8ba2ee6ccf4694d779e13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Armando=20Garc=C3=ADa=20Sancio?= Date: Mon, 7 Aug 2017 11:28:19 -0700 Subject: [PATCH] Try to make install work on old cluster --- dcos/cosmos.py | 2 +- dcos/packagemanager.py | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/dcos/cosmos.py b/dcos/cosmos.py index 4afb0a5c4..196dc55f3 100644 --- a/dcos/cosmos.py +++ b/dcos/cosmos.py @@ -45,7 +45,7 @@ def _data(versions, http_method): self._endpoint_data = { 'capabilities': _data(['v1'], 'get'), 'package/add': _data(['v1'], 'post'), - 'package/describe': _data(['v3'], 'post'), + 'package/describe': _data(['v3', 'v2'], 'post'), 'package/install': _data(['v2'], 'post'), 'package/list': _data(['v1'], 'post'), 'package/list-versions': _data(['v1'], 'post'), diff --git a/dcos/packagemanager.py b/dcos/packagemanager.py index 654e8043b..6d79a6200 100644 --- a/dcos/packagemanager.py +++ b/dcos/packagemanager.py @@ -359,6 +359,7 @@ def __init__(self, name, package_version, url): response = PackageManager(url).cosmos_post("describe", params) self._package_json = response.json() + self._content_type = response.headers['content-type'] def version(self): """Returns the package version. @@ -367,7 +368,7 @@ def version(self): :rtype: str """ - return self._package_json["package"]["version"] + return self.package_json()["version"] def name(self): """Returns the package name. @@ -376,7 +377,7 @@ def name(self): :rtype: str """ - return self._package_json["package"]["name"] + return self.package_json()["name"] def package_json(self): """Returns the JSON content of the package definition. @@ -385,7 +386,10 @@ def package_json(self): :rtype: dict """ - return self._package_json["package"] + if 'version=v2' in self._content_type: + return self._package_json + else: + return self._package_json["package"] def package_response(self): """Returns the JSON content of the describe response. @@ -403,7 +407,7 @@ def config_json(self): :rtype: dict | None """ - return self._package_json["package"].get("config") + return self.package_json().get("config") def resource_json(self): """Returns the JSON content of the resource.json file. @@ -412,7 +416,7 @@ def resource_json(self): :rtype: dict | None """ - return self._package_json["package"].get("resource") + return self.package_json().get("resource") def marathon_template(self): """Returns raw data from marathon.json @@ -421,7 +425,7 @@ def marathon_template(self): :rtype: str | None """ - template = self._package_json["package"].get("marathon", {}).get( + template = self.package_json().get("marathon", {}).get( "v2AppMustacheTemplate" ) @@ -478,7 +482,7 @@ def command_json(self): :rtype: dict | None """ - return self._package_json["package"].get("command") + return self.package_json().get("command") def package_versions(self): """Returns a list of available versions for this package