Joystream / Joystream/joystream
Giza integration tests: Distributor node CLI commands
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1.4k
- Forks
- 116
- PR merge metrics
- No merged PRs in 30d
Description
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": ""
}
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no file or existing test path. Start by locating the Giza integration-test entry point and the Distributor node CLI handlers, then follow the listed setup and state-mutation flows. Done means the commands execute successfully and the resulting state is checked in both the query node and chain.
Written by the indexing model from the issue text.
Assessment
- Domain
- blockchain, cli, testing-qa
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100