@@ -18,6 +18,7 @@ const pathNotFoundCode = "PathNotFound"
18
18
19
19
const streamContext = true
20
20
const httpContext = false
21
+ const defaultServerPort = "80"
21
22
22
23
// NginxClient lets you access NGINX Plus API.
23
24
type NginxClient struct {
@@ -504,6 +505,7 @@ func (client *NginxClient) GetHTTPServers(upstream string) ([]UpstreamServer, er
504
505
505
506
// AddHTTPServer adds the server to the upstream.
506
507
func (client * NginxClient ) AddHTTPServer (upstream string , server UpstreamServer ) error {
508
+ server .Server = addPortToServer (server .Server )
507
509
id , err := client .getIDOfHTTPServer (upstream , server .Server )
508
510
if err != nil {
509
511
return fmt .Errorf ("failed to add %v server to %v upstream: %v" , server .Server , upstream , err )
@@ -523,6 +525,7 @@ func (client *NginxClient) AddHTTPServer(upstream string, server UpstreamServer)
523
525
524
526
// DeleteHTTPServer the server from the upstream.
525
527
func (client * NginxClient ) DeleteHTTPServer (upstream string , server string ) error {
528
+ server = addPortToServer (server )
526
529
id , err := client .getIDOfHTTPServer (upstream , server )
527
530
if err != nil {
528
531
return fmt .Errorf ("failed to remove %v server from %v upstream: %v" , server , upstream , err )
@@ -752,6 +755,7 @@ func (client *NginxClient) GetStreamServers(upstream string) ([]StreamUpstreamSe
752
755
753
756
// AddStreamServer adds the stream server to the upstream.
754
757
func (client * NginxClient ) AddStreamServer (upstream string , server StreamUpstreamServer ) error {
758
+ server .Server = addPortToServer (server .Server )
755
759
id , err := client .getIDOfStreamServer (upstream , server .Server )
756
760
if err != nil {
757
761
return fmt .Errorf ("failed to add %v stream server to %v upstream: %v" , server .Server , upstream , err )
@@ -770,6 +774,7 @@ func (client *NginxClient) AddStreamServer(upstream string, server StreamUpstrea
770
774
771
775
// DeleteStreamServer the server from the upstream.
772
776
func (client * NginxClient ) DeleteStreamServer (upstream string , server string ) error {
777
+ server = addPortToServer (server )
773
778
id , err := client .getIDOfStreamServer (upstream , server )
774
779
if err != nil {
775
780
return fmt .Errorf ("failed to remove %v stream server from %v upstream: %v" , server , upstream , err )
@@ -1249,10 +1254,7 @@ func (client *NginxClient) deleteKeyValPairs(zone string, stream bool) error {
1249
1254
1250
1255
// UpdateHTTPServer updates the server of the upstream.
1251
1256
func (client * NginxClient ) UpdateHTTPServer (upstream string , server UpstreamServer ) error {
1252
- if ! isValidAddress (server .Server ) {
1253
- return fmt .Errorf ("failed to update %v server to %v upstream: server must include address and port or be a unix socket" , server .Server , upstream )
1254
- }
1255
-
1257
+ server .Server = addPortToServer (server .Server )
1256
1258
path := fmt .Sprintf ("http/upstreams/%v/servers/%v" , upstream , server .ID )
1257
1259
server .ID = 0
1258
1260
err := client .patch (path , & server , http .StatusOK )
@@ -1265,10 +1267,7 @@ func (client *NginxClient) UpdateHTTPServer(upstream string, server UpstreamServ
1265
1267
1266
1268
// UpdateStreamServer updates the stream server of the upstream.
1267
1269
func (client * NginxClient ) UpdateStreamServer (upstream string , server StreamUpstreamServer ) error {
1268
- if ! isValidAddress (server .Server ) {
1269
- return fmt .Errorf ("failed to update %v stream server to %v upstream: server must include address and port or be a unix socket" , server .Server , upstream )
1270
- }
1271
-
1270
+ server .Server = addPortToServer (server .Server )
1272
1271
path := fmt .Sprintf ("stream/upstreams/%v/servers/%v" , upstream , server .ID )
1273
1272
server .ID = 0
1274
1273
err := client .patch (path , & server , http .StatusOK )
@@ -1279,21 +1278,18 @@ func (client *NginxClient) UpdateStreamServer(upstream string, server StreamUpst
1279
1278
return nil
1280
1279
}
1281
1280
1282
- func isValidAddress (server string ) bool {
1283
- // ipv4 and port
1281
+ func addPortToServer (server string ) string {
1284
1282
if len (strings .Split (server , ":" )) == 2 {
1285
- return true
1283
+ return server
1286
1284
}
1287
1285
1288
- // ipv6 and port
1289
1286
if len (strings .Split (server , "]:" )) == 2 {
1290
- return true
1287
+ return server
1291
1288
}
1292
1289
1293
- // unix socket
1294
1290
if strings .HasPrefix (server , "unix:" ) {
1295
- return true
1291
+ return server
1296
1292
}
1297
1293
1298
- return false
1294
+ return fmt . Sprintf ( "%v:%v" , server , defaultServerPort )
1299
1295
}
0 commit comments