예제 #1
0
        internal void GenericEnableDisableServiceMetrics(ServiceType serviceType, GetMetricsProperty <ServiceProperties> getServiceProperties)
        {
            Test.Info("Enable/Disable service hour metrics for {0}", serviceType);
            int retentionDays = 10;

            Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, MetricsLevel.Service.ToString(), retentionDays.ToString(), string.Empty), "Enable service hour metrics should succeed");
            ServiceProperties retrievedProperties;

            retrievedProperties = getServiceProperties(Constants.MetricsType.Hour, retentionDays, MetricsLevel.Service.ToString());
            ExpectEqual(retentionDays, retrievedProperties.HourMetrics.RetentionDays.Value, "metrics retention days");

            retentionDays = lang == Language.PowerShell ? -1 : 0;
            Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, MetricsLevel.Service.ToString(), retentionDays.ToString(), string.Empty), "Disable blob service hour metrics should succeed");

            retrievedProperties = getServiceProperties(Constants.MetricsType.Hour, retentionDays, MetricsLevel.Service.ToString());
            Test.Assert(!retrievedProperties.HourMetrics.RetentionDays.HasValue, "service hour metrics retention days should be null");

            Test.Info("Enable/Disable service minute metrics for {0}", serviceType);
            retentionDays = 10;
            Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, MetricsLevel.ServiceAndApi.ToString(), retentionDays.ToString(), string.Empty), "Enable service minute metrics should succeed");
            retrievedProperties = getServiceProperties(Constants.MetricsType.Minute, retentionDays, MetricsLevel.ServiceAndApi.ToString());
            ExpectEqual(retentionDays, retrievedProperties.MinuteMetrics.RetentionDays.Value, "metrics retention days");

            retentionDays = lang == Language.PowerShell ? -1 : 0;
            Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, MetricsLevel.ServiceAndApi.ToString(), retentionDays.ToString(), string.Empty), "Disable blob service minute metrics should succeed");

            retrievedProperties = getServiceProperties(Constants.MetricsType.Minute, retentionDays, MetricsLevel.ServiceAndApi.ToString());
            Test.Assert(!retrievedProperties.MinuteMetrics.RetentionDays.HasValue, "service minute metrics retention days should be null");
        }
예제 #2
0
        internal void GenericSetLoggingVersion(ServiceType serviceType, Func <ServiceProperties> getServiceProperties)
        {
            Test.Info("Enable/Disable service logging for {0}", serviceType);
            //Actually, it's the the only one valid version.
            double version = 1.0;

            Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, string.Empty, version.ToString()), "Set service logging version should succeed");
            ServiceProperties retrievedProperties = getServiceProperties();

            ExpectEqual(version, Convert.ToDouble(retrievedProperties.Logging.Version), "Logging version");

            double invalidVersion = -1 * Utility.GetRandomTestCount();

            Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service logging version should fail");
            ExpectedContainErrorMessage("The remote server returned an error");
            retrievedProperties = getServiceProperties();
            ExpectEqual(version, Convert.ToDouble(retrievedProperties.Logging.Version), "Logging version");

            //Make sure the invalid verion less than 1, otherwise we don't know whether the version is valid in the future.
            invalidVersion = 0.1 * Utility.GetRandomTestCount();
            Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service logging version should fail");
            ExpectedContainErrorMessage("The remote server returned an error");
            retrievedProperties = getServiceProperties();
            ExpectEqual(version, Convert.ToDouble(retrievedProperties.Logging.Version), "Logging version");
        }
예제 #3
0
        internal void GenericSetInvalidMetricsOperation(ServiceType serviceType, Func <ServiceProperties> getServiceProperties)
        {
            Test.Info("Set invalid service metrics operation for {0}", serviceType);
            string operation = "all";

            ExpectInvalidMetricsOperation(serviceType, operation, getServiceProperties);
            operation = "xxx";
            ExpectInvalidMetricsOperation(serviceType, operation, getServiceProperties, true);
        }
예제 #4
0
 internal void GenericSetMetricsOperation(ServiceType serviceType, GetMetricsProperty <ServiceProperties> getServiceProperties)
 {
     Test.Info("Set service metrics operation for {0}", serviceType);
     string[] operations = { "None", "Service", "ServiceAndApi" };
     foreach (string op in operations)
     {
         ExpectValidmetricsOperation(serviceType, op, getServiceProperties);
     }
 }
예제 #5
0
        internal void ExpectValidLoggingOperation(ServiceType serviceType, string operations, GetLoggingProperty <ServiceProperties> getServiceProperties)
        {
            int retentionDays = Utility.GetRandomTestCount(1, 365 + 1);

            Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, operations, retentionDays.ToString(), string.Empty), "Set logging operation should succeed");

            ServiceProperties retrievedProperties = getServiceProperties(retentionDays, operations);
            LoggingOperations expectOperation     = (LoggingOperations)Enum.Parse(typeof(LoggingOperations), operations, true);
            bool?read   = (expectOperation & LoggingOperations.Read) != 0;
            bool?write  = (expectOperation & LoggingOperations.Write) != 0;
            bool?delete = (expectOperation & LoggingOperations.Delete) != 0;

            Utility.ValidateLoggingOperationProperty(operations, read, write, delete);
        }
예제 #6
0
        internal void GenericEnableDisableServiceLogging(ServiceType serviceType, GetLoggingProperty <ServiceProperties> getServiceProperties)
        {
            Test.Info("Enable/Disable service logging for {0}", serviceType);
            int retentionDays = 10;

            Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Enable service logging should succeed");
            ServiceProperties retrievedProperties;

            retrievedProperties = getServiceProperties(retentionDays, LoggingOperations.None.ToString());
            ExpectEqual(retentionDays, retrievedProperties.Logging.RetentionDays.Value, "logging retention days");

            retentionDays = lang == Language.PowerShell ? -1 : 0;
            Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Enable blob service logging should succeed");

            retrievedProperties = getServiceProperties(retentionDays, LoggingOperations.None.ToString());
            Test.Assert(!retrievedProperties.Logging.RetentionDays.HasValue, "service logging retention days should be null");
        }
예제 #7
0
        internal void GenericSetMetricsVersion(ServiceType serviceType, Func <ServiceProperties> getServiceProperties)
        {
            Test.Info("Enable/Disable service hour metrics for {0}", serviceType);
            double version = 1.0;

            Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, string.Empty, version.ToString()), "Set service hour metrics version should succeed");
            ServiceProperties retrievedProperties = getServiceProperties();

            ExpectEqual(version, Convert.ToDouble(retrievedProperties.HourMetrics.Version), "metrics version");

            double invalidVersion = -1.0 * Utility.GetRandomTestCount();

            Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service hour metrics version should fail");
            ExpectedContainErrorMessage("The remote server returned an error");
            retrievedProperties = getServiceProperties();
            ExpectEqual(version, Convert.ToDouble(retrievedProperties.HourMetrics.Version), "metrics version");

            //Make sure the invalid verion less than 1, otherwise we don't know whether the version is valid in the future.
            invalidVersion = 0.1 * Utility.GetRandomTestCount();
            Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service hour metrics version should fail");
            ExpectedContainErrorMessage("The remote server returned an error");
            retrievedProperties = getServiceProperties();
            ExpectEqual(version, Convert.ToDouble(retrievedProperties.HourMetrics.Version), "metrics version");

            Test.Info("Enable/Disable service minute metrics for {0}", serviceType);
            version = 1.0;
            Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, string.Empty, version.ToString()), "Set service minute metrics version should succeed");
            retrievedProperties = getServiceProperties();
            ExpectEqual(version, Convert.ToDouble(retrievedProperties.MinuteMetrics.Version), "metrics version");

            invalidVersion = -1.0 * Utility.GetRandomTestCount();
            Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service minute metrics version should fail");
            ExpectedContainErrorMessage("The remote server returned an error");
            retrievedProperties = getServiceProperties();
            ExpectEqual(version, Convert.ToDouble(retrievedProperties.MinuteMetrics.Version), "metrics version");

            //Make sure the invalid verion less than 1, otherwise we don't know whether the version is valid in the future.
            invalidVersion = 0.1 * Utility.GetRandomTestCount();
            Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service minute metrics version should fail");
            ExpectedContainErrorMessage("The remote server returned an error");
            retrievedProperties = getServiceProperties();
            ExpectEqual(version, Convert.ToDouble(retrievedProperties.MinuteMetrics.Version), "metrics version");
        }
예제 #8
0
        internal void ExpectInvalidMetricsOperation(ServiceType serviceType, string operations,
                                                    Func <ServiceProperties> getServiceProperties, bool invalidEnum = false)
        {
            int retentionDays = 1;

            if (lang == Language.PowerShell)
            {
                Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, operations, retentionDays.ToString(), string.Empty), "Set invalid hour metrics operation should fail");
                ExpectedContainErrorMessage("Cannot bind parameter 'MetricsLevel'. Cannot convert value");

                Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, operations, retentionDays.ToString(), string.Empty), "Set invalid minute metrics operation should fail");
                ExpectedContainErrorMessage("Cannot bind parameter 'MetricsLevel'. Cannot convert value");
            }
            else
            {
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, operations, retentionDays.ToString(), string.Empty), "Set any value with hour metrics switch operation should succeed");
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, operations, retentionDays.ToString(), string.Empty), "Set any value with  minute metrics operation should succeed");
            }
        }
예제 #9
0
        internal void GenericSetLoggingRetentionDays(ServiceType serviceType, GetLoggingProperty <ServiceProperties> getServiceProperties)
        {
            Test.Info("Set service logging retention days for {0}", serviceType);
            // valid values for RetentionDay
            int retentionDays = Utility.GetRandomTestCount(1, 365 + 1);

            Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days should succeed");
            ServiceProperties retrievedProperties = getServiceProperties(retentionDays, LoggingOperations.None.ToString());

            ExpectEqual(retentionDays, retrievedProperties.Logging.RetentionDays.Value, "Logging retention days");

            if (lang == Language.PowerShell)
            {
                retentionDays = -1;
                Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days should succeed");
                retrievedProperties = getServiceProperties(retentionDays, LoggingOperations.None.ToString());
                Test.Assert(!retrievedProperties.Logging.RetentionDays.HasValue, "Service logging retention days should be null");

                // invalid values for RetentionDay
                retentionDays = 0;
                Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for invalid retention days should fail");
                ExpectedContainErrorMessage("The minimum value of retention days is 1, the largest value is 365 (one year).");

                retentionDays = -1 * Utility.GetRandomTestCount(2, 365 + 1);
                Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for invalid retention days should fail");
                ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'");

                retentionDays = Utility.GetRandomTestCount(366, 365 + 100);
                Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for invalid retention days should fail");
                ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'");
            }
            else
            {
                retentionDays = 0;
                Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for 0 retention days should succeed");

                retentionDays = Utility.GetRandomTestCount(366, 365 + 100);
                Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for invalid retention days should fail");

                string[] errMessages = { "XML specified is not syntactically valid", "Error" };
                ExpectedContainErrorMessage(errMessages);
            }
        }
예제 #10
0
        internal void GenericSetLoggingOperation(ServiceType serviceType, GetLoggingProperty <ServiceProperties> getServiceProperties)
        {
            Test.Info("Set service logging operation for {0}", serviceType);
            string[] operations = { "None", "All", "Read", "Write", "Delete" };
            foreach (string op in operations)
            {
                ExpectValidLoggingOperation(serviceType, op, getServiceProperties);
            }

            //Random combine
            string[] combineOperations = { "Read", "Write", "Delete" };
            string   combination       = Utility.GenRandomCombination(combineOperations.ToList(), ",");

            Test.Info("Generate combined operations {0}", combination);
            ExpectValidLoggingOperation(serviceType, combination, getServiceProperties);

            //Test case for case-insesitive, duplicate keys, key order.
            combination = "Delete,write,deLETE";
            Test.Info("Generate combined operations {0}", combination);
            ExpectValidLoggingOperation(serviceType, combination, getServiceProperties);
        }
예제 #11
0
        internal void GenericSetInvalidLoggingOperation(ServiceType serviceType, Func <ServiceProperties> getServiceProperties)
        {
            Test.Info("Set invalid service logging operation for {0}", serviceType);

            if (lang == Language.PowerShell)
            {
                LoggingOperations[] loggingOperations = { LoggingOperations.All, LoggingOperations.Read };
                ExpectInvalidLoggingOperation(serviceType, loggingOperations, getServiceProperties);

                loggingOperations = new LoggingOperations[] { LoggingOperations.Delete, LoggingOperations.None };
                ExpectInvalidLoggingOperation(serviceType, loggingOperations, getServiceProperties);

                string operation = "delete,xxx";
                ExpectInvalidLoggingOperation(serviceType, operation, getServiceProperties, "Cannot bind parameter 'LoggingOperations'. Cannot convert value");
            }
            else
            {
                string operation     = " --read --read-off ";
                string expectedError = "--read and --read-off cannot be both defined";
                ExpectInvalidLoggingOperation(serviceType, operation, getServiceProperties, expectedError);
            }
        }
예제 #12
0
        internal void GenericSetMetricsRetentionDays(ServiceType serviceType, Func <ServiceProperties> getServiceProperties)
        {
            Test.Info("Set service metrics retention days for {0}", serviceType);

            if (lang == Language.PowerShell)
            {
                // valid values for RetentionDay
                int retentionDays = Utility.GetRandomTestCount(1, 365 + 1);
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days should succeed");
                ServiceProperties retrievedProperties = getServiceProperties();
                ExpectEqual(retentionDays, retrievedProperties.HourMetrics.RetentionDays.Value, "metrics retention days");

                retentionDays = -1;
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days should succeed");
                retrievedProperties = getServiceProperties();
                Test.Assert(!retrievedProperties.HourMetrics.RetentionDays.HasValue, "Service metrics retention days should be null");

                // valid values for RetentionDay
                retentionDays = Utility.GetRandomTestCount(1, 365 + 1);
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days should succeed");
                retrievedProperties = getServiceProperties();
                ExpectEqual(retentionDays, retrievedProperties.MinuteMetrics.RetentionDays.Value, "metrics retention days");

                retentionDays = -1;
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days should succeed");
                retrievedProperties = getServiceProperties();
                Test.Assert(!retrievedProperties.MinuteMetrics.RetentionDays.HasValue, "Service metrics retention days should be null");

                // invalid values for RetentionDay
                retentionDays = 0;
                Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days for invalid retention days should fail");
                ExpectedContainErrorMessage("The minimum value of retention days is 1, the largest value is 365 (one year).");

                retentionDays = -1 * Utility.GetRandomTestCount(2, 365 + 1);
                Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days for invalid retention days should fail");
                ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'");

                retentionDays = Utility.GetRandomTestCount(366, 365 + 100);
                Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days for invalid retention days should fail");
                ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'");

                // invalid values for RetentionDay
                retentionDays = 0;
                Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days for invalid retention days should fail");
                ExpectedContainErrorMessage("The minimum value of retention days is 1, the largest value is 365 (one year).");

                retentionDays = -1 * Utility.GetRandomTestCount(2, 365 + 1);
                Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days for invalid retention days should fail");
                ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'");

                retentionDays = Utility.GetRandomTestCount(366, 365 + 100);
                Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days for invalid retention days should fail");
                ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'");
            }
            else
            {
                int retentionDays = Utility.GetRandomTestCount(1, 365 + 1);
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days should succeed");
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days should succeed");

                retentionDays = 0;
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days for 0 retention days should succeed");
                Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days for 0 retention days should succeed");
            }
        }