Skip to content

Commit

Permalink
Clean up Node.js examples (#155)
Browse files Browse the repository at this point in the history
Clean up Node.js examples
  • Loading branch information
mikhailshilkov authored Sep 2, 2020
1 parent 205ddc9 commit 5ec4947
Show file tree
Hide file tree
Showing 35 changed files with 150 additions and 320 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,6 @@ Navigate to one of the `examples` and run Pulumi:

```
$ cd ./exampes/simple
$ yarn link @pulumi/azurerm
$ pulumi up
```
46 changes: 27 additions & 19 deletions examples/appservice/index.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
import * as pulumi from "@pulumi/pulumi";
import * as azurerm from "../../sdk/nodejs";
import * as random from "@pulumi/random";

const resourceGroup = new azurerm.resources.latest.ResourceGroup("rg", {
resourceGroupName: "azurerm-appservice",
import * as insights from "@pulumi/azurerm/insights/latest";
import * as resources from "@pulumi/azurerm/resources/latest";
import * as sql from "@pulumi/azurerm/sql/latest";
import * as storage from "@pulumi/azurerm/storage/latest";
import * as web from "@pulumi/azurerm/web/latest";

const randomString = new random.RandomString("random", {
length: 12,
special: false,
upper: false,
});

const resourceGroup = new resources.ResourceGroup("rg", {
resourceGroupName: randomString.result,
location: "westus2",
tags: {
Owner: "mikhailshilkov",
Env: "prod2",
},
});

const storageAccount = new azurerm.storage.latest.StorageAccount("sa", {
const storageAccount = new storage.StorageAccount("sa", {
resourceGroupName: resourceGroup.name,
accountName: "pulumiassa",
accountName: randomString.result,
location: "westus2",
sku: {
name: "Standard_LRS",
Expand All @@ -21,9 +29,9 @@ const storageAccount = new azurerm.storage.latest.StorageAccount("sa", {
kind: "StorageV2",
});

const appServicePlan = new azurerm.web.latest.AppServicePlan("asp", {
const appServicePlan = new web.AppServicePlan("asp", {
resourceGroupName: resourceGroup.name,
name: "appservice-plan",
name: randomString.result,
location: "westus2",
kind: "App",
sku: {
Expand All @@ -32,7 +40,7 @@ const appServicePlan = new azurerm.web.latest.AppServicePlan("asp", {
},
});

const storageContainer = new azurerm.storage.latest.BlobContainer("c", {
const storageContainer = new storage.BlobContainer("c", {
resourceGroupName: resourceGroup.name,
accountName: storageAccount.name,
containerName: "files",
Expand All @@ -51,38 +59,38 @@ const storageContainer = new azurerm.storage.latest.BlobContainer("c", {
// TODO: invokes are not supported yet
// const codeBlobUrl = azure.storage.signedBlobReadUrl(blob, storageAccount);

const appInsights = new azurerm.insights.latest.Component("ai", {
const appInsights = new insights.Component("ai", {
resourceGroupName: resourceGroup.name,
location: "westus2",
resourceName: "pulumi-as-ai",
resourceName: randomString.result,
kind: "web",
applicationType: "web",
});

const username = "pulumi";
const pwd = "Not2S3cure!?";

const sqlServer = new azurerm.sql.latest.Server("sql", {
const sqlServer = new sql.Server("sql", {
resourceGroupName: resourceGroup.name,
location: "westus2",
serverName: "pulumi-as-sql",
serverName: randomString.result,
administratorLogin: username,
administratorLoginPassword: pwd,
version: "12.0",
});

const database = new azurerm.sql.latest.Database("db", {
const database = new sql.Database("db", {
resourceGroupName: resourceGroup.name,
location: "westus2",
serverName: sqlServer.name,
databaseName: "db",
requestedServiceObjectiveName: "S0",
});

const app = new azurerm.web.latest.WebApp("as", {
const app = new web.WebApp("as", {
resourceGroupName: resourceGroup.name,
location: "westus2",
name: "pulumi-rm-as",
name: randomString.result,

serverFarmId: appServicePlan.id,
siteConfig: {
Expand Down
6 changes: 2 additions & 4 deletions examples/appservice/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
"@types/node": "latest"
},
"dependencies": {
"@pulumi/pulumi": "latest"
},
"peerDependencies": {
"@pulumi/azurerm": "latest"
"@pulumi/pulumi": "^2.0.0",
"@pulumi/random": "^2.0.0"
}
}
13 changes: 8 additions & 5 deletions examples/cosmosdb/component.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import * as azurerm from "../../sdk/nodejs";
import * as pulumi from "@pulumi/pulumi";

import * as documentdb from "@pulumi/azurerm/documentdb/latest";
import * as resources from "@pulumi/azurerm/resources/latest";
import { documentdb as documentdbInputs } from "@pulumi/azurerm/types/input";

export type Location =
"eastasia" |
"southeastasia" |
Expand Down Expand Up @@ -66,7 +69,7 @@ type MultipleLocations = {
type Locationable = SingleLocation | MultipleLocations;

interface MyDatabaseAccountArgs {
resourceGroup: azurerm.resources.latest.ResourceGroup;
resourceGroup: resources.ResourceGroup;
api: Api;
consisencyPolicy: ConsistencyPolicy;
location: Locationable;
Expand All @@ -75,10 +78,10 @@ interface MyDatabaseAccountArgs {
export class DatabaseAccount {
public id: pulumi.Output<string>;

constructor(name: string, args: MyDatabaseAccountArgs) {
constructor(name: pulumi.Output<string>, args: MyDatabaseAccountArgs) {

let kind = "GlobalDocumentDB";
let capabilities: azurerm.types.input.documentdb.latest.Capability[] = [];
let capabilities: documentdbInputs.latest.Capability[] | undefined = undefined;
if (args.api === "MongoDB") {
kind = "MongoDB";
} else if (args.api === "Cassandra") {
Expand All @@ -93,7 +96,7 @@ export class DatabaseAccount {
const enableMultipleWriteLocations = args.location.type === "single" ? false : args.location.enableMultipleWriteLocations;
const enableAutomaticFailover = args.location.type === "single" ? false : args.location.enableAutomaticFailover;

const cosmosdbAccount = new azurerm.documentdb.latest.DatabaseAccount(name, {
const cosmosdbAccount = new documentdb.DatabaseAccount("dbaccount", {
resourceGroupName: args.resourceGroup.name,
accountName: name,
location: locations[0],
Expand Down
48 changes: 13 additions & 35 deletions examples/cosmosdb/index.ts
Original file line number Diff line number Diff line change
@@ -1,46 +1,24 @@
import * as pulumi from "@pulumi/pulumi";
import * as azurerm from "../../sdk/nodejs";
import * as random from "@pulumi/random";
import * as resources from "@pulumi/azurerm/resources/latest";
import * as cosmosdb from "./component";

const resourceGroup = new azurerm.resources.latest.ResourceGroup("rg", {
resourceGroupName: "azurerm-cosmos",
const randomString = new random.RandomString("random", {
length: 12,
special: false,
upper: false,
});

const resourceGroup = new resources.ResourceGroup("rg", {
resourceGroupName: randomString.result,
location: "westeurope",
tags: {
Owner: "mikhailshilkov",
},
});

export const cosmosdbAccount = new cosmosdb.DatabaseAccount("pulumicosmosdb", {
export const cosmosdbAccount = new cosmosdb.DatabaseAccount(randomString.result, {
resourceGroup,
api: "Sql",
consisencyPolicy: { defaultConsistencyLevel: "Session" },
location: {
type: "multiple",
regions: ["westeurope", "northeurope"],
enableMultipleWriteLocations: true,
enableAutomaticFailover: true,
type: "single",
region: "westeurope",
},
});

// const cosmosdbAccount2 = new azurerm.documentdb.latest.DatabaseAccount("pulumicosmosdb", {
// resourceGroupName: resourceGroup.name,
// accountName: "pulumicosmosdb",
// location: resourceGroup.location,
// kind: "GlobalDocumentDB",
// consistencyPolicy: {
// defaultConsistencyLevel: "Session",
// },
// locations: [{
// locationName: "westeurope",
// failoverPriority: 0,
// isZoneRedundant: false
// }, {
// locationName: "northeurope",
// failoverPriority: 1,
// isZoneRedundant: false
// }],
// databaseAccountOfferType: "Standard",
// enableAutomaticFailover: true,
// capabilities: [],
// enableMultipleWriteLocations: true,
// });
6 changes: 2 additions & 4 deletions examples/cosmosdb/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@
"@types/node": "latest"
},
"dependencies": {
"@pulumi/pulumi": "latest",
"@pulumi/pulumi": "^2.0.0",
"@pulumi/random": "^2.0.0",
"@types/node": "^10.3.3",
"@types/mocha": "^5.2.7",
"mocha": "^7.0.0",
"ts-node": "^8.6.2"
},
"peerDependencies": {
"@pulumi/azurerm": "latest"
}
}
3 changes: 1 addition & 2 deletions examples/cosmosdb/unittests.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// Copyright 2016-2020, Pulumi Corporation. All rights reserved.

import * as azurerm from "../../sdk/nodejs";
import * as pulumi from "../../sdk/nodejs/node_modules/@pulumi/pulumi";
import * as pulumi from "@pulumi/pulumi";
import "mocha";
import { distanceBetweenRegions } from "./distance";

Expand Down
18 changes: 18 additions & 0 deletions examples/examples_nodejs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,24 @@ import (
"github.com/pulumi/pulumi/pkg/v2/testing/integration"
)

func TestAccAppServiceTs(t *testing.T) {
test := getJSBaseOptions(t).
With(integration.ProgramTestOptions{
Dir: filepath.Join(getCwd(t), "appservice"),
})

integration.ProgramTest(t, &test)
}

func TestAccCosmosDBTs(t *testing.T) {
test := getJSBaseOptions(t).
With(integration.ProgramTestOptions{
Dir: filepath.Join(getCwd(t), "cosmosdb"),
})

integration.ProgramTest(t, &test)
}

func TestAccSimpleTs(t *testing.T) {
test := getJSBaseOptions(t).
With(integration.ProgramTestOptions{
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,49 +1,56 @@
// Copyright 2020, Pulumi Corporation. All rights reserved.

import * as azurerm from "@pulumi/azurerm";
import * as pulumi from "@pulumi/pulumi";
import * as random from "@pulumi/random";

import * as hdinsight from "@pulumi/azurerm/hdinsight/v20180601preview";
import * as resources from "@pulumi/azurerm/resources/latest";
import * as storage from "@pulumi/azurerm/storage/latest";

const config = new pulumi.Config();
const location = config.require("location");
const username = config.require("username");
const password = config.require("password");

const randomString = new random.RandomString("random", {
length: 12,
special: false,
upper: false,
});

// Create an Azure Resource Group
const resourceGroup = new azurerm.resources.latest.ResourceGroup("spark-rg", {
resourceGroupName: "azurerm",
const resourceGroup = new resources.ResourceGroup("spark-rg", {
resourceGroupName: randomString.result,
location: location,
tags: {
Owner: "azurerm-test",
},
});

// Create a storage account and a container for Spark
const storageAccount = new azurerm.storage.latest.StorageAccount("sparksa", {
const storageAccount = new storage.StorageAccount("sparksa", {
resourceGroupName: resourceGroup.name,
sku: {
name: "Standard_LRS",
tier: "Standard",
},
accountName: "sparksa12345",
accountName: randomString.result,
location: location,
kind: "StorageV2",
});

const storageContainer = new azurerm.storage.latest.BlobContainer("spark", {
containerName: "spark-sc12345",
const storageContainer = new storage.BlobContainer("spark", {
containerName: randomString.result,
accountName: storageAccount.name,
resourceGroupName: resourceGroup.name,
});

const storageAccountKeys = pulumi.all([resourceGroup.name, storageAccount.name, storageAccount.id]).apply(
([resourceGroupName, accountName]) =>
azurerm.storage.latest.listStorageAccountKeys({ resourceGroupName, accountName }));
storage.listStorageAccountKeys({ resourceGroupName, accountName }));

const primaryStorageKey = storageAccountKeys.keys[0].value;

// Create a Spark cluster in HDInsight
const sparkCluster = new azurerm.hdinsight.preview.Cluster("myspark", {
clusterName: "spark-cluster12345",
const sparkCluster = new hdinsight.Cluster("myspark", {
clusterName: randomString.result,
resourceGroupName: resourceGroup.name,
location: location,
properties: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "azure-ts-hdinsight-spark",
"name": "arm-hdinsight-spark",
"version": "0.1.0",
"devDependencies": {
"@types/node": "latest"
Expand All @@ -8,4 +8,4 @@
"@pulumi/pulumi": "^2.0.0",
"@pulumi/random": "^2.0.0"
}
}
}
File renamed without changes.
Loading

0 comments on commit 5ec4947

Please sign in to comment.