github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/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  	stdcontext "context"
     8  
     9  	"github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2018-05-01/resources"
    10  	"github.com/juju/errors"
    11  
    12  	"github.com/juju/juju/environs/context"
    13  	"github.com/juju/juju/provider/azure/internal/armtemplates"
    14  	"github.com/juju/juju/provider/azure/internal/errorutils"
    15  )
    16  
    17  func createDeployment(
    18  	ctx context.ProviderCallContext,
    19  	client resources.DeploymentsClient,
    20  	resourceGroup string,
    21  	deploymentName string,
    22  	t armtemplates.Template,
    23  ) error {
    24  	templateMap, err := t.Map()
    25  	if err != nil {
    26  		return errors.Trace(err)
    27  	}
    28  	deployment := resources.Deployment{
    29  		Properties: &resources.DeploymentProperties{
    30  			Template: &templateMap,
    31  			Mode:     resources.Incremental,
    32  		},
    33  	}
    34  	sdkCtx := stdcontext.Background()
    35  	_, err = client.CreateOrUpdate(
    36  		sdkCtx,
    37  		resourceGroup,
    38  		deploymentName,
    39  		deployment,
    40  	)
    41  	if err != nil {
    42  		return errorutils.HandleCredentialError(errors.Annotatef(err, "creating deployment %q", deploymentName), ctx)
    43  	}
    44  	return nil
    45  }