MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / OperateFirewall

Method OperateFirewall

agent/app/service/firewall.go:164–214  ·  view source on GitHub ↗
(req dto.FirewallOperation)

Source from the content-addressed store, hash-verified

162}
163
164func (u *FirewallService) OperateFirewall(req dto.FirewallOperation) error {
165 client, err := firewall.NewFirewallClient()
166 if err != nil {
167 return err
168 }
169 needRestartDocker := false
170 switch req.Operation {
171 case "start":
172 if err := client.Start(); err != nil {
173 return err
174 }
175 if err := u.addPortsBeforeStart(client); err != nil {
176 _ = client.Stop()
177 return err
178 }
179 needRestartDocker = true
180 case "stop":
181 if err := client.Stop(); err != nil {
182 return err
183 }
184 needRestartDocker = true
185 case "restart":
186 if err := client.Restart(); err != nil {
187 return err
188 }
189 if err := u.addPortsBeforeStart(client); err != nil {
190 return err
191 }
192 needRestartDocker = true
193 case "disableBanPing":
194 if err := firewall.UpdatePingStatus("0"); err != nil {
195 return err
196 }
197 _ = settingRepo.Update("BanPing", constant.StatusDisable)
198 return nil
199 case "enableBanPing":
200 if err := firewall.UpdatePingStatus("1"); err != nil {
201 return err
202 }
203 _ = settingRepo.Update("BanPing", constant.StatusEnable)
204 return nil
205 default:
206 return fmt.Errorf("not supported operation: %s", req.Operation)
207 }
208 if needRestartDocker && req.WithDockerRestart {
209 if err := controller.HandleRestart("docker"); err != nil {
210 return fmt.Errorf("failed to restart Docker: %v", err)
211 }
212 }
213 return nil
214}
215
216func (u *FirewallService) OperatePortRule(req dto.PortRuleOperate, reload bool) error {
217 client, err := firewall.NewFirewallClient()

Callers

nothing calls this directly

Calls 5

StartMethod · 0.95
addPortsBeforeStartMethod · 0.95
StopMethod · 0.95
RestartMethod · 0.95
UpdateMethod · 0.65

Tested by

no test coverage detected