public virtual PSDataFactory CreatePSDataFactory(CreatePSDataFactoryParameters parameters)
        {
            PSDataFactory dataFactory       = null;
            Action        createDataFactory = () =>
            {
                Dictionary <string, string> tags = new Dictionary <string, string>();
                if (parameters.Tags != null)
                {
                    tags = parameters.Tags.ToDictionary();
                }

                dataFactory =
                    new PSDataFactory(
                        CreateOrUpdateDataFactory(parameters.ResourceGroupName, parameters.DataFactoryName,
                                                  parameters.Location, tags))
                {
                    ResourceGroupName = parameters.ResourceGroupName
                };
            };

            if (parameters.Force)
            {
                // If user decides to overwrite anyway, then there is no need to check if the data factory exists or not.
                createDataFactory();
            }
            else
            {
                bool dataFactoryExists = CheckDataFactoryExists(parameters.ResourceGroupName, parameters.DataFactoryName);

                parameters.ConfirmAction(
                    !dataFactoryExists,    // prompt only if the data factory exists
                    string.Format(
                        CultureInfo.InvariantCulture,
                        Resources.DataFactoryExists,
                        parameters.DataFactoryName,
                        parameters.ResourceGroupName),
                    string.Format(
                        CultureInfo.InvariantCulture,
                        Resources.DataFactoryCreating,
                        parameters.DataFactoryName,
                        parameters.ResourceGroupName),
                    parameters.DataFactoryName,
                    createDataFactory);
            }

            if (!DataFactoryCommonUtilities.IsSucceededProvisioningState(dataFactory.ProvisioningState))
            {
                string errorMessage = dataFactory.Properties == null
                    ? string.Empty
                    : dataFactory.Properties.ErrorMessage;
                throw new ProvisioningFailedException(errorMessage);
            }

            return(dataFactory);
        }
        public virtual PSDataFactory CreatePSDataFactory(CreatePSDataFactoryParameters parameters)
        {
            PSDataFactory dataFactory       = null;
            Action        createDataFactory = () =>
            {
                Dictionary <string, string> tags = new Dictionary <string, string>();
                if (parameters.Tags != null)
                {
                    tags = parameters.Tags.ToDictionary();
                }

                dataFactory =
                    new PSDataFactory(
                        CreateOrUpdateDataFactory(parameters.ResourceGroupName, parameters.DataFactoryName,
                                                  parameters.Location, tags))
                {
                    ResourceGroupName = parameters.ResourceGroupName
                };
            };

            parameters.ConfirmAction(
                parameters.Force,    // prompt only if the data factory exists
                string.Format(
                    CultureInfo.InvariantCulture,
                    Resources.DataFactoryExists,
                    parameters.DataFactoryName,
                    parameters.ResourceGroupName),
                string.Format(
                    CultureInfo.InvariantCulture,
                    Resources.DataFactoryCreating,
                    parameters.DataFactoryName,
                    parameters.ResourceGroupName),
                parameters.DataFactoryName,
                createDataFactory,
                () => CheckDataFactoryExists(parameters.ResourceGroupName, parameters.DataFactoryName, out dataFactory));

            if (!DataFactoryCommonUtilities.IsSucceededProvisioningState(dataFactory.ProvisioningState))
            {
                string errorMessage = dataFactory.Properties == null
                    ? string.Empty
                    : dataFactory.Properties.ErrorMessage;
                throw new ProvisioningFailedException(errorMessage);
            }

            return(dataFactory);
        }
Ejemplo n.º 3
0
        public PSDataFactory CreatePSDataFactory(CreatePSDataFactoryParameters parameters)
        {
            PSDataFactory dataFactory       = null;
            Action        createDataFactory = () =>
            {
                dataFactory =
                    new PSDataFactory(
                        this.DataFactoryManagementClient.Factories.CreateOrUpdate(
                            parameters.ResourceGroupName,
                            parameters.DataFactoryName,
                            new Factory
                {
                    Location            = parameters.Location,
                    PublicNetworkAccess = parameters.PublicNetworkAccess,
                    Tags = parameters.Tags?.ToDictionary(),
                    RepoConfiguration = parameters.RepoConfiguration,
                    Identity          = parameters.FactoryIdentity,
                    Encryption        = parameters.EncryptionConfiguration,
                    GlobalParameters  = parameters.GlobalParameters
                }),
                        parameters.ResourceGroupName);
            };

            parameters.ConfirmAction(
                parameters.Force,    // prompt only if the data factory exists
                string.Format(
                    CultureInfo.InvariantCulture,
                    Resources.DataFactoryExists,
                    parameters.DataFactoryName,
                    parameters.ResourceGroupName),
                string.Format(
                    CultureInfo.InvariantCulture,
                    Resources.DataFactoryCreating,
                    parameters.DataFactoryName,
                    parameters.ResourceGroupName),
                parameters.DataFactoryName,
                createDataFactory,
                () => CheckDataFactoryExists(parameters.ResourceGroupName, parameters.DataFactoryName, out dataFactory));

            if (!DataFactoryCommonUtilities.IsSucceededProvisioningState(dataFactory.ProvisioningState))
            {
                throw new ProvisioningFailedException(Resources.DataFactoryProvisioningError);
            }

            return(dataFactory);
        }
        private bool CheckDataFactoryExists(string resourceGroupName, string dataFactoryName)
        {
            // ToDo: use HEAD to check if a resource exists or not
            try
            {
                PSDataFactory dataFactory = GetDataFactory(resourceGroupName, dataFactoryName);

                return(true);
            }
            catch (CloudException e)
            {
                //Get throws NotFound exception if data factory not exists
                if (e.Response.StatusCode == HttpStatusCode.NotFound)
                {
                    return(false);
                }

                throw;
            }
        }
Ejemplo n.º 5
0
        public void CanGetDataFactory()
        {
            // Arrange
            PSDataFactory expected = new PSDataFactory()
            {
                DataFactoryName = DataFactoryName, ResourceGroupName = ResourceGroupName
            };

            dataFactoriesClientMock.Setup(
                c =>
                c.FilterPSDataFactories(
                    It.Is <DataFactoryFilterOptions>(
                        options =>
                        options.Name == DataFactoryName &&
                        options.ResourceGroupName == ResourceGroupName &&
                        options.NextLink == null)))
            .CallBase()
            .Verifiable();

            dataFactoriesClientMock.Setup(c => c.GetDataFactory(ResourceGroupName, DataFactoryName))
            .Returns(expected)
            .Verifiable();

            // Action
            cmdlet.ResourceGroupName = ResourceGroupName;
            cmdlet.Name = "  ";
            Exception whiteSpace = Assert.Throws <PSArgumentNullException>(() => cmdlet.ExecuteCmdlet());

            cmdlet.Name = "";
            Exception empty = Assert.Throws <PSArgumentNullException>(() => cmdlet.ExecuteCmdlet());

            cmdlet.Name = DataFactoryName;
            cmdlet.ExecuteCmdlet();

            // Assert
            dataFactoriesClientMock.VerifyAll();
            Assert.Contains("Value cannot be null", whiteSpace.Message);
            Assert.Contains("Value cannot be null", empty.Message);
            commandRuntimeMock.Verify(f => f.WriteObject(expected), Times.Once());
        }
        public virtual List <PSDataFactory> FilterPSDataFactories(DataFactoryFilterOptions filterOptions)
        {
            if (filterOptions == null)
            {
                throw new ArgumentNullException("filterOptions");
            }

            var dataFactories = new List <PSDataFactory>();

            if (filterOptions.DataFactoryName != null)
            {
                PSDataFactory dataFactory = GetDataFactory(filterOptions.ResourceGroupName, filterOptions.DataFactoryName);
                if (dataFactory != null)
                {
                    dataFactories.Add(dataFactory);
                }
            }
            else
            {
                dataFactories.AddRange(ListDataFactories(filterOptions));
            }

            return(dataFactories);
        }
Ejemplo n.º 7
0
 private bool CheckDataFactoryExists(string resourceGroupName, string dataFactoryName, out PSDataFactory dataFactory)
 {
     try
     {
         dataFactory = GetDataFactory(resourceGroupName, dataFactoryName);
         return(dataFactory != null);
     }
     catch (ErrorResponseException e)
     {
         //Get throws Exception message with NotFound Status
         if (e.Response.StatusCode == HttpStatusCode.NotFound)
         {
             dataFactory = null;
             return(false);
         }
         else
         {
             throw;
         }
     }
 }