Пример #1
0
        public void NodeOperationsSearchStatesQuery()
        {
            var ver = "1.2.3";

            var query1 = NodeOperations.SearchStatesQuery(ver);

            Assert.Equal("(not (version eq '1.2.3'))", query1);

            var query2 = NodeOperations.SearchStatesQuery(ver, poolId: Guid.Parse("3b0426d3-9bde-4ae8-89ac-4edf0d3b3618"));

            Assert.Equal("((pool_id eq '3b0426d3-9bde-4ae8-89ac-4edf0d3b3618')) and (not (version eq '1.2.3'))", query2);

            var query3 = NodeOperations.SearchStatesQuery(ver, scaleSetId: Guid.Parse("4c96dd6b-9bdb-4758-9720-1010c244fa4b"));

            Assert.Equal("((scaleset_id eq '4c96dd6b-9bdb-4758-9720-1010c244fa4b')) and (not (version eq '1.2.3'))", query3);

            var query4 = NodeOperations.SearchStatesQuery(ver, states: new[] { NodeState.Free, NodeState.Done, NodeState.Ready });

            Assert.Equal("(((state eq 'free') or (state eq 'done') or (state eq 'ready'))) and (not (version eq '1.2.3'))", query4);

            var query5 = NodeOperations.SearchStatesQuery(ver, excludeUpdateScheduled: true);

            Assert.Equal("(reimage_requested eq false) and (delete_requested eq false) and (not (version eq '1.2.3'))", query5);

            var query7 = NodeOperations.SearchStatesQuery(
                ver,
                poolId: Guid.Parse("3b0426d3-9bde-4ae8-89ac-4edf0d3b3618"),
                scaleSetId: Guid.Parse("4c96dd6b-9bdb-4758-9720-1010c244fa4b"),
                states: new[] { NodeState.Free, NodeState.Done, NodeState.Ready },
                excludeUpdateScheduled: true);

            Assert.Equal("((pool_id eq '3b0426d3-9bde-4ae8-89ac-4edf0d3b3618')) and ((scaleset_id eq '4c96dd6b-9bdb-4758-9720-1010c244fa4b')) and (((state eq 'free') or (state eq 'done') or (state eq 'ready'))) and (reimage_requested eq false) and (delete_requested eq false) and (not (version eq '1.2.3'))", query7);
        }
Пример #2
0
    public IAsyncEnumerable <Node> SearchStates(
        Guid?poolId     = default,
        Guid?scaleSetId = default,
        IEnumerable <NodeState>?states = default,
        string?poolName             = default,
        bool excludeUpdateScheduled = false,
        int?numResults = default)
    {
        var query = NodeOperations.SearchStatesQuery(_context.ServiceConfiguration.OneFuzzVersion, poolId, scaleSetId, states, poolName, excludeUpdateScheduled, numResults);

        if (numResults is null)
        {
            return(QueryAsync(query));
        }
        else
        {
            return(QueryAsync(query).TakeWhile((_, i) => i < numResults));
        }
    }