4
4
using GZCTF . Models . Internal ;
5
5
using GZCTF . Services . Container . Provider ;
6
6
using GZCTF . Services . Interface ;
7
- using Microsoft . Extensions . Localization ;
8
7
using ContainerStatus = GZCTF . Utils . ContainerStatus ;
9
8
10
9
namespace GZCTF . Services . Container . Manager ;
11
10
12
11
public class DockerManager : IContainerManager
13
12
{
14
13
readonly DockerClient _client ;
15
- readonly IStringLocalizer < Program > _localizer ;
16
14
readonly ILogger < DockerManager > _logger ;
17
15
readonly DockerMetadata _meta ;
18
16
19
- public DockerManager ( IContainerProvider < DockerClient , DockerMetadata > provider , ILogger < DockerManager > logger ,
20
- IStringLocalizer < Program > localizer )
17
+ public DockerManager ( IContainerProvider < DockerClient , DockerMetadata > provider , ILogger < DockerManager > logger )
21
18
{
22
19
_logger = logger ;
23
- _localizer = localizer ;
24
20
_meta = provider . GetMetadata ( ) ;
25
21
_client = provider . GetProvider ( ) ;
26
22
@@ -38,25 +34,25 @@ public async Task DestroyContainerAsync(Models.Data.Container container, Cancell
38
34
catch ( DockerContainerNotFoundException )
39
35
{
40
36
_logger . SystemLog (
41
- _localizer [ nameof ( Resources . Program . ContainerManager_ContainerDestroyed ) , container . ContainerId ] ,
37
+ Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_ContainerDestroyed ) , container . ContainerId ] ,
42
38
TaskStatus . Success , LogLevel . Debug ) ;
43
39
}
44
40
catch ( DockerApiException e )
45
41
{
46
42
if ( e . StatusCode == HttpStatusCode . NotFound )
47
43
{
48
44
_logger . SystemLog (
49
- _localizer [ nameof ( Resources . Program . ContainerManager_ContainerDestroyed ) , container . ContainerId ] ,
45
+ Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_ContainerDestroyed ) , container . ContainerId ] ,
50
46
TaskStatus . Success , LogLevel . Debug ) ;
51
47
}
52
48
else
53
49
{
54
50
_logger . SystemLog (
55
- _localizer [ nameof ( Resources . Program . ContainerManager_ContainerDeletionFailedStatus ) ,
51
+ Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_ContainerDeletionFailedStatus ) ,
56
52
container . ContainerId ,
57
53
e . StatusCode ] , TaskStatus . Failed , LogLevel . Warning ) ;
58
54
_logger . SystemLog (
59
- _localizer [ nameof ( Resources . Program . ContainerManager_ContainerDeletionFailedResponse ) ,
55
+ Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_ContainerDeletionFailedResponse ) ,
60
56
container . ContainerId ,
61
57
e . ResponseBody ] , TaskStatus . Failed , LogLevel . Error ) ;
62
58
return ;
@@ -65,7 +61,7 @@ public async Task DestroyContainerAsync(Models.Data.Container container, Cancell
65
61
catch ( Exception e )
66
62
{
67
63
_logger . LogError ( e ,
68
- _localizer [ nameof ( Resources . Program . ContainerManager_ContainerDeletionFailed ) , container . ContainerId ] ) ;
64
+ Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_ContainerDeletionFailed ) , container . ContainerId ] ) ;
69
65
return ;
70
66
}
71
67
@@ -90,7 +86,7 @@ public async Task DestroyContainerAsync(Models.Data.Container container, Cancell
90
86
}
91
87
catch ( DockerImageNotFoundException )
92
88
{
93
- _logger . SystemLog ( _localizer [ nameof ( Resources . Program . ContainerManager_PullContainerImage ) , config . Image ] ,
89
+ _logger . SystemLog ( Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_PullContainerImage ) , config . Image ] ,
94
90
TaskStatus . Pending , LogLevel . Information ) ;
95
91
96
92
await _client . Images . CreateImageAsync ( new ( ) { FromImage = config . Image } , _meta . Auth ,
@@ -102,7 +98,7 @@ await _client.Images.CreateImageAsync(new() { FromImage = config.Image }, _meta.
102
98
catch ( Exception e )
103
99
{
104
100
_logger . LogError ( e ,
105
- _localizer [ nameof ( Resources . Program . ContainerManager_ContainerCreationFailed ) , parameters . Name ] ) ;
101
+ Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_ContainerCreationFailed ) , parameters . Name ] ) ;
106
102
return null ;
107
103
}
108
104
@@ -113,7 +109,7 @@ await _client.Images.CreateImageAsync(new() { FromImage = config.Image }, _meta.
113
109
catch ( Exception e )
114
110
{
115
111
_logger . LogError ( e ,
116
- _localizer [ nameof ( Resources . Program . ContainerManager_ContainerCreationFailed ) , parameters . Name ] ) ;
112
+ Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_ContainerCreationFailed ) , parameters . Name ] ) ;
117
113
return null ;
118
114
}
119
115
@@ -129,7 +125,7 @@ await _client.Images.CreateImageAsync(new() { FromImage = config.Image }, _meta.
129
125
if ( retry == 3 )
130
126
{
131
127
_logger . SystemLog (
132
- _localizer [ nameof ( Resources . Program . ContainerManager_ContainerInstanceStartFailed ) ,
128
+ Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_ContainerInstanceStartFailed ) ,
133
129
container . ContainerId [ ..12 ] ,
134
130
config . Image . Split ( "/" ) . LastOrDefault ( ) ?? "" ] ,
135
131
TaskStatus . Failed , LogLevel . Warning ) ;
@@ -151,7 +147,7 @@ await _client.Images.CreateImageAsync(new() { FromImage = config.Image }, _meta.
151
147
if ( container . Status != ContainerStatus . Running )
152
148
{
153
149
_logger . SystemLog (
154
- _localizer [ nameof ( Resources . Program . ContainerManager_ContainerInstanceCreationFailedWithError ) ,
150
+ Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_ContainerInstanceCreationFailedWithError ) ,
155
151
config . Image . Split ( "/" ) . LastOrDefault ( ) ?? "" , info . State . Error ] ,
156
152
TaskStatus . Failed , LogLevel . Warning ) ;
157
153
return null ;
@@ -173,7 +169,7 @@ await _client.Images.CreateImageAsync(new() { FromImage = config.Image }, _meta.
173
169
if ( int . TryParse ( port , out var numPort ) )
174
170
container . PublicPort = numPort ;
175
171
else
176
- _logger . SystemLog ( _localizer [ nameof ( Resources . Program . ContainerManager_PortParsingFailed ) , port ] ,
172
+ _logger . SystemLog ( Program . StaticLocalizer [ nameof ( Resources . Program . ContainerManager_PortParsingFailed ) , port ] ,
177
173
TaskStatus . Failed ,
178
174
LogLevel . Warning ) ;
179
175
0 commit comments