public override void ExecuteCmdlet()
        {
            using (var client = CreateClient())
            {
                var request = new GatewayClusterAddPrincipalRequest
                {
                    PrincipalObjectId      = PrincipalObjectId,
                    AllowedDataSourceTypes = AllowedDataSourceTypes,
                    Role = Role
                };

                var result = client.Gateways.AddUsersToGatewayCluster(GatewayClusterId, request, this.Scope == PowerBIUserScope.Individual).Result;
                Logger.WriteObject(result, true);
            }
        }
Exemple #2
0
        public async Task AddOnPremisesDataGatewayClusterUserCanBeSerialized()
        {
            // Arrange
            var client  = Utilities.GetTestClient("");
            var request = new GatewayClusterAddPrincipalRequest()
            {
                PrincipalObjectId      = Guid.NewGuid(),
                AllowedDataSourceTypes = new DatasourceType[]
                {
                    DatasourceType.Sql
                },
                Role = "the role"
            };

            // Act
            var result = await client.AddUsersToGatewayCluster(Guid.NewGuid(), request, true);

            // Assert
            result.IsSuccessStatusCode.Should().Be(true);
        }
Exemple #3
0
        public void AddOnPremisesDataGatewayClusterUserReturnsExpectedResults()
        {
            // Arrange
            var allowedDatasourceTypes = new List <DatasourceType>()
            {
                DatasourceType.Sql
            };
            var gatewayClusterId = Guid.NewGuid();
            var request          = new GatewayClusterAddPrincipalRequest()
            {
                PrincipalObjectId      = Guid.NewGuid(),
                AllowedDataSourceTypes = allowedDatasourceTypes,
                Role = "the role"
            };

            var expectedResponse = new HttpResponseMessage();
            var client           = new Mock <IPowerBIApiClient>();

            client.Setup(x => x.Gateways
                         .AddUsersToGatewayCluster(gatewayClusterId, It.IsAny <GatewayClusterAddPrincipalRequest>(), true))
            .ReturnsAsync(expectedResponse);

            var initFactory = new TestPowerBICmdletInitFactory(client.Object);
            var cmdlet      = new AddOnPremisesDataGatewayClusterUser(initFactory)
            {
                GatewayClusterId       = gatewayClusterId,
                PrincipalObjectId      = request.PrincipalObjectId,
                AllowedDataSourceTypes = allowedDatasourceTypes,
                Role = request.Role
            };

            // Act
            cmdlet.InvokePowerBICmdlet();

            // Assert
            TestUtilities.AssertExpectedUnitTestResults(expectedResponse, client, initFactory);
        }
        public async Task <HttpResponseMessage> AddUsersToGatewayCluster(Guid gatewayClusterId, GatewayClusterAddPrincipalRequest addPrincipalRequest, bool asIndividual)
        {
            var url = Invariant($"{GetODataUrlStart(asIndividual)}/gatewayclusters({gatewayClusterId})/permissions");

            var httpContent = SerializeObject(addPrincipalRequest);
            var response    = await HttpClientInstance.PostAsync(url, httpContent);

            response.EnsureSuccessStatusCode();

            return(response);
        }