[Notes] [Git][BuildGrid/buildgrid][finn/80-remote-parser] Catch key errors when attempting to parse.



Title: GitLab

finn pushed to branch finn/80-remote-parser at BuildGrid / buildgrid

Commits:

4 changed files:

Changes:

  • buildgrid/_app/commands/cmd_server.py
    ... ... @@ -49,42 +49,48 @@ def start(context, config):
    49 49
         with open(config) as f:
    
    50 50
             settings = parser.get_parser().safe_load(f)
    
    51 51
     
    
    52
    -    server_settings = settings['server']
    
    53
    -    insecure_mode = server_settings['insecure-mode']
    
    54
    -
    
    55
    -    credentials = None
    
    56
    -    if not insecure_mode:
    
    57
    -        server_key = server_settings['tls-server-key']
    
    58
    -        server_cert = server_settings['tls-server-cert']
    
    59
    -        client_certs = server_settings['tls-client-certs']
    
    60
    -        credentials = context.load_server_credentials(server_key, server_cert, client_certs)
    
    61
    -
    
    62
    -        if not credentials:
    
    63
    -            click.echo("ERROR: no TLS keys were specified and no defaults could be found.\n" +
    
    64
    -                       "Set `insecure-mode: false` in order to deactivate TLS encryption.\n", err=True)
    
    65
    -            sys.exit(-1)
    
    66
    -
    
    67
    -    instances = settings['instances']
    
    68
    -
    
    69
    -    execution_controllers = _instance_maker(instances, ExecutionController)
    
    70
    -
    
    71
    -    execution_instances = {}
    
    72
    -    bots_interfaces = {}
    
    73
    -    operations_instances = {}
    
    74
    -
    
    75
    -    # TODO: map properly in parser
    
    76
    -    # Issue 82
    
    77
    -    for k, v in execution_controllers.items():
    
    78
    -        execution_instances[k] = v.execution_instance
    
    79
    -        bots_interfaces[k] = v.bots_interface
    
    80
    -        operations_instances[k] = v.operations_instance
    
    81
    -
    
    82
    -    reference_caches = _instance_maker(instances, ReferenceCache)
    
    83
    -    action_caches = _instance_maker(instances, ActionCache)
    
    84
    -    cas = _instance_maker(instances, ContentAddressableStorageInstance)
    
    85
    -    bytestreams = _instance_maker(instances, ByteStreamInstance)
    
    86
    -
    
    87
    -    port = server_settings['port']
    
    52
    +    try:
    
    53
    +        server_settings = settings['server']
    
    54
    +        insecure_mode = server_settings['insecure-mode']
    
    55
    +
    
    56
    +        credentials = None
    
    57
    +        if not insecure_mode:
    
    58
    +            credential_settings = server_settings['credentials']
    
    59
    +            server_key = credential_settings['tls-server-key']
    
    60
    +            server_cert = credential_settings['tls-server-cert']
    
    61
    +            client_certs = credential_settings['tls-client-certs']
    
    62
    +            credentials = context.load_server_credentials(server_key, server_cert, client_certs)
    
    63
    +
    
    64
    +            if not credentials:
    
    65
    +                click.echo("ERROR: no TLS keys were specified and no defaults could be found.\n" +
    
    66
    +                           "Set `insecure-mode: false` in order to deactivate TLS encryption.\n", err=True)
    
    67
    +                sys.exit(-1)
    
    68
    +
    
    69
    +        port = server_settings['port']
    
    70
    +        instances = settings['instances']
    
    71
    +
    
    72
    +        execution_controllers = _instance_maker(instances, ExecutionController)
    
    73
    +
    
    74
    +        execution_instances = {}
    
    75
    +        bots_interfaces = {}
    
    76
    +        operations_instances = {}
    
    77
    +
    
    78
    +        # TODO: map properly in parser
    
    79
    +        # Issue 82
    
    80
    +        for k, v in execution_controllers.items():
    
    81
    +            execution_instances[k] = v.execution_instance
    
    82
    +            bots_interfaces[k] = v.bots_interface
    
    83
    +            operations_instances[k] = v.operations_instance
    
    84
    +
    
    85
    +        reference_caches = _instance_maker(instances, ReferenceCache)
    
    86
    +        action_caches = _instance_maker(instances, ActionCache)
    
    87
    +        cas = _instance_maker(instances, ContentAddressableStorageInstance)
    
    88
    +        bytestreams = _instance_maker(instances, ByteStreamInstance)
    
    89
    +
    
    90
    +    except KeyError as e:
    
    91
    +        click.echo("ERROR: Could not parse config: {}.\n".format(str(e)), err=True)
    
    92
    +        sys.exit(-1)
    
    93
    +
    
    88 94
         server = BuildGridServer(port=port,
    
    89 95
                                  credentials=credentials,
    
    90 96
                                  execution_instances=execution_instances,
    

  • buildgrid/_app/settings/cas.yml
    1 1
     server:
    
    2 2
       port: 50052
    
    3 3
       insecure-mode: true
    
    4
    -  tls-server-key: null
    
    5
    -  tls-server-cert: null
    
    6
    -  tls-client-certs: null
    
    4
    +  credentials:
    
    5
    +    tls-server-key: null
    
    6
    +    tls-server-cert: null
    
    7
    +    tls-client-certs: null
    
    7 8
     
    
    8 9
     description: |
    
    9 10
       Just a CAS.
    

  • buildgrid/_app/settings/default.yml
    1 1
     server:
    
    2 2
       port: 50051
    
    3 3
       insecure-mode: true
    
    4
    -  tls-server-key: null
    
    5
    -  tls-server-cert: null
    
    6
    -  tls-client-certs: null
    
    4
    +  credentials:
    
    5
    +    tls-server-key: null
    
    6
    +    tls-server-cert: null
    
    7
    +    tls-client-certs: null
    
    7 8
     
    
    8 9
     description: |
    
    9 10
       A single default instance
    

  • buildgrid/_app/settings/remote-storage.yml
    1 1
     server:
    
    2 2
       port: 50051
    
    3 3
       insecure-mode: true
    
    4
    -  tls-server-key: null
    
    5
    -  tls-server-cert: null
    
    6
    -  tls-client-certs: null
    
    4
    +  credentials:
    
    5
    +    tls-server-key: null
    
    6
    +    tls-server-cert: null
    
    7
    +    tls-client-certs: null
    
    7 8
     
    
    8 9
     
    
    9 10
     description: |
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]