internal PsApiManagementRegion(AdditionalLocation additionalLocation)
            : this()
        {
            if (additionalLocation == null)
            {
                throw new ArgumentNullException("regionResource");
            }

            Location           = additionalLocation.Location;
            Sku                = Mappers.MapSku(additionalLocation.Sku.Name);
            Capacity           = additionalLocation.Sku.Capacity ?? 1;
            RuntimeRegionalUrl = additionalLocation.GatewayRegionalUrl;
            PublicIPAddresses  = additionalLocation.PublicIPAddresses != null?additionalLocation.PublicIPAddresses.ToArray() : null;

            PrivateIPAddresses = additionalLocation.PrivateIPAddresses != null?additionalLocation.PrivateIPAddresses.ToArray() : null;

            var staticIPList = new List <string>();

            if (additionalLocation.PublicIPAddresses != null)
            {
                staticIPList.AddRange(additionalLocation.PublicIPAddresses);
            }
            if (additionalLocation.PrivateIPAddresses != null)
            {
                staticIPList.AddRange(additionalLocation.PrivateIPAddresses);
            }
#pragma warning disable CS0618
            StaticIPs = staticIPList.ToArray();
#pragma warning restore CS0618
            if (additionalLocation.VirtualNetworkConfiguration != null)
            {
                VirtualNetwork = new PsApiManagementVirtualNetwork(additionalLocation.VirtualNetworkConfiguration);
            }
        }
        internal PsApiManagementRegion(AdditionalLocation additionalLocation)
            : this()
        {
            if (additionalLocation == null)
            {
                throw new ArgumentNullException("regionResource");
            }

            Location           = additionalLocation.Location;
            Sku                = Mappers.MapSku(additionalLocation.Sku.Name);
            Capacity           = additionalLocation.Sku.Capacity;
            RuntimeRegionalUrl = additionalLocation.GatewayRegionalUrl;
            PublicIPAddresses  = additionalLocation.PublicIPAddresses != null?additionalLocation.PublicIPAddresses.ToArray() : null;

            PrivateIPAddresses = additionalLocation.PrivateIPAddresses != null?additionalLocation.PrivateIPAddresses.ToArray() : null;

            Zone              = additionalLocation.Zones?.ToArray();
            DisableGateway    = additionalLocation.DisableGateway;
            PublicIpAddressId = additionalLocation.PublicIpAddressId;
            PlatformVersion   = additionalLocation.PlatformVersion;
            if (additionalLocation.VirtualNetworkConfiguration != null)
            {
                VirtualNetwork = new PsApiManagementVirtualNetwork(additionalLocation.VirtualNetworkConfiguration);
            }
        }
Beispiel #3
0
        public static AdditionalLocation GetAdditionalLocation(
            this PsApiManagementRegion region)
        {
            if (region == null)
            {
                return(null);
            }

            var additionalLocation = new AdditionalLocation();

            additionalLocation.Location = region.Location;
            additionalLocation.Sku      = new ApiManagementServiceSkuProperties()
            {
                Name     = Mappers.MapSku(region.Sku),
                Capacity = region.Capacity
            };

            additionalLocation.VirtualNetworkConfiguration = region.VirtualNetwork == null
                ? null
                : new VirtualNetworkConfiguration
            {
                SubnetResourceId = region.VirtualNetwork.SubnetResourceId
            };

            additionalLocation.Zones = region.Zone;

            if (region.DisableGateway != null && region.DisableGateway.HasValue)
            {
                additionalLocation.DisableGateway = region.DisableGateway;
            }

            return(additionalLocation);
        }
        public void CreateMultiRegionService()
        {
            Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Playback");
            using (MockContext context = MockContext.Start(this.GetType()))
            {
                var testBase = new ApiManagementTestBase(context);

                var additionalLocation = new AdditionalLocation()
                {
                    Location = testBase.GetLocation("Europe"),
                    Sku      = new ApiManagementServiceSkuProperties(SkuType.Premium)
                };

                // only premium sku supports multi-region
                testBase.serviceProperties.Sku.Name            = SkuType.Premium;
                testBase.serviceProperties.AdditionalLocations = new List <AdditionalLocation>()
                {
                    additionalLocation
                };

                var createdService = testBase.client.ApiManagementService.CreateOrUpdate(
                    resourceGroupName: testBase.rgName,
                    serviceName: testBase.serviceName,
                    parameters: testBase.serviceProperties);

                ValidateService(createdService,
                                testBase.serviceName,
                                testBase.rgName,
                                testBase.subscriptionId,
                                testBase.location,
                                testBase.serviceProperties.PublisherEmail,
                                testBase.serviceProperties.PublisherName,
                                testBase.serviceProperties.Sku.Name,
                                testBase.tags);

                Assert.NotNull(createdService.AdditionalLocations);
                Assert.Single(createdService.AdditionalLocations);
                Assert.Equal(additionalLocation.Location.ToLowerInvariant().Replace(" ", string.Empty),
                             createdService.AdditionalLocations.First().Location.ToLowerInvariant().Replace(" ", string.Empty));

                // Delete
                testBase.client.ApiManagementService.Delete(
                    resourceGroupName: testBase.rgName,
                    serviceName: testBase.serviceName);

                Assert.Throws <CloudException>(() =>
                {
                    testBase.client.ApiManagementService.Get(
                        resourceGroupName: testBase.rgName,
                        serviceName: testBase.serviceName);
                });
            }
        }
Beispiel #5
0
        public void TestConstructor()
        {
            var locationName   = "location name";
            var latitude       = 1.0f;
            var longitude      = 2.0f;
            var cityId         = 2;
            var countryId      = 3;
            var divisionId     = 5;
            var regionId       = 10;
            var creatorId      = 1;
            var creator        = new User(creatorId);
            var locationTypeId = LocationType.Place.Id;
            var model          = new AdditionalLocation(creator, locationName, cityId, countryId, divisionId, regionId, latitude, longitude, locationTypeId);

            Assert.AreEqual(locationName, model.LocationName);
            Assert.AreEqual(latitude, model.Latitude);
            Assert.AreEqual(longitude, model.Longitude);
            Assert.AreEqual(cityId, model.CityId);
            Assert.AreEqual(countryId, model.CountryId);
            Assert.AreEqual(locationTypeId, model.LocationTypeId);
            Assert.AreEqual(divisionId, model.DivisionId);
            Assert.IsTrue(Object.ReferenceEquals(creator, model.Audit.User));
        }