@@ -2,6 +2,7 @@ package primaryip
22
33import (
44 "fmt"
5+ "strings"
56
67 "github.com/spf13/cobra"
78
@@ -34,10 +35,10 @@ See https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters`,
3435
3536 cmd .Flags ().Int64 ("assignee-id" , 0 , "Assignee (usually a Server) to assign Primary IP to" )
3637
37- cmd .Flags ().String ("location" , "" , "Location of Primary IP" )
38+ cmd .Flags ().String ("location" , "" , "Location (ID or name) of Primary IP" )
3839 _ = cmd .RegisterFlagCompletionFunc ("location" , cmpl .SuggestCandidatesF (client .Location ().Names ))
3940
40- cmd .Flags ().String ("datacenter" , "" , "Datacenter (ID or name) (deprecated)" )
41+ cmd .Flags ().String ("datacenter" , "" , "Datacenter (name) (deprecated)" )
4142 _ = cmd .RegisterFlagCompletionFunc ("datacenter" , cmpl .SuggestCandidatesF (client .Datacenter ().Names ))
4243
4344 cmd .Flags ().StringToString ("label" , nil , "User-defined labels ('key=value') (can be specified multiple times)" )
@@ -70,7 +71,6 @@ See https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters`,
7071 Type : hcloud .PrimaryIPType (typ ),
7172 Name : name ,
7273 AssigneeType : "server" ,
73- Datacenter : datacenter ,
7474 Labels : labels ,
7575 }
7676 if assigneeID != 0 {
@@ -91,6 +91,17 @@ See https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters`,
9191 }
9292 if cmd .Flags ().Changed ("datacenter" ) {
9393 cmd .PrintErrln ("Warning: The --datacenter flag is deprecated. Use --location or --assignee-id instead." )
94+
95+ // Backward compatible datacenter argument.
96+ // datacenter hel1-dc2 => location hel1
97+ parts := strings .Split (datacenter , "-" )
98+
99+ if len (parts ) != 2 {
100+ return nil , nil , fmt .Errorf ("Datacenter name is not valid, expected format $LOCATION-$DATACENTER, but got: %s" , datacenter )
101+ }
102+
103+ locationName := parts [0 ]
104+ createOpts .Location = locationName
94105 }
95106
96107 result , _ , err := s .Client ().PrimaryIP ().Create (s , createOpts )
0 commit comments