...

Text file src/go.mongodb.org/mongo-driver/testdata/server-discovery-and-monitoring/unified/logging-standalone.yml

Documentation: go.mongodb.org/mongo-driver/testdata/server-discovery-and-monitoring/unified

     1description: "standalone-logging"
     2
     3schemaVersion: "1.16"
     4
     5runOnRequirements:
     6  - topologies:
     7      - single
     8    minServerVersion: "4.4" # awaitable hello
     9
    10createEntities:
    11  - client:
    12      id: &setupClient setupClient
    13
    14tests:
    15  - description: "Topology lifecycle"
    16    operations:
    17      - name: createEntities
    18        object: testRunner
    19        arguments:
    20          entities:
    21            - client:
    22                id: &client client
    23                observeLogMessages:
    24                  topology: debug
    25                observeEvents:
    26                  - topologyDescriptionChangedEvent
    27      # ensure the topology has been fully discovered before closing the client.
    28      # expected events are initial server discovery and server connect event.
    29      - name: waitForEvent
    30        object: testRunner
    31        arguments:
    32          client: *client
    33          event:
    34            topologyDescriptionChangedEvent: {}
    35          count: 2
    36      - name: close
    37        object: *client
    38    expectLogMessages:
    39      - client: *client
    40        ignoreMessages:
    41          - level: debug
    42            component: topology
    43            data:
    44              message: "Server heartbeat started"
    45          - level: debug
    46            component: topology
    47            data:
    48              message: "Server heartbeat succeeded"
    49          - level: debug
    50            component: topology
    51            data:
    52              message: "Server heartbeat failed"
    53        messages:
    54          - level: debug
    55            component: topology
    56            data:
    57              message: "Starting topology monitoring"
    58              topologyId: { $$exists: true }
    59          - level: debug
    60            component: topology
    61            data:
    62              message: "Topology description changed"
    63              topologyId: { $$exists: true }
    64              previousDescription:  { $$exists: true } # unknown topology
    65              newDescription: { $$exists: true } # unknown topology, disconnected server
    66          - level: debug
    67            component: topology
    68            data:
    69              message: "Starting server monitoring"
    70              topologyId: { $$exists: true }
    71              serverHost: { $$type: string }
    72              serverPort: { $$type: [int, long] }
    73          - level: debug
    74            component: topology
    75            data:
    76              message: "Topology description changed"
    77              topologyId: { $$exists: true }
    78              previousDescription:  { $$exists: true }
    79              newDescription: { $$exists: true } # standalone topology
    80          - level: debug
    81            component: topology
    82            data:
    83              message: "Stopped server monitoring"
    84              topologyId: { $$exists: true }
    85              serverHost: { $$type: string }
    86              serverPort: { $$type: [int, long] }
    87          # TODO(GODRIVER-2967): The following log message has been removed from
    88          # the JSON analogue because it assumes that 
    89          # "TopologyDescriptionChangedEvent" should occur when a topolgoy is 
    90          # closed. This behavior is not clearly defined anywhere and some 
    91          # drivers support and some don't.
    92          #
    93          # Need to sync whenever GODRIVER-2967 is unblocked.
    94          - level: debug
    95            component: topology
    96            data:
    97              message: "Topology description changed"
    98              topologyId: { $$exists: true }
    99              previousDescription:  { $$exists: true } # standalone topology
   100              newDescription: { $$exists: true }  # unknown topology
   101          - level: debug
   102            component: topology
   103            data:
   104              message: "Stopped topology monitoring"
   105              topologyId: { $$exists: true }
   106  - description: Successful heartbeat
   107    operations:
   108      - name: createEntities
   109        object: testRunner
   110        arguments:
   111          entities:
   112            - client:
   113                id: &client client
   114                observeLogMessages:
   115                  topology: debug
   116                observeEvents:
   117                  - serverHeartbeatSucceededEvent
   118      - name: waitForEvent
   119        object: testRunner
   120        arguments:
   121          client: *client
   122          event:
   123            serverHeartbeatSucceededEvent: {}
   124          count: 1
   125      - name: close
   126        object: *client
   127    expectLogMessages:
   128      - client: *client
   129        ignoreExtraMessages: true
   130        ignoreMessages:
   131          - level: debug
   132            component: topology
   133            data:
   134              message: "Topology description changed"
   135          - level: debug
   136            component: topology
   137            data:
   138              message: "Stopped topology monitoring"
   139          - level: debug
   140            component: topology
   141            data:
   142              message: "Stopped server monitoring"
   143          - level: debug
   144            component: topology
   145            data:
   146              message: "Topology description changed"
   147          - level: debug
   148            component: topology
   149            data:
   150              message: "Starting server monitoring"
   151          - level: debug
   152            component: topology
   153            data:
   154              message: "Starting topology monitoring"
   155          - level: debug
   156            component: topology
   157            data:
   158              message: "Server heartbeat failed"
   159        messages:
   160          - level: debug
   161            component: topology
   162            data:
   163              message: "Server heartbeat started"
   164              awaited: { $$exists: true }
   165              topologyId: { $$exists: true }
   166              serverHost: { $$type: string }
   167              serverPort: { $$type: [int, long] }
   168              driverConnectionId: { $$exists: true }
   169          - level: debug
   170            component: topology
   171            data:
   172              message: "Server heartbeat succeeded"
   173              awaited: { $$exists: true }
   174              topologyId: { $$exists: true }
   175              serverHost: { $$type: string }
   176              serverPort: { $$type: [int, long] }
   177              driverConnectionId: { $$exists: true }
   178              serverConnectionId: { $$exists: true }
   179              durationMS: { $$type: [int, long] }
   180              reply:
   181                $$matchAsDocument:
   182                  "$$matchAsRoot":
   183                    ok: 1
   184  - description: Failing heartbeat
   185    operations:
   186    - name: createEntities
   187      object: testRunner
   188      arguments:
   189        entities:
   190        - client:
   191            id: &client client
   192            observeLogMessages:
   193              topology: debug
   194            observeEvents:
   195              - serverHeartbeatFailedEvent
   196            uriOptions:
   197              appname: failingHeartbeatLoggingTest
   198    - name: failPoint
   199      object: testRunner
   200      arguments:
   201        client: *setupClient
   202        failPoint:
   203          configureFailPoint: failCommand
   204          mode: "alwaysOn"
   205          data:
   206            failCommands:
   207              - hello
   208              - isMaster
   209            appName: failingHeartbeatLoggingTest
   210            closeConnection: true
   211    - name: waitForEvent
   212      object: testRunner
   213      arguments:
   214        client: *client
   215        event:
   216          serverHeartbeatFailedEvent: {}
   217        count: 1
   218    expectLogMessages:
   219      - client: *client
   220        ignoreExtraMessages: true
   221        ignoreMessages:
   222          - level: debug
   223            component: topology
   224            data:
   225              message: "Topology description changed"
   226          - level: debug
   227            component: topology
   228            data:
   229              message: "Stopped topology monitoring"
   230          - level: debug
   231            component: topology
   232            data:
   233              message: "Stopped server monitoring"
   234          - level: debug
   235            component: topology
   236            data:
   237              message: "Topology description changed"
   238          - level: debug
   239            component: topology
   240            data:
   241              message: "Starting server monitoring"
   242          - level: debug
   243            component: topology
   244            data:
   245              message: "Starting topology monitoring"
   246          - level: debug
   247            component: topology
   248            data:
   249              message: "Server heartbeat started"
   250          - level: debug
   251            component: topology
   252            data:
   253              message: "Server heartbeat succeeded"
   254        messages:
   255          - level: debug
   256            component: topology
   257            data:
   258              message: "Server heartbeat failed"
   259              awaited: { $$exists: true }
   260              topologyId: { $$exists: true }
   261              serverHost: { $$type: string }
   262              serverPort: { $$type: [int, long] }
   263              driverConnectionId: { $$exists: true }
   264              durationMS: { $$type: [int, long] }
   265              failure: { $$exists: true }

View as plain text