github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/provider/azure/deployments.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package azure 5 6 import ( 7 "github.com/Azure/azure-sdk-for-go/arm/resources/resources" 8 "github.com/Azure/go-autorest/autorest" 9 "github.com/juju/errors" 10 11 "github.com/juju/juju/provider/azure/internal/armtemplates" 12 ) 13 14 func createDeployment( 15 callAPI callAPIFunc, 16 client resources.DeploymentsClient, 17 resourceGroup string, 18 deploymentName string, 19 t armtemplates.Template, 20 ) error { 21 templateMap, err := t.Map() 22 if err != nil { 23 return errors.Trace(err) 24 } 25 deployment := resources.Deployment{ 26 &resources.DeploymentProperties{ 27 Template: &templateMap, 28 Mode: resources.Incremental, 29 }, 30 } 31 if err := callAPI(func() (autorest.Response, error) { 32 return client.CreateOrUpdate( 33 resourceGroup, 34 deploymentName, 35 deployment, 36 nil, // abort channel 37 ) 38 }); err != nil { 39 return errors.Annotatef(err, "creating deployment %q", deploymentName) 40 } 41 return nil 42 }