def notification_available(notification_version, maas_version=None): current_version = version.get_version_tuple(maas_version or version.get_maas_version()) log.debug(f"Current MAAS version: {repr(current_version)}") log.debug(f"Notification version: {notification_version}") notification_version_tuple = version.get_version_tuple( notification_version) return notification_version_tuple > current_version
def test__returns_expected_tuple(self): version = self.version actual_tuple = get_version_tuple(version) self.assertThat(actual_tuple, Equals(self.expected_tuple), version) expected_tuple__snap = list(self.expected_tuple) expected_tuple__snap[-1] = True expected_tuple__snap = tuple(expected_tuple__snap) version += "-snap" actual_tuple__snap = get_version_tuple(version) self.assertThat( actual_tuple__snap, Equals(expected_tuple__snap), version)
def test_returns_expected_tuple(self): self.useFixture(EnvironmentVariableFixture("SNAP", None)) version = self.version actual_tuple = get_version_tuple(version) self.assertThat(actual_tuple, Equals(self.expected_tuple), version) self.useFixture( EnvironmentVariableFixture("SNAP", "/var/snap/maas/123")) expected_tuple__snap = list(self.expected_tuple) expected_tuple__snap[-1] = True expected_tuple__snap = tuple(expected_tuple__snap) actual_tuple__snap = get_version_tuple(version) self.assertThat(actual_tuple__snap, Equals(expected_tuple__snap), version)
def get_controller_version_info(self): versions = list( self.select_related('node').filter( node__node_type__in=(NODE_TYPE.RACK_CONTROLLER, NODE_TYPE.REGION_CONTROLLER, NODE_TYPE.REGION_AND_RACK_CONTROLLER), version__isnull=False).values_list('node__hostname', 'node__system_id', 'version')) for i in range(len(versions)): version_info = list(versions[i]) version_info.append(get_version_tuple(version_info[-1])) versions[i] = ControllerVersionInfo(*version_info) return sorted(versions, key=lambda version: version[-1], reverse=True)
def dehydrate(self, obj, data, for_list=False): data = super().dehydrate(obj, data, for_list=for_list) data["version"] = obj.version if obj.version is not None and len(obj.version) > 0: version = get_version_tuple(obj.version) data["version__short"] = version.short_version long_version = version.short_version if len(version.extended_info) > 0: long_version += " (%s)" % version.extended_info if version.is_snap: long_version += " (snap)" data["version__long"] = long_version data["vlan_ids"] = [ interface.vlan_id for interface in obj.interface_set.all() ] data["service_ids"] = [service.id for service in obj.service_set.all()] return data