コード例 #1
0
        public async void DeleteFileWithUpdatedRetentionPeriod()
        {
            var f1 = await _hiarc.CreateFile(_hiarc.BuildPath(TEST_FILE_TINY));

            var rp1 = await _hiarc.CreateRetentionPolicy(3);

            await _hiarc.AddRetentionPolicyToFile(rp1.Key, f1.Key);

            await Assert.ThrowsAnyAsync <Exception>(async() => await _hiarc.DeleteFile(f1.Key));

            var updateRequest = new UpdateRetentionPolicyRequest {
                Seconds = 10
            };
            await _hiarc.UpdateRetentionPolicy(rp1.Key, updateRequest);

            Console.WriteLine("Waiting 5 seconds...");
            await Task.Delay(5000);

            await Assert.ThrowsAnyAsync <Exception>(async() => await _hiarc.DeleteFile(f1.Key));

            Console.WriteLine("Waiting 7 seconds...");
            await Task.Delay(7000);

            await _hiarc.DeleteFile(f1.Key);
        }
コード例 #2
0
        public async void RetentionPolicyCRUD()
        {
            var rp1 = await _hiarc.CreateRetentionPolicy(60);

            var fetchedRetentionPolicy = await _hiarc.GetRetentionPolicy(rp1.Key);

            Assert.Equal(rp1, fetchedRetentionPolicy, new EntityComparer());
            Assert.Equal((uint)60, fetchedRetentionPolicy.Seconds);

            var newName        = "New Name";
            var newDescription = "New description";
            var updateRequest  = new UpdateRetentionPolicyRequest {
                Name = newName, Description = newDescription
            };
            var updatedRetentionPolicy = await _hiarc.UpdateRetentionPolicy(rp1.Key, updateRequest);

            Assert.Equal(newName, updatedRetentionPolicy.Name);
            Assert.Equal(newDescription, updatedRetentionPolicy.Description);
            Assert.True(updatedRetentionPolicy.ModifiedAt > updatedRetentionPolicy.CreatedAt);

            updateRequest = new UpdateRetentionPolicyRequest {
                Key = "new key", Name = newName, Description = newDescription
            };
            await Assert.ThrowsAnyAsync <Exception>(async() => await _hiarc.UpdateRetentionPolicy(rp1.Key, updateRequest));
        }
コード例 #3
0
ファイル: HiarcClient.cs プロジェクト: hiarcdb/hiarc
        public async Task <RetentionPolicy> UpdateRetentionPolicy(string key, UpdateRetentionPolicyRequest request, string asUserKey = null, string bearerToken = null, bool logToConsole = true)
        {
            var updatedRetentionPolicy = await Put <UpdateRetentionPolicyRequest, RetentionPolicy>(request, $"retentionpolicies/{key}", asUserKey, bearerToken);

            if (logToConsole)
            {
                Console.WriteLine($"Updated Retention Policy: {ToJson(updatedRetentionPolicy)}\"");
            }
            ;
            return(updatedRetentionPolicy);
        }
コード例 #4
0
        public async void UpdateRetentionPeriod()
        {
            var rp1 = await _hiarc.CreateRetentionPolicy(RetentionPolicy.RETENTION_PERIOD_MONTH);

            var updateRequest = new UpdateRetentionPolicyRequest {
                Seconds = RetentionPolicy.RETENTION_PERIOD_DAY
            };

            await Assert.ThrowsAnyAsync <Exception>(async() => await _hiarc.UpdateRetentionPolicy(rp1.Key, updateRequest));

            updateRequest = new UpdateRetentionPolicyRequest {
                Seconds = RetentionPolicy.RETENTION_PERIOD_MAX
            };
            var updatedRetentionPolicy = await _hiarc.UpdateRetentionPolicy(rp1.Key, updateRequest);

            Assert.Equal(RetentionPolicy.RETENTION_PERIOD_MAX, updatedRetentionPolicy.Seconds);
        }
コード例 #5
0
        public async void UpdateMetadata()
        {
            var md  = TestMetadata;
            var rp1 = await _hiarc.CreateRetentionPolicy(60, md);

            var updatedMD = new Dictionary <string, object>
            {
                { "department", "support" },
                { "quotaCarrying", false },
                { "targetRate", 7.271 },
                { "level", 2 },
                { "startDate", DateTime.Parse("2020-02-25T22:33:50.134Z").ToUniversalTime() }
            };

            var request = new UpdateRetentionPolicyRequest
            {
                Metadata = updatedMD
            };

            var updatedPolicy = await _hiarc.UpdateRetentionPolicy(rp1.Key, request);

            AssertMetadata(updatedMD, updatedPolicy.Metadata);
        }
コード例 #6
0
        public async Task <IActionResult> Update(string key, [FromBody] UpdateRetentionPolicyRequest request)
        {
            try
            {
                var updatedRetentionPolicy = await _hiarcDatabase.UpdateRetentionPolicy(key, request);

                return(Ok(updatedRetentionPolicy));
            }
            catch (ArgumentException ex)
            {
                _logger.LogWarning(ex.Message);
                return(StatusCode(StatusCodes.Status403Forbidden));
            }
            catch (InvalidOperationException ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(StatusCodes.Status403Forbidden));
            }
            catch (Exception ex)
            {
                return(BuildErrorResponse(ex, _logger));
            }
        }
コード例 #7
0
        public async void NullOutMetadata()
        {
            var md  = TestMetadata;
            var rp1 = await _hiarc.CreateRetentionPolicy(60, md);

            var updatedMD = new Dictionary <string, object>
            {
                { "department", null },
                { "quotaCarrying", null }
            };

            var request = new UpdateRetentionPolicyRequest
            {
                Metadata = updatedMD
            };

            var updatedPolicy = await _hiarc.UpdateRetentionPolicy(rp1.Key, request);

            Assert.Equal(3, updatedPolicy.Metadata.Keys.Count);

            updatedMD = new Dictionary <string, object>
            {
                { "targetRate", null },
                { "level", null },
                { "startDate", null }
            };

            request = new UpdateRetentionPolicyRequest
            {
                Metadata = updatedMD
            };

            updatedPolicy = await _hiarc.UpdateRetentionPolicy(rp1.Key, request);

            Assert.Null(updatedPolicy.Metadata);
        }