Method: SDM::Nodes#list

Defined in:
lib/svc.rb

#list(filter, *args, deadline: nil) ⇒ Object

List gets a list of Nodes matching a given set of criteria.



642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
# File 'lib/svc.rb', line 642

def list(
filter \
,
*args,
 deadline:nil)
    req = V1::NodeListRequest.new()
    req.meta = V1::.new()
    page_size_option = @parent._test_options['PageSize']
    if page_size_option.is_a? Integer
        req.meta.limit = page_size_option
    end
      
    req.filter = Plumbing::quote_filter_args(filter, *args)
    resp = Enumerator::Generator.new { |g|
        tries = 0
        loop do
            begin
                plumbing_response = @stub.list(req, metadata: @parent.('Nodes.List', req), deadline:deadline)
            rescue => exception
                if (@parent.shouldRetry(tries, exception))
                    tries++
                    @parent.jitterSleep(tries)
                    next
                end
                raise Plumbing::convert_error_to_porcelain(exception)
            end
            tries = 0
            plumbing_response.nodes.each do |plumbing_item|
                g.yield Plumbing::convert_node_to_porcelain(plumbing_item)
            end
            break if plumbing_response.meta.next_cursor == ""
            req.meta.cursor = plumbing_response.meta.next_cursor
        end
    }
    resp
end