// Returns a new FabricClientSettingsBuilder object using the properties of this class. private ClusterConnection.FabricClientSettingsBuilder CreateFabricClientSettingsBuilder() { ClusterConnection.FabricClientSettingsBuilder fabricClientSettingsBuilder = // Passing parameter values as it is. When any parameter is null it will ignored downstream. new ClusterConnection.FabricClientSettingsBuilder( this.ConnectionInitializationTimeoutInSec, this.HealthOperationTimeoutInSec, //// This cmdlet will set interval to default value(0) if not provided by user. this.HealthReportSendIntervalInSec ?? HealthReportSendIntervalSecDefault, this.KeepAliveIntervalInSec, this.ServiceChangePollIntervalInSec, this.PartitionLocationCacheLimit, this.HealthReportRetrySendIntervalInSec, this.AuthTokenBufferSize); return(fabricClientSettingsBuilder); }
protected override void ProcessRecord() { try { ClusterConnection.SecurityCredentialsBuilder securityCredentialsBuilder = null; if (this.WindowsCredential) { securityCredentialsBuilder = new ClusterConnection.WindowsSecurityCredentialsBuilder( this.ClusterSpn); } else if (this.X509Credential) { securityCredentialsBuilder = new ClusterConnection.X509SecurityCredentialsBuilder( this.ServerCertThumbprint, this.ServerCommonName, this.FindType, this.FindValue, this.StoreLocation, this.StoreName); } else if (this.DSTS) { bool interactive = true; if (this.Interactive.HasValue) { interactive = this.Interactive.GetValueOrDefault(); } securityCredentialsBuilder = new ClusterConnection.DSTSCredentialsBuilder( this.ServerCommonName, this.ServerCertThumbprint, this.MetaDataEndpoint, interactive, this.CloudServiceName, this.CloudServiceDNSNames); } else if (this.AzureActiveDirectory) { securityCredentialsBuilder = new ClusterConnection.AadCredentialsBuilder( this.ServerCommonName, this.ServerCertThumbprint, this.SecurityToken); } // We need to provide a custom FabricClientSettingsBuilder, // because we want to override HealthReportSendInterval with zero or user's input value. ClusterConnection.FabricClientSettingsBuilder fabricClientSettingsBuilder = this.CreateFabricClientSettingsBuilder(); IClusterConnection clusterConnection = new ClusterConnection( new ClusterConnection.FabricClientBuilder( securityCredentialsBuilder, fabricClientSettingsBuilder, this.ConnectionEndpoint), this.GetMetadata); try { if (this.GetMetadata) { clusterConnection.InitializeClaimsMetadata(this.GetTimeout()); } else if (this.SkipChecks.GetValueOrDefault() == false) { this.TestClusterConnection( clusterConnection, this.AllowNetworkConnectionOnly); } } catch (Exception e) { this.ThrowTerminatingError( e, Constants.CreateClusterConnectionErrorId, null); } this.SetClusterConnection(clusterConnection); this.WriteObject(this.FormatOutput(clusterConnection)); } catch (Exception exception) { this.ThrowTerminatingError( exception, Constants.CreateClusterConnectionErrorId, null); } }