freezing-greece-4855
07/27/2021, 5:42 PMbillowy-army-68599
07/27/2021, 5:44 PMfreezing-greece-4855
07/27/2021, 5:45 PMpackage main
import (
"fmt"
"<http://github.com/pulumi/pulumi-azure-native/sdk/go/azure/compute|github.com/pulumi/pulumi-azure-native/sdk/go/azure/compute>"
"<http://github.com/pulumi/pulumi/sdk/v3/go/pulumi|github.com/pulumi/pulumi/sdk/v3/go/pulumi>"
"<http://github.com/pulumi/pulumi/sdk/v3/go/pulumi/config|github.com/pulumi/pulumi/sdk/v3/go/pulumi/config>"
)
func createImageGallery(ctx *pulumi.Context) (*compute.Gallery, error) {
stack := ctx.Stack()
conf := config.New(ctx, "")
name := conf.Require("application-name")
gallery, err := compute.NewGallery(ctx, "gallery", &compute.GalleryArgs{
Description: pulumi.String("This is the gallery description."),
GalleryName: pulumi.String(fmt.Sprintf("%s-image-gallery-%s", name, stack)),
Location: pulumi.String("West US"),
ResourceGroupName: pulumi.String("myResourceGroup"),
})
if err != nil {
return nil, err
}
return gallery, nil
}
package main
import (
"fmt"
"sync"
"testing"
"<http://github.com/pulumi/pulumi/sdk/v3/go/common/resource|github.com/pulumi/pulumi/sdk/v3/go/common/resource>"
"<http://github.com/pulumi/pulumi/sdk/v3/go/pulumi|github.com/pulumi/pulumi/sdk/v3/go/pulumi>"
"<http://github.com/stretchr/testify/assert|github.com/stretchr/testify/assert>"
)
type mocks int
func (mocks) NewResource(args pulumi.MockResourceArgs) (string, resource.PropertyMap, error) {
outputs := args.Inputs.Mappable()
fmt.Println(outputs)
fmt.Println(args.TypeToken)
switch args.TypeToken {
case "azure-native:compute:Gallery":
outputs["name"] = outputs["galleryName"]
}
return args.Name, resource.NewPropertyMapFromMap(outputs), nil
}
func (mocks) Call(args pulumi.MockCallArgs) (resource.PropertyMap, error) {
return args.Args, nil
}
func TestCreateImageGallery(t *testing.T) {
err := pulumi.RunErr(func(ctx *pulumi.Context) error {
gallery, err := createImageGallery(ctx)
assert.NoError(t, err)
var wg sync.WaitGroup
wg.Add(1)
pulumi.All(gallery.Name).ApplyT(func(all []interface{}) error {
name := all[0].(string)
assert.Equal(t, "kong-image-gallery-nonprod", name)
wg.Done()
return nil
})
wg.Wait()
return nil
}, pulumi.WithMocks("core", "azure-core-nonprod", mocks(0)))
assert.NoError(t, err)
}
config:
azure-native:location: EastUS2
core:application-name: kong
panic: fatal: A failure has occurred: missing required configuration variable 'core:application-name'; run `pulumi config` to set [recovered]
panic: fatal: A failure has occurred: missing required configuration variable 'core:application-name'; run `pulumi config` to set
and error.
├── Pulumi.azure-core-nonprod.yaml
├── Pulumi.yaml
├── go.mod
├── go.sum
├── image_gallery.go
├── image_gallery_test.go
└── main.go
0 directories, 7 files
billowy-army-68599
07/27/2021, 6:05 PMfreezing-greece-4855
07/27/2021, 6:06 PMbillowy-army-68599
07/27/2021, 6:07 PM