Calling API Using AccessKey

After creating an AccessKey, third-party platforms can use AccessKey to call ZStack ZSphere API.

SDK Method

Taking CreateVmInstance as an example, when calling ZStack ZSphere API using AccessKey, you need to input accessKeyId and accessKeySecret, as shown below:

  • Java SDK
    CreateVmInstanceAction action = new CreateVmInstanceAction(); action.name = "vm1"; action.instanceOfferingUuid = "ae97ced44efc3314b8f7798972b4ba1a"; action.imageUuid = "da119f7906513eccabf271991c35a65e"; action.l3NetworkUuids = asList("cc0e4c5e77df3af68e59668e7f9e06c5"); action.dataDiskOfferingUuids = asList("19d22d051b063d379a2816daaf431838","905d94a6abb5398fa1995f6398e3f6fc"); action.clusterUuid = "a0468dc645223f67bd0f2ab95276bbae"; action.description = "this is a vm"; action.strategy = "InstantStart"; action.accessKeyId = "Fnxc7KIQAdGTvXfx8OjC"; action.accessKeySecret = "Do0AJUGVPrT9iJZlc1QOtk7kzEusYidyqJxSmKOb"; CreateVmInstanceAction.Result res = action.call();
  • Python SDK
    CreateVmInstanceAction action = CreateVmInstanceAction() action.name = "vm1" action.instanceOfferingUuid = "ae97ced44efc3314b8f7798972b4ba1a" action.imageUuid = "da119f7906513eccabf271991c35a65e" action.l3NetworkUuids = [cc0e4c5e77df3af68e59668e7f9e06c5] action.dataDiskOfferingUuids = [19d22d051b063d379a2816daaf431838, 905d94a6abb5398fa1995f6398e3f6fc] action.clusterUuid = "a0468dc645223f67bd0f2ab95276bbae" action.description = "this is a vm" action.strategy = "InstantStart" action.accessKeyId = "Fnxc7KIQAdGTvXfx8OjC" action.accessKeySecret = "Do0AJUGVPrT9iJZlc1QOtk7kzEusYidyqJxSmKOb" CreateVmInstanceAction.Result res = action.call()

Directly Calling RESTful API Method

  1. Create AccessKey:
    CreateAccessKey accountUuid=dff4fb9bbff14e97a67ab894c7b8c528 userUuid=dff4fb9bbff14e97a67ab894c7b8c528 {     "inventory": {         "AccessKeyID": "N3Tf05yXZUmSjCf6mYIB",         "AccessKeySecret": "XAlrsYvswmnEV3X1KWNs1WfZHD6aBIIphmI0rX9S",         "accountUuid": "dff4fb9bbff14e97a67ab894c7b8c528",         "createDate": "Sep 6, 2018 1:50:06 PM",         "lastOpDate": "Sep 6, 2018 1:50:06 PM",         "userUuid": "dff4fb9bbff14e97a67ab894c7b8c528",         "uuid": "ae353717ca7b4182bb87fb5d010235e8"     },     "success": true }
  2. Generate date:
    python get_time.py Thu, 06 Sep 2018 13:54:10 PRC
    import datetime import time  date = time.time() #EEE, dd MMM yyyy HH:mm:ss z str = datetime.datetime.fromtimestamp(date).strftime('%a, %d %b %Y %H:%M:%S PRC') print str
    Note: Time format must be EEE, dd MMM yyyy HH:mm:ss zzz.
  3. Generate digest:
    python get_accesskey.py "vvSZpmj4cnB53qUDmm6E" "8heumeFTvIeZxkTGfEYvVi9qVVPd9ffQNDALSPPb" \ "GET" "Fri, 06 Aug 2021 17:58:34 PRC" "/v1/vm-instances" # Return result args: Namespace(acesskey_id='vvSZpmj4cnB53qUDmm6E', acesskey_secret='8heumeFTvIeZxkTGfEYvVi9qVVPd9ffQNDALSPPb', \ date='Fri, 06 Aug 2021 17:58:34 PRC', method='GET', uri='/v1/vm-instances') Signature: hPToRHeHdV49D4u20G8OlE0yJho= Authoration ZStack vvSZpmj4cnB53qUDmm6E:hPToRHeHdV49D4u20G8OlE0yJho=
    #/usr/bin/python import base64 import hmac import sha import argparse from hashlib import sha1  parser = argparse.ArgumentParser(description='calculate zstack access key digit.') parser.add_argument('acesskey_id') parser.add_argument('acesskey_secret') parser.add_argument('method') parser.add_argument('date') parser.add_argument('uri')  args = parser.parse_args()  print "args: %s" % args h = hmac.new(args.acesskey_secret, args.method + "\n"                                     + args.date + "\n"                                     + args.uri, sha1) Signature = base64.b64encode(h.digest()) print "Signature: %s" % Signature print "Authoration %s" % ("ZStack " + args.acesskey_id + ":" + Signature)
  4. Send request
    curl -H "Authorization:ZStack vvSZpmj4cnB53qUDmm6E:hPToRHeHdV49D4u20G8OlE0yJho=" \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Date:Fri, 06 Aug 2021 17:58:34 PRC" \ -X GET http://172.20.11.134:8080/zstack/v1/vm-instances
    Note: API Request Header Field Description:
    • Authorization field value should be consistent with the Authorization field value generated in step 3 digest, format: "ZStack " + args.acesskey_id + ":" + Signature
    • Date field value should be consistent with the timestamp used when generating digest

Archives

Download Document Archives

Download

Already filled the basic info?Click here.

Enter at least 2 characters.
Cannot be empty.
Invalid mobile number.
Enter at least 4 characters.
Invalid email address.
Wrong code. Try again. Send Code Resend Code (60s)

An email with a verification code will be sent to you. Make sure the address you provided is valid and correct.

同意 不同意

I have read and concur with the Site TermsPrivacy PolicyRules and Conventions on User Management of ZStack Cloud

Download

Not filled the basic info yet? Click here.

Invalid email address or mobile number.
同意 不同意

I have read and concur with the Site TermsPrivacy PolicyRules and Conventions on User Management of ZStack Cloud

Email Us

contact@zstack.io
ZStack Training and Certification
Enter at least 2 characters.
Invalid mobile number.
Enter at least 4 characters.
Invalid email address.
Wrong code. Try again. Send Code Resend Code (60s)

同意 不同意

I have read and concur with the Site TermsPrivacy PolicyRules and Conventions on User Management of ZStack Cloud

Email Us

contact@zstack.io
Request Trial
Enter at least 2 characters.
Invalid mobile number.
Enter at least 4 characters.
Invalid email address.
Wrong code. Try again. Send Code Resend Code (60s)

同意 不同意

I have read and concur with the Site TermsPrivacy PolicyRules and Conventions on User Management of ZStack Cloud

Email Us

contact@zstack.io

The download link is sent to your email address.

If you don't see it, check your spam folder, subscription folder, or AD folder. After receiving the email, click the URL to download the documentation.

The download link is sent to your email address.

If you don't see it, check your spam folder, subscription folder, or AD folder.
Or click on the URL below. (For Internet Explorer, right-click the URL and save it.)

Thank you for using ZStack products and services.

Submit successfully.

We'll connect soon.

Thank you for using ZStack products and services.