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
Beispiel #2
0
 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)
Beispiel #3
0
    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)
Beispiel #4
0
 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)
Beispiel #5
0
 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