def test_ent_cert_no_product(self):
        self.ent_dir = StubCertificateDirectory(
            [StubEntitlementCertificate(None, provided_products=[],
                                        quantity=2)])

        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 42})
        self.sorter = CertSorter(self.prod_dir, self.ent_dir,
                stub_facts.get_facts())

        self.assertEqual(0, len(self.sorter.partially_valid_products))
    def test_simple_full_stack_0_sockets(self):
        prod_dir = StubCertificateDirectory([stub_prod_cert(INST_PID_1)])
        # System has 1 sockets:
        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 1})
        # 0 sockets is basically "unlimited" sockets
        # see bz#805415
        ent_dir = StubCertificateDirectory([
                stub_ent_cert(INST_PID_5, [INST_PID_1], stack_id=STACK_1, sockets=0)])
        sorter = CertSorter(prod_dir, ent_dir, stub_facts.get_facts())

        self.assertTrue(INST_PID_1 in sorter.valid_products)
        self.assertFalse(INST_PID_1 in sorter.partially_valid_products)
        self.assertFalse(INST_PID_1 in sorter.unentitled_products)
    def test_simple_partial_stack(self):
        prod_dir = StubCertificateDirectory([stub_prod_cert(INST_PID_1)])
        # System has 8 sockets:
        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 8})
        # Only 2 sockets covered:
        ent_dir = StubCertificateDirectory([
            stub_ent_cert(INST_PID_5, [INST_PID_1], stack_id=STACK_1, sockets=2)])
        sorter = CertSorter(prod_dir, ent_dir, stub_facts.get_facts())

        self.assertFalse(INST_PID_1 in sorter.unentitled_products)
        self.assertFalse(INST_PID_1 in sorter.valid_products)
        self.assertTrue(INST_PID_1 in sorter.partially_valid_products)
        self.assertEquals(1, len(sorter.partially_valid_products))
        self.assertEquals(1, len(sorter.partially_valid_products[INST_PID_1]))
    def test_simple_full_stack_singlecert_with_quantity(self):
        prod_dir = StubCertificateDirectory([stub_prod_cert(INST_PID_1)])
        # System has 8 sockets:
        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 8})
        # 1 ent cert providing 4 sockets with quantity 2 means we're valid:
        ent_dir = StubCertificateDirectory([
            stub_ent_cert(INST_PID_5, [INST_PID_1], stack_id=STACK_1,
                sockets=4, quantity=2)])
        sorter = CertSorter(prod_dir, ent_dir, stub_facts.get_facts())

        self.assertFalse(INST_PID_1 in sorter.unentitled_products)
        self.assertTrue(INST_PID_1 in sorter.valid_products)
        self.assertFalse(INST_PID_1 in sorter.partially_valid_products)
        self.assertEquals(0, len(sorter.partially_valid_products))
Exemplo n.º 5
0
    def test_non_stacked_lacking_sockets(self):
        prod_dir = StubCertificateDirectory([stub_prod_cert(INST_PID_1)])
        # System has 8 sockets:
        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 8})
        # Only 2 sockets covered by a non-stacked entitlement:
        ent_dir = StubCertificateDirectory(
            [stub_ent_cert(INST_PID_5, [INST_PID_1], sockets=2, quantity=5)])
        sorter = CertSorter(prod_dir, ent_dir, stub_facts.get_facts())

        self.assertFalse(INST_PID_1 in sorter.unentitled_products)
        self.assertFalse(INST_PID_1 in sorter.valid_products)
        self.assertTrue(INST_PID_1 in sorter.partially_valid_products)
        self.assertEquals(1, len(sorter.partially_valid_products))
        self.assertEquals(1, len(sorter.partially_valid_products[INST_PID_1]))
    def test_non_stacked_lacking_sockets(self):
        prod_dir = StubCertificateDirectory([stub_prod_cert(INST_PID_1)])
        # System has 8 sockets:
        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 8})
        # Only 2 sockets covered by a non-stacked entitlement:
        ent_dir = StubCertificateDirectory([
            stub_ent_cert(INST_PID_5, [INST_PID_1], sockets=2,
            quantity=5)])
        sorter = CertSorter(prod_dir, ent_dir, stub_facts.get_facts())

        self.assertFalse(INST_PID_1 in sorter.unentitled_products)
        self.assertFalse(INST_PID_1 in sorter.valid_products)
        self.assertTrue(INST_PID_1 in sorter.partially_valid_products)
        self.assertEquals(1, len(sorter.partially_valid_products))
        self.assertEquals(1, len(sorter.partially_valid_products[INST_PID_1]))
Exemplo n.º 7
0
 def test_is_not_vert_when_fact_is_defined_as_empty(self):
     fact_dict = {
         QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: ""
     }
     facts = StubFacts(fact_dict, facts_changed=False)
     calculator = QuantityDefaultValueCalculator(facts, [])
     self.assertFalse(calculator._is_virtual_machine())
Exemplo n.º 8
0
    def test_partial_stack_for_uninstalled_products(self):
        # No products installed:
        prod_dir = StubCertificateDirectory([])

        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 42})
        ents = []
        ents.append(
            stub_ent_cert(INST_PID_5, ['prod1'], stack_id=STACK_1, quantity=2))
        ent_dir = StubCertificateDirectory(ents)
        sorter = CertSorter(prod_dir, ent_dir, stub_facts.get_facts())

        # No installed products, so nothing should show up as partially valid:
        self.assertEquals(0, len(sorter.partially_valid_products))

        self.assertEquals(1, len(sorter.partial_stacks))
        self.assertTrue(STACK_1 in sorter.partial_stacks)
        self.assertFalse(sorter.is_valid())
    def test_partial_stack_for_uninstalled_products(self):
        # No products installed:
        prod_dir = StubCertificateDirectory([])

        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 42})
        ents = []
        ents.append(stub_ent_cert(INST_PID_5, ['prod1'],
            stack_id=STACK_1, quantity=2))
        ent_dir = StubCertificateDirectory(ents)
        sorter = CertSorter(prod_dir, ent_dir,
                stub_facts.get_facts())

        # No installed products, so nothing should show up as partially valid:
        self.assertEquals(0, len(sorter.partially_valid_products))

        self.assertEquals(1, len(sorter.partial_stacks))
        self.assertTrue(STACK_1 in sorter.partial_stacks)
        self.assertFalse(sorter.is_valid())
Exemplo n.º 10
0
    def test_partial_stack_different_first_product(self):
        prod_dir = StubCertificateDirectory([stub_prod_cert(INST_PID_1)])

        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 4})
        ents = []
        ents.append(stub_ent_cert(INST_PID_5, [INST_PID_1],
            stack_id=STACK_1, sockets=1))
        ents.append(stub_ent_cert(INST_PID_6, [INST_PID_1],
            stack_id=STACK_1, sockets=1))
        ent_dir = StubCertificateDirectory(ents)

        sorter = CertSorter(prod_dir, ent_dir,
                stub_facts.get_facts())

        # Installed product should show up as partially valid:
        self.assertEquals(1, len(sorter.partially_valid_products))
        self.assertTrue(INST_PID_1 in sorter.partially_valid_products)
        self.assertFalse(INST_PID_1 in sorter.valid_products)
        self.assertTrue(STACK_1 in sorter.partial_stacks)
Exemplo n.º 11
0
 def __init__(self):
     self.parent_window = Mock()
     self.backend = StubBackend()
     self.async = Mock()
     self.reg_info = Mock()
     self.expected_facts = {'fact1': 'one',
                            'fact2': 'two',
                            'system': '',
                            'system.uuid': 'MOCKUUID'}
     self.facts = StubFacts(fact_dict=self.expected_facts)
Exemplo n.º 12
0
    def setUp(self):

        super(FactDialogTests, self).setUp()

        expected_facts = {'fact1': 'one',
                          'fact2': 'two',
                          'system': 'Unknown',
                          'system.uuid': 'MOCKUUID'}

        self.expected_facts = expected_facts
        self.stub_facts = StubFacts(expected_facts)
    def setUp(self):
        self.backend = StubBackend()
        self.consumer = Mock()
        expected_facts = {
            'fact1': 'one',
            'fact2': 'two',
            'system': '',
            'system.uuid': 'MOCKUUID'
        }
        self.facts = StubFacts(fact_dict=expected_facts)

        self.rs = RegisterScreen(self.backend, self.consumer, self.facts)
Exemplo n.º 14
0
    def test_valid_stack_different_first_products(self):
        prod_dir = StubCertificateDirectory([stub_prod_cert(INST_PID_1)])

        stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": 4})
        # Two entitlements, same stack, different first products, each
        # providing 2 sockets: (should be valid)
        ents = []
        ents.append(stub_ent_cert(INST_PID_5, [INST_PID_1],
            stack_id=STACK_1, sockets=2))
        ents.append(stub_ent_cert(INST_PID_6, [INST_PID_1],
            stack_id=STACK_1, sockets=2))
        ent_dir = StubCertificateDirectory(ents)

        sorter = CertSorter(prod_dir, ent_dir,
                stub_facts.get_facts())

        # Installed product should show up as valid:
        self.assertEquals(1, len(sorter.valid_products))
        self.assertTrue(INST_PID_1 in sorter.valid_products)
        self.assertEquals(0, len(sorter.partially_valid_products))
        self.assertEquals(0, len(sorter.partial_stacks))
Exemplo n.º 15
0
    def test_if_not_multi_entitled_defualt_to_1(self):
        fact_dict = {
            QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: False,
            QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '1'
        }
        facts = StubFacts(fact_dict, facts_changed=False)

        calculator = QuantityDefaultValueCalculator(facts, [])
        calculator._get_total_consumed = zero_consumed

        pool = create_pool("my-test-product", "My Test Product")
        qty = calculator.calculate(pool)
        self.assertEquals(1, qty)
Exemplo n.º 16
0
    def setUp(self):
        self.uep = StubUEP
        self.backend = StubBackend()
        self.consumer = Mock()
        self.facts = StubFacts({})

        self.cert1 = StubEntitlementCertificate(
            StubProduct('product2'),
            start_date=datetime.datetime(2010, 1, 1),
            end_date=datetime.datetime(2060, 1, 1),
            quantity="10",
            stacking_id=None)

        self.cert_dir = StubCertificateDirectory([self.cert1])
Exemplo n.º 17
0
    def setUp(self):

        expected_facts = {'fact1': 'one',
                          'fact2': 'two',
                          'system': 'Unknown',
                          'system.uuid': 'MOCKUUID'}

        self.expected_facts = expected_facts
        self.stub_facts = StubFacts(expected_facts)

        self.uep = StubUEP()

        self.consumer = Mock()
        self.consumer.uuid = "MOCKUUID"
        self.consumer.name = "MOCK CONSUMER"

        sys.stderr = MockStderr
        sys.stdout = MockStdout
Exemplo n.º 18
0
    def setUp(self):
        super(RegisterScreenTests, self).setUp()
        self.backend = StubBackend()
        expected_facts = {
            'fact1': 'one',
            'fact2': 'two',
            'system': '',
            'system.uuid': 'MOCKUUID'
        }
        self.facts = StubFacts(fact_dict=expected_facts)

        self.rs = RegisterScreen(self.backend, self.facts)

        self.rs._screens[CHOOSE_SERVER_PAGE] = Mock()
        self.rs._screens[CHOOSE_SERVER_PAGE].index = 0
        self.rs._screens[CHOOSE_SERVER_PAGE].button_label = "Dummy"
        self.rs._screens[CHOOSE_SERVER_PAGE].apply.return_value = \
                CREDENTIALS_PAGE
Exemplo n.º 19
0
    def test_on_virtual_machine_default_uses_1_if_vcpu_and_sockets_do_not_exist_on_product(
            self):
        fact_dict = {
            QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: True,
            QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '4',
            QuantityDefaultValueCalculator._CPUS_FACT_NAME: '8'
        }
        facts = StubFacts(fact_dict, facts_changed=False)

        calculator = QuantityDefaultValueCalculator(facts, [])
        calculator._get_total_consumed = zero_consumed

        self.assertTrue(calculator._is_virtual_machine())
        productAttrs = [create_attr("multi-entitlement", "yes")]
        pool = create_pool("my-test-product",
                           "My Test Product",
                           productAttributes=productAttrs)
        qty = calculator.calculate(pool)
        self.assertEquals(1, qty)
Exemplo n.º 20
0
    def setUp(self):

        expected_facts = {
            'fact1': 'one',
            'fact2': 'two',
            'system': 'Unknown',
            'system.uuid': 'MOCKUUID'
        }

        self.expected_facts = expected_facts
        self.stub_facts = StubFacts(expected_facts)

        self.backend = StubBackend()

        id_mock = Mock()
        id_mock.name = 'system'
        id_mock.uuid = 'Random UUID'
        id_mock.exists_and_valid = Mock(return_value=True)
        provide(IDENTITY, id_mock)

        sys.stderr = MockStderr
        sys.stdout = MockStdout
Exemplo n.º 21
0
    def test_on_pysical_machine_default_to_num_sockets_by_socket_count(self):
        fact_dict = {
            QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: False,
            QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '4'
        }
        facts = StubFacts(fact_dict, facts_changed=False)
        calculator = QuantityDefaultValueCalculator(facts, [])
        calculator._get_total_consumed = zero_consumed

        self.assertFalse(calculator._is_virtual_machine())

        productAttrs = [
            create_attr("multi-entitlement", "yes"),
            create_attr(QuantityDefaultValueCalculator._SOCKETS_PROD_ATTR_NAME,
                        "2")
        ]
        pool = create_pool("my-test-product",
                           "My Test Product",
                           productAttributes=productAttrs)
        qty = calculator.calculate(pool)
        # ceil(m_sockets / p_socket)
        self.assertEquals(2, qty)
Exemplo n.º 22
0
    def test_on_virt_machine_default_rounds_up(self):
        fact_dict = {
            QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: True,
            QuantityDefaultValueCalculator._CPUS_FACT_NAME: '8'
        }
        facts = StubFacts(fact_dict, facts_changed=False)

        calculator = QuantityDefaultValueCalculator(facts, [])
        calculator._get_total_consumed = zero_consumed

        self.assertTrue(calculator._is_virtual_machine())
        productAttrs = [
            create_attr("multi-entitlement", "yes"),
            create_attr(QuantityDefaultValueCalculator._CPUS_PROD_ATTR_NAME,
                        "6")
        ]
        pool = create_pool("my-test-product",
                           "My Test Product",
                           productAttributes=productAttrs)
        qty = calculator.calculate(pool)
        # ceil(m_cpus / p_cpus)
        self.assertEquals(2, qty)
Exemplo n.º 23
0
    def test_calculated_value_is_zero_when_negative_value_is_calculated(self):
        fact_dict = {
            QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: False,
            QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '4'
        }
        facts = StubFacts(fact_dict, facts_changed=False)
        calculator = QuantityDefaultValueCalculator(facts, [])
        calculator._get_total_consumed = ten_consumed

        self.assertFalse(calculator._is_virtual_machine())

        productAttrs = [
            create_attr("multi-entitlement", "yes"),
            create_attr(QuantityDefaultValueCalculator._SOCKETS_PROD_ATTR_NAME,
                        "2")
        ]
        pool = create_pool("my-test-product",
                           "My Test Product",
                           productAttributes=productAttrs)
        qty = calculator.calculate(pool)
        # 10 are already consumed, so 4/2 - 10 = -8
        self.assertEquals(0, qty)
Exemplo n.º 24
0
 def test_get_total_consumed_adds_matched(self):
     calculator = QuantityDefaultValueCalculator(StubFacts({}),
                                                 entitlements)
     self.assertEquals(5, calculator._get_total_consumed(product_id_1))
Exemplo n.º 25
0
def create_cert_sorter(product_certs, entitlement_certs, machine_sockets=8):
    stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": machine_sockets})
    return CertSorter(StubCertificateDirectory(product_certs),
                      StubEntitlementDirectory(entitlement_certs),
                      stub_facts.get_facts())
Exemplo n.º 26
0
def create_cert_sorter(product_certs, entitlement_certs, machine_sockets=8):
    stub_facts = StubFacts(fact_dict={"cpu.cpu_socket(s)": machine_sockets})
    return CertSorter(StubCertificateDirectory(product_certs),
                      StubEntitlementDirectory(entitlement_certs),
                      stub_facts.get_facts())
Exemplo n.º 27
0
 def test_total_consumed_does_not_include_future_entitlements(self):
     calculator = QuantityDefaultValueCalculator(StubFacts({}),
                                                 entitlements)
     self.assertEquals(9, calculator._get_total_consumed(product_id_2))
Exemplo n.º 28
0
 def test_is_not_vert_when_fact_is_not_defined(self):
     facts = StubFacts({}, facts_changed=False)
     calculator = QuantityDefaultValueCalculator(facts, [])
     self.assertFalse(calculator._is_virtual_machine())
Exemplo n.º 29
0
 def test_get_total_consumed_returns_zero_when_no_matches(self):
     calculator = QuantityDefaultValueCalculator(StubFacts({}),
                                                 entitlements)
     self.assertEquals(0, calculator._get_total_consumed("does-not-match"))