@@ -250,20 +250,11 @@ func handleRun(ctx context.Context, cmd *cli.Command) error {
250250 params .Network .BandwidthUpload = hypeman .Opt (bandwidthUp )
251251 }
252252 if egressEnabledSet || egressMode != "" {
253- params .Network .Egress = hypeman.InstanceNewParamsNetworkEgress {}
254- if egressEnabledSet {
255- params .Network .Egress .Enabled = hypeman .Opt (cmd .Bool ("network-egress-enabled" ))
256- }
257- if egressMode != "" {
258- switch egressMode {
259- case "all" , "http_https_only" :
260- params .Network .Egress .Enforcement = hypeman.InstanceNewParamsNetworkEgressEnforcement {
261- Mode : egressMode ,
262- }
263- default :
264- return fmt .Errorf ("invalid network-egress-mode: %s (must be 'all' or 'http_https_only')" , egressMode )
265- }
253+ egress , err := buildNetworkEgress (cmd .Bool ("network-egress-enabled" ), egressEnabledSet , egressMode )
254+ if err != nil {
255+ return err
266256 }
257+ params .Network .Egress = egress
267258 }
268259 }
269260
@@ -391,6 +382,28 @@ func handleRun(ctx context.Context, cmd *cli.Command) error {
391382 return nil
392383}
393384
385+ func buildNetworkEgress (enabled bool , enabledSet bool , mode string ) (hypeman.InstanceNewParamsNetworkEgress , error ) {
386+ egress := hypeman.InstanceNewParamsNetworkEgress {}
387+ if enabledSet {
388+ egress .Enabled = hypeman .Opt (enabled )
389+ } else if mode != "" {
390+ egress .Enabled = hypeman .Opt (true )
391+ }
392+
393+ if mode != "" {
394+ switch mode {
395+ case "all" , "http_https_only" :
396+ egress .Enforcement = hypeman.InstanceNewParamsNetworkEgressEnforcement {
397+ Mode : mode ,
398+ }
399+ default :
400+ return hypeman.InstanceNewParamsNetworkEgress {}, fmt .Errorf ("invalid network-egress-mode: %s (must be 'all' or 'http_https_only')" , mode )
401+ }
402+ }
403+
404+ return egress , nil
405+ }
406+
394407// isNotFoundError checks if err is a 404 not found error
395408func isNotFoundError (err error , target * * hypeman.Error ) bool {
396409 if apiErr , ok := err .(* hypeman.Error ); ok {
0 commit comments