XaaS Cloud Computing Loading ...
X
درخواست شما ثبت شد

درخواست شما با موفقیت ثبت شد. گروه پشتیبانی ما درخواست شما را بررسی و در اسرع وقت با شما تماس خواهند گرفت

API در زیرساخت ابری XaaS

Untitled document

راهنمای استفاده از زیرساخت ابری XaaS با استفاده از API

لطفا دقت داشته باشید در کلیه دستورات و  ارجاعات این مستند، عبارت   "http://controller"  می بایست با عبارت "http://360.xaas.ir" جایگزین گردد.

به طور کلی در یک سامانه مبتنی بر API سه مولفه وجود دارد:

۱- سرور: سرویسی است که مسئولیت دریافت درخواست های API و ارسال آنها به نقطه نهایی را در بر دارد. این سرور نزد XaaS قرار دارد و آمادگی لازم برای دریافت درخواست های API را داراست.

۲- client : نرم افزاری است که برای ارسال درخواست API از آن استفاده می شود. client های متفاوتی تحت سیستم عامل های مختلف در فضای اینترنت وجود دارد که مشتریان XaaS می توانند از آنها بهره ببرند. به عنوان نمونه می توان برای سیستم عامل ویندوز از نرم افزار postman (chrom extension) و برای توزیع های مختلف سیستم عامل لینوکس  از curl (command line) استفاده نمود. در این راهنما از curl استفاده شده است.

۳- user : هویتی است از پیش تعیین شده نزد سرور. بنابراین می تواند به سرور دسترسی داشته باشد و درخواست های خود را از طریق client ارسال نماید. هر user برای این که بتواند به سرور اتصال پیدا کند، می بایست خود را به سرور معرفی نماید. در سامانه های مبتنی بر API به این عمل دریافت توکن می گویند. در حقیقت توکن مجوز عبوری موقتی است که پس از احراز هویت به user داده می شود تا به وسیله آن بتواند درخواست های خود را ارسال نماید.

در ادامه ابتدا به فرایند دریافت توکن و سپس به فرایند های ارسال درخواست خواهیم پرداخت.

     ۱-  دریافت توکن

برای دریافت توکن می بایست مقادیر زیر را به متغیر های مورد نظر اختصاص دهیم:  

 

<authentication_url> = http://360.xaas.ir:5000

<username> = your_username

<password> = your_password

<project_name> = your_project name

و سپس از دستور زیر استفاده نماییم: 

$ curl -s -XPOST <authentication_url>/v2.0/tokens -H "Content-type: application/json" -d '{"auth":{"tenantName": "<project_name>", "passwordCredentials": {"username": "<username>", "password": "<password>"}}}'

 

 نمونه ای از خروجی در شکل زیر مشخص گردیده است. 

همانطور که مشاهده می کنید در خروجی دستور id توکن دریافتی نمایش داده می شود و از این پس می بایست از این id در ارسال درخواست ها استفاده نماییم:

<token_id> = this_id

برای خوانایی بیشتر میتوانید خروجی دستور بالا را در دستور python -m json.tool یا Pipe ،jq کنید.  

 

$ curl -s -XPOST <authentication_url>/v2.0/tokens -H "Content-type: application/json" -d '{"auth":{"tenantName": "<project_name>", "passwordCredentials": {"username": "<username>", "password": "<password>"}}}' | python -m json.tool

or

$ curl -s -XPOST <authentication_url>/v2.0/tokens -H "Content-type: application/json" -d '{"auth":{"tenantName": "<project_name>", "passwordCredentials": {"username": "<username>", "password": "<password>"}}}' | jq 

    ۲-  ارسال درخواست

 برای ارسال درخواست ها به آدرس سرور API احتیاج داریم:

<api_url> = http://360.xaas.ir:8774

همچنین از توکن گرفته شده در مرحله قبل، به منظور احراز هویت استفاده می کنیم.


    درخواست های مرتبط با سرویس nova

      - گرفتن لیست ماشین ها

$ curl -s -XGET <api_url>/v2/<project_id>/servers -H "X-Auth-Token: <token_id>"

     - مشاهده جزئیات در مورد ماشین ها

$ curl -s -XGET <api_url>/v2/<project_id>/servers/detailed -H "X-Auth-Token: <token_id>"

    - مشاهده اطلاعات یک ماشین مشخص

$ curl -s -XGET <api_url>/v2/<project_id>/servers/<instance_id> -H "X-Auth-Token: <token_id>"

    - گزارش گیری از سرورها بر اساس مشخصات آنها (به عنوان مثال تمام سرور هایی که در وضعیت active هستند)

$ curl -s -XGET <api_url>/v2/<project_id>/servers/detailed?status=active -H "X-Auth-Token: <token_id>"

    - متوقف کردن ماشین مجازی به صورت موقت

$ curl -s -XPOST  <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"pause": null}'

    - خارج کردن ماشین مجازی از حالت توقف

$ curl -s -XPOST <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"unpause": null}'

    - متوقف کردن کامل ماشین مجازی

$ curl -s -XPOST  <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"os-stop": null}'

    - روشن کردن ماشین مجازی

curl -s -XPOST <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"os-start": null}'

  - تغییر اندازه ماشین مجازی

      ۱- دریافت id از flavor مورد نیاز توسط گرفتن لیست flavor ها 

 $ curl -s -XGET  <api_url>/v2/<project_id>/flavors -H "X-Auth-Token: <token_id>"

 

۲- دریافت تصدیق امکان تغییر سایز ماشین مجازی به flavor انتخاب شده (به عنوان مثال هنگامی که flavor انتخاب شده کوچکتر از flavor کنونی باشد، تغییر اندازه ممکن نخواهد بود)

$ curl -s -XPOST  <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"resize": {"flavorRef": "<flavor_id>"}}'

۳- اعمال تغییر اندازه

$ curl -s -XPOST <api_url>/v2/<project_id>/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"confirmResize": null}'


 

همانطور که ملاحظه می کنید، استفاده از API در زیرساخت XaaS بر مبنای استاندارد API ها در openstack می باشد. بنابراین شما می توانید برای اطلاعات بیشتر به مجموعه  راهنماهای کار با API در openstack مراجعه نمایید.

در ضمن برای دسترسی به آدرس (پورت) های مورد استفاده API در هر سرویس می توانید از لینک زیر که در پنل ۳۶۰ نیز قابل مشاهده است استفاده نمایید:

https://360.xaas.ir/project/access_and_security/?tab=access_security_tabs__api_access_tab 

لطفا دقت داشته باشید در لینک بالا و در سایر ارجاعات این مستند، عبارت   "http://controller"  می بایست با عبارت "http://360.xaas.ir" جایگزین گردد.

 


# References

http://developer.openstack.org/api-ref.html

http://developer.openstack.org/api-ref-compute-v2.1.html