Skip to content

Commit a8fc834

Browse files
authored
Merge pull request #77 from cloudgraphdev/feature/EP-3223-add-missing-postgre-sql-server-services
feat(azure): Add missing postgreSql server services
2 parents bf93510 + 8aeff96 commit a8fc834

File tree

4 files changed

+62
-5
lines changed

4 files changed

+62
-5
lines changed

src/services/postgreSqlServers/data.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
FirewallRule,
44
PostgreSQLManagementClient,
55
Server,
6+
VirtualNetworkRule,
67
} from '@azure/arm-postgresql'
78
import { PagedAsyncIterableIterator } from '@azure/core-paging'
89
import CloudGraph from '@cloudgraph/sdk'
@@ -23,6 +24,7 @@ export interface RawAzurePostgreSqlServer
2324
Tags: TagMap
2425
configurations: Configuration[]
2526
firewallRules: FirewallRule[]
27+
virtualNetworkRules: VirtualNetworkRule[]
2628
}
2729

2830
export default async ({
@@ -100,13 +102,32 @@ export default async ({
100102
operation: `listByServer for ${name}`,
101103
}
102104
)
105+
const virtualNetworkRules: VirtualNetworkRule[] = []
106+
const virtualNetworkRulesIterable: PagedAsyncIterableIterator<VirtualNetworkRule> =
107+
client.virtualNetworkRules.listByServer(resourceGroupId, name)
108+
await tryCatchWrapper(
109+
async () => {
110+
for await (const virtualNetworkRule of virtualNetworkRulesIterable) {
111+
if (virtualNetworkRule) {
112+
virtualNetworkRules.push(virtualNetworkRule)
113+
}
114+
}
115+
},
116+
{
117+
service: serviceName,
118+
client,
119+
scope: 'virtualNetworkRules',
120+
operation: `listByServer for ${name}`,
121+
}
122+
)
103123
result[region].push({
104124
name,
105125
region,
106126
...rest,
107127
resourceGroupId,
108128
configurations,
109129
firewallRules,
130+
virtualNetworkRules,
110131
Tags: tags || {},
111132
})
112133
}

src/services/postgreSqlServers/format.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { formatTagsFromMap } from '../../utils/format'
22
import { RawAzurePostgreSqlServer } from './data'
3-
import { AzurePostgreSqlServer } from '../../types/generated'
3+
import {
4+
AzurePostgreSqlServer,
5+
AzurePostgreSqlServerVirtualNetworkRule,
6+
} from '../../types/generated'
47

58
export default ({
69
service,
@@ -33,8 +36,9 @@ export default ({
3336
privateEndpointConnections,
3437
resourceGroupId,
3538
Tags,
36-
configurations,
37-
firewallRules
39+
configurations = [],
40+
firewallRules = [],
41+
virtualNetworkRules = [],
3842
} = service
3943

4044
return {
@@ -93,14 +97,26 @@ export default ({
9397
name: confName,
9498
type: confType,
9599
startIpAddress,
96-
endIpAddress
100+
endIpAddress,
97101
}) => ({
98102
id: confId,
99103
name: confName,
100104
type: confType,
101105
startIpAddress,
102-
endIpAddress
106+
endIpAddress,
103107
})
104108
),
109+
virtualNetworkRules:
110+
virtualNetworkRules?.map(
111+
({
112+
id: virtualNetworkRuleId,
113+
name: virtualNetworkRuleName,
114+
type: virtualNetworkRuleType,
115+
}): AzurePostgreSqlServerVirtualNetworkRule => ({
116+
id: virtualNetworkRuleId,
117+
name: virtualNetworkRuleName,
118+
type: virtualNetworkRuleType,
119+
})
120+
) ?? [],
105121
}
106122
}

src/services/postgreSqlServers/schema.graphql

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type azurePostgreSqlServer implements azureResource
2121
publicNetworkAccess: String @search(by: [hash, regexp])
2222
configurations: [azurePostgreSqlServerConfiguration]
2323
firewallRules: [azurePostgreSqlServerFirewallRule]
24+
virtualNetworkRules: [azurePostgreSqlServerVirtualNetworkRule]
2425
privateEndpointConnections: [azurePostgreSqlServerPrivateEndpointConnection]
2526
databasePostgreSql: [azureDatabasePostgreSql]
2627
@hasInverse(field: postgreSqlServer)
@@ -119,3 +120,15 @@ type azurePostgreSqlServerFirewallRule
119120
startIpAddress: String @search(by: [hash, regexp])
120121
endIpAddress: String @search(by: [hash, regexp])
121122
}
123+
124+
type azurePostgreSqlServerVirtualNetworkRule
125+
@generate(
126+
query: { get: false, query: true, aggregate: false }
127+
mutation: { add: false, delete: false }
128+
subscription: false
129+
)
130+
@key(fields: "id") {
131+
id: String! @id @search(by: [hash])
132+
name: String @search(by: [hash, regexp])
133+
type: String @search(by: [hash, regexp])
134+
}

src/types/generated.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4316,6 +4316,7 @@ export type AzurePostgreSqlServer = AzureResource & {
43164316
storageProfile?: Maybe<AzurePostgreSqlServerStorageProfile>;
43174317
userVisibleState?: Maybe<Scalars['String']>;
43184318
version?: Maybe<Scalars['String']>;
4319+
virtualNetworkRules?: Maybe<Array<Maybe<AzurePostgreSqlServerVirtualNetworkRule>>>;
43194320
};
43204321

43214322
export type AzurePostgreSqlServerConfiguration = {
@@ -4372,6 +4373,12 @@ export type AzurePostgreSqlServerStorageProfile = {
43724373
storageMB?: Maybe<Scalars['Int']>;
43734374
};
43744375

4376+
export type AzurePostgreSqlServerVirtualNetworkRule = {
4377+
id: Scalars['String'];
4378+
name?: Maybe<Scalars['String']>;
4379+
type?: Maybe<Scalars['String']>;
4380+
};
4381+
43754382
export type AzurePrivateDnsZone = AzureResource & {
43764383
etag?: Maybe<Scalars['String']>;
43774384
internalId?: Maybe<Scalars['String']>;

0 commit comments

Comments
 (0)