public override void ExecuteCmdlet() { Path = ResolveUserPath(Path); if (ShouldProcess(CertificateName, Properties.Resources.AddIotHubCertificate)) { string certificate = string.Empty; FileInfo fileInfo = new FileInfo(this.Path); switch (fileInfo.Extension.ToLower(CultureInfo.InvariantCulture)) { case ".cer": var certificateByteContent = File.ReadAllBytes(this.Path); certificate = Convert.ToBase64String(certificateByteContent); break; case ".pem": certificate = File.ReadAllText(this.Path); break; default: certificate = this.Path; break; } if (ParameterSetName.Equals(InputObjectParameterSet)) { this.ResourceGroupName = this.InputObject.ResourceGroupName; this.Name = this.InputObject.Name; this.CertificateName = this.InputObject.CertificateName; this.Etag = this.InputObject.Etag; } if (ParameterSetName.Equals(ResourceIdParameterSet)) { this.ResourceGroupName = IotHubUtils.GetResourceGroupName(this.ResourceId); this.Name = IotHubUtils.GetIotHubName(this.ResourceId); this.CertificateName = IotHubUtils.GetIotHubCertificateName(this.ResourceId); } try { certificate = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(certificate)); CertificateBodyDescription certificateBodyDescription = new CertificateBodyDescription(); certificateBodyDescription.Certificate = certificate; CertificateDescription certificateDescription; certificateDescription = this.IotHubClient.Certificates.CreateOrUpdate(this.ResourceGroupName, this.Name, this.CertificateName, this.Etag, certificateBodyDescription.Certificate); this.WriteObject(IotHubUtils.ToPSCertificateDescription(certificateDescription)); } catch (Exception e) { throw e; } } }
protected CertificateDescription CreateCertificate(ResourceGroup resourceGroup, string iotHubName, string certificateName, string certificateBodyDescriptionContent) { var createCertificateBodyDescription = new CertificateBodyDescription(certificateBodyDescriptionContent); return(this.iotHubClient.Certificates.CreateOrUpdate( resourceGroup.Name, iotHubName, certificateName, createCertificateBodyDescription)); }
private void AddIotDpsCertificate() { string certificate = string.Empty; FileInfo fileInfo = new FileInfo(this.Path); switch (fileInfo.Extension.ToLower(CultureInfo.InvariantCulture)) { case ".cer": var certificateByteContent = AzureSession.Instance.DataStore.ReadFileAsBytes(this.Path); certificate = Convert.ToBase64String(certificateByteContent); break; case ".pem": certificate = AzureSession.Instance.DataStore.ReadFileAsText(this.Path); break; default: certificate = this.Path; break; } certificate = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(certificate)); CertificateBodyDescription certificateBodyDescription = new CertificateBodyDescription(); certificateBodyDescription.Certificate = certificate; CertificateResponse certificateResponse; if (this.Etag != null) { certificateResponse = this.IotDpsClient.DpsCertificate.CreateOrUpdate(this.ResourceGroupName, this.Name, this.CertificateName, certificateBodyDescription, this.Etag); } else { certificateResponse = this.IotDpsClient.DpsCertificate.CreateOrUpdate(this.ResourceGroupName, this.Name, this.CertificateName, certificateBodyDescription); } this.WriteObject(IotDpsUtils.ToPSCertificateResponse(certificateResponse)); }
/// <summary> /// Upload the certificate to the provisioning service. /// </summary> /// <remarks> /// Add new certificate or update an existing certificate. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// Resource group identifier. /// </param> /// <param name='provisioningServiceName'> /// The name of the provisioning service. /// </param> /// <param name='certificateName'> /// The name of the certificate create or update. /// </param> /// <param name='certificateDescription'> /// The certificate body. /// </param> /// <param name='ifMatch'> /// ETag of the certificate. This is required to update an existing /// certificate, and ignored while creating a brand new certificate. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <CertificateResponse> CreateOrUpdateAsync(this IDpsCertificateOperations operations, string resourceGroupName, string provisioningServiceName, string certificateName, CertificateBodyDescription certificateDescription, string ifMatch = default(string), CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, provisioningServiceName, certificateName, certificateDescription, ifMatch, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Upload the certificate to the provisioning service. /// </summary> /// <remarks> /// Add new certificate or update an existing certificate. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// Resource group identifier. /// </param> /// <param name='provisioningServiceName'> /// The name of the provisioning service. /// </param> /// <param name='certificateName'> /// The name of the certificate create or update. /// </param> /// <param name='certificateDescription'> /// The certificate body. /// </param> /// <param name='ifMatch'> /// ETag of the certificate. This is required to update an existing /// certificate, and ignored while creating a brand new certificate. /// </param> public static CertificateResponse CreateOrUpdate(this IDpsCertificateOperations operations, string resourceGroupName, string provisioningServiceName, string certificateName, CertificateBodyDescription certificateDescription, string ifMatch = default(string)) { return(operations.CreateOrUpdateAsync(resourceGroupName, provisioningServiceName, certificateName, certificateDescription, ifMatch).GetAwaiter().GetResult()); }