рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╣рдордиреЗ рдХреНрд▓рд╛рдЙрдб рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ (PACI) рдЖрдзрд╛рд░рд┐рдд рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирддрд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА - рдЕрдиреБрдорд╛рдирд┐рдд рдореВрд▓реНрдп рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред рд╕рд╣рд┐рдд, рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдЖрдЬ рд╣рдо рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдЖрджреЗрд╢реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдмрд╛рд░реАрдХреА рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдорд┐рд▓реЗ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдлреАрдбрдмреИрдХ рдФрд░
рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣рдмрд▓реНрдпреВрдЬрд░реНрд╕ рд╕реЗ рдХрдИ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯред рд╣рдо рдЙрди рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдореЗрдВ рдЖрдкрдиреЗ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрджреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдХреНрд▓рд╛рдЙрдб рдХреА рдиреАрдВрд╡ - рдХреНрд▓рд╛рдЙрдб рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирддрд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рди - рд╕рдорд╛рдирддрд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рди рдмрд┐рд▓рд┐рдВрдЧ рдФрд░ рд╕реЗрд╡рд╛ рдкреНрд░рд╛рд╡рдзрд╛рди рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдЙрддреНрдкрд╛рдж рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ RESTful рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рд╣рдо рдПрдкреАрдЖрдИ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреВрд░реА рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдирд╣реАрдВ рджреЗрдВрдЧреЗ - рдЖрдк рдЗрд╕реЗ
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдФрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХреЗ рдХреБрдЫ рдмреЗрд╣рддрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред
рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди
рдкреАрдПрд╕реАрдЖрдИ рдкреНрд░рдмрдВрдзрди рд╕рд░реНрд╡рд░ рдХреЛ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдХрд░ рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХреНрд╕рдПрдордПрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЙрддреНрддрд░ рдЖрддреЗ рд╣реИрдВ, рдХреЛрдб рдпрдерд╛рд╕рдВрднрд╡ рдкрдардиреАрдп рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЙрдиреНрдореБрдЦ рд╣реИ, рдФрд░ рдПрдХ рд╕реМрд▓рд░ рдкрд╛рд░реНрд╕рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рдордЭрджрд╛рд░ рдирд╛рдо рд╣реЛрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХреНрд╕рдПрдордПрд▓ рдЦреБрдж рдХреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЖрдкрдХреЛ рдкреАрдПрд╕реАрдЖрдИ рдкреНрд░рдмрдВрдзрди рд╕рд░реНрд╡рд░ рдХреЗ рдкрддреЗ рдкрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдШрдЯрд╛рдХрд░ рдЖрдзрд╛рд░ рдмрдирд╛ рджреЗрдВрдЧреЗ):
https:
рдпрджрд┐ ip_address hostname рдФрд░ port рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рд╢реЗрд╖ рджреЛ рдлрд╝реАрд▓реНрдб рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред / paci / рд╣рдореЗрд╢рд╛ / paci / рдЬреИрд╕реА рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреБрдЫ рдирд╣реАрдВред рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ v1.0 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╕рдВрдЦреНрдпрд╛, рдХреНрд░рдорд╢рдГ, рдкреАрдПрд╕реАрдЖрдИ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИ)ред
рддреЛ рддреИрдпрд╛рд░ рдмреЗрд╕реБрд░рд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
https://109.120.*.*:4465/paci/v1.0
рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рд╕рдВрдЪрд╛рд░ рдмреЗрд╕реБрд░рд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди "рджрд╛рдИрдВ рдУрд░" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдо рдмрд╕ рдмреЗрд╕рд▓ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ / рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред / ve - рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ, рдФрд░ рдЪреВрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдирд╛рдо / my-server-01 рдХреЛ / ve рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдмреЗрд╕рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рд░реВрдк рд▓реЗрддрд╛ рд╣реИ:
https://109.120.*.*:4465/paci/v1.0/ve/my-server-01
рдЬреЛ рд▓рд╛рдЗрди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:
baseURL/ve/my-server-01
рдХреБрдЫ рдкреНрд░рд╢реНрди рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЕрдХреНрд╕рд░, рд╡рд┐рдХрд▓реНрдк рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рдмрд╛рдж рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВред
рдРрд╕реА рдХреНрд╡реЗрд░реА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рд╣реИ:
GET baseURL/ve?subscription=1000001
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде, рд╣рдо рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдЕрдм рдЪрд▓реЛ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрдпрд╛ рдХрд╛рд░реНрдп рдЙрдкрд▓рдмреНрдз рд╣реИрдВ?
рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╣реИрдВред "рдирд┐рд░реНрджреЛрд╖" рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
- рдореМрдЬреВрджрд╛ рдЖрднрд╛рд╕реАреЛрдВ рдХреА рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА
- рдирдП рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╕рд░реНрд╡рд░ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг
- рдЫрд╡рд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди
- рдореМрдЬреВрджрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреНрд▓реЛрдирд┐рдВрдЧ
- рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛
рдФрд░ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдмрд╛рддреЗрдВ:
- рдирдИ рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рдирд╛
- рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╕рд░реНрд╡рд░ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди
- рдирд┐рд░реНрдорд╛рдг, рд╡рд┐рдиреНрдпрд╛рд╕, рдФрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рд╣рдЯрд╛рдирд╛
- рдХрдиреЗрдХреНрдЯ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдмреИрд▓реЗрдВрд╕рд░ рд╕реЗ
рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЖрдк рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдХреА рд╕реВрдЪреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ
GET baseURL/ve/
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╕рд░рд▓ XML рдЖрдПрдЧрд╛:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ve-list> <ve-info subscription-id="1000001" name="Habr1" state="CREATED" description="Habr Example 1"/> <ve-info subscription-id="1000002" name="Habr2" state="CREATED" description="Habr Example 2"/> </ve-list>
рдлрд╝реАрд▓реНрдб рдХрд╛ рд╡рд░реНрдгрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдирд╛рдо, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмреЛрд▓рддреЗ рд╣реИрдВред
рдЖрдк рд╕рдорд╛рдкреНрдд рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд░реЛрдХ рдпрд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
PUT baseURL/ve/{ve-name}/start|stop
{Ve-name} рдХреЗ рдмрдЬрд╛рдп, рд╕рд░реНрд╡рд░ рдирд╛рдо (рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрддреНрддрд░ рд╕реЗ рдирд╛рдо рдлрд╝реАрд▓реНрдб) рдбрд╛рд▓реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдпрд╛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдЬреЛрдбрд╝реЗрдВред рдлрд┐рд░, рдирд╛рд╢рдкрд╛рддреА рдХреЗ рдЧреЛрд▓реЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рд░реБрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рд╣реИред
рдХрдВрд╕реЛрд▓ рд╕реЗ рдПрдХ рдирдпрд╛ рд╕рд░реНрд╡рд░ рдмрдирд╛рдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдЗрд╕ рдХрдорд╛рдВрдб рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд┐рд░ рдореЗрдВ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдЪреАрдЯ рд╢реАрдЯ рдкрд░ рдЭрд╛рдВрдХрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд▓рд╛рдЗрдбрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЬреАрдпреВрдЖрдИ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░ рд╣реЛ рдЧрдП рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ 406 рдорд┐рд▓реЗрдЧреА: "рд╡реАрдИ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд╕реАрдорд╛ рдкрд╛рд░ рд╣реЛ рдЧрдИ"ред
рдЖрджреЗрд╢ рд╕реНрд╡рдпрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
POST baseURL/ve/
рдФрд░ рдлрд┐рд░ рд╕рд╛рд░рд╛ рдЬрд╛рджреВ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП XML рдирд┐рдХрд╛рдп рдмрдирд╛рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдВрдЧреЗ:
<?xml version="1.0" encoding="UTF-8"?> <ve> <name>HabrExample1</name> <description>VE Linux 40</description> <subscription-id>1000001</subscription-id> <cpu number="1" power="1500"/> <ram-size>256</ram-size> <bandwidth>100</bandwidth> <no-of-public-ip>1</no-of-public-ip> <no-of-public-ipv6>0</no-of-public-ipv6> <ve-disk local="true" size="20"/> <platform> <template-info name="centos-6-x86_64"/> <os-info technology="CT" type="linux-free"/> </platform> <backup-schedule name="daily"/> <admin login="root" password="152eyyBHO"/> </ve>
рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрддреНрддрд░ рдПрдХ рдирдИ рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреЗ рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдПрдЧрд╛:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <pwd-response> <message>VE create initiated</message> <password>152eyyBHO</password> </pwd-response>
рдЫрд╡рд┐ рдкреНрд░рдмрдВрдзрди
рдЯреАрдореЛрдВ рдХреЗ рдЗрд╕ рд╕рдореВрд╣ рдореЗрдВ рдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдкрдХреЛ рдирдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдФрд░ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╕рдордп рд╕рдордп рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЪрд┐рддреНрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рд╣реИрдВ, рдФрд░ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЙрдирдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред
GET baseURL/image
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╕рд░реНрд╡рд░ рдиреЗ рд╣рдореЗрдВ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдХрд┐ рдРрд╕реА рдХреЛрдИ рдЫрд╡рд┐ рд╣реИ:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <image-list> <image-info image-of="HabrExample3" active="true" load-balancer="true" subscriptionid="100001" created="2012-11-11 19:19:19.84091+04" size="3" name="lbimage"/> </image-list>
рдЗрд╕рд╕реЗ рдПрдХ рдФрд░ рд╕рд░реНрд╡рд░ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреБрдЫ рднреА рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ! рдорд╛рдирдХ рдЕрдиреБрд░реЛрдз:
POST baseURL/ve/{subscription-id}/{ve-name}/from/{image-name}
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ
POST baseURL/ve/1000003/Habr3/from/HabrExample3
рдЗрд╕ рдкрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдЫрд╡рд┐ рд╕реЗ рдПрдХ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдПрдХ рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдХреНрд▓реЛрди рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
POST baseURL/ve/{ve-name}/clone-to/{new-server-name}
Balancer рдкреНрд░рдмрдВрдзрди
рдЙрдкрд▓рдмреНрдз рдмреИрд▓реЗрдВрд╕рд░реЛрдВ рдХреА рд╕реВрдЪреА рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рд╣реИ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕реЗрд╡рд╛рдУрдВ, рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдХрдИ рдЕрдиреНрдп рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИ:
GET baseURL/load-balancer
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдПрдХ рдЫреЛрдЯрд╛ XML рдирд┐рд░реНрдорд┐рдд рд▓реЛрдб рдмреИрд▓реЗрдиреНрд╕рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <lb-list> <load-balancer state="STARTED" subscription-id="1" name="LB1"/> <load-balancer state="STARTED" subscription-id="1" name="LB2"/> </lb-list>
рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдмреИрд▓реЗрдВрд╕рд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
POST baseURL/load-balancer/{lb-name}/{ve-name}
рд╣рд╛рдВ, рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ:
DELETE baseURL/load-balancer/{lb-name}/{ve-name}
рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ
рдЕрдм рддрдХ, рдХреЗрд╡рд▓ рдПрдкреАрдЖрдИ рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдХрд╛рд░реНрдп рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЙрдкрд▓рдмреНрдз "рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд" рд╕рд░реНрд╡рд░ рдУрдПрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ:
GET baseURL/template/{name}
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдкреНрд░реАрд╕реЗрдЯ рдХреА рд╕реВрдЪреА:
GET baseURL/schedule
PHP рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ:
<?php $mainStr = "http://109.120.166.3:4465/paci/v1.0/"; $queryStr = 've'; $url = $mainStr.$queryStr; $process = curl_init(); curl_setopt($process, CURLOPT_URL, $url); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERPWD, '<login>:<password>'); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); $head = curl_exec($process); curl_close($process); ?>
XML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ve-list> <ve-info subscription-id="1000001" name="web1" state="CREATED" description="Web server 1"/> <ve-info subscription-id="1000002" name="web2" state="CREATED" description="Web server 2"/> </ve-list>
рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PUT рдЕрдиреБрд░реЛрдз:
<?php $mainStr = "http://109.120.166.3:4465/paci/v1.0/"; $queryStr = 've/<ve-name>/<start | stop>'; $url = $mainStr.$queryStr; $process = curl_init(); curl_setopt($process, CURLOPT_URL, $url); curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml')); curl_setopt($process, CURLOPT_PUT, 1); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERPWD, '<login>:<password>'); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); $head = curl_exec($process); curl_close($process); ?>
XML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:
* VE START initiated
рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП POST рдЕрдиреБрд░реЛрдз:
<?php $mainStr = "http://109.120.166.3:4465/paci/v1.0/"; $queryStr = 've'; $serverInfo = '<?xml version="1.0" encoding="UTF-8"?> <ve> <name>Web40</name> <description>VE Linux 40</description> <subscription-id>1000001</subscription-id> <cpu number="2" power="1600"/> <ram-size>512</ram-size> <bandwidth>100</bandwidth> <no-of-public-ip>2</no-of-public-ip> <no-of-public-ipv6>2</no-of-public-ipv6> <ve-disk local="true" size="3"/> <platform> <template-info name="centos-6-x86_64"/> <os-info technology="CT" type="linux-free"/> </platform> <backup-schedule name="daily"/> <admin login="root" password="qwwqq45"/> </ve> '; $url = $mainStr.$queryStr; $process = curl_init(); curl_setopt($process, CURLOPT_URL, $url); curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml')); curl_setopt($process, CURLOPT_POST, 1); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERPWD, '<login>:<password>'); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($process, CURLOPT_POSTFIELDS, $serverInfo); $head = curl_exec($process); curl_close($process); ?>
XML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <pwd-response> <message>VE create initiated</message> <password>152eyyBHO</password> </pwd-response>
DELETE рд╕рд░реНрд╡рд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ
<?php $mainStr = "http://109.120.166.3:4465/paci/v1.0/"; $queryStr = 've/<ve-name>'; $url = $mainStr.$queryStr; $process = curl_init(); curl_setopt($process, CURLOPT_URL, $url); curl_setopt($process, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERPWD, '<login>:<password>'); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); $head = curl_exec($process); curl_close($process); ?>
XML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:
* VE DELETE initiated
рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡рд░ рдХрд╛ рдЧреИрд░-рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдкрд░реАрдХреНрд╖рдг 1 рдлрд░рд╡рд░реА, 2013 рддрдХ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред рд╕реЗрд╡рд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд╛рдлреА рд╣рдж рддрдХ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЕрдм рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реЛрдВ !рд╕реЗрд╡рд╛ рдХреА рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ
рдкреБрд░рд╕реНрдХрд╛рд░ рддреИрдпрд╛рд░ рдХрд┐рдП рд╣реИрдВ ред
рд╣рдорд╛рд░реА рдкрд┐рдЫрд▓реА рд╕рдВрдмрдВрдзрд┐рдд рдкреЛрд╕реНрдЯ
Infobox рд╕реЗ рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡рд░рд╕рдВрджрд░реНрднрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдВрдХ
рдХреНрд▓рд╛рдЙрдб рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди (рдкреАрдбреАрдПрдл) рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирддрд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рдирдЗрдиреНрдлреЛрдмреЙрдХреНрд╕ рдмреНрд▓реЙрдЧ