public override void ExecuteCmdlet()
        {
            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);
            }

            CertificateWithNonceDescription certificateWithNonceDescription = this.IotHubClient.Certificates.GenerateVerificationCode(this.ResourceGroupName, this.Name, this.CertificateName, this.Etag);

            this.WriteObject(IotHubUtils.ToPSCertificateWithNonceDescription(certificateWithNonceDescription));
        }
Example #2
0
 public static PSCertificateWithNonceDescription ToPSCertificateWithNonceDescription(CertificateWithNonceDescription certificateWithNonceDescription)
 {
     return ConvertObject<CertificateWithNonceDescription, PSCertificateWithNonceDescription>(certificateWithNonceDescription);
 }
Example #3
0
        public async Task IotHubClient_HubCertificate()
        {
            try
            {
                using var context = MockContext.Start(GetType());
                Initialize(context);

                // Create resource group
                ResourceGroup resourceGroup = await CreateResourceGroupAsync(IotHubTestUtilities.DefaultCertificateResourceGroupName).ConfigureAwait(false);

                // Check if hub exists and delete
                IotHubNameAvailabilityInfo iotHubNameAvailabilityInfo = await _iotHubClient.IotHubResource
                                                                        .CheckNameAvailabilityAsync(IotHubTestUtilities.DefaultCertificateIotHubName)
                                                                        .ConfigureAwait(false);

                if (!iotHubNameAvailabilityInfo.NameAvailable.Value)
                {
                    _ = await _iotHubClient.IotHubResource
                        .DeleteAsync(
                        IotHubTestUtilities.DefaultCertificateResourceGroupName,
                        IotHubTestUtilities.DefaultCertificateIotHubName)
                        .ConfigureAwait(false);
                }

                // Create hub
                IotHubDescription iotHub = await CreateIotHubAsync(resourceGroup, IotHubTestUtilities.DefaultLocation, IotHubTestUtilities.DefaultCertificateIotHubName, null)
                                           .ConfigureAwait(false);

                // Upload certificate to the hub
                CertificateDescription newCertificateDescription = await CreateCertificateAsync(
                    resourceGroup,
                    IotHubTestUtilities.DefaultCertificateIotHubName,
                    IotHubTestUtilities.DefaultIotHubCertificateName)
                                                                   .ConfigureAwait(false);

                newCertificateDescription.Name.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateName);
                newCertificateDescription.Properties.Subject.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateSubject);
                newCertificateDescription.Properties.Thumbprint.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateThumbprint);
                newCertificateDescription.Type.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateType);
                newCertificateDescription.Properties.IsVerified.Should().BeFalse();

                // Get all certificates
                var certificateList = await GetCertificatesAsync(resourceGroup, IotHubTestUtilities.DefaultCertificateIotHubName).ConfigureAwait(false);

                certificateList.Value.Count().Should().Be(1);

                // Get certificate
                CertificateDescription certificate = await GetCertificateAsync(resourceGroup, IotHubTestUtilities.DefaultCertificateIotHubName, IotHubTestUtilities.DefaultIotHubCertificateName)
                                                     .ConfigureAwait(false);

                certificate.Name.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateName);
                certificate.Properties.Subject.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateSubject);
                certificate.Properties.Thumbprint.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateThumbprint);
                certificate.Type.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateType);
                certificate.Properties.IsVerified.Should().BeFalse();

                CertificateWithNonceDescription certificateWithNonceDescription = await GenerateVerificationCodeAsync(
                    resourceGroup,
                    IotHubTestUtilities.DefaultCertificateIotHubName,
                    IotHubTestUtilities.DefaultIotHubCertificateName,
                    certificate.Etag)
                                                                                  .ConfigureAwait(false);

                certificateWithNonceDescription.Name.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateName);
                certificateWithNonceDescription.Properties.Subject.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateSubject);
                certificateWithNonceDescription.Properties.Thumbprint.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateThumbprint);
                certificateWithNonceDescription.Type.Should().Be(IotHubTestUtilities.DefaultIotHubCertificateType);
                certificateWithNonceDescription.Properties.IsVerified.Should().BeFalse();
                certificateWithNonceDescription.Properties.VerificationCode.Should().NotBeNull();

                // Delete certificate
                await DeleteCertificateAsync(
                    resourceGroup,
                    IotHubTestUtilities.DefaultCertificateIotHubName,
                    IotHubTestUtilities.DefaultIotHubCertificateName,
                    certificateWithNonceDescription.Etag)
                .ConfigureAwait(false);

                // Get all certificate after delete
                var certificateListAfterDelete = await GetCertificatesAsync(resourceGroup, IotHubTestUtilities.DefaultCertificateIotHubName)
                                                 .ConfigureAwait(false);

                certificateListAfterDelete.Value.Count().Should().Be(0);
            }
            catch (ErrorDetailsException ex)
            {
                Console.WriteLine(ex.ToString());
                Console.WriteLine($"{ex.Body.Message}: {ex.Body.Details}");
                throw;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                throw;
            }
        }