public override async SystemTask.Task Close() { if (Service == null) { return; } IsRunning = false; ExchangeConnection.Close(); }
public override async SystemTask.Task Run() { if (Service == null) { return; } IsRunning = true; ExchangeConnection.Open(); }
/// <summary> /// The create exchange peering. /// </summary> /// <param name="asn"> /// The asn. /// </param> /// <returns> /// The <see cref="PeeringModel"/>. /// </returns> private PeeringModel CreateExchangePeeringModel(int asn = 65000) { // create resource group var resourceGroup = this.CreateResourceGroup(); // Create Asn var subId = this.CreatePeerAsn(asn, $"AS{asn}", isApproved: true); // Create Exchange Peering var ipAddress = int.Parse(MockServer.GetVariable("ipAddress", this.random.Next(150, 190).ToString())); var exchangeConnection = new ExchangeConnection { ConnectionIdentifier = Guid.NewGuid().ToString(), PeeringDBFacilityId = 99999, BgpSession = new Microsoft.Azure.Management.Peering.Models.BgpSession() { PeerSessionIPv4Address = $"10.12.97.{ipAddress}", MaxPrefixesAdvertisedV4 = 20000 } }; SubResource asnReference = new SubResource(subId); var exchangePeeringProperties = new PeeringPropertiesExchange( new List <ExchangeConnection>(), asnReference); exchangePeeringProperties.Connections.Add(exchangeConnection); var peeringModel = new PeeringModel { PeeringLocation = "Seattle", Sku = new PeeringSku("Basic_Exchange_Free"), Location = "centralus", Exchange = exchangePeeringProperties, Kind = "Exchange", Tags = new Dictionary <string, string> { { TestUtilities.GenerateName("tfs_"), "Active" } } }; var name = $"exchangepeering{asn}"; try { var result = this.Client.Peerings.CreateOrUpdate(resourceGroup.Name, name, peeringModel); var peering = this.Client.Peerings.Get(resourceGroup.Name, name); Assert.NotNull(peering); Assert.Equal(name, peering.Name); return(peering); } catch (Exception ex) { Assert.Contains("NotFound", ex.Message); } return(null); }
public void CreateExchangePeering() { using (var context = MockContext.Start(this.GetType().FullName)) { this.client = context.GetServiceClient <PeeringManagementClient>(); //Create a Resource Group this.resourcesClient = context.GetServiceClient <ResourceManagementClient>(); var rgname = TestUtilities.GenerateName("res"); var resourceGroup = resourcesClient.ResourceGroups.CreateOrUpdate( rgname, new ResourceGroup { Location = "centralus" }); int asn = 65000; //Create Exchange Peering var exchangeConnection = new ExchangeConnection { PeeringDBFacilityId = 26, BgpSession = new Microsoft.Azure.Management.Peering.Models.BgpSession() { PeerSessionIPv4Address = $"80.249.208.{this.random.Next(1, 254)}", MaxPrefixesAdvertisedV4 = 20000 } }; SubResource asnReference = new SubResource(this.client.PeerAsns.Get($"Contoso{asn}").Id); var exchangePeeringProperties = new PeeringPropertiesExchange(new List <ExchangeConnection>(), asnReference); exchangePeeringProperties.Connections.Add(exchangeConnection); var peeringModel = new PeeringModel { PeeringLocation = "Amsterdam", Sku = new PeeringSku("Basic_Exchange_Free"), Location = "centralus", Exchange = exchangePeeringProperties, Kind = "Exchange" }; var name = $"exchangepeering1022"; var result = this.client.Peerings.CreateOrUpdate(rgname, name, peeringModel); var peering = this.client.Peerings.Get(rgname, name); Assert.NotNull(peering); Assert.Equal(name, peering.Name); } }
private void OnExchangeDisconnect(object sender, SubscriptionErrorEventArgs args) { bool isRecoverable = args.Exception == null; if (IsRunning && isRecoverable) { Logger.Info("Restarting Exchange subscription"); ExchangeConnection.Open(); // We don't have a connected event, so we'll assume if we ended w/o // error we were in a good connection previously. retryCount = 0; } else { Logger.Info("Exchange service disconnected: " + IsRunning + " " + args.Exception); if (retryCount < config.MaxRetry) { retryCount++; Logger.Info("Attempting Exchange reconnect: " + retryCount + " of " + config.MaxRetry); ExchangeConnection.Open(); } } }
/// <summary> /// /// </summary> /// <param name="context"></param> protected override void Execute(CodeActivityContext context) { ExchangeConnection.Set(context, ConnectToExchangeService(UserName.Get(context), Password.Get(context), EmailAddress.Get(context))); }
public void CreateExchangePeering() { using (var context = MockContext.Start(this.GetType())) { this.client = context.GetServiceClient <PeeringManagementClient>(); //Create a Resource Group this.resourcesClient = context.GetServiceClient <ResourceManagementClient>(); var rgname = TestUtilities.GenerateName("res"); var resourceGroup = resourcesClient.ResourceGroups.CreateOrUpdate( rgname, new ResourceGroup { Location = "centralus" }); //Create Asn int asn = 65000; var subId = this.CreatePeerAsn(context, asn, $"AS{asn}", isApproved: true); //Create Exchange Peering var exchangeConnection = new ExchangeConnection { ConnectionIdentifier = Guid.NewGuid().ToString(), PeeringDBFacilityId = 99999, BgpSession = new Microsoft.Azure.Management.Peering.Models.BgpSession() { PeerSessionIPv4Address = $"10.12.97.{this.random.Next(150, 190)}", MaxPrefixesAdvertisedV4 = 20000 } }; SubResource asnReference = new SubResource(subId); var exchangePeeringProperties = new PeeringPropertiesExchange(new List <ExchangeConnection>(), asnReference); exchangePeeringProperties.Connections.Add(exchangeConnection); var peeringModel = new PeeringModel { PeeringLocation = "Seattle", Sku = new PeeringSku("Basic_Exchange_Free"), Location = "centralus", Exchange = exchangePeeringProperties, Kind = "Exchange", Tags = new Dictionary <string, string> { { TestUtilities.GenerateName("tfs_"), "Active" } } }; var name = $"exchangepeering1022"; try { var result = this.client.Peerings.CreateOrUpdate(rgname, name, peeringModel); var peering = this.client.Peerings.Get(rgname, name); Assert.NotNull(peering); Assert.Equal(name, peering.Name); } catch (Exception ex) { Assert.Contains("NotFound", ex.Message); } finally { Assert.True(this.DeletePeering(context, name, rgname)); Assert.True(this.DeletePeerAsn(context, $"AS{asn}")); Assert.True(this.DeleteResourceGroup(context, rgname)); } } }