snap-tool info prints out the base

snap-tool-base-none
Tobias Koch 6 years ago
parent ee4fc93b06
commit 79ed860c5e

2
debian/changelog vendored

@ -3,6 +3,8 @@ livecd-rootfs (2.573) UNRELEASED; urgency=medium
* When the "snap-tool" script encounters a core snap it will switch to * When the "snap-tool" script encounters a core snap it will switch to
the "stable" channel if the channel was set to "stable/ubuntu-X.X". This the "stable" channel if the channel was set to "stable/ubuntu-X.X". This
ensures that core snaps always come from one canonical source. ensures that core snaps always come from one canonical source.
* Running `snap-tool info <snap_name>` will now also print out the base of
the snap.
-- Tobias Koch <tobias.koch@canonical.com> Wed, 20 Mar 2019 14:33:34 +0100 -- Tobias Koch <tobias.koch@canonical.com> Wed, 20 Mar 2019 14:33:34 +0100

@ -151,8 +151,7 @@ class Snap:
if self._details and not cohort_create: if self._details and not cohort_create:
return self._details return self._details
if re.match(r"^core\d*$", self._name) and \ if self.is_core_snap() and self._channel.startswith("stable/ubuntu-"):
self._channel.startswith("stable/ubuntu-"):
sys.stderr.write( sys.stderr.write(
"WARNING: switching channel from '{}' to 'stable' for '{}' " "WARNING: switching channel from '{}' to 'stable' for '{}' "
"snap.\n".format(self._channel, self._name) "snap.\n".format(self._channel, self._name)
@ -170,7 +169,22 @@ class Snap:
"name": self._name, "name": self._name,
"channel": self._channel, "channel": self._channel,
} }
] ],
"fields": [
"base",
"created-at",
"download",
"license",
"name",
"prices",
"publisher",
"revision",
"snap-id",
"summary",
"title",
"type",
"version",
],
} }
# These are mutually exclusive. # These are mutually exclusive.
@ -189,6 +203,12 @@ class Snap:
snap_data = response_dict["results"][0] snap_data = response_dict["results"][0]
# Have "base" initialized to something meaningful.
if self.is_core_snap():
snap_data["snap"]["base"] = ""
elif snap_data["snap"].get("base") is None:
snap_data["snap"]["base"] = "core"
# Copy the key into the snap details. # Copy the key into the snap details.
if "cohort-key" in snap_data: if "cohort-key" in snap_data:
snap_data["snap"]["cohort-key"] = snap_data["cohort-key"] snap_data["snap"]["cohort-key"] = snap_data["cohort-key"]
@ -266,6 +286,9 @@ class Snap:
self._assertions["account-key"] = data self._assertions["account-key"] = data
return data return data
def is_core_snap(self):
return re.match(r"^core\d*$", self._name) != None
def _do_assertion_request(self, path): def _do_assertion_request(self, path):
url = self._assertion_url + path url = self._assertion_url + path
@ -381,6 +404,7 @@ class SnapCli:
name: {} name: {}
summary: {} summary: {}
arch: {} arch: {}
base: {}
channel: {} channel: {}
publisher: {} publisher: {}
license: {} license: {}
@ -390,6 +414,7 @@ class SnapCli:
snap_name, snap_name,
info.get("summary", ""), info.get("summary", ""),
snap._arch, snap._arch,
info.get("base"),
snap._channel, snap._channel,
info.get("publisher", {}).get("display-name", ""), info.get("publisher", {}).get("display-name", ""),
info.get("license", ""), info.get("license", ""),

Loading…
Cancel
Save