API Call with AccessKey

After you created an AccessKey successfully, a third-party platform can call ZStack Private Cloud APIs by using the AccessKey. The methods are as follows:
  • Use SDK:
    Take CreateVmInstance as an example. When you call ZStack Private Cloud APIs by using an AccessKey, enter accessKeyId and accessKeySecret. For example,
    • 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()
  • Call directly ZStack Private Cloud RESTful APIs.
    1. Create an 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: The time format must be EEE, dd MMM yyyy HH:mm:ss zzz.
    3. Generate digest.
      # python get_accesskey.py "N3Tf05yXZUmSjCf6mYIB" "XAlrsYvswmnEV3X1KWNs1WfZHD6aBIIphmI0rX9S" \ "GET" "" "application/x-www-form-urlencoded" "Thu, 06 Sep 2018 13:54:10 PRC" "/v1/vm-instances" args: Namespace(Content_MD5='', Content_Type='application/x-www-form-urlencoded', \ acesskey_id='N3Tf05yXZUmSjCf6mYIB', acesskey_secret='XAlrsYvswmnEV3X1KWNs1WfZHD6aBIIphmI0rX9S', \ date='Thu, 06 Sep 2018 13:54:10 PRC', method='GET', uri='/v1/vm-instances') Signature: S3vm7u7/+n+sIQe72lgia08I30U= Authoration ZStack N3Tf05yXZUmSjCf6mYIB:S3vm7u7/+n+sIQe72lgia08I30U=
      #/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 requests.
      curl -H "Authorization:ZStack N3Tf05yXZUmSjCf6mYIB:S3vm7u7/+n+sIQe72lgia08I30U=" \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Date:Thu, 06 Sep 2018 13:54:10 PRC" \ -X GET http://172.20.11.134:8080/zstack/v1/vm-instances

Back to Top

Download

Already filled the basic info?Click here.

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)

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

Download

Not filled the basic info yet? Click here.

Invalid email address or mobile number.

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)

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)

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.