public override void ExecuteCmdlet() { if (ShouldProcess(KeyName, Properties.Resources.AddIotHubKey)) { if (ParameterSetName.Equals(ResourceIdParameterSet)) { this.ResourceGroupName = IotHubUtils.GetResourceGroupName(this.HubId); this.Name = IotHubUtils.GetIotHubName(this.HubId); } var psAuthRule = new PSSharedAccessSignatureAuthorizationRule() { KeyName = this.KeyName, PrimaryKey = this.PrimaryKey, SecondaryKey = this.SecondaryKey, Rights = this.Rights }; var authRule = IotHubUtils.ToSharedAccessSignatureAuthorizationRule(psAuthRule); IotHubDescription iothubDesc = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name); IList <SharedAccessSignatureAuthorizationRule> authRules = (List <SharedAccessSignatureAuthorizationRule>) this.IotHubClient.IotHubResource.ListKeys(this.ResourceGroupName, this.Name).ToList(); authRules.Add(authRule); iothubDesc.Properties.AuthorizationPolicies = authRules; this.IotHubClient.IotHubResource.CreateOrUpdate(this.ResourceGroupName, this.Name, iothubDesc); IEnumerable <SharedAccessSignatureAuthorizationRule> updatedAuthRules = this.IotHubClient.IotHubResource.ListKeys(this.ResourceGroupName, this.Name); this.WriteObject(IotHubUtils.ToPSSharedAccessSignatureAuthorizationRules(updatedAuthRules), true); } }
public override void ExecuteCmdlet() { if (ShouldProcess(KeyName, Properties.Resources.NewIotHubKey)) { if (ParameterSetName.Equals(ResourceIdParameterSet)) { this.ResourceGroupName = IotHubUtils.GetResourceGroupName(this.HubId); this.Name = IotHubUtils.GetIotHubName(this.HubId); } var regeneratedAuthRule = new PSSharedAccessSignatureAuthorizationRule(); IotHubDescription iothubDesc = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name); IList <SharedAccessSignatureAuthorizationRule> authRules = (List <SharedAccessSignatureAuthorizationRule>) this.IotHubClient.IotHubResource.ListKeys(this.ResourceGroupName, this.Name).ToList(); foreach (var authRule in authRules) { if (authRule.KeyName.Equals(this.KeyName, StringComparison.OrdinalIgnoreCase)) { regeneratedAuthRule = IotHubUtils.ToPSSharedAccessSignatureAuthorizationRule(authRule); authRules.Remove(authRule); break; } } switch (RenewKey.ToLower(CultureInfo.InvariantCulture)) { case "primary": regeneratedAuthRule.PrimaryKey = this.RegenerateKey(); break; case "secondary": regeneratedAuthRule.SecondaryKey = this.RegenerateKey(); break; case "swap": var temp = regeneratedAuthRule.PrimaryKey; regeneratedAuthRule.PrimaryKey = regeneratedAuthRule.SecondaryKey; regeneratedAuthRule.SecondaryKey = temp; break; } authRules.Add(IotHubUtils.ToSharedAccessSignatureAuthorizationRule(regeneratedAuthRule)); iothubDesc.Properties.AuthorizationPolicies = authRules; this.IotHubClient.IotHubResource.CreateOrUpdate(this.ResourceGroupName, this.Name, iothubDesc); IEnumerable <SharedAccessSignatureAuthorizationRule> updatedAuthRules = this.IotHubClient.IotHubResource.ListKeys(this.ResourceGroupName, this.Name); SharedAccessSignatureAuthorizationRule authPolicy = this.IotHubClient.IotHubResource.GetKeysForKeyName(this.ResourceGroupName, this.Name, this.KeyName); this.WriteObject(IotHubUtils.ToPSSharedAccessSignatureAuthorizationRule(authPolicy), false); } }