mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
CLOUDFLARE: Adopt diff2 (#2040)
This commit is contained in:
@ -116,14 +116,14 @@ func Test_analyzeByRecordSet(t *testing.T) {
|
||||
existing: models.Records{testDataAA1234, testDataAMX10a},
|
||||
desired: models.Records{testDataAA1234clone, testDataAMX20b},
|
||||
},
|
||||
wantMsgs: "CHANGE laba.f.com MX (10 laba) -> (20 labb)",
|
||||
wantMsgs: "CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)",
|
||||
wantChangeRSet: `
|
||||
ChangeList: len=1
|
||||
00: Change: verb=CHANGE
|
||||
key={laba.f.com MX}
|
||||
old=[10 laba]
|
||||
new=[20 labb]
|
||||
msg=["CHANGE laba.f.com MX (10 laba) -> (20 labb)"]
|
||||
msg=["CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"]
|
||||
`,
|
||||
wantChangeLabel: `
|
||||
ChangeList: len=1
|
||||
@ -131,7 +131,7 @@ ChangeList: len=1
|
||||
key={laba.f.com }
|
||||
old=[1.2.3.4 10 laba]
|
||||
new=[1.2.3.4 20 labb]
|
||||
msg=["CHANGE laba.f.com MX (10 laba) -> (20 labb)"]
|
||||
msg=["CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"]
|
||||
`,
|
||||
wantChangeRec: `
|
||||
ChangeList: len=1
|
||||
@ -139,7 +139,7 @@ ChangeList: len=1
|
||||
key={laba.f.com MX}
|
||||
old=[10 laba]
|
||||
new=[20 labb]
|
||||
msg=["CHANGE laba.f.com MX (10 laba) -> (20 labb)"]
|
||||
msg=["CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"]
|
||||
`,
|
||||
},
|
||||
|
||||
@ -150,14 +150,14 @@ ChangeList: len=1
|
||||
existing: models.Records{testDataAA1234, testDataApexMX1aaa},
|
||||
desired: models.Records{testDataAA1234clone, testDataApexMX22bbb},
|
||||
},
|
||||
wantMsgs: "CHANGE f.com MX (1 aaa) -> (22 bbb)",
|
||||
wantMsgs: "CHANGE f.com MX (1 aaa ttl=300) -> (22 bbb ttl=300)",
|
||||
wantChangeRSet: `
|
||||
ChangeList: len=1
|
||||
00: Change: verb=CHANGE
|
||||
key={f.com MX}
|
||||
old=[1 aaa]
|
||||
new=[22 bbb]
|
||||
msg=["CHANGE f.com MX (1 aaa) -> (22 bbb)"]
|
||||
msg=["CHANGE f.com MX (1 aaa ttl=300) -> (22 bbb ttl=300)"]
|
||||
`,
|
||||
wantChangeLabel: `
|
||||
ChangeList: len=1
|
||||
@ -165,7 +165,7 @@ ChangeList: len=1
|
||||
key={f.com }
|
||||
old=[1 aaa]
|
||||
new=[22 bbb]
|
||||
msg=["CHANGE f.com MX (1 aaa) -> (22 bbb)"]
|
||||
msg=["CHANGE f.com MX (1 aaa ttl=300) -> (22 bbb ttl=300)"]
|
||||
`,
|
||||
wantChangeRec: `
|
||||
ChangeList: len=1
|
||||
@ -173,7 +173,7 @@ ChangeList: len=1
|
||||
key={f.com MX}
|
||||
old=[1 aaa]
|
||||
new=[22 bbb]
|
||||
msg=["CHANGE f.com MX (1 aaa) -> (22 bbb)"]
|
||||
msg=["CHANGE f.com MX (1 aaa ttl=300) -> (22 bbb ttl=300)"]
|
||||
`,
|
||||
},
|
||||
|
||||
@ -185,8 +185,8 @@ ChangeList: len=1
|
||||
desired: models.Records{testDataAA1234clone, testDataAA12345, testDataAMX20b},
|
||||
},
|
||||
wantMsgs: `
|
||||
CREATE laba.f.com A 1.2.3.5
|
||||
CHANGE laba.f.com MX (10 laba) -> (20 labb)
|
||||
CREATE laba.f.com A 1.2.3.5 ttl=300
|
||||
CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)
|
||||
`,
|
||||
wantChangeRSet: `
|
||||
ChangeList: len=2
|
||||
@ -194,12 +194,12 @@ ChangeList: len=2
|
||||
key={laba.f.com A}
|
||||
old=[1.2.3.4]
|
||||
new=[1.2.3.4 1.2.3.5]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5"]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5 ttl=300"]
|
||||
01: Change: verb=CHANGE
|
||||
key={laba.f.com MX}
|
||||
old=[10 laba]
|
||||
new=[20 labb]
|
||||
msg=["CHANGE laba.f.com MX (10 laba) -> (20 labb)"]
|
||||
msg=["CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"]
|
||||
`,
|
||||
wantChangeLabel: `
|
||||
ChangeList: len=1
|
||||
@ -207,19 +207,19 @@ ChangeList: len=1
|
||||
key={laba.f.com }
|
||||
old=[1.2.3.4 10 laba]
|
||||
new=[1.2.3.4 1.2.3.5 20 labb]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5" "CHANGE laba.f.com MX (10 laba) -> (20 labb)"]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5 ttl=300" "CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"]
|
||||
`,
|
||||
wantChangeRec: `
|
||||
ChangeList: len=2
|
||||
00: Change: verb=CREATE
|
||||
key={laba.f.com A}
|
||||
new=[1.2.3.5]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5"]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5 ttl=300"]
|
||||
01: Change: verb=CHANGE
|
||||
key={laba.f.com MX}
|
||||
old=[10 laba]
|
||||
new=[20 labb]
|
||||
msg=["CHANGE laba.f.com MX (10 laba) -> (20 labb)"]
|
||||
msg=["CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"]
|
||||
`,
|
||||
},
|
||||
|
||||
@ -231,18 +231,18 @@ ChangeList: len=2
|
||||
desired: desired,
|
||||
},
|
||||
wantMsgs: `
|
||||
CREATE laba.f.com A 1.2.3.5
|
||||
CHANGE laba.f.com MX (10 laba) -> (20 labb)
|
||||
DELETE labc.f.com CNAME laba
|
||||
CHANGE labe.f.com A (10.10.10.15) -> (10.10.10.95)
|
||||
CHANGE labe.f.com A (10.10.10.16) -> (10.10.10.96)
|
||||
CHANGE labe.f.com A (10.10.10.17) -> (10.10.10.97)
|
||||
CHANGE labe.f.com A (10.10.10.18) -> (10.10.10.98)
|
||||
CREATE labf.f.com TXT "foo"
|
||||
CHANGE labg.f.com NS (10.10.10.17) -> (10.10.10.10)
|
||||
CHANGE labg.f.com NS (10.10.10.18) -> (10.10.10.97)
|
||||
DELETE labh.f.com CNAME labd
|
||||
CREATE labh.f.com A 1.2.3.4
|
||||
CREATE laba.f.com A 1.2.3.5 ttl=300
|
||||
CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)
|
||||
DELETE labc.f.com CNAME laba ttl=300
|
||||
CHANGE labe.f.com A (10.10.10.15 ttl=300) -> (10.10.10.95 ttl=300)
|
||||
CHANGE labe.f.com A (10.10.10.16 ttl=300) -> (10.10.10.96 ttl=300)
|
||||
CHANGE labe.f.com A (10.10.10.17 ttl=300) -> (10.10.10.97 ttl=300)
|
||||
CHANGE labe.f.com A (10.10.10.18 ttl=300) -> (10.10.10.98 ttl=300)
|
||||
CREATE labf.f.com TXT "foo" ttl=300
|
||||
CHANGE labg.f.com NS (10.10.10.17 ttl=300) -> (10.10.10.10 ttl=300)
|
||||
CHANGE labg.f.com NS (10.10.10.18 ttl=300) -> (10.10.10.97 ttl=300)
|
||||
DELETE labh.f.com CNAME labd ttl=300
|
||||
CREATE labh.f.com A 1.2.3.4 ttl=300
|
||||
`,
|
||||
wantChangeRSet: `
|
||||
ChangeList: len=8
|
||||
@ -250,38 +250,38 @@ ChangeList: len=8
|
||||
key={laba.f.com A}
|
||||
old=[1.2.3.4]
|
||||
new=[1.2.3.4 1.2.3.5]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5"]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5 ttl=300"]
|
||||
01: Change: verb=CHANGE
|
||||
key={laba.f.com MX}
|
||||
old=[10 laba]
|
||||
new=[20 labb]
|
||||
msg=["CHANGE laba.f.com MX (10 laba) -> (20 labb)"]
|
||||
msg=["CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"]
|
||||
02: Change: verb=DELETE
|
||||
key={labc.f.com CNAME}
|
||||
old=[laba]
|
||||
msg=["DELETE labc.f.com CNAME laba"]
|
||||
msg=["DELETE labc.f.com CNAME laba ttl=300"]
|
||||
03: Change: verb=CHANGE
|
||||
key={labe.f.com A}
|
||||
old=[10.10.10.15 10.10.10.16 10.10.10.17 10.10.10.18]
|
||||
new=[10.10.10.95 10.10.10.96 10.10.10.97 10.10.10.98]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.15) -> (10.10.10.95)" "CHANGE labe.f.com A (10.10.10.16) -> (10.10.10.96)" "CHANGE labe.f.com A (10.10.10.17) -> (10.10.10.97)" "CHANGE labe.f.com A (10.10.10.18) -> (10.10.10.98)"]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.15 ttl=300) -> (10.10.10.95 ttl=300)" "CHANGE labe.f.com A (10.10.10.16 ttl=300) -> (10.10.10.96 ttl=300)" "CHANGE labe.f.com A (10.10.10.17 ttl=300) -> (10.10.10.97 ttl=300)" "CHANGE labe.f.com A (10.10.10.18 ttl=300) -> (10.10.10.98 ttl=300)"]
|
||||
04: Change: verb=CREATE
|
||||
key={labf.f.com TXT}
|
||||
new=["foo"]
|
||||
msg=["CREATE labf.f.com TXT \"foo\""]
|
||||
msg=["CREATE labf.f.com TXT \"foo\" ttl=300"]
|
||||
05: Change: verb=CHANGE
|
||||
key={labg.f.com NS}
|
||||
old=[10.10.10.15 10.10.10.16 10.10.10.17 10.10.10.18]
|
||||
new=[10.10.10.10 10.10.10.15 10.10.10.16 10.10.10.97]
|
||||
msg=["CHANGE labg.f.com NS (10.10.10.17) -> (10.10.10.10)" "CHANGE labg.f.com NS (10.10.10.18) -> (10.10.10.97)"]
|
||||
msg=["CHANGE labg.f.com NS (10.10.10.17 ttl=300) -> (10.10.10.10 ttl=300)" "CHANGE labg.f.com NS (10.10.10.18 ttl=300) -> (10.10.10.97 ttl=300)"]
|
||||
06: Change: verb=DELETE
|
||||
key={labh.f.com CNAME}
|
||||
old=[labd]
|
||||
msg=["DELETE labh.f.com CNAME labd"]
|
||||
msg=["DELETE labh.f.com CNAME labd ttl=300"]
|
||||
07: Change: verb=CREATE
|
||||
key={labh.f.com A}
|
||||
new=[1.2.3.4]
|
||||
msg=["CREATE labh.f.com A 1.2.3.4"]
|
||||
msg=["CREATE labh.f.com A 1.2.3.4 ttl=300"]
|
||||
`,
|
||||
wantChangeLabel: `
|
||||
ChangeList: len=6
|
||||
@ -289,88 +289,88 @@ ChangeList: len=6
|
||||
key={laba.f.com }
|
||||
old=[1.2.3.4 10 laba]
|
||||
new=[1.2.3.4 1.2.3.5 20 labb]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5" "CHANGE laba.f.com MX (10 laba) -> (20 labb)"]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5 ttl=300" "CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"]
|
||||
01: Change: verb=DELETE
|
||||
key={labc.f.com }
|
||||
old=[laba]
|
||||
msg=["DELETE labc.f.com CNAME laba"]
|
||||
msg=["DELETE labc.f.com CNAME laba ttl=300"]
|
||||
02: Change: verb=CHANGE
|
||||
key={labe.f.com }
|
||||
old=[10.10.10.15 10.10.10.16 10.10.10.17 10.10.10.18]
|
||||
new=[10.10.10.95 10.10.10.96 10.10.10.97 10.10.10.98]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.15) -> (10.10.10.95)" "CHANGE labe.f.com A (10.10.10.16) -> (10.10.10.96)" "CHANGE labe.f.com A (10.10.10.17) -> (10.10.10.97)" "CHANGE labe.f.com A (10.10.10.18) -> (10.10.10.98)"]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.15 ttl=300) -> (10.10.10.95 ttl=300)" "CHANGE labe.f.com A (10.10.10.16 ttl=300) -> (10.10.10.96 ttl=300)" "CHANGE labe.f.com A (10.10.10.17 ttl=300) -> (10.10.10.97 ttl=300)" "CHANGE labe.f.com A (10.10.10.18 ttl=300) -> (10.10.10.98 ttl=300)"]
|
||||
03: Change: verb=CREATE
|
||||
key={labf.f.com }
|
||||
new=["foo"]
|
||||
msg=["CREATE labf.f.com TXT \"foo\""]
|
||||
msg=["CREATE labf.f.com TXT \"foo\" ttl=300"]
|
||||
04: Change: verb=CHANGE
|
||||
key={labg.f.com }
|
||||
old=[10.10.10.15 10.10.10.16 10.10.10.17 10.10.10.18]
|
||||
new=[10.10.10.10 10.10.10.15 10.10.10.16 10.10.10.97]
|
||||
msg=["CHANGE labg.f.com NS (10.10.10.17) -> (10.10.10.10)" "CHANGE labg.f.com NS (10.10.10.18) -> (10.10.10.97)"]
|
||||
msg=["CHANGE labg.f.com NS (10.10.10.17 ttl=300) -> (10.10.10.10 ttl=300)" "CHANGE labg.f.com NS (10.10.10.18 ttl=300) -> (10.10.10.97 ttl=300)"]
|
||||
05: Change: verb=CHANGE
|
||||
key={labh.f.com }
|
||||
old=[labd]
|
||||
new=[1.2.3.4]
|
||||
msg=["DELETE labh.f.com CNAME labd" "CREATE labh.f.com A 1.2.3.4"]
|
||||
msg=["DELETE labh.f.com CNAME labd ttl=300" "CREATE labh.f.com A 1.2.3.4 ttl=300"]
|
||||
`,
|
||||
wantChangeRec: `
|
||||
ChangeList: len=12
|
||||
00: Change: verb=CREATE
|
||||
key={laba.f.com A}
|
||||
new=[1.2.3.5]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5"]
|
||||
msg=["CREATE laba.f.com A 1.2.3.5 ttl=300"]
|
||||
01: Change: verb=CHANGE
|
||||
key={laba.f.com MX}
|
||||
old=[10 laba]
|
||||
new=[20 labb]
|
||||
msg=["CHANGE laba.f.com MX (10 laba) -> (20 labb)"]
|
||||
msg=["CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"]
|
||||
02: Change: verb=DELETE
|
||||
key={labc.f.com CNAME}
|
||||
old=[laba]
|
||||
msg=["DELETE labc.f.com CNAME laba"]
|
||||
msg=["DELETE labc.f.com CNAME laba ttl=300"]
|
||||
03: Change: verb=CHANGE
|
||||
key={labe.f.com A}
|
||||
old=[10.10.10.15]
|
||||
new=[10.10.10.95]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.15) -> (10.10.10.95)"]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.15 ttl=300) -> (10.10.10.95 ttl=300)"]
|
||||
04: Change: verb=CHANGE
|
||||
key={labe.f.com A}
|
||||
old=[10.10.10.16]
|
||||
new=[10.10.10.96]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.16) -> (10.10.10.96)"]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.16 ttl=300) -> (10.10.10.96 ttl=300)"]
|
||||
05: Change: verb=CHANGE
|
||||
key={labe.f.com A}
|
||||
old=[10.10.10.17]
|
||||
new=[10.10.10.97]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.17) -> (10.10.10.97)"]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.17 ttl=300) -> (10.10.10.97 ttl=300)"]
|
||||
06: Change: verb=CHANGE
|
||||
key={labe.f.com A}
|
||||
old=[10.10.10.18]
|
||||
new=[10.10.10.98]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.18) -> (10.10.10.98)"]
|
||||
msg=["CHANGE labe.f.com A (10.10.10.18 ttl=300) -> (10.10.10.98 ttl=300)"]
|
||||
07: Change: verb=CREATE
|
||||
key={labf.f.com TXT}
|
||||
new=["foo"]
|
||||
msg=["CREATE labf.f.com TXT \"foo\""]
|
||||
msg=["CREATE labf.f.com TXT \"foo\" ttl=300"]
|
||||
08: Change: verb=CHANGE
|
||||
key={labg.f.com NS}
|
||||
old=[10.10.10.17]
|
||||
new=[10.10.10.10]
|
||||
msg=["CHANGE labg.f.com NS (10.10.10.17) -> (10.10.10.10)"]
|
||||
msg=["CHANGE labg.f.com NS (10.10.10.17 ttl=300) -> (10.10.10.10 ttl=300)"]
|
||||
09: Change: verb=CHANGE
|
||||
key={labg.f.com NS}
|
||||
old=[10.10.10.18]
|
||||
new=[10.10.10.97]
|
||||
msg=["CHANGE labg.f.com NS (10.10.10.18) -> (10.10.10.97)"]
|
||||
msg=["CHANGE labg.f.com NS (10.10.10.18 ttl=300) -> (10.10.10.97 ttl=300)"]
|
||||
10: Change: verb=DELETE
|
||||
key={labh.f.com CNAME}
|
||||
old=[labd]
|
||||
msg=["DELETE labh.f.com CNAME labd"]
|
||||
msg=["DELETE labh.f.com CNAME labd ttl=300"]
|
||||
11: Change: verb=CREATE
|
||||
key={labh.f.com A}
|
||||
new=[1.2.3.4]
|
||||
msg=["CREATE labh.f.com A 1.2.3.4"]
|
||||
msg=["CREATE labh.f.com A 1.2.3.4 ttl=300"]
|
||||
`,
|
||||
},
|
||||
}
|
||||
@ -407,7 +407,7 @@ func mkTargetConfig(x ...*models.RecordConfig) []targetConfig {
|
||||
var tc []targetConfig
|
||||
for _, r := range x {
|
||||
tc = append(tc, targetConfig{
|
||||
compareable: comparable(r, nil),
|
||||
compareable: mkCompareBlob(r, nil),
|
||||
rec: r,
|
||||
})
|
||||
}
|
||||
@ -445,8 +445,8 @@ func Test_diffTargets(t *testing.T) {
|
||||
Key: models.RecordKey{NameFQDN: "laba.f.com", Type: "A"},
|
||||
New: models.Records{testDataAA5678ttl700, testDataAA1234ttl700},
|
||||
Msgs: []string{
|
||||
"CHANGE laba.f.com A 5.6.7.8 (ttl 300->700)",
|
||||
"CREATE laba.f.com A 1.2.3.4",
|
||||
"CHANGE laba.f.com A (5.6.7.8 ttl=300 ttl=300) -> (1.2.3.4 ttl=700 ttl=700)",
|
||||
"CREATE laba.f.com A 5.6.7.8 ttl=700",
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -471,7 +471,7 @@ func Test_diffTargets(t *testing.T) {
|
||||
Change{Type: CREATE,
|
||||
Key: models.RecordKey{NameFQDN: "laba.f.com", Type: "MX"},
|
||||
New: models.Records{testDataAMX10a},
|
||||
Msgs: []string{"CREATE laba.f.com MX 10 laba"},
|
||||
Msgs: []string{"CREATE laba.f.com MX 10 laba ttl=300"},
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -486,7 +486,7 @@ func Test_diffTargets(t *testing.T) {
|
||||
Change{Type: DELETE,
|
||||
Key: models.RecordKey{NameFQDN: "laba.f.com", Type: "MX"},
|
||||
Old: models.Records{testDataAMX10a},
|
||||
Msgs: []string{"DELETE laba.f.com MX 10 laba"},
|
||||
Msgs: []string{"DELETE laba.f.com MX 10 laba ttl=300"},
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -502,7 +502,7 @@ func Test_diffTargets(t *testing.T) {
|
||||
Key: models.RecordKey{NameFQDN: "laba.f.com", Type: "MX"},
|
||||
Old: models.Records{testDataAMX10a},
|
||||
New: models.Records{testDataAMX20b},
|
||||
Msgs: []string{"CHANGE laba.f.com MX (10 laba) -> (20 labb)"},
|
||||
Msgs: []string{"CHANGE laba.f.com MX (10 laba ttl=300) -> (20 labb ttl=300)"},
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -518,7 +518,7 @@ func Test_diffTargets(t *testing.T) {
|
||||
Key: models.RecordKey{NameFQDN: "laba.f.com", Type: "A"},
|
||||
Old: models.Records{testDataAA1234, testDataAA5678},
|
||||
New: models.Records{testDataAA1234},
|
||||
Msgs: []string{"DELETE laba.f.com A 5.6.7.8"},
|
||||
Msgs: []string{"DELETE laba.f.com A 5.6.7.8 ttl=300"},
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -656,8 +656,8 @@ func Test_splitTTLOnly(t *testing.T) {
|
||||
existing: mkTargetConfig(testDataAA1234),
|
||||
desired: mkTargetConfig(testDataAA1234ttl700),
|
||||
},
|
||||
wantExistDiff: mkTargetConfig(),
|
||||
wantDesireDiff: mkTargetConfig(),
|
||||
wantExistDiff: mkTargetConfig(testDataAA1234),
|
||||
wantDesireDiff: mkTargetConfig(testDataAA1234ttl700),
|
||||
wantExistTTL: models.Records{testDataAA1234},
|
||||
wantDesireTTL: models.Records{testDataAA1234ttl700},
|
||||
},
|
||||
|
Reference in New Issue
Block a user