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)
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)
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."))
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)
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)
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)
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)
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)
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)
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)
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)
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."))
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."))