Skip to content

Commit 44e0d4d

Browse files
committed
release 0.0.6-beta source code for net
1 parent 081f0b2 commit 44e0d4d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+782
-3734
lines changed

CHANGELOG.md

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,143 @@
1+
# 0.0.6-beta 2023-05-12
2+
3+
### G42Cloud SDK CBR
4+
5+
- _Features_
6+
- None
7+
- _Bug Fix_
8+
- None
9+
- _Change_
10+
- Remove the following interfaces:
11+
- `CopyCheckpoint`
12+
- `MigrateVaultResource`
13+
- `ImportBackup`
14+
- `CopyBackup`
15+
- `ShowReplicationCapabilities`
16+
- **ShowVaultResourceInstances**
17+
- changes of response param
18+
- `* resources.resource_detail: list<Vault> -> object<InstancesResourceDetail>`
19+
- **ShowBackup**
20+
- changes of response param
21+
- `- backup.image_type: enum value [backup,replication]`
22+
- `- backup.resource_type: enum value [OS::Nova::Server,OS::Cinder::Volume]`
23+
- **ListBackups**
24+
- changes of request param
25+
- `+ incremental`
26+
- `+ image_type: enum value [backup,replication]`
27+
- `+ resource_type: enum value [OS::Cinder::Volume,OS::Nova::Server]`
28+
- changes of response param
29+
- `- backups.image_type: enum value [backup,replication]`
30+
- `- backups.resource_type: enum value [OS::Nova::Server,OS::Cinder::Volume]`
31+
- **ListPolicies**
32+
- changes of response param
33+
- `- policies.operation_type: enum value [replication]`
34+
- **CreatePolicy**
35+
- changes of request param
36+
- `- policy.operation_type: enum value [backup,replication]`
37+
- changes of response param
38+
- `- policy.operation_type: enum value [replication]`
39+
- **ShowPolicy**
40+
- changes of response param
41+
- `- policy.operation_type: enum value [replication]`
42+
- **UpdatePolicy**
43+
- changes of response param
44+
- `- policy.operation_type: enum value [replication]`
45+
- **ListVault**
46+
- changes of request param
47+
- `+ cloud_type: enum value [public,hybrid]`
48+
- `+ protect_type: enum value [backup,replication]`
49+
- changes of response param
50+
- `- vaults.billing.charging_mode: enum value [pre_paid,post_paid]`
51+
- `- vaults.billing.cloud_type: enum value [public,hybrid]`
52+
- `- vaults.billing.consistent_level: enum value [app_consistent,crash_consistent]`
53+
- `- vaults.billing.object_type: enum value [server,disk]`
54+
- `- vaults.billing.protect_type: enum value [backup,replication,hybrid]`
55+
- `- vaults.billing.spec_code: enum value [vault.backup.server.normal,vault.backup.volume.normal]`
56+
- `* vaults.bind_rules.tags: list<Tag> -> list<BindRulesTags>`
57+
- **CreateVault**
58+
- changes of request param
59+
- `* vault.bind_rules.tags: list<Tag> -> list<BindRulesTags>`
60+
- `+ vault.billing.promotion_info`
61+
- `+ vault.billing.purchase_mode`
62+
- `+ vault.billing.order_id`
63+
- `- vault.billing.cloud_type: enum value [public,hybrid]`
64+
- `- vault.billing.consistent_level: enum value [app_consistent,crash_consistent]`
65+
- `- vault.billing.object_type: enum value [server,disk,turbo]`
66+
- `- vault.billing.protect_type: enum value [backup,replication]`
67+
- `- vault.billing.charging_mode: enum value [post_paid,pre_paid]`
68+
- changes of response param
69+
- `- vault.billing.charging_mode: enum value [pre_paid,post_paid]`
70+
- `- vault.billing.cloud_type: enum value [public,hybrid]`
71+
- `- vault.billing.consistent_level: enum value [app_consistent,crash_consistent]`
72+
- `- vault.billing.object_type: enum value [server,disk]`
73+
- `- vault.billing.protect_type: enum value [backup,replication,hybrid]`
74+
- `- vault.billing.spec_code: enum value [vault.backup.server.normal,vault.backup.volume.normal]`
75+
- `* vault.bind_rules.tags: list<Tag> -> list<BindRulesTags>`
76+
- **ShowVault**
77+
- changes of response param
78+
- `- vault.billing.charging_mode: enum value [pre_paid,post_paid]`
79+
- `- vault.billing.cloud_type: enum value [public,hybrid]`
80+
- `- vault.billing.consistent_level: enum value [app_consistent,crash_consistent]`
81+
- `- vault.billing.object_type: enum value [server,disk]`
82+
- `- vault.billing.protect_type: enum value [backup,replication,hybrid]`
83+
- `- vault.billing.spec_code: enum value [vault.backup.server.normal,vault.backup.volume.normal]`
84+
- `* vault.bind_rules.tags: list<Tag> -> list<BindRulesTags>`
85+
- **UpdateVault**
86+
- changes of request param
87+
- `* vault.bind_rules.tags: list<Tag> -> list<BindRulesTags>`
88+
- changes of response param
89+
- `- vault.billing.charging_mode: enum value [pre_paid,post_paid]`
90+
- `- vault.billing.cloud_type: enum value [public,hybrid]`
91+
- `- vault.billing.consistent_level: enum value [app_consistent,crash_consistent]`
92+
- `- vault.billing.object_type: enum value [server,disk]`
93+
- `- vault.billing.protect_type: enum value [backup,replication,hybrid]`
94+
- `- vault.billing.spec_code: enum value [vault.backup.server.normal,vault.backup.volume.normal]`
95+
- `* vault.bind_rules.tags: list<Tag> -> list<BindRulesTags>`
96+
- **ListProtectable**
97+
- changes of response param
98+
- `- instances.protectable.vault.billing.charging_mode: enum value [pre_paid,post_paid]`
99+
- `- instances.protectable.vault.billing.cloud_type: enum value [public,hybrid]`
100+
- `- instances.protectable.vault.billing.consistent_level: enum value [app_consistent,crash_consistent]`
101+
- `- instances.protectable.vault.billing.object_type: enum value [server,disk]`
102+
- `- instances.protectable.vault.billing.protect_type: enum value [backup,replication,hybrid]`
103+
- `- instances.protectable.vault.billing.spec_code: enum value [vault.backup.server.normal,vault.backup.volume.normal]`
104+
- `+ instances.protectable.vault.tags.value`
105+
- `- instances.protectable.vault.tags.values`
106+
- `* instances.protectable.vault.tags: list<TagsResp> -> list<Tag>`
107+
- `* instances.protectable.vault.bind_rules.tags: list<Tag> -> list<BindRulesTags>`
108+
- **ShowProtectable**
109+
- changes of response param
110+
- `- instance.protectable.vault.billing.charging_mode: enum value [pre_paid,post_paid]`
111+
- `- instance.protectable.vault.billing.cloud_type: enum value [public,hybrid]`
112+
- `- instance.protectable.vault.billing.consistent_level: enum value [app_consistent,crash_consistent]`
113+
- `- instance.protectable.vault.billing.object_type: enum value [server,disk]`
114+
- `- instance.protectable.vault.billing.protect_type: enum value [backup,replication,hybrid]`
115+
- `- instance.protectable.vault.billing.spec_code: enum value [vault.backup.server.normal,vault.backup.volume.normal]`
116+
- `+ instance.protectable.vault.tags.value`
117+
- `- instance.protectable.vault.tags.values`
118+
- `* instance.protectable.vault.tags: list<TagsResp> -> list<Tag>`
119+
- `* instance.protectable.vault.bind_rules.tags: list<Tag> -> list<BindRulesTags>`
120+
121+
### G42Cloud SDK ECS
122+
123+
- _Features_
124+
- Support the interface `NovaAttachInterface`
125+
- _Bug Fix_
126+
- None
127+
- _Change_
128+
- None
129+
130+
### G42Cloud SDK IMS
131+
132+
- _Features_
133+
- None
134+
- _Bug Fix_
135+
- None
136+
- _Change_
137+
- **ListImages**
138+
- changes of request param
139+
- `+ __imagetype: enum value [market]`
140+
1141
# 0.0.5-beta 2023-04-14
2142

3143
### G42Cloud SDK Core

Core/Http/SdkHttpClient.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
using System;
2323
using System.Collections.Generic;
2424
using System.IO;
25+
using System.Linq;
2526
using System.Net;
2627
using System.Net.Http;
2728
using System.Net.Http.Headers;
@@ -54,15 +55,8 @@ private IServiceCollection GetServiceCollection(HttpConfig httpConfig, bool logg
5455
var service = new ServiceCollection()
5556
.AddHttpClient(
5657
"SdkHttpClient",
57-
x => { x.Timeout = TimeSpan.FromSeconds(httpConfig.Timeout.Value); }
58-
)
59-
.AddTransientHttpErrorPolicy(builder => builder.WaitAndRetryAsync(new[]
60-
{
61-
TimeSpan.FromSeconds(3),
62-
TimeSpan.FromSeconds(3),
63-
TimeSpan.FromSeconds(3)
64-
}))
65-
.ConfigurePrimaryHttpMessageHandler(
58+
x => { x.Timeout = TimeSpan.FromSeconds(httpConfig.Timeout ?? 60); }
59+
).ConfigurePrimaryHttpMessageHandler(
6660
() => new HwMessageHandlerFactory(httpConfig).GetHandler()
6761
)
6862
.Services;
@@ -142,10 +136,10 @@ private HttpContent GetFormDataContent(HttpRequest request)
142136
{
143137
var boundary = Guid.NewGuid().ToString("N");
144138
var contentType = "multipart/form-data; boundary=" + boundary;
145-
var content = new MultipartFormDataContent(boundary);
139+
var multipartContent = new MultipartFormDataContent(boundary);
146140
request.Headers.Add("ContentType", contentType);
147-
content.Headers.Remove("Content-Type");
148-
content.Headers.TryAddWithoutValidation("Content-Type", contentType);
141+
multipartContent.Headers.Remove("Content-Type");
142+
multipartContent.Headers.TryAddWithoutValidation("Content-Type", contentType);
149143

150144
var fileParts = new Dictionary<string, FormDataFilePart>();
151145

@@ -157,7 +151,7 @@ private HttpContent GetFormDataContent(HttpRequest request)
157151
}
158152
else
159153
{
160-
content.Add(new StringContent(pair.Value.ToString()), $"\"{pair.Key}\"");
154+
multipartContent.Add(new StringContent(pair.Value.ToString()), $"\"{pair.Key}\"");
161155
}
162156
}
163157

@@ -169,10 +163,16 @@ private HttpContent GetFormDataContent(HttpRequest request)
169163
{
170164
streamContent.Headers.ContentType = new MediaTypeHeaderValue(filePart.GetContentType());
171165
}
172-
content.Add(streamContent, $"\"{pair.Key}\"", $"\"{filePart.GetFilename()}\"");
166+
multipartContent.Add(streamContent, $"\"{pair.Key}\"", $"\"{filePart.GetFilename()}\"");
167+
}
168+
169+
foreach (var content in multipartContent) {
170+
var headerContent = content.Headers.ContentDisposition.Parameters.SingleOrDefault(x => x.Name == "filename*");
171+
if(headerContent != null)
172+
content.Headers.ContentDisposition.Parameters.Remove(headerContent);
173173
}
174174

175-
return content;
175+
return multipartContent;
176176
}
177177

178178
public async Task<HttpResponseMessage> DoHttpRequest(HttpRequestMessage request)

Core/SdkResponse.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,19 @@
1919
* under the License.
2020
*/
2121

22+
using Newtonsoft.Json;
23+
2224
namespace G42Cloud.SDK.Core
2325
{
2426
public class SdkResponse
2527
{
28+
[JsonIgnore]
2629
public string HttpBody { get; set; }
2730

31+
[JsonIgnore]
2832
public int? HttpStatusCode { get; set; }
2933

34+
[JsonIgnore]
3035
public string HttpHeaders { get; set; }
3136

3237
public string GetHttpBody()
@@ -44,4 +49,4 @@ public string GetHttpHeaders()
4449
return this.HttpHeaders;
4550
}
4651
}
47-
}
52+
}

Core/obj/Core.csproj.nuget.cache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"version": 1,
3-
"dgSpecHash": "ni+h4mW2edx+EFg4KH0Mp+ym7+P9OvG1mggreTiYLE4kXYEpbQaDt++JEUapSOMlibFYboN1p8YL5vvJDxf61A==",
3+
"dgSpecHash": "/uxPzudilK7z2cmcr8LmLAMNuQ3d4mkPcnRYFwycy3PGe6bg0rL/aXKhMoaCKTAGOwJqw+661uZhyMwQHaDr9w==",
44
"success": true
55
}

Core/obj/Core.csproj.nuget.dgspec.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
{
22
"format": 1,
33
"restore": {
4-
"/data/fuxi_ci_workspace/6438ba837f701874a66183c8/Core/Core.csproj": {}
4+
"/data/fuxi_ci_workspace/645dd8e482590b0998f24562/Core/Core.csproj": {}
55
},
66
"projects": {
7-
"/data/fuxi_ci_workspace/6438ba837f701874a66183c8/Core/Core.csproj": {
7+
"/data/fuxi_ci_workspace/645dd8e482590b0998f24562/Core/Core.csproj": {
88
"version": "1.0.0",
99
"restore": {
10-
"projectUniqueName": "/data/fuxi_ci_workspace/6438ba837f701874a66183c8/Core/Core.csproj",
10+
"projectUniqueName": "/data/fuxi_ci_workspace/645dd8e482590b0998f24562/Core/Core.csproj",
1111
"projectName": "G42Cloud.SDK.Core",
12-
"projectPath": "/data/fuxi_ci_workspace/6438ba837f701874a66183c8/Core/Core.csproj",
12+
"projectPath": "/data/fuxi_ci_workspace/645dd8e482590b0998f24562/Core/Core.csproj",
1313
"packagesPath": "/root/.nuget/packages/",
14-
"outputPath": "/data/fuxi_ci_workspace/6438ba837f701874a66183c8/Core/obj/",
14+
"outputPath": "/data/fuxi_ci_workspace/645dd8e482590b0998f24562/Core/obj/",
1515
"projectStyle": "PackageReference",
1616
"fallbackFolders": [
1717
"/usr/dotnet2/sdk/NuGetFallbackFolder"
@@ -23,7 +23,7 @@
2323
"netstandard2.0"
2424
],
2525
"sources": {
26-
"/data/fuxi_ci_workspace/6438ba837f701874a66183c8/package": {}
26+
"/data/fuxi_ci_workspace/645dd8e482590b0998f24562/package": {}
2727
},
2828
"frameworks": {
2929
"netstandard2.0": {

Core/obj/Core.csproj.nuget.g.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
44
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
55
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
6-
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">/data/fuxi_ci_workspace/6438ba837f701874a66183c8/Core/obj/project.assets.json</ProjectAssetsFile>
6+
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">/data/fuxi_ci_workspace/645dd8e482590b0998f24562/Core/obj/project.assets.json</ProjectAssetsFile>
77
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/root/.nuget/packages/</NuGetPackageRoot>
88
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/root/.nuget/packages/;/usr/dotnet2/sdk/NuGetFallbackFolder</NuGetPackageFolders>
99
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>

Core/obj/project.assets.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,11 +1051,11 @@
10511051
"project": {
10521052
"version": "1.0.0",
10531053
"restore": {
1054-
"projectUniqueName": "/data/fuxi_ci_workspace/6438ba837f701874a66183c8/Core/Core.csproj",
1054+
"projectUniqueName": "/data/fuxi_ci_workspace/645dd8e482590b0998f24562/Core/Core.csproj",
10551055
"projectName": "G42Cloud.SDK.Core",
1056-
"projectPath": "/data/fuxi_ci_workspace/6438ba837f701874a66183c8/Core/Core.csproj",
1056+
"projectPath": "/data/fuxi_ci_workspace/645dd8e482590b0998f24562/Core/Core.csproj",
10571057
"packagesPath": "/root/.nuget/packages/",
1058-
"outputPath": "/data/fuxi_ci_workspace/6438ba837f701874a66183c8/Core/obj/",
1058+
"outputPath": "/data/fuxi_ci_workspace/645dd8e482590b0998f24562/Core/obj/",
10591059
"projectStyle": "PackageReference",
10601060
"fallbackFolders": [
10611061
"/usr/dotnet2/sdk/NuGetFallbackFolder"
@@ -1067,7 +1067,7 @@
10671067
"netstandard2.0"
10681068
],
10691069
"sources": {
1070-
"/data/fuxi_ci_workspace/6438ba837f701874a66183c8/package": {}
1070+
"/data/fuxi_ci_workspace/645dd8e482590b0998f24562/package": {}
10711071
},
10721072
"frameworks": {
10731073
"netstandard2.0": {

0 commit comments

Comments
 (0)