Exemplo n.º 1
0
    def test_future_entitled_products(self):
        cert = StubProductCertificate(StubProduct('product1'))
        product_dir = StubCertificateDirectory([cert])

        cert1 = StubEntitlementCertificate(StubProduct('product1'),
                                           start_date=datetime(2010,
                                                               1,
                                                               1,
                                                               tzinfo=GMT()),
                                           end_date=datetime(2050,
                                                             1,
                                                             1,
                                                             tzinfo=GMT()))
        cert2 = StubEntitlementCertificate(StubProduct('product1'),
                                           start_date=datetime(2049,
                                                               1,
                                                               1,
                                                               tzinfo=GMT()),
                                           end_date=datetime(2070,
                                                             1,
                                                             1,
                                                             tzinfo=GMT()))
        ent_dir = StubCertificateDirectory([cert1, cert2])

        last_valid_date = find_first_invalid_date(ent_dir=ent_dir,
                                                  product_dir=product_dir,
                                                  facts_dict={})
        self.assertEqual(2070, last_valid_date.year)
        self.assertEqual(1, last_valid_date.month)
        self.assertEqual(2, last_valid_date.day)
Exemplo n.º 2
0
    def test_all_expired_entitlements(self):
        cert = StubProductCertificate(StubProduct('product1'))
        product_dir = StubCertificateDirectory([cert])

        cert1 = StubEntitlementCertificate(StubProduct('product1'),
                                           start_date=datetime(2000,
                                                               1,
                                                               1,
                                                               tzinfo=GMT()),
                                           end_date=datetime(2001,
                                                             1,
                                                             1,
                                                             tzinfo=GMT()))
        cert2 = StubEntitlementCertificate(StubProduct('product1'),
                                           start_date=datetime(2000,
                                                               12,
                                                               1,
                                                               tzinfo=GMT()),
                                           end_date=datetime(2005,
                                                             1,
                                                             1,
                                                             tzinfo=GMT()))
        ent_dir = StubCertificateDirectory([cert1, cert2])

        # Because all entitlements have expired, we should get back the current
        # date as the last date of valid entitlements:
        today = datetime.now(GMT())
        last_valid_date = find_first_invalid_date(ent_dir=ent_dir,
                                                  product_dir=product_dir,
                                                  facts_dict={})
        self.assertEqual(today.year, last_valid_date.year)
        self.assertEqual(today.month, last_valid_date.month)
        self.assertEqual(today.day, last_valid_date.day)
Exemplo n.º 3
0
    def _set_validity_status(self):
        """ Updates the entitlement validity status portion of the UI. """

        if ClassicCheck().is_registered_with_classic():
            self._set_status_icons(VALID)
            self.subscription_status_label.set_text(
                get_branding().RHSMD_REGISTERED_TO_OTHER)
            return

        is_registered = self.consumer.is_valid()
        self.set_registered(is_registered)

        # Look for products which have invalid entitlements
        sorter = CertSorter(self.product_dir, self.entitlement_dir,
                            self.facts.get_facts())

        warn_count = len(sorter.expired_products) + \
                len(sorter.unentitled_products)

        partial_count = len(sorter.partially_valid_products)

        if warn_count > 0:
            self._set_status_icons(INVALID)
            # Change wording slightly for just one product
            if warn_count > 1:
                self.subscription_status_label.set_markup(
                    _("%s installed products do not have valid subscriptions.")
                    % warn_count)
            else:
                self.subscription_status_label.set_markup(
                    _("1 installed product does not have a valid subscription."
                      ))

        elif partial_count > 0:
            self._set_status_icons(PARTIAL)
            self.subscription_status_label.set_markup(
                _("This system does not match subscription limits."))

        else:
            first_invalid = find_first_invalid_date(self.entitlement_dir,
                                                    self.product_dir,
                                                    self.facts.get_facts())
            self._set_status_icons(VALID)
            if first_invalid:
                self.subscription_status_label.set_markup(
                        _("System is properly subscribed through %s.") % \
                            managerlib.formatDate(first_invalid))
            else:
                # No product certs installed, no first invalid date, and
                # the subscription assistant can't do anything, so we'll disable
                # the button to launch it:
                self.subscription_status_label.set_text(
                    _("No installed products detected."))

        if not is_registered:
            self.subscription_status_label.set_text(
                _("Keep your system up to date by registering."))
Exemplo n.º 4
0
    def test_just_entitlements(self):
        cert1 = StubEntitlementCertificate(
            StubProduct("product1"), start_date=datetime(2010, 1, 1), end_date=datetime(2050, 1, 1)
        )
        cert2 = StubEntitlementCertificate(
            StubProduct("product2"), start_date=datetime(2010, 1, 1), end_date=datetime(2060, 1, 1)
        )
        ent_dir = StubCertificateDirectory([cert1, cert2])
        prod_dir = StubCertificateDirectory([])

        last_valid_date = find_first_invalid_date(ent_dir, prod_dir, {})
        self.assertTrue(last_valid_date is None)
Exemplo n.º 5
0
    def test_just_entitlements(self):
        cert1 = StubEntitlementCertificate(
                    StubProduct('product1'), start_date=datetime(2010, 1, 1),
                    end_date=datetime(2050, 1, 1))
        cert2 = StubEntitlementCertificate(
                    StubProduct('product2'),
                    start_date=datetime(2010, 1, 1),
                    end_date=datetime(2060, 1, 1))
        ent_dir = StubCertificateDirectory([cert1, cert2])
        prod_dir = StubCertificateDirectory([])

        last_valid_date = find_first_invalid_date(ent_dir, prod_dir, {})
        self.assertTrue(last_valid_date is None)
Exemplo n.º 6
0
    def test_entitled_products(self):
        cert = StubProductCertificate(StubProduct("product1"))
        prod_dir = StubCertificateDirectory([cert])

        cert1 = StubEntitlementCertificate(
            StubProduct("product1"), start_date=datetime(2010, 1, 1), end_date=datetime(2050, 1, 1)
        )
        cert2 = StubEntitlementCertificate(
            StubProduct("product2"), start_date=datetime(2010, 1, 1), end_date=datetime(2060, 1, 1)
        )
        ent_dir = StubCertificateDirectory([cert1, cert2])

        last_valid_date = find_first_invalid_date(ent_dir, prod_dir, {})
        self.assertEqual(2050, last_valid_date.year)
Exemplo n.º 7
0
    def test_entitled_products(self):
        cert = StubProductCertificate(StubProduct('product1'))
        prod_dir = StubCertificateDirectory([cert])

        cert1 = StubEntitlementCertificate(
                StubProduct('product1'), start_date=datetime(2010, 1, 1),
                end_date=datetime(2050, 1, 1))
        cert2 = StubEntitlementCertificate(
                StubProduct('product2'),
                start_date=datetime(2010, 1, 1),
                end_date=datetime(2060, 1, 1))
        ent_dir = StubCertificateDirectory([cert1, cert2])

        last_valid_date = find_first_invalid_date(ent_dir, prod_dir, {})
        self.assertEqual(2050, last_valid_date.year)
Exemplo n.º 8
0
    def test_future_entitled_products(self):
        cert = StubProductCertificate(StubProduct('product1'))
        prod_dir = StubCertificateDirectory([cert])

        cert1 = StubEntitlementCertificate(
                StubProduct('product1'), start_date=datetime(2010, 1, 1, tzinfo=GMT()),
                end_date=datetime(2050, 1, 1, tzinfo=GMT()))
        cert2 = StubEntitlementCertificate(
                StubProduct('product1'),
                start_date=datetime(2049, 1, 1, tzinfo=GMT()),
                end_date=datetime(2070, 1, 1, tzinfo=GMT()))
        ent_dir = StubCertificateDirectory([cert1, cert2])

        last_valid_date = find_first_invalid_date(ent_dir, prod_dir, {})
        self.assertEqual(2070, last_valid_date.year)
        self.assertEqual(1, last_valid_date.month)
        self.assertEqual(2, last_valid_date.day)
Exemplo n.º 9
0
    def test_currently_unentitled_products(self):
        cert = StubProductCertificate(StubProduct("unentitledProduct"))
        prod_dir = StubCertificateDirectory([cert])

        cert1 = StubEntitlementCertificate(
            StubProduct("product1"), start_date=datetime(2010, 1, 1), end_date=datetime(2050, 1, 1)
        )
        cert2 = StubEntitlementCertificate(
            StubProduct("product2"), start_date=datetime(2010, 1, 1), end_date=datetime(2060, 1, 1)
        )
        ent_dir = StubCertificateDirectory([cert1, cert2])

        # Because we have an unentitled product, we should get back the current
        # date as the last date of valid entitlements:
        today = datetime.now(GMT())
        last_valid_date = find_first_invalid_date(ent_dir, prod_dir, {})
        self.assertEqual(today.year, last_valid_date.year)
        self.assertEqual(today.month, last_valid_date.month)
        self.assertEqual(today.day, last_valid_date.day)
Exemplo n.º 10
0
    def test_all_expired_entitlements(self):
        cert = StubProductCertificate(StubProduct('product1'))
        prod_dir = StubCertificateDirectory([cert])

        cert1 = StubEntitlementCertificate(
                StubProduct('product1'), start_date=datetime(2000, 1, 1, tzinfo=GMT()),
                end_date=datetime(2001, 1, 1, tzinfo=GMT()))
        cert2 = StubEntitlementCertificate(
                StubProduct('product1'),
                start_date=datetime(2000, 12, 1, tzinfo=GMT()),
                end_date=datetime(2005, 1, 1, tzinfo=GMT()))
        ent_dir = StubCertificateDirectory([cert1, cert2])

        # Because all entitlements have expired, we should get back the current
        # date as the last date of valid entitlements:
        today = datetime.now(GMT())
        last_valid_date = find_first_invalid_date(ent_dir, prod_dir, {})
        self.assertEqual(today.year, last_valid_date.year)
        self.assertEqual(today.month, last_valid_date.month)
        self.assertEqual(today.day, last_valid_date.day)
Exemplo n.º 11
0
    def test_currently_unentitled_products(self):
        cert = StubProductCertificate(StubProduct('unentitledProduct'))
        prod_dir = StubCertificateDirectory([cert])

        cert1 = StubEntitlementCertificate(
                StubProduct('product1'), start_date=datetime(2010, 1, 1),
                end_date=datetime(2050, 1, 1))
        cert2 = StubEntitlementCertificate(
                StubProduct('product2'),
                start_date=datetime(2010, 1, 1),
                end_date=datetime(2060, 1, 1))
        ent_dir = StubCertificateDirectory([cert1, cert2])

        # Because we have an unentitled product, we should get back the current
        # date as the last date of valid entitlements:
        today = datetime.now(GMT())
        last_valid_date = find_first_invalid_date(ent_dir, prod_dir, {})
        self.assertEqual(today.year, last_valid_date.year)
        self.assertEqual(today.month, last_valid_date.month)
        self.assertEqual(today.day, last_valid_date.day)
Exemplo n.º 12
0
    def _set_validity_status(self):
        """ Updates the entitlement validity status portion of the UI. """

        if ClassicCheck().is_registered_with_classic():
            self._set_status_icons(VALID)
            self.subscription_status_label.set_text(
                _("This system is registered to RHN Classic"))
            return

        is_registered = ConsumerIdentity.existsAndValid()
        self.set_registered(is_registered)

        # Look for products which have invalid entitlements
        sorter = CertSorter(self.product_dir, self.entitlement_dir,
                            self.facts.get_facts())

        warn_count = len(sorter.expired_products) + \
                len(sorter.unentitled_products)

        partial_count = len(sorter.partially_valid_products)

        if warn_count > 0:
            self._set_status_icons(INVALID)
            # Change wording slightly for just one product
            if warn_count > 1:
                self.subscription_status_label.set_markup(
                    _("You have <b>%s</b> products with <i>invalid</i> entitlement certificates."
                      ) % warn_count)
            else:
                self.subscription_status_label.set_markup(
                    _("You have <b>1</b> product with an <i>invalid</i> entitlement certificate."
                      ))

        elif partial_count > 0:
            self._set_status_icons(PARTIAL)
            # Change wording slightly for just one product
            if partial_count > 1:
                self.subscription_status_label.set_markup(
                    _("You have <b>%s</b> products in need of <i>additional</i> entitlement certificates."
                      ) % partial_count)
            else:
                self.subscription_status_label.set_markup(
                    _("You have <b>1</b> product in need of <i>additional</i> entitlement certificates."
                      ))

        else:
            first_invalid = find_first_invalid_date(self.entitlement_dir,
                                                    self.product_dir,
                                                    self.facts.get_facts())
            self._set_status_icons(VALID)
            if first_invalid:
                self.subscription_status_label.set_markup(
                        _("Product entitlement certificates <i>valid</i> until %s") % \
                            managerlib.formatDate(first_invalid))
            else:
                # No product certs installed, no first invalid date, and
                # the subscription assistant can't do anything, so we'll disable
                # the button to launch it:
                self.subscription_status_label.set_text(
                    _("No product certificates installed."))

        if not is_registered:
            self.subscription_status_label.set_text(
                _("You must register this system before subscribing."))
Exemplo n.º 13
0
    def _set_validity_status(self):
        """ Updates the entitlement validity status portion of the UI. """

        if ClassicCheck().is_registered_with_classic():
            self._set_status_icons(VALID)
            self.subscription_status_label.set_text(
                _("This system is registered to RHN Classic"))
            return

        is_registered = ConsumerIdentity.existsAndValid()
        self.set_registered(is_registered)

        # Look for products which have invalid entitlements
        sorter = CertSorter(self.product_dir, self.entitlement_dir,
                self.facts.get_facts())

        warn_count = len(sorter.expired_products) + \
                len(sorter.unentitled_products)

        partial_count = len(sorter.partially_valid_products)

        if warn_count > 0:
            self._set_status_icons(INVALID)
            # Change wording slightly for just one product
            if warn_count > 1:
                self.subscription_status_label.set_markup(
                        _("You have <b>%s</b> products with <i>invalid</i> entitlement certificates.")
                        % warn_count)
            else:
                self.subscription_status_label.set_markup(
                        _("You have <b>1</b> product with an <i>invalid</i> entitlement certificate."))

        elif partial_count > 0:
            self._set_status_icons(PARTIAL)
            # Change wording slightly for just one product
            if partial_count > 1:
                self.subscription_status_label.set_markup(
                        _("You have <b>%s</b> products in need of <i>additional</i> entitlement certificates.")
                        % partial_count)
            else:
                self.subscription_status_label.set_markup(
                        _("You have <b>1</b> product in need of <i>additional</i> entitlement certificates."))

        else:
            first_invalid = find_first_invalid_date(self.entitlement_dir,
                    self.product_dir, self.facts.get_facts())
            self._set_status_icons(VALID)
            if first_invalid:
                self.subscription_status_label.set_markup(
                        _("Product entitlement certificates <i>valid</i> until %s") % \
                            managerlib.formatDate(first_invalid))
            else:
                # No product certs installed, no first invalid date, and
                # the subscription assistant can't do anything, so we'll disable
                # the button to launch it:
                self.subscription_status_label.set_text(
                        _("No product certificates installed."))

        if not is_registered:
            self.subscription_status_label.set_text(
                _("You must register this system before subscribing."))