def _get_snap_version(self, snap_yaml): """Arrange for `snap_yaml` to be loaded by `get_snap_version`. Puts `snap_yaml` at $tmpdir/meta/snap.yaml, sets SNAP=$tmpdir in the environment, then calls `get_snap_version`. """ snap_path = Path(self.make_dir()) snap_yaml_path = snap_path.joinpath("meta", "snap.yaml") snap_yaml_path.parent.mkdir() snap_yaml_path.write_text(snap_yaml, "utf-8") with EnvironmentVariable("SNAP", str(snap_path)): return snappy.get_snap_version()
def get_running_version() -> MAASVersion: """Return the version for the running MAAS.""" git_rev = None revno = 0 if snappy.running_in_snap(): version_str = snappy.get_snap_version() else: version_str = _get_version_from_apt(RACK_PACKAGE_NAME, REGION_PACKAGE_NAME) if not version_str: version_str = _get_version_from_python_package() git_rev = _get_maas_repo_hash() revno = _get_maas_repo_commit_count() maas_version = MAASVersion.from_string(version_str) if (not maas_version.git_rev) and git_rev: maas_version = dataclasses.replace(maas_version, git_rev=git_rev) if (not maas_version.revno) and revno: maas_version = dataclasses.replace(maas_version, revno=revno) return maas_version
def get_maas_version(): """Return the apt or snap version for the main MAAS package.""" if snappy.running_in_snap(): return snappy.get_snap_version() else: return get_version_from_apt(RACK_PACKAGE_NAME, REGION_PACKAGE_NAME)
def test_get_snap_version_returns_None_when_no_snap(self): self.patch(snappy, "get_snap_path").return_value = None self.assertIsNone(snappy.get_snap_version())