@@ -19,6 +19,7 @@ const (
1919
2020 EnvPublicKey = envNamespace + "PUBLIC_KEY"
2121 EnvPrivateKey = envNamespace + "PRIVATE_KEY"
22+ EnvProjectId = envNamespace + "PROJECT_ID"
2223
2324 EnvTTL = envNamespace + "TTL"
2425 EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
@@ -31,6 +32,7 @@ var _ challenge.ProviderTimeout = (*DNSProvider)(nil)
3132type Config struct {
3233 PrivateKey string
3334 PublicKey string
35+ ProjectId string
3436
3537 PropagationTimeout time.Duration
3638 PollingInterval time.Duration
@@ -53,14 +55,15 @@ func NewDefaultConfig() *Config {
5355}
5456
5557func NewDNSProvider () (* DNSProvider , error ) {
56- values , err := env .Get (EnvPrivateKey , EnvPublicKey )
58+ values , err := env .Get (EnvPrivateKey , EnvPublicKey , EnvProjectId )
5759 if err != nil {
5860 return nil , fmt .Errorf ("ucloud-udnr: %w" , err )
5961 }
6062
6163 config := NewDefaultConfig ()
6264 config .PrivateKey = values [EnvPrivateKey ]
6365 config .PublicKey = values [EnvPublicKey ]
66+ config .ProjectId = values [EnvProjectId ]
6467
6568 return NewDNSProviderConfig (config )
6669}
@@ -98,6 +101,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
98101
99102 udnrDomainDNSQueryReq := d .client .NewQueryDomainDNSRequest ()
100103 udnrDomainDNSQueryReq .Dn = ucloud .String (authZone )
104+ if d .config .ProjectId != "" {
105+ udnrDomainDNSQueryReq .SetProjectId (d .config .ProjectId )
106+ }
101107 if udnrDomainDNSQueryResp , err := d .client .QueryDomainDNS (udnrDomainDNSQueryReq ); err != nil {
102108 return fmt .Errorf ("ucloud-udnr: %w" , err )
103109 } else {
@@ -108,6 +114,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
108114 udnrDomainDNSDeleteReq .DnsType = ucloud .String (record .DnsType )
109115 udnrDomainDNSDeleteReq .RecordName = ucloud .String (record .RecordName )
110116 udnrDomainDNSDeleteReq .Content = ucloud .String (record .Content )
117+ if d .config .ProjectId != "" {
118+ udnrDomainDNSDeleteReq .SetProjectId (d .config .ProjectId )
119+ }
111120 d .client .DeleteDomainDNS (udnrDomainDNSDeleteReq )
112121 break
113122 }
@@ -120,6 +129,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
120129 udnrDomainDNSAddReq .RecordName = ucloud .String (subDomain )
121130 udnrDomainDNSAddReq .Content = ucloud .String (info .Value )
122131 udnrDomainDNSAddReq .TTL = ucloud .Int (int (d .config .TTL ))
132+ if d .config .ProjectId != "" {
133+ udnrDomainDNSAddReq .SetProjectId (d .config .ProjectId )
134+ }
123135 if _ , err := d .client .AddDomainDNS (udnrDomainDNSAddReq ); err != nil {
124136 return fmt .Errorf ("ucloud-udnr: %w" , err )
125137 }
@@ -142,6 +154,9 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
142154
143155 udnrDomainDNSQueryReq := d .client .NewQueryDomainDNSRequest ()
144156 udnrDomainDNSQueryReq .Dn = ucloud .String (authZone )
157+ if d .config .ProjectId != "" {
158+ udnrDomainDNSQueryReq .SetProjectId (d .config .ProjectId )
159+ }
145160 if udnrDomainDNSQueryResp , err := d .client .QueryDomainDNS (udnrDomainDNSQueryReq ); err != nil {
146161 return fmt .Errorf ("ucloud-udnr: %w" , err )
147162 } else {
@@ -152,6 +167,9 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
152167 udnrDomainDNSDeleteReq .DnsType = ucloud .String (record .DnsType )
153168 udnrDomainDNSDeleteReq .RecordName = ucloud .String (record .RecordName )
154169 udnrDomainDNSDeleteReq .Content = ucloud .String (record .Content )
170+ if d .config .ProjectId != "" {
171+ udnrDomainDNSDeleteReq .SetProjectId (d .config .ProjectId )
172+ }
155173 d .client .DeleteDomainDNS (udnrDomainDNSDeleteReq )
156174 break
157175 }
0 commit comments