|
import * as pulumi from '@pulumi/pulumi'; |
|
|
|
export interface PostgresRestartArgs { |
|
resourceGroupName: pulumi.Input<string>; |
|
serverName: pulumi.Input<string>; |
|
} |
|
|
|
class PostgresRestartProvider implements pulumi.dynamic.ResourceProvider { |
|
public async check( |
|
olds: any, |
|
news: any |
|
): Promise<pulumi.dynamic.CheckResult> { |
|
const failures = []; |
|
|
|
if (news['resourceGroupName'] === undefined) { |
|
failures.push({ |
|
property: 'resourceGroupName', |
|
reason: `required property '${'resourceGroupName'}' missing`, |
|
}); |
|
} |
|
|
|
if (news['serverName'] === undefined) { |
|
failures.push({ |
|
property: 'serverName', |
|
reason: `required property '${'serverName'}' missing`, |
|
}); |
|
} |
|
|
|
return { inputs: news, failures }; |
|
} |
|
|
|
public async diff( |
|
id: pulumi.ID, |
|
olds: any, |
|
news: any |
|
): Promise<pulumi.dynamic.DiffResult> { |
|
const replaces = []; |
|
|
|
if (olds['resourceGroupName'] !== news['resourceGroupName']) { |
|
replaces.push('resourceGroupName'); |
|
} |
|
if (olds['serverName'] !== news['serverName']) { |
|
replaces.push('serverName'); |
|
} |
|
|
|
return { replaces }; |
|
} |
|
|
|
public async create(inputs: any): Promise<pulumi.dynamic.CreateResult> { |
|
const { execSync } = require('child_process'); |
|
const resourceGroupName = inputs['resourceGroupName']; |
|
const serverName = inputs['serverName']; |
|
|
|
execSync( |
|
`az postgres server restart --resource-group "${resourceGroupName}" --name "${serverName}"`, |
|
{ stdio: 'ignore' } |
|
); |
|
|
|
return { |
|
id: `${serverName}Restart`, |
|
outs: {}, |
|
}; |
|
} |
|
} |
|
|
|
export class PostgresRestart extends pulumi.dynamic.Resource { |
|
constructor( |
|
name: string, |
|
args: PostgresRestartArgs, |
|
opts?: pulumi.CustomResourceOptions |
|
) { |
|
super(new PostgresRestartProvider(), name, { ...args }, opts); |
|
} |
|
} |