tree b82dbe42a9e0852ed692ed05a6326a27a3f22fe4
parent 33806f3e5f264783107b26a0c9b4d6ba225211e2
author Ben Reed <benreed@google.com> 1604532320 -0800
committer Ben Reed <benreed@google.com> 1604532320 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEfHm8jk1x/keU31vAKB4jQLr+v08FAl+jOGIACgkQKB4jQLr+
 v09tEA/+I5deV4BWcXbWmd8eUW5gJTk1IytDdHd9GbSjULUzmsFl64ejgeKpPQKE
 5tMbX5/DPBSp/6RB4sbq3hdEpxeov3m/93pSqjAV9E5pZxdDJO+n57FuY5mYsS1s
 uja80gAayjcQ9nqtihmx2AZgpKWtVG703yDKTLYKJ86z017BaDBCXWYCvNBX6UDN
 dl5Y4vbBZwPbdc9QErG1PHeywUe+va2iLkJRJO9/NszNqcCmf9E800VNlb0gVbSJ
 LAdguKiHLKjrhRl7aHbymO/QmsDx50h/o6eEYr17pPKnVcEXyzHK9Vgu2mnn+Hod
 29HsnvUGte5VVcsCdVnEBZvZ8aD6a9FfZ42RsJQ+3KMPAEwGYHZw48TQGkxNiFNH
 xPlF182BHFzPpp0+KJ32rDCvUS6bryhkx7fQZJLRaCvhFkRK2ZKEEaFu2dkQvH1V
 o620mJZGBMvuJBpvo0oZ2ODugUu2fI8KpNo+3ymLWiFJc9Lsdxyvy0IZVZLA4yO6
 jaTbYmgw/oPLJ/Cney4wY2xcs/lex2qnvLhnqykUkHMz5w6US97XPujxajXvpab6
 ijCUYYQWj4Ur87DruWkxAQEg15KsMwXxab0InW8Iy4J0TA05QvIYd++GM2ntBmAf
 TRBQUxVr8kOtyEYgMbnQ7O9r2cjxBfR2goSaqWKU59rbNqmEoI8=
 =iRDU
 -----END PGP SIGNATURE-----

Make python qps_worker --server_port consistent

The python qps_worker was changed in grpc/grpc#24350, adding support for
the --server_port flag. When the --server_port flag was set, the python
worker ignored the port specified in the Scenario's ServerConfig.

This behavior was inconsistent with Java and Go. In the workers for
those languages, the --server_port flag was used only when the
Scenario's ServerConfig port was unset. It did not override.

This commit alters the behavior of the python qps_worker to match Java
and Go, similar to grpc/grpc#24661 for C++. In addition, it updates the
documentation for the flag.
