рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдПрдХ рдиреЛрдб рдЬреЛрдбрд╝рдирд╛

рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЖрдкрдХреА рд░реБрдЪрд┐ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреВрдВрдЧрд╛ред рдиреАрдЪреЗ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреЗ рдкрд░рд┐рдЪрдп рдкрд░ рдПрдХ рдкреЛрд╕реНрдЯ рд╣реЛрдЧреАред

рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдПрдХ рдиреЛрдб рдЬреЛрдбрд╝рдирд╛

рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдПрдХ рдиреЛрдб рдЬреЛрдбрд╝рдирд╛

рдбрд╛рдХ "рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡.рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдкрд░рд┐рдЪрдп┬╗ рд╣реИрдмреЗ рдкрд░ред

рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡, рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдПрдЬреЗрдВрдЯреЛрдВ рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдИрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдЯреЛрдкреЛрд▓реЙрдЬреА рдЖрд░реЗрдЦ рдиреЗрдЯрд╡рд░реНрдХ рдШрдЯрдХреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ рдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдПрдЬреЗрдВрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдпрд╛ рдЧреИрд░-рдиреЗрдЯрд╡рд░реНрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреИрд╕реЗ рдЯреАрдУрдЖрд░, рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдЗрддреНрдпрд╛рджрд┐ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВред рдиреЛрдб рдирд┐рдпрдо рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЕрдм рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рд╕рдВрд╕реНрдХрд░рдг 0.20 рдХреЗ рдмрд╛рдж рд╕реЗ, рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдПрдХ рдиреЛрдб рдирд┐рдпрдо рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдП рдиреЛрдбреНрд╕ рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдореМрдЬреВрджрд╛ рдиреЛрдбреНрд╕ рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдиреЛрдб рдирд┐рдпрдо рдПрдкреАрдЖрдИ рдХреЛ рджреЛ рдПрдкреАрдЖрдИ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдиреЛрдб рдирд┐рдпрдо рдПрдкреАрдЖрдИ рдФрд░ рдПрдЬ рдирд┐рдпрдо рдПрдкреАрдЖрдИред рдиреЛрдб рдирд┐рдпрдо рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдирдпрд╛ рдиреЛрдб рдмрдирд╛рдиреЗ рдФрд░ рдореМрдЬреВрджрд╛ рдиреЛрдб рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдЬ рд░реВрд▓ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕реАрдорд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рджреЛ рдиреЛрдбреНрд╕ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдЗрд╕ рдмреНрд▓реЙрдЧ рдореЗрдВ рд╣рдо рджреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдШрдЯрдХ рд╣реИ рдЬреЛ рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдПрдХ рдЧреИрд░-рдиреЗрдЯрд╡рд░реНрдХ рдШрдЯрдХ рд╣реИ. рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЯреЛрдкреЛрд▓реЙрдЬреА рд░реВрд▓реНрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ рдкрд░ рдЧреМрд░ рдХрд░реЗрдВрдЧреЗред

рдПрдХ рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдиреЛрдб рдмрдирд╛рдирд╛

рдиреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдиреЛрдб рдирд╛рдо рдФрд░ рдПрдХ рдорд╛рдиреНрдп рдиреЛрдб рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рднреА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ.

skydive client node-rule create --action="create" --node-name="node1" --node-type="fabric" --name="node rule1"
{
  "UUID": "ea21c30f-cfaa-4f2d-693d-95159acb71ed",
  "Name": "node rule1",
  "Description": "",
  "Metadata": {
    "Name": "node1",
    "Type": "fabric"
  },
  "Action": "create",
  "Query": ""
}

рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдиреЛрдбреНрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдиреЛрдб рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрди рдиреЛрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░реЗрдорд▓рд┐рди рдХреНрд╡реЗрд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреА рд╣реЛрдЧреА рдЬрд┐рди рдкрд░ рдЖрдк рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдк рдПрдХрд▓ рдиреЛрдб рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдиреЛрдбреНрд╕ рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

skydive client node-rule create --action="update" --name="update rule" --query="G.V().Has('Name', 'node1')" --metadata="key1=val1, key2=val2"
{
  "UUID": "3e6c0e15-a863-4583-6345-715053ac47ce",
  "Name": "update rule",
  "Description": "",
  "Metadata": {
    "key1": "val1",
    "key2": "val2"
  },
  "Action": "update",
  "Query": "G.V().Has('Name', 'node1')"
}

рдПрдХ рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдПрдЬ рдмрдирд╛рдирд╛

рдПрдХ рдХрд┐рдирд╛рд░рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп рдиреЛрдбреНрд╕ рдФрд░ рдХрд┐рдирд╛рд░реЗ рдХреЗ рд▓рд┐рдВрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛; рдПрдХ рдЪрд╛рдЗрд▓реНрдб рдиреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдВрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рдЗрд╕реА рддрд░рд╣, рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рдХрд╛рд░ рд▓реЗрдпрд░ 2 рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдВрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдкрд░рдд 2. рдЖрдк рджреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рд┐рдВрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

skydive client edge-rule create --name="edge" --src="G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')" --dst="G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')" --relationtype="both"
{
  "UUID": "50fec124-c6d0-40c7-42a3-2ed8d5fbd410",
  "Name": "edge",
  "Description": "",
  "Src": "G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')",
  "Dst": "G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')",
  "Metadata": {
    "RelationType": "both"
  }
}

рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдПрдХ рдЧреИрд░-рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПред рдЖрдЗрдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рд╣реИ рдЬрд┐рд╕реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдЖрд░реЗрдЦ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдмрд╕ рдПрдХ рдиреЛрдб рдирд┐рдпрдо рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдХреНрд░рд┐рдПрдЯ рдХрдорд╛рдВрдб рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдмрд╛рдж рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЕрдкрдбреЗрдЯ рдиреЛрдб рдирд┐рдпрдо рдХрдорд╛рдВрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЯреЛрдкреЛрд▓реЙрдЬреА рдЖрд░реЗрдЦ рдореЗрдВ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡рд╛рдЗрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрд╕реНрдЯ рдирд┐рдпрдо рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБред

skydive client node-rule create --action="create" --node-name="sda" --node-type="persistentvolume" --metadata="DEVNAME=/dev/sda,DEVTYPE=disk,ID.MODEL=SD_MMC, ID.MODEL ID=0316, ID.PATH TAG=pci-0000_00_14_0-usb-0_3_1_0-scsi-0_0_0_0, ID.SERIAL SHORT=20120501030900000, ID.VENDOR=Generic-, ID.VENDOR ID=0bda, MAJOR=8, MINOR=0, SUBSYSTEM=block, USEC_INITIALIZED=104393719727"

рдмрдирд╛рдП рдЧрдП рдиреЛрдб рдХреЛ рд╣реЛрд╕реНрдЯ рдиреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЬ рдирд┐рдпрдо рдХреЗ рдиреАрдЪреЗ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБред

skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"

рдЙрдкрд░реЛрдХреНрдд рдЖрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рдж, рдЕрдм рдЖрдк рджрд┐рдП рдЧрдП рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдЖрд░реЗрдЦ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдПрдХ рдиреЛрдб рдЬреЛрдбрд╝рдирд╛

рджреВрд╕рд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдРрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП рдЬреЛ рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВ. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрд╕реНрдЯ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рджреЛ рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдПрдЬреЗрдВрдЯ рд╣реИрдВ, рдЗрди рджреЛрдиреЛрдВ рд╣реЛрд╕реНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдЯреАрдУрдЖрд░ рд╕реНрд╡рд┐рдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрд░рдЪрдирд╛ рдиреЛрдбреНрд╕ рдФрд░ рд▓рд┐рдВрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдо рдЯреЛрдкреЛрд▓реЙрдЬреА рдирд┐рдпрдо рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЯреАрдУрдЖрд░ рд╕реНрд╡рд┐рдЪ рдХреЗ рдмрд┐рдирд╛, рджреЛрдиреЛрдВ рдПрдЬреЗрдВрдЯ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд▓рд┐рдВрдХ рдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЛрдбреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдПрдХ рдиреЛрдб рдЬреЛрдбрд╝рдирд╛

рдЕрдм рдЯреАрдУрдЖрд░ рд╕реНрд╡рд┐рдЪ рдФрд░ рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрд╕реНрдЯ рдирд┐рдпрдо рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБред

skydive client node-rule create --node-name="TOR" --node-type="fabric" --action="create"
skydive client node-rule create --node-name="port1" --node-type="port" --action="create"
skydive client node-rule create --node-name="port2" --node-type="port" --action="create"

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯреАрдУрдЖрд░ рд╕реНрд╡рд┐рдЪ рдФрд░ рдкреЛрд░реНрдЯ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдФрд░ рд╕реНрдХрд╛рдЗрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ, рдФрд░ рдЯреЛрдкреЛрд▓реЙрдЬреА рдЕрдм рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧреАред

рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдПрдХ рдиреЛрдб рдЬреЛрдбрд╝рдирд╛

рдЕрдм рдЯреАрдУрдЖрд░ рд╕реНрд╡рд┐рдЪ, рдкреЛрд░реНрдЯ 1 рдФрд░ рд╣реЛрд╕реНрдЯ 1 рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдЬ рдирд┐рдпрдо рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБред

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('TID', '372c254d-bac9-50c2-4ca9-86dcc6ce8a57')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"

рдЯреАрдУрдЖрд░ рд╕реНрд╡рд┐рдЪ рдкреЛрд░реНрдЯ 2 рдФрд░ рд╣реЛрд╕реНрдЯ 2 рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('TID', '50037073-7862-5234-4996-e58cc067c69c')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"

рдЕрдм рдЯреАрдУрдЖрд░ рд╕реНрд╡рд┐рдЪ рдФрд░ рдкреЛрд░реНрдЯ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдФрд░ рд▓реЗрдпрд░2 рд▓рд┐рдВрдХ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рд╕рд╛рде рд╣реА рдПрдЬреЗрдВрдЯреЛрдВ рдФрд░ рдкреЛрд░реНрдЯ рдХреЗ рдмреАрдЪ рд▓реЗрдпрд░2 рд▓рд┐рдВрдХ рднреА рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рдЕрдм рдЕрдВрддрд┐рдо рдЯреЛрдкреЛрд▓реЙрдЬреА рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧреАред

рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдПрдХ рдиреЛрдб рдЬреЛрдбрд╝рдирд╛

рдЕрдм рджреЛрдиреЛрдВ рд╣реЛрд╕реНрдЯ/рдПрдЬреЗрдВрдЯ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ рдЖрдк рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рджреЛрдиреЛрдВ рд╣реЛрд╕реНрдЯ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдкрде рдХреИрдкреНрдЪрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдкреАрдПрд╕ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ рдореВрд▓ рдкреЛрд╕реНрдЯ

рд╣рдо рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡ рдХреА рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦ рд╕рдХреЗрдВред
╨╡╨╗╨╡╨│╤А╨░╨╝-╤З╨░╤В рд╕реНрдХрд╛рдИрдбрд╛рдЗрд╡.рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ