joystream
joystream copied to clipboard
Giza integration tests: Distributor node CLI commands
Preconditions:
- A running Joystream node
- A running query-node
- Distribution lead is hired
Optimistic flow:
-
Hire 3 distribution workers
-
Initial setup
- Execute
leader:set-buckets-per-bag-limit -l 4 - Create 2 families via
leader:create-bucket-family, save output ids tof1andf2 - Create 2 buckets in each family via
leader:create-bucket -f ${f} -a yes, save output ids toB1-B4 - Execute
leader:update-dynamic-bag-policy -t Member -p ${f1}:1 ${f2}:2 - Execute
leader:update-dynamic-bag-policy -t Channel -p ${f1}:1 ${f2}:2 - Execute
leader:update-bag -b {b} -f ${f1} -a ${B1} ${B2}for each static bag type{b} - Execute
leader:update-bag -b {b} -f ${f2} -a ${B3} ${B4}for each static bag type{b} - Check the state in query node and chain.
- Execute
-
First state mutation
- Execute
leader:update-bucket-status -f ${f1} -B ${B1} --acceptingBags no - Execute
leader:update-bucket-mode -f ${f1} -B ${B1} --mode off - Execute
leader:invite-bucket-operator -f ${f1} -B ${B1} -w ${w1} - Execute
leader:invite-bucket-operator -f ${f1} -B ${B2} -w ${w2} - Execute
leader:invite-bucket-operator -f ${f2} -B ${B3} -w ${w3} - Execute
leader:set-bucket-family-metadata -f ${f1} -i ${fm1}(seefm1defined under Family metadata updates) - Execute
leader:update-bag -b {b} -f ${f1} -r ${B1} ${B2}for each static bag type{b} - Execute
leader:update-bag -b {b} -f ${f2} -r ${B3} ${B4}for each static bag type{b} - Execute
leader:update-dynamic-bag-policy -t Member -p ${f1}:0 - Execute
leader:update-dynamic-bag-policy -t Channel -p ${f1}:0 - Check the state in query node and chain.
- Execute
-
Second state mutation
- Execute
operator:accept-invitation -f ${f1} -B ${B1} -w ${w1} - Execute
operator:accept-invitation -f ${f1} -B ${B2} -w ${w2} - Execute
leader:cancel-invitation -f ${f2} -B ${B3} -w ${w3} - Execute
operator:set-metadata -f ${f1} -B ${B1} -w {w1} -i ${om1}(seeom1defined under Operator metadata updates) - Execute
leader:set-bucket-family-metadata -f ${f1} -i ${fm2}(seefm2defined under Family metadata updates) - Execute
leader:update-bucket-status -f ${f1} -B ${B1} --acceptingBags yes - Execute
leader:update-bucket-mode -f ${f1} -B ${B1} --mode on - Execute
leader:update-dynamic-bag-policy -t Channel -p ${f1}:2 - Execute
leader:update-dynamic-bag-policy -t Member -p ${f1}:1 - Check the state in query node and chain.
- Execute
-
Thrid state mutation
- Execute
operator:set-metadata -f ${f1} -B ${B1} -w {w1} -i ${om2}(seeom2defined under Operator metadata updates) - Execute
leader:set-bucket-family-metadata -f ${f1} -i ${fm3}(seefm3defined under Family metadata updates) - Execute
leader:remove-bucket-operator -f ${f1} -B ${B2} -w {w2} - Execute
leader:delete-bucket -f ${f2} -B ${B3} - Execute
leader:delete-bucket -f ${f2} -B ${B4} - Check the state in query node and chain.
- Execute
-
Fourth state mutation
- Execute
operator:set-metadata -f ${f1} -B ${B1} -w {w1} -i ${om3}(seeom2defined under Operator metadata updates) - Execute
leader:remove-bucket-operator -f ${f1} -B ${B2} -w {w2} - Execute
leader:delete-bucket-family -f ${f2} - Check the state in query node and chain.
- Execute
Family metadata updates:
- Full metadata (
fm1):
{
"region": "eu-west",
"description": "Western Europe",
"areas": [
{ "countryCode": "AT" },
{ "countryCode": "BE" },
{ "countryCode": "FR" },
{ "countryCode": "DE" },
{ "countryCode": "LI" },
{ "countryCode": "LU" },
{ "countryCode": "MC" },
{ "countryCode": "NL" },
{ "countryCode": "CH" }
],
"latencyTestTargets": [
"euw-1.joystream.org",
"euw-2.joystream.org",
"euw-3.joystream.org",
"euw-4.joystream.org",
]
}
- Partial update (
fm2):
{
"latencyTestTargets": [
"w1.joystream.eu",
"w2.joystream.eu"
]
}
- Unsetting (
fm3):
{
"region": "",
"description": "",
"areas": [{}],
"latencyTestTargets": [""]
}
Operator metadata updates:
- Full metadata (
om1):
{
"endpoint": "http://localhost:3334",
"location": {
"countryCode": "DE",
"city": "Berlin",
"coordinates": {
"latitude": 52.520008,
"longitude": 13.404954
}
},
"extra": "Some additional information"
}
- Partial update (
om2):
"location": {
"countryCode": "PL",
"city": "Warsaw",
},
- Unsetting (
om3):
{
"endpoint": "",
"location": {},
"extra": ""
}