129
ctx context.Context,
130
request *p.GetClusterMembersRequest,
132
>
var lastSeenHostId []byte
133
>
if len(request.NextPageToken) == 16 {
134
lastSeenHostId = request.NextPageToken
136
return nil, serviceerror.NewInternal("page token is corrupted.")
137
}
138
140
>
filter := &sqlplugin.ClusterMembershipFilter{
141
>
HostIDEquals: request.HostIDEquals,
142
>
RoleEquals: request.RoleEquals,
143
>
RecordExpiryAfter: now,
144
>
SessionStartedAfter: request.SessionStartedAfter,
145
>
MaxRecordCount: request.PageSize,
146
>
}
147
>
148
>
if lastSeenHostId != nil && filter.HostIDEquals == nil {
149
filter.HostIDGreaterThan = lastSeenHostId
150
}
151
153
>
filter.LastHeartbeatAfter = now.Add(-request.LastHeartbeatWithin)
154
>
}
155
157
filter.RPCAddressEquals = request.RPCAddressEquals.String()
158
}
159
161
>
162
>
if err != nil {
163
return nil, convertCommonErrors("GetClusterMembers", err)
164
}
165
167
>
for _, row := range rows {
168
convertedRows = append(convertedRows, &p.ClusterMember{
169
HostID: row.HostID,