Exemple #1
0
    def setUp(self):
        super(ExternalSchedulerApiTestBatchMode, self).setUp()
        base = {
            'address': u'http://localhost:1',
            'id': u'foo',
            'dimensions': ['key1:value1', 'key2:value2'],
            'all_dimensions': None,
            'any_dimensions': None,
            'enabled': True,
            'allow_es_fallback': True,
        }
        self.cfg_foo = pools_config.ExternalSchedulerConfig(**base)
        base['id'] = u'hoe'
        self.cfg_hoe = pools_config.ExternalSchedulerConfig(**base)

        self.mock(external_scheduler, '_get_client', self._get_client)
        self._enqueue_orig = self.mock(utils, 'enqueue_task', self._enqueue)

        self._client = None

        # Setup the backend to handle task queues.
        self.app = webtest.TestApp(handlers_backend.create_application(True),
                                   extra_environ={
                                       'REMOTE_ADDR':
                                       self.source_ip,
                                       'SERVER_SOFTWARE':
                                       os.environ['SERVER_SOFTWARE'],
                                   })

        self.cfg = config.settings()
        self.cfg.enable_batch_es_notifications = True
        self.mock(config, 'settings', lambda: self.cfg)
Exemple #2
0
    def setUp(self):
        super(ExternalSchedulerApiTest, self).setUp()
        self.es_cfg = pools_config.ExternalSchedulerConfig(
            address=u'http://localhost:1',
            id=u'foo',
            dimensions=['key1:value1', 'key2:value2'],
            all_dimensions=None,
            any_dimensions=None,
            enabled=True,
            allow_es_fallback=True)

        # Make the values deterministic.
        self.mock_now(datetime.datetime(2014, 1, 2, 3, 4, 5, 6))
        self.mock(random, 'getrandbits', lambda _: 0x88)

        # Use the local fake client to external scheduler..
        self.mock(external_scheduler, '_get_client', self._get_client)
        self._client = None

        # Setup the backend to handle task queues.
        self.app = webtest.TestApp(handlers_backend.create_application(True),
                                   extra_environ={
                                       'REMOTE_ADDR':
                                       self.source_ip,
                                       'SERVER_SOFTWARE':
                                       os.environ['SERVER_SOFTWARE'],
                                   })
        self._enqueue_orig = self.mock(utils, 'enqueue_task', self._enqueue)

        cfg = config.settings()
        cfg.enable_batch_es_notifications = False
        self.mock(config, 'settings', lambda: cfg)
Exemple #3
0
    def test_get_pool_config(self):
        self.mock_config(TEST_CONFIG)
        self.assertEqual(None, pools_config.get_pool_config('unknown'))

        expected1 = pools_config.init_pool_config(
            name=u'pool_name',
            rev='rev',
            scheduling_users=frozenset([
                auth.Identity('user', '*****@*****.**'),
                auth.Identity('user', '*****@*****.**'),
            ]),
            scheduling_groups=frozenset([u'group2', u'group1']),
            trusted_delegatees={
                auth.Identity('user', '*****@*****.**'):
                pools_config.TrustedDelegatee(
                    peer_id=auth.Identity('user', '*****@*****.**'),
                    required_delegation_tags=frozenset([u'k:tag1', u'k:tag2']),
                ),
            },
            service_accounts=frozenset([u'*****@*****.**', u'*****@*****.**']),
            service_accounts_groups=(u'accounts_group1', u'accounts_group2'),
            realm='test:pool/realm',
            enforced_realm_permissions=frozenset(
                [realms_pb2.REALM_PERMISSION_POOLS_CREATE_TASK]),
            default_isolate=pools_config.IsolateServer(
                server='https://isolate.server.example.com',
                namespace='default-gzip',
            ),
            default_cipd=pools_config.CipdServer(
                server='https://cipd.server.example.com',
                package_name='some-cipd-client',
                client_version='latest',
            ),
            external_schedulers=(pools_config.ExternalSchedulerConfig(
                address=u'externalscheduler.google.com',
                id=u'ext1',
                dimensions=frozenset(['key2:value2', 'key1:value1']),
                all_dimensions=frozenset(),
                any_dimensions=frozenset(),
                enabled=True,
                allow_es_fallback=True,
            ), ),
        )
        expected2 = expected1._replace(name='another_name')

        self.assertEqual(expected1, pools_config.get_pool_config('pool_name'))
        self.assertEqual(expected2,
                         pools_config.get_pool_config('another_name'))
        self.assertEqual(['another_name', 'pool_name'], pools_config.known())