示例#1
0
 def test_bad_pool_name(self):
     n = 'x' * 300
     cfg = pools_pb2.PoolsCfg(pool=[pools_pb2.Pool(name=[n])])
     self.validator_test(cfg, [
         'pool #0 (%s): bad pool name "%s", not a valid dimension value' %
         (n, n),
     ])
示例#2
0
 def test_bad_scheduling_group(self):
     cfg = pools_pb2.PoolsCfg(pool=[
         pools_pb2.Pool(name=['abc'],
                        schedulers=pools_pb2.Schedulers(group=['!!!'], )),
     ])
     self.validator_test(cfg, [
         'pool #0 (abc): bad group name "!!!"',
     ])
示例#3
0
 def test_duplicate_pool_name(self):
     cfg = pools_pb2.PoolsCfg(pool=[
         pools_pb2.Pool(name=['abc']),
         pools_pb2.Pool(name=['abc']),
     ])
     self.validator_test(cfg, [
         'pool #1 (abc): pool "abc" was already declared',
     ])
示例#4
0
 def test_bad_service_account_group(self):
     cfg = pools_pb2.PoolsCfg(pool=[
         pools_pb2.Pool(
             name=['abc'],
             allowed_service_account_group=['!!!'],
         )
     ])
     self.validator_test(cfg, [
         'pool #0 (abc): bad allowed_service_account_group #0 "!!!"',
     ])
示例#5
0
 def test_bad_service_account(self):
     cfg = pools_pb2.PoolsCfg(pool=[
         pools_pb2.Pool(
             name=['abc'],
             allowed_service_account=['not an email'],
         )
     ])
     self.validator_test(cfg, [
         'pool #0 (abc): bad allowed_service_account #0 "not an email"',
     ])
示例#6
0
 def test_no_delegatee_peer_id(self):
     cfg = pools_pb2.PoolsCfg(pool=[
         pools_pb2.Pool(name=['abc'],
                        schedulers=pools_pb2.Schedulers(trusted_delegation=[
                            pools_pb2.TrustedDelegation()
                        ], )),
     ])
     self.validator_test(cfg, [
         'pool #0 (abc): trusted_delegation #0 (): "peer_id" is required',
     ])
示例#7
0
 def test_bad_scheduling_user(self):
     cfg = pools_pb2.PoolsCfg(pool=[
         pools_pb2.Pool(name=['abc'],
                        schedulers=pools_pb2.Schedulers(
                            user=['not valid email'], )),
     ])
     self.validator_test(cfg, [
         'pool #0 (abc): bad user value "not valid email" - '
         'Identity has invalid format: not valid email',
     ])
示例#8
0
 def test_bad_delegatee_peer_id(self):
     cfg = pools_pb2.PoolsCfg(pool=[
         pools_pb2.Pool(name=['abc'],
                        schedulers=pools_pb2.Schedulers(trusted_delegation=[
                            pools_pb2.TrustedDelegation(
                                peer_id='not valid email', )
                        ], )),
     ])
     self.validator_test(cfg, [
         'pool #0 (abc): trusted_delegation #0 (not valid email): bad peer_id '
         'value "not valid email" - Identity has invalid format: not valid email',
     ])
示例#9
0
 def test_duplicate_delegatee_peer_id(self):
     cfg = pools_pb2.PoolsCfg(pool=[
         pools_pb2.Pool(name=['abc'],
                        schedulers=pools_pb2.Schedulers(trusted_delegation=[
                            pools_pb2.TrustedDelegation(
                                peer_id='*****@*****.**'),
                            pools_pb2.TrustedDelegation(
                                peer_id='*****@*****.**'),
                        ], )),
     ])
     self.validator_test(cfg, [
         'pool #0 (abc): trusted_delegation #0 ([email protected]): peer '
         '"*****@*****.**" was specified twice',
     ])
示例#10
0
 def test_bad_delegation_tag(self):
     cfg = pools_pb2.PoolsCfg(pool=[
         pools_pb2.Pool(name=['abc'],
                        schedulers=pools_pb2.Schedulers(trusted_delegation=[
                            pools_pb2.TrustedDelegation(
                                peer_id='*****@*****.**',
                                require_any_of=pools_pb2.TrustedDelegation.
                                TagList(tag=['not kv'], ),
                            )
                        ], )),
     ])
     self.validator_test(cfg, [
         'pool #0 (abc): trusted_delegation #0 ([email protected]): bad tag #0 '
         '"not kv" - must be <key>:<value>',
     ])
示例#11
0
 def test_empty_config_is_valid(self):
     self.validator_test(pools_pb2.PoolsCfg(), [])
示例#12
0
 def parse(textpb):
     return text_format.Merge(textpb, pools_pb2.PoolsCfg())
示例#13
0
 def test_missing_pool_name(self):
     cfg = pools_pb2.PoolsCfg(pool=[pools_pb2.Pool()])
     self.validator_test(cfg, [
         'pool #0 (unnamed): at least one pool name must be given',
     ])
示例#14
0
from google.protobuf import text_format

TEST_CONFIG = pools_pb2.PoolsCfg(pool=[
    pools_pb2.Pool(
        name=['pool_name', 'another_name'],
        schedulers=pools_pb2.Schedulers(
            user=['user:[email protected]', '*****@*****.**'],
            group=['group1', 'group2'],
            trusted_delegation=[
                pools_pb2.TrustedDelegation(
                    peer_id='*****@*****.**',
                    require_any_of=pools_pb2.TrustedDelegation.TagList(
                        tag=['k:tag1', 'k:tag2'], ),
                ),
            ],
        ),
        allowed_service_account=[
            '*****@*****.**',
            '*****@*****.**',
        ],
        allowed_service_account_group=[
            'accounts_group1',
            'accounts_group2',
        ],
    ),
],
                                 forbid_unknown_pools=True)


class PoolsConfigTest(test_case.TestCase):