@@ -46,31 +46,27 @@ class AzurePSQLResourceManager {
4646 getPSQLServer ( ) {
4747 return this . _resource ;
4848 }
49- _populatePSQLServerData ( serverName ) {
49+ _getPSQLServer ( serverType , apiVersion , serverName ) {
5050 return __awaiter ( this , void 0 , void 0 , function * ( ) {
51- // trim the cloud hostname suffix from servername
52- serverName = serverName . split ( '.' ) [ 0 ] ;
5351 const httpRequest = {
5452 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 )
5654 } ;
57- core . debug ( `Get PSQL server '${ serverName } ' details` ) ;
55+ core . debug ( `Get '${ serverName } ' for PSQL ${ serverType } details` ) ;
5856 try {
5957 const httpResponse = yield this . _restClient . beginRequest ( httpRequest ) ;
6058 if ( httpResponse . statusCode !== 200 ) {
6159 throw AzureRestClient_1 . ToError ( httpResponse ) ;
6260 }
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 ;
7368 }
69+ return false ;
7470 }
7571 catch ( error ) {
7672 if ( error instanceof AzureRestClient_1 . AzureError ) {
@@ -80,12 +76,22 @@ class AzurePSQLResourceManager {
8076 }
8177 } ) ;
8278 }
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+ }
8389 addFirewallRule ( startIpAddress , endIpAddress ) {
8490 return __awaiter ( this , void 0 , void 0 , function * ( ) {
8591 const firewallRuleName = `ClientIPAddress_${ Date . now ( ) } ` ;
8692 const httpRequest = {
8793 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 ) ,
8995 body : JSON . stringify ( {
9096 'properties' : {
9197 'startIpAddress' : startIpAddress ,
@@ -122,7 +128,7 @@ class AzurePSQLResourceManager {
122128 return __awaiter ( this , void 0 , void 0 , function * ( ) {
123129 const httpRequest = {
124130 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 )
126132 } ;
127133 try {
128134 const httpResponse = yield this . _restClient . beginRequest ( httpRequest ) ;
@@ -143,7 +149,7 @@ class AzurePSQLResourceManager {
143149 return __awaiter ( this , void 0 , void 0 , function * ( ) {
144150 const httpRequest = {
145151 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 )
147153 } ;
148154 try {
149155 const httpResponse = yield this . _restClient . beginRequest ( httpRequest ) ;
0 commit comments