github.com/choria-io/go-choria@v0.28.1-0.20240416190746-b3bf9c7d5a45/client/scoutclient/rpcoptions.go (about)

     1  // generated code; DO NOT EDIT
     2  
     3  package scoutclient
     4  
     5  import (
     6  	"time"
     7  
     8  	coreclient "github.com/choria-io/go-choria/client/client"
     9  	rpcclient "github.com/choria-io/go-choria/providers/agent/mcorpc/client"
    10  )
    11  
    12  // OptionReset resets the client options to use across requests to an empty list
    13  func (p *ScoutClient) OptionReset() *ScoutClient {
    14  	p.Lock()
    15  	defer p.Unlock()
    16  
    17  	p.clientRPCOpts = []rpcclient.RequestOption{}
    18  	p.ns = p.clientOpts.ns
    19  	p.targets = []string{}
    20  	p.filters = []FilterFunc{
    21  		FilterFunc(coreclient.AgentFilter("scout")),
    22  	}
    23  
    24  	return p
    25  }
    26  
    27  // OptionIdentityFilter adds an identity filter
    28  func (p *ScoutClient) OptionIdentityFilter(f ...string) *ScoutClient {
    29  	p.Lock()
    30  	defer p.Unlock()
    31  
    32  	for _, i := range f {
    33  		if i == "" {
    34  			continue
    35  		}
    36  
    37  		p.filters = append(p.filters, FilterFunc(coreclient.IdentityFilter(i)))
    38  	}
    39  
    40  	p.ns.Reset()
    41  
    42  	return p
    43  }
    44  
    45  // OptionClassFilter adds a class filter
    46  func (p *ScoutClient) OptionClassFilter(f ...string) *ScoutClient {
    47  	p.Lock()
    48  	defer p.Unlock()
    49  
    50  	for _, i := range f {
    51  		if i == "" {
    52  			continue
    53  		}
    54  
    55  		p.filters = append(p.filters, FilterFunc(coreclient.ClassFilter(i)))
    56  	}
    57  
    58  	p.ns.Reset()
    59  
    60  	return p
    61  }
    62  
    63  // OptionFactFilter adds a fact filter
    64  func (p *ScoutClient) OptionFactFilter(f ...string) *ScoutClient {
    65  	p.Lock()
    66  	defer p.Unlock()
    67  
    68  	for _, i := range f {
    69  		if i == "" {
    70  			continue
    71  		}
    72  
    73  		p.filters = append(p.filters, FilterFunc(coreclient.FactFilter(i)))
    74  	}
    75  
    76  	p.ns.Reset()
    77  
    78  	return p
    79  }
    80  
    81  // OptionAgentFilter adds an agent filter
    82  func (p *ScoutClient) OptionAgentFilter(a ...string) *ScoutClient {
    83  	p.Lock()
    84  	defer p.Unlock()
    85  
    86  	for _, f := range a {
    87  		if f == "" {
    88  			continue
    89  		}
    90  
    91  		p.filters = append(p.filters, FilterFunc(coreclient.AgentFilter(f)))
    92  	}
    93  
    94  	p.ns.Reset()
    95  
    96  	return p
    97  }
    98  
    99  // OptionCombinedFilter adds a combined filter
   100  func (p *ScoutClient) OptionCombinedFilter(f ...string) *ScoutClient {
   101  	p.Lock()
   102  	defer p.Unlock()
   103  
   104  	for _, i := range f {
   105  		if i == "" {
   106  			continue
   107  		}
   108  
   109  		p.filters = append(p.filters, FilterFunc(coreclient.CombinedFilter(i)))
   110  	}
   111  
   112  	p.ns.Reset()
   113  
   114  	return p
   115  }
   116  
   117  // OptionCompoundFilter adds a compound filter
   118  func (p *ScoutClient) OptionCompoundFilter(f ...string) *ScoutClient {
   119  	p.Lock()
   120  	defer p.Unlock()
   121  
   122  	for _, i := range f {
   123  		if i == "" {
   124  			continue
   125  		}
   126  
   127  		p.filters = append(p.filters, FilterFunc(coreclient.CompoundFilter(i)))
   128  	}
   129  
   130  	p.ns.Reset()
   131  
   132  	return p
   133  }
   134  
   135  // OptionCollective sets the collective to target
   136  func (p *ScoutClient) OptionCollective(c string) *ScoutClient {
   137  	p.Lock()
   138  	defer p.Unlock()
   139  
   140  	p.clientRPCOpts = append(p.clientRPCOpts, rpcclient.Collective(c))
   141  	return p
   142  }
   143  
   144  // OptionInBatches performs requests in batches
   145  func (p *ScoutClient) OptionInBatches(size int, sleep int) *ScoutClient {
   146  	p.Lock()
   147  	defer p.Unlock()
   148  
   149  	p.clientRPCOpts = append(p.clientRPCOpts, rpcclient.InBatches(size, sleep))
   150  	return p
   151  }
   152  
   153  // OptionDiscoveryTimeout configures the request discovery timeout, defaults to configured discovery timeout
   154  func (p *ScoutClient) OptionDiscoveryTimeout(t time.Duration) *ScoutClient {
   155  	p.Lock()
   156  	defer p.Unlock()
   157  
   158  	p.clientRPCOpts = append(p.clientRPCOpts, rpcclient.DiscoveryTimeout(t))
   159  	return p
   160  }
   161  
   162  // OptionLimitMethod configures the method to use when limiting targets - "random" or "first"
   163  func (p *ScoutClient) OptionLimitMethod(m string) *ScoutClient {
   164  	p.Lock()
   165  	defer p.Unlock()
   166  
   167  	p.clientRPCOpts = append(p.clientRPCOpts, rpcclient.LimitMethod(m))
   168  	return p
   169  }
   170  
   171  // OptionLimitSize sets limits on the targets, either a number of a percentage like "10%"
   172  func (p *ScoutClient) OptionLimitSize(s string) *ScoutClient {
   173  	p.Lock()
   174  	defer p.Unlock()
   175  
   176  	p.clientRPCOpts = append(p.clientRPCOpts, rpcclient.LimitSize(s))
   177  	return p
   178  }
   179  
   180  // OptionLimitSeed sets the random seed used to select targets when limiting and limit method is "random"
   181  func (p *ScoutClient) OptionLimitSeed(s int64) *ScoutClient {
   182  	p.Lock()
   183  	defer p.Unlock()
   184  
   185  	p.clientRPCOpts = append(p.clientRPCOpts, rpcclient.LimitSeed(s))
   186  	return p
   187  }
   188  
   189  // OptionTargets sets specific node targets which would avoid discovery for all action calls until reset
   190  func (p *ScoutClient) OptionTargets(t []string) *ScoutClient {
   191  	p.Lock()
   192  	defer p.Unlock()
   193  
   194  	p.targets = t
   195  	return p
   196  }
   197  
   198  // OptionWorkers sets how many worker connections should be started to the broker
   199  func (p *ScoutClient) OptionWorkers(w int) *ScoutClient {
   200  	p.Lock()
   201  	defer p.Unlock()
   202  
   203  	p.workers = w
   204  	return p
   205  }
   206  
   207  // OptionExprFilter sets a filter expression that will remove results from the result set
   208  func (p *ScoutClient) OptionExprFilter(f string) *ScoutClient {
   209  	p.Lock()
   210  	defer p.Unlock()
   211  
   212  	p.exprFilter = f
   213  	return p
   214  }
   215  
   216  // OptionReplyTo sets a custom reply target
   217  func (p *ScoutClient) OptionReplyTo(t string) *ScoutClient {
   218  	p.Lock()
   219  	defer p.Unlock()
   220  
   221  	p.clientRPCOpts = append(p.clientRPCOpts, rpcclient.ReplyTo(t))
   222  	p.noReplies = true
   223  	p.clientOpts.progress = false
   224  
   225  	return p
   226  }