本文整理汇总了C#中Microsoft.Azure.Management.Resources.Models.Deployment类的典型用法代码示例。如果您正苦于以下问题:C# Deployment类的具体用法?C# Deployment怎么用?C# Deployment使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Deployment类属于Microsoft.Azure.Management.Resources.Models命名空间,在下文中一共展示了Deployment类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateDeployment
public async Task<Microsoft.Azure.Management.Resources.Models.DeploymentExtended> CreateDeployment(
[Metadata("Id", "The Id of the resource group to deploy to.")]string resourceGroupId,
[Metadata("Parameters", "The parameters for the template.")]string parameters,
[Metadata("Template", "The deployment template to deploy.")]string template,
[Metadata("Deployment name", "A custom name for the deployment.", VisibilityType.Advanced)]string deploymentName = null
)
{
var client = await ResourceUtilities.GetClient().ConfigureAwait(continueOnCapturedContext: false);
var deployment = new Deployment()
{
Properties = new DeploymentProperties()
{
Mode = DeploymentMode.Incremental,
Parameters = parameters,
Template = template
}
};
if (deploymentName == null)
{
deploymentName = "AzureResourceConnector-" + Guid.NewGuid().ToString("n");
}
var result = await client.Deployments.CreateOrUpdateAsync(ResourceUtilities.GetResourceGroupFromId(resourceGroupId), deploymentName, deployment, CancellationToken.None).ConfigureAwait(continueOnCapturedContext: false);
return result.Deployment;
}
示例2: CreateOrUpdate
protected override bool CreateOrUpdate()
{
var created = true;
try
{
using (var client = new ResourceManagementClient(GetCredentials()))
{
// Skip if exists
if (!CheckExistence())
{
// Build deployment parameters
var deployment = new Deployment
{
Properties = new DeploymentProperties
{
Mode = DeploymentMode.Incremental,
Template = GetTemplate(),
}
};
// Run deployment
var result = client.Deployments.CreateOrUpdateAsync(Parameters.Tenant.SiteName, "Microsoft.DocumentDB", deployment).Result;
// Wait for deployment to finish
for (var i = 0; i < 30; i++)
{
var deploymentStatus = client.Deployments.GetAsync(Parameters.Tenant.SiteName, "Microsoft.DocumentDB").Result;
if (deploymentStatus.Deployment.Properties.ProvisioningState == ProvisioningState.Succeeded.ToString())
{
break;
}
Thread.Sleep(30000);
}
Console.WriteLine(result.StatusCode);
}
// Find the Account Keys
SetAccountKeys();
}
}
catch (Exception ex)
{
created = false;
Message = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
}
return created;
}
示例3: CreateDummyDeploymentTemplateWorks
public void CreateDummyDeploymentTemplateWorks()
{
var handler = new RecordedDelegatingHandler() { StatusCodeToReturn = HttpStatusCode.Created };
var dictionary = new Dictionary<string, object> {
{"string", new Dictionary<string, object>() {
{"value", "myvalue"},
}},
{"securestring", new Dictionary<string, object>() {
{"value", "myvalue"},
}},
{"int", new Dictionary<string, object>() {
{"value", 42},
}},
{"bool", new Dictionary<string, object>() {
{"value", true},
}}
};
var serializedDictionary = JsonConvert.SerializeObject(dictionary, new JsonSerializerSettings
{
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple,
TypeNameHandling = TypeNameHandling.None
});
using (UndoContext context = UndoContext.Current)
{
context.Start();
var client = GetResourceManagementClient(handler);
var parameters = new Deployment
{
Properties = new DeploymentProperties()
{
TemplateLink = new TemplateLink
{
Uri = new Uri(DummyTemplateUri)
},
Parameters = serializedDictionary,
Mode = DeploymentMode.Incremental,
}
};
string groupName = TestUtilities.GenerateName("csmrg");
string deploymentName = TestUtilities.GenerateName("csmd");
client.ResourceGroups.CreateOrUpdate(groupName, new ResourceGroup { Location = "West Europe" });
client.Deployments.CreateOrUpdate(groupName, deploymentName, parameters);
JObject json = JObject.Parse(handler.Request);
Assert.Equal(HttpStatusCode.OK, client.Deployments.Get(groupName, deploymentName).StatusCode);
}
}
示例4: DeployTemplate
/// <summary>
/// Starts a template deployment.
/// </summary>
/// <param name="resourceManagementClient">The resource manager client.</param>
/// <param name="resourceGroupName">The name of the resource group.</param>
/// <param name="deploymentName">The name of the deployment.</param>
/// <param name="templateFileContents">The template file contents.</param>
/// <param name="parameterFileContents">The parameter file contents.</param>
private static void DeployTemplate(ResourceManagementClient resourceManagementClient, string resourceGroupName, string deploymentName, JObject templateFileContents, JObject parameterFileContents)
{
Console.WriteLine(string.Format("Starting template deployment '{0}' in resource group '{1]'", deploymentName, resourceGroupName));
var deployment = new Deployment();
deployment.Properties = new DeploymentProperties
{
Mode = DeploymentMode.Incremental,
Template = templateFileContents,
Parameters = parameterFileContents
};
var deploymentResult = resourceManagementClient.Deployments.CreateOrUpdate(resourceGroupName, deploymentName, deployment);
Console.WriteLine(string.Format("Deployment status: {0}", deploymentResult.Properties.ProvisioningState));
}
示例5: CheckExistenceReturnsCorrectValue
public void CheckExistenceReturnsCorrectValue()
{
var handler = new RecordedDelegatingHandler() { StatusCodeToReturn = HttpStatusCode.Created };
using (UndoContext context = UndoContext.Current)
{
context.Start();
var client = GetResourceManagementClient(handler);
string resourceName = TestUtilities.GenerateName("csmr");
var parameters = new Deployment
{
Properties = new DeploymentProperties()
{
TemplateLink = new TemplateLink
{
Uri = new Uri(GoodWebsiteTemplateUri),
},
Parameters =
@"{ 'siteName': {'value': 'mctest0101'},'hostingPlanName': {'value': 'mctest0101'},'siteMode': {'value': 'Limited'},'computeMode': {'value': 'Shared'},'siteLocation': {'value': 'North Europe'},'sku': {'value': 'Free'},'workerSize': {'value': '0'}}",
Mode = DeploymentMode.Incremental,
}
};
string groupName = TestUtilities.GenerateName("csmrg");
string deploymentName = TestUtilities.GenerateName("csmd");
client.ResourceGroups.CreateOrUpdate(groupName, new ResourceGroup { Location = "West Europe" });
var checkExistenceFirst = client.Deployments.CheckExistence(groupName, deploymentName);
Assert.False(checkExistenceFirst.Exists);
var deploymentCreateResult = client.Deployments.CreateOrUpdate(groupName, deploymentName, parameters);
var checkExistenceSecond = client.Deployments.CheckExistence(groupName, deploymentName);
Assert.True(checkExistenceSecond.Exists);
}
}
示例6: CreateBasicDeployment
private Deployment CreateBasicDeployment(ValidatePSResourceGroupDeploymentParameters parameters, DeploymentMode deploymentMode, string debugSetting)
{
Deployment deployment = new Deployment
{
Properties = new DeploymentProperties {
Mode = deploymentMode
}
};
if(!string.IsNullOrEmpty(debugSetting))
{
deployment.Properties.DebugSetting = new DeploymentDebugSetting
{
DeploymentDebugDetailLevel = debugSetting
};
}
if (Uri.IsWellFormedUriString(parameters.TemplateFile, UriKind.Absolute))
{
deployment.Properties.TemplateLink = new TemplateLink
{
Uri = new Uri(parameters.TemplateFile)
};
}
else
{
deployment.Properties.Template = FileUtilities.DataStore.ReadFileAsText(parameters.TemplateFile);
}
if (Uri.IsWellFormedUriString(parameters.ParameterUri, UriKind.Absolute))
{
deployment.Properties.ParametersLink = new ParametersLink
{
Uri = new Uri(parameters.ParameterUri)
};
}
else
{
deployment.Properties.Parameters = GetDeploymentParameters(parameters.TemplateParameterObject);
}
return deployment;
}
示例7: WriteDeploymentProgress
private void WriteDeploymentProgress(string resourceGroup, string deploymentName, Deployment deployment)
{
const string normalStatusFormat = "Resource {0} '{1}' provisioning status is {2}";
const string failureStatusFormat = "Resource {0} '{1}' failed with message '{2}'";
List<DeploymentOperation> newOperations;
DeploymentOperationsListResult result;
result = ResourceManagementClient.DeploymentOperations.List(resourceGroup, deploymentName, null);
newOperations = GetNewOperations(operations, result.Operations);
operations.AddRange(newOperations);
while (!string.IsNullOrEmpty(result.NextLink))
{
result = ResourceManagementClient.DeploymentOperations.ListNext(result.NextLink);
newOperations = GetNewOperations(operations, result.Operations);
operations.AddRange(newOperations);
}
foreach (DeploymentOperation operation in newOperations)
{
string statusMessage;
if (operation.Properties.ProvisioningState != ProvisioningState.Failed)
{
if (operation.Properties.TargetResource != null)
{
statusMessage = string.Format(normalStatusFormat,
operation.Properties.TargetResource.ResourceType,
operation.Properties.TargetResource.ResourceName,
operation.Properties.ProvisioningState.ToLower());
WriteVerbose(statusMessage);
}
}
else
{
string errorMessage = ParseErrorMessage(operation.Properties.StatusMessage);
if(operation.Properties.TargetResource != null)
{
statusMessage = string.Format(failureStatusFormat,
operation.Properties.TargetResource.ResourceType,
operation.Properties.TargetResource.ResourceName,
errorMessage);
WriteError(statusMessage);
}
else
{
WriteError(errorMessage);
}
List<string> detailedMessage = ParseDetailErrorMessage(operation.Properties.StatusMessage);
if (detailedMessage != null)
{
detailedMessage.ForEach(s => WriteError(s));
}
}
}
}
示例8: NewResourceGroupUsesDeploymentNameForDeploymentName
public void NewResourceGroupUsesDeploymentNameForDeploymentName()
{
string deploymentName = "abc123";
Deployment deploymentFromGet = new Deployment();
Deployment deploymentFromValidate = new Deployment();
CreatePSResourceGroupParameters parameters = new CreatePSResourceGroupParameters()
{
ResourceGroupName = resourceGroupName,
Location = resourceGroupLocation,
DeploymentName = deploymentName,
GalleryTemplateIdentity = "abc",
StorageAccountName = storageAccountName,
ConfirmAction = ConfirmAction
};
galleryTemplatesClientMock.Setup(g => g.GetGalleryTemplateFile(It.IsAny<string>())).Returns("http://path/file.html");
deploymentsMock.Setup(f => f.ValidateAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<Deployment>(), new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentValidateResponse
{
IsValid = true,
Error = new ResourceManagementErrorWithDetails()
}))
.Callback((string rg, string dn, Deployment d, CancellationToken c) => { deploymentFromValidate = d; });
deploymentsMock.Setup(f => f.CreateOrUpdateAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<Deployment>(), new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentOperationsCreateResult
{
RequestId = requestId
}))
.Callback((string name, string dName, Deployment bDeploy, CancellationToken token) => { deploymentFromGet = bDeploy; deploymentName = dName; });
SetupListForResourceGroupAsync(parameters.ResourceGroupName, new List<GenericResourceExtended>() { new GenericResourceExtended() { Name = "website" } });
var operationId = Guid.NewGuid().ToString();
var operationQueue = new Queue<DeploymentOperation>();
operationQueue.Enqueue(
new DeploymentOperation()
{
OperationId = operationId,
Properties = new DeploymentOperationProperties()
{
ProvisioningState = ProvisioningState.Accepted,
TargetResource = new TargetResource()
{
ResourceType = "Microsoft.Website",
ResourceName = resourceName
}
}
}
);
operationQueue.Enqueue(
new DeploymentOperation()
{
OperationId = operationId,
Properties = new DeploymentOperationProperties()
{
ProvisioningState = ProvisioningState.Running,
TargetResource = new TargetResource()
{
ResourceType = "Microsoft.Website",
ResourceName = resourceName
}
}
}
);
operationQueue.Enqueue(
new DeploymentOperation()
{
OperationId = operationId,
Properties = new DeploymentOperationProperties()
{
ProvisioningState = ProvisioningState.Succeeded,
TargetResource = new TargetResource()
{
ResourceType = "Microsoft.Website",
ResourceName = resourceName
}
}
}
);
deploymentOperationsMock.SetupSequence(f => f.ListAsync(It.IsAny<string>(), It.IsAny<string>(), null, new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentOperationsListResult
{
Operations = new List<DeploymentOperation>()
{
operationQueue.Dequeue()
}
}))
.Returns(Task.Factory.StartNew(() => new DeploymentOperationsListResult
{
Operations = new List<DeploymentOperation>()
{
operationQueue.Dequeue()
}
}))
.Returns(Task.Factory.StartNew(() => new DeploymentOperationsListResult
{
Operations = new List<DeploymentOperation>()
{
//.........这里部分代码省略.........
示例9: ExtractsErrorMessageFromFailedDeploymentOperation
public void ExtractsErrorMessageFromFailedDeploymentOperation()
{
Uri templateUri = new Uri("http://templateuri.microsoft.com");
Deployment deploymentFromGet = new Deployment();
Deployment deploymentFromValidate = new Deployment();
CreatePSResourceGroupParameters parameters = new CreatePSResourceGroupParameters()
{
ResourceGroupName = resourceGroupName,
Location = resourceGroupLocation,
DeploymentName = deploymentName,
TemplateFile = templateFile,
StorageAccountName = storageAccountName,
ConfirmAction = ConfirmAction
};
resourceGroupMock.Setup(f => f.CheckExistenceAsync(parameters.ResourceGroupName, new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new ResourceGroupExistsResult
{
Exists = false
}));
resourceGroupMock.Setup(f => f.CreateOrUpdateAsync(
parameters.ResourceGroupName,
It.IsAny<ResourceGroup>(),
new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new ResourceGroupCreateOrUpdateResult
{
ResourceGroup = new ResourceGroupExtended() { Name = parameters.ResourceGroupName, Location = parameters.Location }
}));
resourceGroupMock.Setup(f => f.GetAsync(resourceGroupName, new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new ResourceGroupGetResult
{
ResourceGroup = new ResourceGroupExtended() { Location = resourceGroupLocation }
}));
deploymentsMock.Setup(f => f.CreateOrUpdateAsync(resourceGroupName, deploymentName, It.IsAny<Deployment>(), new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentOperationsCreateResult
{
RequestId = requestId
}))
.Callback((string name, string dName, Deployment bDeploy, CancellationToken token) => { deploymentFromGet = bDeploy; });
deploymentsMock.Setup(f => f.GetAsync(resourceGroupName, deploymentName, new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentGetResult
{
Deployment = new DeploymentExtended()
{
Name = deploymentName,
Properties = new DeploymentPropertiesExtended()
{
Mode = DeploymentMode.Incremental,
ProvisioningState = ProvisioningState.Succeeded
}
}
}));
deploymentsMock.Setup(f => f.ValidateAsync(resourceGroupName, It.IsAny<string>(), It.IsAny<Deployment>(), new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentValidateResponse
{
IsValid = true,
Error = new ResourceManagementErrorWithDetails()
}))
.Callback((string rg, string dn, Deployment d, CancellationToken c) => { deploymentFromValidate = d; });
SetupListForResourceGroupAsync(parameters.ResourceGroupName, new List<GenericResourceExtended>() { new GenericResourceExtended() { Name = "website" } });
deploymentOperationsMock.Setup(f => f.ListAsync(resourceGroupName, deploymentName, null, new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentOperationsListResult
{
Operations = new List<DeploymentOperation>()
{
new DeploymentOperation()
{
OperationId = Guid.NewGuid().ToString(),
Properties = new DeploymentOperationProperties()
{
ProvisioningState = ProvisioningState.Failed,
StatusMessage = JsonConvert.SerializeObject(new ResourceManagementError()
{
Message = "A really bad error occured"
}),
TargetResource = new TargetResource()
{
ResourceType = "Microsoft.Website",
ResourceName = resourceName
}
}
}
}
}));
PSResourceGroup result = resourcesClient.CreatePSResourceGroup(parameters);
deploymentsMock.Verify((f => f.CreateOrUpdateAsync(resourceGroupName, deploymentName, deploymentFromGet, new CancellationToken())), Times.Once());
Assert.Equal(parameters.ResourceGroupName, result.ResourceGroupName);
Assert.Equal(parameters.Location, result.Location);
Assert.Equal(1, result.Resources.Count);
Assert.Equal(DeploymentMode.Incremental, deploymentFromGet.Properties.Mode);
Assert.NotNull(deploymentFromGet.Properties.Template);
errorLoggerMock.Verify(
f => f(string.Format("Resource {0} '{1}' failed with message '{2}'",
"Microsoft.Website",
resourceName,
"A really bad error occured")),
//.........这里部分代码省略.........
示例10: CreateTemplateDeploymentAsync
private async Task CreateTemplateDeploymentAsync(TokenCloudCredentials credential, string rgName, string templateContent, string parameterContent)
{
Deployment deployment = new Deployment();
string deploymentname = rgName + "dp";
deployment.Properties = new DeploymentProperties
{
Mode = DeploymentMode.Incremental,
Template = templateContent,
Parameters = parameterContent,
};
using (ResourceManagementClient templateDeploymentClient = new ResourceManagementClient(credential))
{
try
{
DeploymentOperationsCreateResult dpResult =
await templateDeploymentClient.Deployments.CreateOrUpdateAsync(rgName, deploymentname, deployment);
ServiceEventSource.Current.Message("ArmClusterOperator: Deployment in RG {0}: {1} ({2})", rgName, dpResult.RequestId, dpResult.StatusCode);
}
catch (Exception e)
{
ServiceEventSource.Current.Message(
"ArmClusterOperator: Failed deploying ARM template to create a cluster in RG {0}. {1}",
rgName,
e.Message);
throw;
}
}
}
开发者ID:TylerAngell,项目名称:service-fabric-dotnet-management-party-cluster,代码行数:31,代码来源:ArmClusterOperator.cs
示例11: WaitDeploymentStatus
private DeploymentExtended WaitDeploymentStatus(
string resourceGroup,
string deploymentName,
Deployment basicDeployment,
Action<string, string, Deployment> job,
params string[] status)
{
DeploymentExtended deployment;
int counter = 5000;
do
{
WriteVerbose(string.Format("Checking deployment status in {0} seconds.", counter / 1000));
TestMockSupport.Delay(counter);
if (job != null)
{
job(resourceGroup, deploymentName, basicDeployment);
}
deployment = ResourceManagementClient.Deployments.Get(resourceGroup, deploymentName).Deployment;
counter = counter + 5000 > 60000 ? 60000 : counter + 5000;
} while (!status.Any(s => s.Equals(deployment.Properties.ProvisioningState, StringComparison.OrdinalIgnoreCase)));
return deployment;
}
示例12: HandleDeploy
private static void HandleDeploy(Options options, AuthenticationContext authContext, AuthenticationResult token, ResourceManagementClient resourceManagementClient)
{
if (!string.IsNullOrWhiteSpace(options.Deploy))
{
ResourceGroupExtended rg = GetResourceGroup(options, resourceManagementClient);
//Fix location to displayname from template
using (var subscriptionClient = new SubscriptionClient(new TokenCloudCredentials(token.AccessToken)))
{
var a = subscriptionClient.Subscriptions.ListLocations(options.SubscriptionId);
rg.Location = a.Locations.Single(l => l.Name == rg.Location).DisplayName;
}
var graphtoken = authContext.AcquireToken("https://graph.windows.net/", options.ClientID, new Uri(options.RedirectUri), PromptBehavior.Auto);
var graph = new ActiveDirectoryClient(new Uri("https://graph.windows.net/" + graphtoken.TenantId), () => Task.FromResult(graphtoken.AccessToken));
var principal = graph.ServicePrincipals.Where(p => p.AppId == options.ApplicaitonId).ExecuteSingleAsync().GetAwaiter().GetResult();
DeploymentExtended deploymentInfo = null;
if (!resourceManagementClient.Deployments.CheckExistence(options.ResourceGroup, options.DeployName).Exists)
{
var deployment = new Deployment
{
Properties = new DeploymentProperties
{
Mode = DeploymentMode.Incremental, //Dont Delete other resources
Template = File.ReadAllText(options.Deploy),
Parameters = new JObject(
new JProperty("siteName", CreateValue(options.SiteName)),
new JProperty("hostingPlanName", CreateValue(options.HostingPlanName)),
new JProperty("storageAccountType", CreateValue(options.StorageAccountType)),
new JProperty("siteLocation", CreateValue(rg.Location)),
new JProperty("sku", CreateValue(options.WebsitePlan)),
new JProperty("tenantId", CreateValue(token.TenantId)),
new JProperty("objectId", CreateValue(token.UserInfo.UniqueId)),
new JProperty("appOwnerTenantId", CreateValue(principal.AppOwnerTenantId.Value.ToString())),
new JProperty("appOwnerObjectId", CreateValue(principal.ObjectId))
).ToString(),
}
};
var result = resourceManagementClient.Deployments.CreateOrUpdate(options.ResourceGroup, options.DeployName, deployment);
deploymentInfo = result.Deployment;
}
else
{
var deploymentStatus = resourceManagementClient.Deployments.Get(options.ResourceGroup, options.DeployName);
deploymentInfo = deploymentStatus.Deployment;
}
while (!(deploymentInfo.Properties.ProvisioningState == "Succeeded" || deploymentInfo.Properties.ProvisioningState == "Failed"))
{
var deploymentStatus = resourceManagementClient.Deployments.Get(options.ResourceGroup, options.DeployName);
deploymentInfo = deploymentStatus.Deployment;
Thread.Sleep(5000);
}
Console.WriteLine(deploymentInfo.Properties.Outputs);
var outputs = JObject.Parse(deploymentInfo.Properties.Outputs);
var storageAccountName = outputs["storageAccount"]["value"].ToString();
var keyvaultName = outputs["keyvault"]["value"].ToString();
using (var client = new KeyVaultManagementClient(new TokenCloudCredentials(options.SubscriptionId, token.AccessToken)))
{
using (var storageClient = new StorageManagementClient(new TokenCloudCredentials(options.SubscriptionId, token.AccessToken)))
{
var keys = storageClient.StorageAccounts.ListKeys(options.ResourceGroup, storageAccountName);
var vaultInfo = client.Vaults.Get(options.ResourceGroup, keyvaultName);
//CHEATING (using powershell application id to get token on behhalf of user);
var vaultToken = authContext.AcquireToken("https://vault.azure.net", "1950a258-227b-4e31-a9cf-717495945fc2", new Uri("urn:ietf:wg:oauth:2.0:oob"));
var keyvaultClient = new KeyVaultClient((_, b, c) => Task.FromResult(vaultToken.AccessToken));
var secrets = keyvaultClient.GetSecretsAsync(vaultInfo.Vault.Properties.VaultUri).GetAwaiter().GetResult();
if (secrets.Value == null || !secrets.Value.Any(s => s.Id == vaultInfo.Vault.Properties.VaultUri + "secrets/storage"))
{
keyvaultClient.SetSecretAsync(vaultInfo.Vault.Properties.VaultUri, "storage", $"{storageAccountName}:{keys.StorageAccountKeys.Key1}").GetAwaiter().GetResult();
keyvaultClient.SetSecretAsync(vaultInfo.Vault.Properties.VaultUri, "storage", $"{storageAccountName}:{keys.StorageAccountKeys.Key2}").GetAwaiter().GetResult();
var secret = keyvaultClient.GetSecretVersionsAsync(vaultInfo.Vault.Properties.VaultUri, "storage").GetAwaiter().GetResult();
}
}
}
}
}
示例13: CreateBasicDeployment
private Deployment CreateBasicDeployment(ValidatePSResourceGroupDeploymentParameters parameters, DeploymentMode deploymentMode)
{
Deployment deployment = new Deployment
{
Properties = new DeploymentProperties {
Mode = deploymentMode
}
};
if (Uri.IsWellFormedUriString(parameters.TemplateFile, UriKind.Absolute))
{
deployment.Properties.TemplateLink = new TemplateLink
{
Uri = new Uri(parameters.TemplateFile)
};
}
else if (!string.IsNullOrEmpty(parameters.GalleryTemplateIdentity))
{
deployment.Properties.TemplateLink = new TemplateLink
{
Uri = new Uri(GalleryTemplatesClient.GetGalleryTemplateFile(parameters.GalleryTemplateIdentity))
};
}
else
{
deployment.Properties.Template = FileUtilities.DataStore.ReadFileAsText(parameters.TemplateFile);
}
if (Uri.IsWellFormedUriString(parameters.ParameterUri, UriKind.Absolute))
{
deployment.Properties.ParametersLink = new ParametersLink
{
Uri = new Uri(parameters.ParameterUri)
};
}
else
{
deployment.Properties.Parameters = GetDeploymentParameters(parameters.TemplateParameterObject);
}
return deployment;
}
示例14: CreateBasicDeployment
private Deployment CreateBasicDeployment(ValidatePSResourceGroupDeploymentParameters parameters, DeploymentMode deploymentMode)
{
Deployment deployment = new Deployment
{
Properties = new DeploymentProperties {
Mode = deploymentMode,
Template = GetTemplate(parameters.TemplateFile, parameters.GalleryTemplateIdentity),
Parameters = GetDeploymentParameters(parameters.TemplateParameterObject)
}
};
return deployment;
}
示例15: NewResourceGroupFailsWithInvalidDeployment
public void NewResourceGroupFailsWithInvalidDeployment()
{
Uri templateUri = new Uri("http://templateuri.microsoft.com");
Deployment deploymentFromGet = new Deployment();
Deployment deploymentFromValidate = new Deployment();
CreatePSResourceGroupParameters parameters = new CreatePSResourceGroupParameters()
{
ResourceGroupName = resourceGroupName,
Location = resourceGroupLocation,
DeploymentName = deploymentName,
TemplateFile = templateFile,
StorageAccountName = storageAccountName,
ConfirmAction = ConfirmAction
};
resourceGroupMock.Setup(f => f.CheckExistenceAsync(parameters.ResourceGroupName, new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new ResourceGroupExistsResult
{
Exists = false
}));
resourceGroupMock.Setup(f => f.CreateOrUpdateAsync(
parameters.ResourceGroupName,
It.IsAny<ResourceGroup>(),
new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new ResourceGroupCreateOrUpdateResult
{
ResourceGroup = new ResourceGroupExtended() { Name = parameters.ResourceGroupName, Location = parameters.Location }
}));
resourceGroupMock.Setup(f => f.GetAsync(resourceGroupName, new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new ResourceGroupGetResult
{
ResourceGroup = new ResourceGroupExtended() { Location = resourceGroupLocation }
}));
deploymentsMock.Setup(f => f.CreateOrUpdateAsync(resourceGroupName, deploymentName, It.IsAny<Deployment>(), new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentOperationsCreateResult
{
RequestId = requestId
}))
.Callback((string name, string dName, Deployment bDeploy, CancellationToken token) => { deploymentFromGet = bDeploy; });
deploymentsMock.Setup(f => f.GetAsync(resourceGroupName, deploymentName, new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentGetResult
{
Deployment = new DeploymentExtended()
{
Name = deploymentName,
Properties = new DeploymentPropertiesExtended()
{
Mode = DeploymentMode.Incremental,
ProvisioningState = ProvisioningState.Succeeded
},
}
}));
deploymentsMock.Setup(f => f.ValidateAsync(resourceGroupName, It.IsAny<string>(), It.IsAny<Deployment>(), new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentValidateResponse
{
Error = new ResourceManagementErrorWithDetails()
{
Code = "404",
Message = "Awesome error message",
Target = "Bad deployment"
}
}))
.Callback((string rg, string dn, Deployment d, CancellationToken c) => { deploymentFromValidate = d; });
SetupListForResourceGroupAsync(parameters.ResourceGroupName, new List<GenericResourceExtended>() { new GenericResourceExtended() { Name = "website" } });
deploymentOperationsMock.Setup(f => f.ListAsync(resourceGroupName, deploymentName, null, new CancellationToken()))
.Returns(Task.Factory.StartNew(() => new DeploymentOperationsListResult
{
Operations = new List<DeploymentOperation>()
{
new DeploymentOperation()
{
OperationId = Guid.NewGuid().ToString(),
Properties = new DeploymentOperationProperties()
{
ProvisioningState = ProvisioningState.Succeeded,
TargetResource = new TargetResource()
{
ResourceName = resourceName,
ResourceType = "Microsoft.Website"
}
}
}
}
}));
Assert.Throws<ArgumentException>(() => resourcesClient.CreatePSResourceGroup(parameters));
}