MCPcopy
hub / github.com/cloudreve/cloudreve / migrateMasterNode

Function migrateMasterNode

inventory/migration.go:237–276  ·  view source on GitHub ↗
(l logging.Logger, client *ent.Client, ctx context.Context)

Source from the content-addressed store, hash-verified

235}
236
237func migrateMasterNode(l logging.Logger, client *ent.Client, ctx context.Context) error {
238 if _, err := client.Node.Query().Where(node.TypeEQ(node.TypeMaster)).First(ctx); err == nil {
239 l.Info("Default master node already exists, skip migrating.")
240 return nil
241 }
242
243 capabilities := &boolset.BooleanSet{}
244 boolset.Sets(map[types.NodeCapability]bool{
245 types.NodeCapabilityCreateArchive: true,
246 types.NodeCapabilityExtractArchive: true,
247 types.NodeCapabilityRemoteDownload: true,
248 }, capabilities)
249
250 stm := client.Node.Create().
251 SetType(node.TypeMaster).
252 SetCapabilities(capabilities).
253 SetName("Master").
254 SetSettings(&types.NodeSetting{
255 Provider: types.DownloaderProviderAria2,
256 }).
257 SetStatus(node.StatusActive)
258
259 _, enableAria2 := os.LookupEnv(EnvEnableAria2)
260 if enableAria2 {
261 l.Info("Aria2 is override as enabled.")
262 stm.SetSettings(&types.NodeSetting{
263 Provider: types.DownloaderProviderAria2,
264 Aria2Setting: &types.Aria2Setting{
265 Server: "http://127.0.0.1:6800/jsonrpc",
266 },
267 })
268 }
269
270 l.Info("Insert default master node...")
271 if _, err := stm.Save(ctx); err != nil {
272 return fmt.Errorf("failed to create default master node: %w", err)
273 }
274
275 return nil
276}
277
278const (
279 OAuthClientDesktopGUID = "393a1839-f52e-498e-9972-e77cc2241eee"

Callers 1

migrateSysGroupsFunction · 0.85

Calls 13

TypeEQFunction · 0.92
SetsFunction · 0.92
InfoMethod · 0.65
SetStatusMethod · 0.65
CreateMethod · 0.65
FirstMethod · 0.45
WhereMethod · 0.45
QueryMethod · 0.45
SetSettingsMethod · 0.45
SetNameMethod · 0.45
SetCapabilitiesMethod · 0.45
SetTypeMethod · 0.45

Tested by

no test coverage detected