11import { Capi } from '@tencent-sdk/capi' ;
22import { waitResponse } from '@ygkit/request' ;
33import APIS from './apis' ;
4+ import { PostgresqlInstanceDetail , PostgresqlInstanceNetInfo } from './interface' ;
45
56// timeout 5 minutes
67const TIMEOUT = 5 * 60 * 1000 ;
@@ -10,14 +11,17 @@ const TIMEOUT = 5 * 60 * 1000;
1011 * @param {object } capi capi instance
1112 * @param {* } dBInstanceName
1213 */
13- export async function getDbInstanceDetail ( capi : Capi , dBInstanceName : string ) {
14+ export async function getDbInstanceDetail (
15+ capi : Capi ,
16+ dBInstanceId : string ,
17+ ) : Promise < PostgresqlInstanceDetail | undefined > {
1418 // get instance detail
1519 try {
1620 const res = await APIS . DescribeServerlessDBInstances ( capi , {
1721 Filter : [
1822 {
19- Name : 'db-instance-name ' ,
20- Values : [ dBInstanceName ] ,
23+ Name : 'db-instance-id ' ,
24+ Values : [ dBInstanceId ] ,
2125 } ,
2226 ] ,
2327 } ) ;
@@ -47,6 +51,17 @@ export function getDbExtranetAccess(netInfos: { NetType: string; Status: string
4751 return result ;
4852}
4953
54+ export function isEnablePublicAccess ( detail : PostgresqlInstanceDetail ) {
55+ let enable = false ;
56+ const { DBInstanceNetInfo } = detail ;
57+ DBInstanceNetInfo . forEach ( ( item : PostgresqlInstanceNetInfo ) => {
58+ if ( item . NetType === 'public' && item . Status === 'opened' ) {
59+ enable = true ;
60+ }
61+ } ) ;
62+ return enable ;
63+ }
64+
5065/**
5166 INSTANCE_STATUS_APPLYING: "applying", 申请中
5267 INSTANCE_STATUS_INIT: "init", 待初始化
@@ -72,16 +87,16 @@ export function getDbExtranetAccess(netInfos: { NetType: string; Status: string
7287 */
7388export async function toggleDbInstanceAccess (
7489 capi : Capi ,
75- dBInstanceName : string ,
90+ DBInstanceId : string ,
7691 extranetAccess : boolean ,
77- ) {
92+ ) : Promise < PostgresqlInstanceDetail > {
7893 if ( extranetAccess ) {
7994 console . log ( `Start open db extranet access...` ) ;
8095 await APIS . OpenServerlessDBExtranetAccess ( capi , {
81- DBInstanceName : dBInstanceName ,
96+ DBInstanceId : DBInstanceId ,
8297 } ) ;
8398 const detail = await waitResponse ( {
84- callback : async ( ) => getDbInstanceDetail ( capi , dBInstanceName ) ,
99+ callback : async ( ) => getDbInstanceDetail ( capi , DBInstanceId ) ,
85100 targetResponse : 'running' ,
86101 targetProp : 'DBInstanceStatus' ,
87102 timeout : TIMEOUT ,
@@ -91,10 +106,10 @@ export async function toggleDbInstanceAccess(
91106 }
92107 console . log ( `Start close db extranet access` ) ;
93108 await APIS . CloseServerlessDBExtranetAccess ( capi , {
94- DBInstanceName : dBInstanceName ,
109+ DBInstanceId : DBInstanceId ,
95110 } ) ;
96111 const detail = await waitResponse ( {
97- callback : async ( ) => getDbInstanceDetail ( capi , dBInstanceName ) ,
112+ callback : async ( ) => getDbInstanceDetail ( capi , DBInstanceId ) ,
98113 targetResponse : 'running' ,
99114 targetProp : 'DBInstanceStatus' ,
100115 timeout : TIMEOUT ,
@@ -122,15 +137,15 @@ export async function createDbInstance(
122137) {
123138 console . log ( `Start create DB instance ${ postgresInputs . DBInstanceName } ` ) ;
124139 const { DBInstanceId } = await APIS . CreateServerlessDBInstance ( capi , postgresInputs ) ;
125- console . log ( `Creating DB instance ID : ${ DBInstanceId } ` ) ;
140+ console . log ( `Creating db instance id : ${ DBInstanceId } ` ) ;
126141
127142 const detail = await waitResponse ( {
128- callback : async ( ) => getDbInstanceDetail ( capi , postgresInputs . DBInstanceName ) ,
143+ callback : async ( ) => getDbInstanceDetail ( capi , DBInstanceId ) ,
129144 targetResponse : 'running' ,
130145 targetProp : 'DBInstanceStatus' ,
131146 timeout : TIMEOUT ,
132147 } ) ;
133- console . log ( `Created DB instance name ${ postgresInputs . DBInstanceName } successfully ` ) ;
148+ console . log ( `Created db instance id ${ DBInstanceId } success ` ) ;
134149 return detail ;
135150}
136151
@@ -139,17 +154,17 @@ export async function createDbInstance(
139154 * @param {object } capi capi client
140155 * @param {string } db instance name
141156 */
142- export async function deleteDbInstance ( capi : Capi , dBInstanceName : string ) {
143- console . log ( `Start removing postgres instance ${ dBInstanceName } ` ) ;
157+ export async function deleteDbInstance ( capi : Capi , DBInstanceId : string ) {
158+ console . log ( `Start removing postgres instance id ${ DBInstanceId } ` ) ;
144159 await APIS . DeleteServerlessDBInstance ( capi , {
145- DBInstanceName : dBInstanceName ,
160+ DBInstanceId ,
146161 } ) ;
147162 const detail = await waitResponse ( {
148- callback : async ( ) => getDbInstanceDetail ( capi , dBInstanceName ) ,
163+ callback : async ( ) => getDbInstanceDetail ( capi , DBInstanceId ) ,
149164 targetResponse : undefined ,
150165 timeout : TIMEOUT ,
151166 } ) ;
152- console . log ( `Removed postgres instance ${ dBInstanceName } successfully` ) ;
167+ console . log ( `Removed postgres instance id ${ DBInstanceId } successfully` ) ;
153168 return detail ;
154169}
155170
0 commit comments