k2hr3client package
Submodules
k2hr3client.acr module
K2HR3 Python Client of ACR API.
# Import modules from k2hr3client package.
from k2hr3client.token import K2hr3Token
from k2hr3client.http import K2hr3Http
from k2hr3client.acr import K2hr3Acr
iaas_project = "demo"
iaas_token = "gAAAAA..."
mytoken = K2hr3Token(iaas_project, iaas_token)
# POST a request to create a token to K2HR3 Token API.
myhttp = K2hr3Http("http://127.0.0.1:18080")
myhttp.POST(mytoken.create())
mytoken.token # gAAAAA...
# POST a request to add member to K2HR3 ACR API.
myacr = K2hr3Acr(mytoken.token, "service")
myhttp.POST(myacr.add_member("mytenant"))
- class k2hr3client.acr.K2hr3Acr(r3token: str, service: str)
Bases:
K2hr3ApiRelationship with K2HR3 ACR API.
See https://k2hr3.antpick.ax/api_acr.html
- add_member(tenant: str | None)
Add the members.
- delete_member(tenant: str)
Delete the members.
- get_available_resources(cip: str | None = None, cport: str | None = None, crole: str | None = None, ccuk: str | None = None, sport: str | None = None, srole: str | None = None, scuk: str | None = None)
Show the available resources.
- property r3token: str
Return the r3token.
- property service: str
Return the tenant.
- show_credential_details()
Show the credential details.
k2hr3client.api module
k2hr3client - Python library for K2HR3 API.
# Import modules from k2hr3client package
from k2hr3client import version
v = version.K2hr3Version()
v.get()
from k2hr3client import http as khttp
httpreq = khttp.K2hr3Http('http://127.0.0.1:18080')
# GET the K2hr Version API.
httpreq.GET(v)
print(v.resp)
- class k2hr3client.api.K2hr3Api(basepath: str, params: str | None = None, hdrs: dict | None = None, body: str | None = None, version: str = 'v1')
Bases:
ABCBase class of all K2HR3 WebAPIs.
- DEFAULT_VERSION = 'v1'
- property basepath: str
Return the base url path.
- property body: str | None
Return the request body.
- property headers: dict | None
Return the request headers.
- property resp: K2hr3ApiResponse
Return the response struct.
- set_response(code: int, url: str, headers: HTTPMessage, body: str | None) None
Set the API responses in K2hr3Http class.
- property urlparams: str | None
Return the url params.
- property version: str
Return the version string.
- class k2hr3client.api.K2hr3ApiResponse(code=None, url=None, hdrs=None, body=None)
Bases:
objectK2hr3ApiResponse stores the response of K2HR3 WebAPI.
The members are set by setter methods only one time.
- property body: str | None
Return the body.
- property code: int
Return the status code.
- property hdrs: HTTPMessage
Return the header.
- property url: str
Return the request url.
k2hr3client.exception module
K2HR3 Python Client of Exception.
- exception k2hr3client.exception.K2hr3Exception
Bases:
ExceptionException classes for K2HR3 Python Client.
k2hr3client.extdata module
k2hr3client - Python library for k2hr3 Extdata API.
# Import modules from k2hr3client package
from k2hr3client import http as khttp
httpreq = khttp.K2hr3Http('http://127.0.0.1:18080')
from k2hr3client import extdata
example = extdata.K2hr3Extdata("uripath","registerpath","ua 1.0.0")
# GET the K2hr Extdata API.
httpreq.GET(example.acquires_template())
print(example.resp)
- class k2hr3client.extdata.K2hr3Extdata(extapi_name: str, register_path: str, user_agent: str)
Bases:
K2hr3ApiRelationship with K2HR3 EXTDATA API.
See https://k2hr3.antpick.ax/api_extdata.html for details.
- acquires_template() None
Set a request to acquire a template.
- property extapi_name: str
Return the tenant.
- property register_path: str
Return the tenant.
- property user_agent: str
Return the tenant.
k2hr3client.http module
k2hr3client - Python library for K2HR3 API.
# Import modules from k2hr3client package
from k2hr3client import http as khttp
httpreq = khttp.K2hr3Http('http://127.0.0.1:18080')
from k2hr3client import extdata
example = extdata.K2hr3Extdata("uripath","registerpath","ua 1.0.0")
# GET the K2hr Extdata API.
httpreq.GET(example.acquires_template())
print(example.resp)
- class k2hr3client.http.K2hr3Http(baseurl: str)
Bases:
objectK2hr3Http sends a http/https request to the K2hr3 WebAPI.
Most of the members are set by setter methods only one time.
- property baseurl: str | None
Returns the url.
- property headers: dict
Return the request headers.
- property url: str | None
Returns the url.
- property urlparams: str | None
Returns the urlparams.
k2hr3client.list module
K2HR3 Python Client of List API.
# Import modules from k2hr3client package.
from k2hr3client.token import K2hr3Token
from k2hr3client.http import K2hr3Http
from k2hr3client.list import K2hr3List
iaas_project = "demo"
iaas_token = "gAAAAA..."
mytoken = K2hr3Token(iaas_project, iaas_token)
# POST a request to create a token to K2HR3 Token API.
myhttp = K2hr3Http("http://127.0.0.1:18080")
myhttp.POST(mytoken.create())
mytoken.token # gAAAAA...
# GET a request to get list from K2HR3 List API.
mylist = K2hr3List(mytoken.token, "service")
myhttp.GET(mylist.get())
mylist.resp.body # {"result":true...
- class k2hr3client.list.K2hr3List(r3token: str, service: str)
Bases:
K2hr3ApiRelationship with K2HR3 LIST API.
See https://k2hr3.antpick.ax/api_list.html
- get(expand=False)
List K2HR3’s SERVICE, RESOURCE, POLICY and ROLE in YRN form.
- property r3token: str
Return the r3token.
- property service: str
Return the service.
- validate()
Validate the objects.
k2hr3client.policy module
K2HR3 Python Client of Policy API.
# Import modules from k2hr3client package.
from k2hr3client.token import K2hr3Token
from k2hr3client.http import K2hr3Http
from k2hr3client.policy import K2hr3Policy
iaas_project = "demo"
iaas_token = "gAAAAA..."
mytoken = K2hr3Token(iaas_project, iaas_token)
# POST a request to create a token to K2HR3 Token API.
myhttp = K2hr3Http("http://127.0.0.1:18080")
myhttp.POST(mytoken.create())
mytoken.token # gAAAAA...
# POST request to get a K2HR3 Policy API.
mypolicy = K2hr3Policy(mytoken.token)
RESOURCE_PATH = "yrn:yahoo:::demo:resource:test_resource"
myhttp.POST(
mypolicy.create(
name="test_policy",
effect="allow",
action=['yrn:yahoo::::action:read'],
resource=[RESOURCE_PATH],
condition=None,
alias=[]
)
)
mypolicy.resp.body # {"result":true...
- class k2hr3client.policy.K2hr3Policy(r3token: str)
Bases:
K2hr3ApiRelationship with K2HR3 POLICY API.
See https://k2hr3.antpick.ax/api_policy.html for details.
- create(name: str, effect: str, action: List[str] | None, resource: List[str] | None = None, condition: str | None = None, alias: List[str] | None = None, policy_name: str | None = None)
Create policies.
- delete(name: str, policy_name: str | None = None)
Delete policies.
- get(name: str, service: str, policy_name: str | None = None)
Get policies.
- property r3token: str
Return the r3token.
- validate(name: str, tenant: str, resource: str, action: str, service: str | None = None, policy_name: str | None = None)
Validate policies.
k2hr3client.resource module
K2HR3 Python Client of Resource API.
# Import modules from k2hr3client package.
from k2hr3client.token import K2hr3Token
from k2hr3client.http import K2hr3Http
from k2hr3client.resource import K2hr3Resource
iaas_project = "demo"
iaas_token = "gAAAAA..."
mytoken = K2hr3Token(iaas_project, iaas_token)
# POST a request to create a token to K2HR3 Token API.
myhttp = K2hr3Http("http://127.0.0.1:18080")
myhttp.POST(mytoken.create())
mytoken.token # gAAAAA...
# POST a request to create a K2HDKC resource.
myresource = K2hr3Resource(mytoken.token)
myhttp.POST(
myresource.create_conf_resource(
name="test_resource",
data_type="string",
resource_data="testresourcedata",
keys={
"cluster-name": "test-cluster",
"chmpx-server-port": "8020",
"chmpx-server-ctrlport": "8021",
"chmpx-slave-ctrlport": "8031"},
alias=[])
)
myresource.resp.body # {"result":true...
- class k2hr3client.resource.K2hr3Resource(r3token: str | None = None, roletoken: str | None = None, resource_path: str | None = None)
Bases:
K2hr3ApiRelationship with K2HR3 RESOURCE API.
See https://k2hr3.antpick.ax/api_resource.html for details.
- create_conf_resource(name: str, data_type: str, resource_data: str, keys: dict | None = None, alias: list | None = None)
Create the resource.
- delete_with_notoken(port: str, cuk: str, role: str, data_type: str, keys: dict | None)
Delete the resource without token.
- delete_with_roletoken(data_type: str, keys: dict | None)
Delete the resource with role token.
- delete_with_scopedtoken(data_type: str, keys: dict | None, alias: list | None = None)
Delete the resource with scoped token.
- get(expand: bool = False, service: str | None = None)
Get the resource.
- get_with_roletoken(data_type: str, keys: dict | None, service: str | None = None)
Get the resource with roletoken.
- static json_dumps(params)
Return the json params after deleting None data.
- property r3token
Return the r3token.
- property resource_path
Return the resource_path.
- property roletoken
Return the roletoken.
- validate(data_type: str, keys: dict | None, service: str | None = None)
Validate the resource.
- validate_with_notoken(port: str, cuk: str, role: str, data_type: str, keys: dict | None, service: str | None = None)
Validate the resource without tokens.
k2hr3client.role module
K2HR3 Python Client of Role API.
# Simple CUI application to create a role.
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import argparse
import json
import os
from pathlib import Path
import re
import sys
import urllib.parse
import urllib.request
here = os.path.dirname(__file__)
src_dir = os.path.join(here, '..')
if os.path.exists(src_dir):
sys.path.append(src_dir)
import k2hr3client
from k2hr3client.exception import K2hr3Exception
from k2hr3client.http import K2hr3Http
from k2hr3client.token import K2hr3Token
from k2hr3client.resource import K2hr3Resource
from k2hr3client.policy import K2hr3Policy
from k2hr3client.role import K2hr3Role
_MAX_LINE_LENGTH = 1024 * 8
IDENTITY_V3_PASSWORD_AUTH_JSON_DATA = '''
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "admin",
"domain": {
"name": "Default"
},
"password": "devstacker"
}
} }
}
}
'''
IDENTITY_V3_TOKEN_AUTH_JSON_DATA = '''
{
"auth": {
"identity": {
"methods": [
"token"
],
"token": {
"id": ""
}
},
"scope": {
"project": {
"domain": {
"id": "default"
},
"name": ""
}
}
}
}
'''
def get_scoped_token_id(url, user, password, project):
# Get a scoped token id from openstack identity.
# unscoped token-id
# https://docs.openstack.org/api-ref/identity/v3/index.html#password-authentication-with-unscoped-authorization
python_data = json.loads(IDENTITY_V3_PASSWORD_AUTH_JSON_DATA)
python_data['auth']['identity']['password']['user']['name'] = user
python_data['auth']['identity']['password']['user']['password'] = password
headers = {
'User-Agent': 'doc_sample',
'Content-Type': 'application/json'
}
req = urllib.request.Request(url,
json.dumps(python_data).encode('ascii'),
headers,
method="POST")
with urllib.request.urlopen(req) as res:
unscoped_token_id = dict(res.info()).get('X-Subject-Token')
print('unscoped_token_id:[{}]'.format(unscoped_token_id))
# scoped token-id
# https://docs.openstack.org/api-ref/identity/v3/index.html?expanded=#token-authentication-with-scoped-authorization
python_data = json.loads(IDENTITY_V3_TOKEN_AUTH_JSON_DATA)
python_data['auth']['identity']['token']['id'] = unscoped_token_id
python_data['auth']['scope']['project']['name'] = project
headers = {
'User-Agent': 'doc_sample',
'Content-Type': 'application/json'
}
req = urllib.request.Request(url,
json.dumps(python_data).encode('ascii'),
headers,
method="POST")
with urllib.request.urlopen(req) as res:
scoped_token_id = dict(res.info()).get('X-Subject-Token')
print('scoped_token_id:[{}]'.format(scoped_token_id))
return scoped_token_id
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='k2hr3 token api example')
parser.add_argument(
'--url',
dest='url',
default='http://127.0.0.1/identity/v3/auth/tokens',
help='identity api url. ex) http://127.0.0.1/identity/v3/auth/tokens') # noqa
parser.add_argument('--user',
dest='user',
default='demo',
help='openstack user')
parser.add_argument('--password',
dest='password',
default='password',
help='openstack user password')
parser.add_argument('--project',
dest='project',
default='demo',
help='openstack project')
parser.add_argument('--k2hr3_url',
dest='k2hr3_url',
default='http://localhost:18080',
help='k2hr3 api url')
parser.add_argument('--resource',
dest='resource',
default='doc_sample',
help='resource name')
parser.add_argument('--policy',
dest='policy',
default='doc_sample',
help='policy name')
parser.add_argument('--role',
dest='role',
default='doc_sample',
help='k2hr3 rolename')
args = parser.parse_args()
# 1. Gets a openstack token id from openstack identity server
openstack_token = get_scoped_token_id(args.url, args.user, args.password,
args.project)
# 2. Gets a k2hr3 token from the openstack token
k2hr3_token = K2hr3Token(args.project, openstack_token)
http = K2hr3Http(args.k2hr3_url)
http.POST(k2hr3_token.create())
# 3. Makes a new k2hr3 resource
k2hr3_resource = K2hr3Resource(k2hr3_token.token)
resource_data = args.resource
http.POST(
k2hr3_resource.create_conf_resource(
name=args.resource,
data_type='string',
resource_data=resource_data,
keys={
"doc_sample": args.resource
},
alias=[]
)
)
# 4. Makes a new k2hr3 policy for the resource
k2hr3_policy = K2hr3Policy(k2hr3_token.token)
MY_RESOURCE_PATH = "yrn:yahoo:::{}:resource:{}/doc_sample".format(
args.project, args.resource)
http.POST(
k2hr3_policy.create(
name=args.policy,
effect='allow',
action=['yrn:yahoo::::action:read'],
resource=[MY_RESOURCE_PATH],
condition=None,
alias=[]
)
)
# 5. Makes a new k2hr3 role for the policy
POLICY_PATH = "yrn:yahoo:::{}:policy:{}".format(args.project, args.policy)
k2hr3_role = K2hr3Role(k2hr3_token.token)
http.POST(
k2hr3_role.create(
name=args.role,
policies=[POLICY_PATH],
alias=[]
)
)
print(slave_role.resp.body)
sys.exit(0)
- class k2hr3client.role.K2hr3Role(r3token: str, token_type=K2hr3TokenType.SCOPED_TOKEN)
Bases:
K2hr3ApiRelationship with K2HR3 ROLE API.
See https://k2hr3.antpick.ax/api_role.html
- add_member(name: str, host: str, clear_hostname: bool, clear_ips: str, role_name: str | None = None)
Add a member to the role.
- add_member_with_roletoken(name: str, port: str, cuk: str, extra: str, tag: str, inboundip: str, outboundip: str, role_name: str | None = None)
Add members to the role without roletoken.
- add_members(name: str, hosts: str, clear_hostname: bool, clear_ips: str, role_name: str | None = None)
Add members to the role.
- create(name: str, policies: List[str], alias: List[str], role_name: str | None = None)
Create tokens.
- delete(name: str, role_name: str | None = None)
Delete role.
- delete_member(name: str, host: str, port: str, cuk: str, role_name: str | None = None)
Delete host.
- delete_member_wo_roletoken(cuk: str)
Delete host without roletoken.
- delete_roletoken(name: str, port: str, cuk: str, role_name: str | None = None)
Delete roletoken.
- delete_roletoken_with_string(role_token_string: str)
Delete roletoken without role.
- get(name: str, expand: bool = True, role_name: str | None = None)
Show role details.
- get_token_list(name: str, expand: bool = True, role_name: str | None = None)
Show token list.
- property r3token: str
Return the r3token.
- validate_role(name: str, role_name: str | None = None)
Validate role.
- class k2hr3client.role.K2hr3RoleHost(host: str, port: str, cuk: str, extra: str, tag: str, inboundip: str, outboundip: str)
Bases:
objectRepresent a host of a role.
NOTE(hiwakaba): This class exists only for backward compatibility.
k2hr3client.service module
K2HR3 Python Client of Service API.
# Import modules from k2hr3client package.
from k2hr3client.token import K2hr3Token
from k2hr3client.http import K2hr3Http
from k2hr3client.service import K2hr3Service
iaas_project = "demo"
iaas_token = "gAAAAA..."
mytoken = K2hr3Token(iaas_project, iaas_token)
# POST a request to create a token to K2HR3 Token API.
myhttp = K2hr3Http("http://127.0.0.1:18080")
myhttp.POST(mytoken.create())
mytoken.token # gAAAAA...
# POST a request to create a service to K2HR3 Service API.
myservice = K2hr3Service(mytoken.token, "test_service")
myhttp.POST(
myservice.create(
verify = "http://example.com/verify_url.php"
)
)
myservice.resp.body # {"result":true...
- class k2hr3client.service.K2hr3Service(r3token: str, service_name: str)
Bases:
K2hr3ApiRelationship with K2HR3 SERVICE API.
See https://k2hr3.antpick.ax/api_service.html for details.
- add_member(tenant: str, clear_tenant: bool)
Add members to services.
- create(verify_url: str)
Create services.
- delete()
Delete services.
- delete_tenant(tenant: str)
Delete tenants.
- get()
Get services.
- modify(verify_url: str)
Modify services.
- property r3token: str
Return the r3token.
- validate(tenant: str | None = None)
Validate services.
k2hr3client.tenant module
K2HR3 Python Client of Tenant API.
# Import modules from k2hr3client package.
from k2hr3client.token import K2hr3Token
from k2hr3client.http import K2hr3Http
from k2hr3client.tenant import K2hr3Tenant
iaas_project = "demo"
iaas_token = "gAAAAA..."
mytoken = K2hr3Token(iaas_project, iaas_token)
# POST a request to create a token to K2HR3 Token API.
myhttp = K2hr3Http("http://127.0.0.1:18080")
myhttp.POST(mytoken.create())
mytoken.token # gAAAAA...
# POST a request to create a tenant to K2HR3 Tenant API.
mytenant = K2hr3Tenant(mytoken.token)
myhttp.POST(
mytenant.create(
tenant_name = "test_tenant",
users = ["demo"],
desc = "test_tenant description",
display = "test tenant display"
)
)
mytenant.resp.body # {"result":true...
- class k2hr3client.tenant.K2hr3Tenant(r3token: str)
Bases:
K2hr3ApiRelationship with K2HR3 TENANT API.
See https://k2hr3.antpick.ax/api_tenant.html for details.
- create(tenant_name: str, users: List[str] | None, desc: str | None, display: str | None)
Create a new K2HR3 cluster Local Tenant(TENANT).
- delete(tenant_name: str, tenant_id: int)
Completely delete the Local Tenant(TENANT).
- delete_user(tenant_name: str, tenant_id: int)
Make the USER unavailable to the K2HR3 cluster Local Tenant(TENANT).
- get(tenant_name: str)
Get the K2HR3 cluster Local Tenant(TENANT) information.
- get_tenant_list(expand: bool = False)
List the K2HR3 cluster Local Tenant(TENANT).
- modify(tenant_name: str, tenant_id: int, users: List[str] | None, desc: str | None, display: str | None)
Update the K2HR3 cluster Local Tenant(TENANT).
- property r3token: str
Return the r3token.
- validate(tenant_name: str)
Check the existence of the K2HR3 cluster Local Tenant(TENANT).
k2hr3client.token module
K2HR3 Python Client of Token API.
# Simple CUI application to get registerpath for a k2hr3 role.
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import argparse
import os
import sys
import json
import urllib.parse
import urllib.request
here = os.path.dirname(__file__)
src_dir = os.path.join(here, '..')
if os.path.exists(src_dir):
sys.path.append(src_dir)
from k2hr3client.http import K2hr3Http
from k2hr3client.token import K2hr3Token
from k2hr3client.token import K2hr3RoleToken
from k2hr3client.token import K2hr3RoleTokenList
IDENTITY_V3_PASSWORD_AUTH_JSON_DATA = '''
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "admin",
"domain": {
"name": "Default"
},
"password": "devstacker"
}
} }
}
}
'''
IDENTITY_V3_TOKEN_AUTH_JSON_DATA = '''
{
"auth": {
"identity": {
"methods": [
"token"
],
"token": {
"id": ""
}
},
"scope": {
"project": {
"domain": {
"id": "default"
},
"name": ""
}
}
}
}
'''
def get_scoped_token_id(url, user, password, project):
# Get a scoped token id from openstack identity.
# unscoped token-id
# https://docs.openstack.org/api-ref/identity/v3/index.html#password-authentication-with-unscoped-authorization
python_data = json.loads(IDENTITY_V3_PASSWORD_AUTH_JSON_DATA)
python_data['auth']['identity']['password']['user']['name'] = user
python_data['auth']['identity']['password']['user']['password'] = password # noqa
headers = {
'User-Agent': 'doc_sample',
'Content-Type': 'application/json'
}
req = urllib.request.Request(url,
json.dumps(python_data).encode('ascii'),
headers,
method="POST")
with urllib.request.urlopen(req) as res:
unscoped_token_id = dict(res.info()).get('X-Subject-Token')
# print('unscoped_token_id:[{}]'.format(unscoped_token_id))
# scoped token-id
# https://docs.openstack.org/api-ref/identity/v3/index.html?expanded=#token-authentication-with-scoped-authorization
python_data = json.loads(IDENTITY_V3_TOKEN_AUTH_JSON_DATA)
python_data['auth']['identity']['token']['id'] = unscoped_token_id
python_data['auth']['scope']['project']['name'] = project
headers = {
'User-Agent': 'doc_sample',
'Content-Type': 'application/json'
}
req = urllib.request.Request(url,
json.dumps(python_data).encode('ascii'),
headers,
method="POST")
with urllib.request.urlopen(req) as res:
scoped_token_id = dict(res.info()).get('X-Subject-Token')
# print('scoped_token_id:[{}]'.format(scoped_token_id))
return scoped_token_id
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='k2hr3 token api example')
parser.add_argument(
'--url',
dest='url',
default='http://127.0.0.1/identity/v3/auth/tokens',
help='identity api url. ex) http://127.0.0.1/identity/v3/auth/tokens') # noqa
parser.add_argument('--user',
dest='user',
default='demo',
help='openstack user')
parser.add_argument('--password',
dest='password',
default='password',
help='openstack user password')
parser.add_argument('--project',
dest='project',
default='demo',
help='openstack project')
parser.add_argument('--k2hr3_url',
dest='k2hr3_url',
default='http://localhost:18080',
help='k2hr3 api url')
parser.add_argument('--role',
dest='role',
default='doc_sample',
help='k2hr3 rolename')
args = parser.parse_args()
# 1. Gets a openstack token id from openstack identity server
openstack_token = get_scoped_token_id(args.url, args.user, args.password, # noqa
args.project)
# 2. Gets a k2hr3 token from the openstack token
k2hr3_token = K2hr3Token(args.project, openstack_token)
http = K2hr3Http(args.k2hr3_url)
http.POST(k2hr3_token.create())
# 3. Gets a k2hr3 role token from the k2hr3 token
k2hr3_role_token = K2hr3RoleToken(k2hr3_token.token,
role=args.role,
expire=0)
http.GET(k2hr3_role_token)
roletoken = k2hr3_role_token.token
print("roletoken {}".format(roletoken))
# 4. Gets a k2hr3 role token list from the k2hr3 token
k2hr3_role_token_list = K2hr3RoleTokenList(k2hr3_token.token,
role=args.role,
expand=True)
http.GET(k2hr3_role_token_list)
# 4. Gets the registerpath of the k2hr3 role token
registerpath = k2hr3_role_token_list.registerpath(roletoken)
print("{}".format(registerpath))
sys.exit(0)
- class k2hr3client.token.K2hr3AuthType(*values)
Bases:
EnumRepresent the type of authentication.
- CREDENTIAL = 1
- TOKEN = 2
- class k2hr3client.token.K2hr3RoleToken(r3token, role, expire)
Bases:
K2hr3ApiRepresent K2hr3 ROLE TOKEN API.
See https://k2hr3.antpick.ax/api_role.html for details.
- property expire
Return the expire.
- property r3token
Return the r3token.
- property role
Return the role.
- property token
Return k2hr3 token.
- class k2hr3client.token.K2hr3RoleTokenList(r3token, role, expand)
Bases:
K2hr3ApiRepresent K2hr3 ROLE TOKEN LIST API.
See https://k2hr3.antpick.ax/api_role.html for details.
- property expand
Return the expand.
- property r3token
Return the r3token.
- registerpath(roletoken)
Set the registerpath.
- property role
Return the role.
- class k2hr3client.token.K2hr3Token(iaas_project, iaas_token, auth_type=K2hr3AuthType.TOKEN, version='v1')
Bases:
K2hr3ApiRelationship with K2hr3 TOKEN API.
See https://k2hr3.antpick.ax/api_token.html for details.
- create(user=None, password=None)
Create tokens.
- static get_openstack_token(identity_url, user, password, project)
Get the openstack token.
- property iaas_project
Return the k2hr3 tenant.
- property iaas_token
Return the openstack token.
- show()
Show details of tokens.
- property token
Return k2hr3 token.
- validate()
Validate tokens.
k2hr3client.userdata module
K2HR3 Python Client of Userdata API.
# Import modules from k2hr3client package.
from k2hr3client.token import K2hr3Token
from k2hr3client.http import K2hr3Http
from k2hr3client.userdata import K2hr3Userdata
# GET a userdatascript from K2HR3 Userdata API.
userdata_path = "testpath"
myuserdata = K2hr3Userdata(userdata_path)
myhttp.GET(
myuserdata.provides_userdata_script()
)
myuserdata.resp.body # {"result":true...
- class k2hr3client.userdata.K2hr3Userdata(userdatapath: str)
Bases:
K2hr3ApiRelationship with K2HR3 USERDATA API.
See https://k2hr3.antpick.ax/api_userdata.html for details.
- provides_userdata_script()
Get userdata.
- property userdatapath: str
Return the tenant.
k2hr3client.version module
K2HR3 Python Client of Version API.
# Import modules from k2hr3client package
from k2hr3client import version
v = version.K2hr3Version()
v.get()
from k2hr3client import http as khttp
httpreq = khttp.K2hr3Http('http://127.0.0.1:18080')
# GET the K2hr Version API.
httpreq.GET(v)
print(v.resp)
- class k2hr3client.version.K2hr3Version(version='')
Bases:
K2hr3ApiRelationship with K2HR3 VERSION API.
See https://k2hr3.antpick.ax/api_version.html for details.
- get()
Get the version.
Module contents
K2HR3 Python Client of Token API.
- k2hr3client.get_version() str
Return a version of the package.
- Returns:
version
- Return type:
str