@@ -46,31 +46,27 @@ class AzurePSQLResourceManager {
46
46
getPSQLServer ( ) {
47
47
return this . _resource ;
48
48
}
49
- _populatePSQLServerData ( serverName ) {
49
+ _getPSQLServer ( serverType , apiVersion , serverName ) {
50
50
return __awaiter ( this , void 0 , void 0 , function * ( ) {
51
- // trim the cloud hostname suffix from servername
52
- serverName = serverName . split ( '.' ) [ 0 ] ;
53
51
const httpRequest = {
54
52
method : 'GET' ,
55
- uri : this . _restClient . getRequestUri ( ' //subscriptions/{subscriptionId}/providers/Microsoft.DBforPostgreSQL/servers' , { } , [ ] , '2017-12-01' )
53
+ uri : this . _restClient . getRequestUri ( ` //subscriptions/{subscriptionId}/providers/Microsoft.DBforPostgreSQL/${ serverType } ` , { } , [ ] , apiVersion )
56
54
} ;
57
- core . debug ( `Get PSQL server '${ serverName } ' details` ) ;
55
+ core . debug ( `Get '${ serverName } ' for PSQL ${ serverType } details` ) ;
58
56
try {
59
57
const httpResponse = yield this . _restClient . beginRequest ( httpRequest ) ;
60
58
if ( httpResponse . statusCode !== 200 ) {
61
59
throw AzureRestClient_1 . ToError ( httpResponse ) ;
62
60
}
63
- const sqlServers = httpResponse . body && httpResponse . body . value ;
64
- if ( sqlServers && sqlServers . length > 0 ) {
65
- this . _resource = sqlServers . filter ( ( sqlResource ) => sqlResource . name . toLowerCase ( ) === serverName . toLowerCase ( ) ) [ 0 ] ;
66
- if ( ! this . _resource ) {
67
- throw new Error ( `Unable to get details of PSQL server ${ serverName } . PSQL server '${ serverName } ' was not found in the subscription.` ) ;
68
- }
69
- core . debug ( JSON . stringify ( this . _resource ) ) ;
70
- }
71
- else {
72
- throw new Error ( `Unable to get details of PSQL server ${ serverName } . No PSQL servers were found in the subscription.` ) ;
61
+ const sqlServers = ( ( httpResponse . body && httpResponse . body . value ) || [ ] ) ;
62
+ const sqlServer = sqlServers . find ( ( sqlResource ) => sqlResource . name . toLowerCase ( ) === serverName . toLowerCase ( ) ) ;
63
+ if ( sqlServer ) {
64
+ this . _serverType = serverType ;
65
+ this . _apiVersion = apiVersion ;
66
+ this . _resource = sqlServer ;
67
+ return true ;
73
68
}
69
+ return false ;
74
70
}
75
71
catch ( error ) {
76
72
if ( error instanceof AzureRestClient_1 . AzureError ) {
@@ -80,12 +76,22 @@ class AzurePSQLResourceManager {
80
76
}
81
77
} ) ;
82
78
}
79
+ _populatePSQLServerData ( serverName ) {
80
+ return __awaiter ( this , void 0 , void 0 , function * ( ) {
81
+ // trim the cloud hostname suffix from servername
82
+ serverName = serverName . split ( '.' ) [ 0 ] ;
83
+ ( yield this . _getPSQLServer ( 'servers' , '2017-12-01' , serverName ) ) || ( yield this . _getPSQLServer ( 'flexibleServers' , '2021-06-01' , serverName ) ) ;
84
+ if ( ! this . _resource ) {
85
+ throw new Error ( `Unable to get details of PSQL server ${ serverName } . PSQL server '${ serverName } ' was not found in the subscription.` ) ;
86
+ }
87
+ } ) ;
88
+ }
83
89
addFirewallRule ( startIpAddress , endIpAddress ) {
84
90
return __awaiter ( this , void 0 , void 0 , function * ( ) {
85
91
const firewallRuleName = `ClientIPAddress_${ Date . now ( ) } ` ;
86
92
const httpRequest = {
87
93
method : 'PUT' ,
88
- uri : this . _restClient . getRequestUri ( `/${ this . _resource . id } /firewallRules/${ firewallRuleName } ` , { } , [ ] , '2017-12-01' ) ,
94
+ uri : this . _restClient . getRequestUri ( `/${ this . _resource . id } /firewallRules/${ firewallRuleName } ` , { } , [ ] , this . _apiVersion ) ,
89
95
body : JSON . stringify ( {
90
96
'properties' : {
91
97
'startIpAddress' : startIpAddress ,
@@ -122,7 +128,7 @@ class AzurePSQLResourceManager {
122
128
return __awaiter ( this , void 0 , void 0 , function * ( ) {
123
129
const httpRequest = {
124
130
method : 'GET' ,
125
- uri : this . _restClient . getRequestUri ( `/${ this . _resource . id } /firewallRules/${ ruleName } ` , { } , [ ] , '2017-12-01' )
131
+ uri : this . _restClient . getRequestUri ( `/${ this . _resource . id } /firewallRules/${ ruleName } ` , { } , [ ] , this . _apiVersion )
126
132
} ;
127
133
try {
128
134
const httpResponse = yield this . _restClient . beginRequest ( httpRequest ) ;
@@ -143,7 +149,7 @@ class AzurePSQLResourceManager {
143
149
return __awaiter ( this , void 0 , void 0 , function * ( ) {
144
150
const httpRequest = {
145
151
method : 'DELETE' ,
146
- uri : this . _restClient . getRequestUri ( `/${ this . _resource . id } /firewallRules/${ firewallRule . name } ` , { } , [ ] , '2017-12-01' )
152
+ uri : this . _restClient . getRequestUri ( `/${ this . _resource . id } /firewallRules/${ firewallRule . name } ` , { } , [ ] , this . _apiVersion )
147
153
} ;
148
154
try {
149
155
const httpResponse = yield this . _restClient . beginRequest ( httpRequest ) ;
0 commit comments