http://git-wip-us.apache.org/repos/asf/stratos/blob/54072669/components/org.apache.stratos.python.cli/src/main/python/cli/Stratos.py ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.python.cli/src/main/python/cli/Stratos.py b/components/org.apache.stratos.python.cli/src/main/python/cli/Stratos.py deleted file mode 100755 index ad30186..0000000 --- a/components/org.apache.stratos.python.cli/src/main/python/cli/Stratos.py +++ /dev/null @@ -1,489 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -import requests -import json -import Configs -from Logging import logging -from Exceptions import BadResponseError - - -class Stratos: - """Apache Stratos Python API""" - - def __init__(self): - pass - - """ - # Users - * list-users - * add-users - * update-users - * remove-user - - """ - @staticmethod - def list_users(): - return Stratos.get('users') - - @staticmethod - def add_users(username, password, role_name, first_name, last_name, email, profile_name): - data = { - "userName": username, - "credential": password, - "role": role_name, - "firstName": first_name, - "lastName": last_name, - "email": email - } - return Stratos.post('users', json.dumps(data)) - - @staticmethod - def update_user(username, password, role_name, first_name, last_name, email, profile_name): - data = { - "userName": username, - "credential": password, - "role": role_name, - "firstName": first_name, - "lastName": last_name, - "email": email - } - return Stratos.put('users', json.dumps(data)) - - @staticmethod - def remove_user(name): - return Stratos.delete('users/'+name) - - """ - # Applications - * list-applications - * describe-applications - * add-application - * remove-application - * deploy-application - * describe-application-runtime - - """ - @staticmethod - def list_applications(): - return Stratos.get('applications') - - @staticmethod - def describe_application(application_id): - return Stratos.get('applications/'+application_id) - - @staticmethod - def add_application(json): - return Stratos.post('applications', json) - - @staticmethod - def update_application(application_id, json): - return Stratos.put('applications/'+application_id, json) - - @staticmethod - def remove_application(application): - return Stratos.delete('applications/'+application) - - @staticmethod - def deploy_application(application_id, application_policy_id): - return Stratos.post('applications/'+application_id+'/deploy/'+application_policy_id, None) - - @staticmethod - def undeploy_application(application_id): - return Stratos.post('applications/'+application_id+'/undeploy', None) - @staticmethod - def describe_application_runtime(application_id): - return Stratos.get('applications/'+application_id+"/runtime") - - """ - # Application signup - * describe-application-signup - * remove-application-signup - - """ - @staticmethod - def describe_application_signup(application_id): - return Stratos.get('applications/'+application_id+'/signup') - @staticmethod - def add_application_signup(application_id, json): - return Stratos.post('applications/'+application_id+"/runtime", json) - - @staticmethod - def remove_application_signup(application_id): - return Stratos.delete('applications/'+application_id + '/signup') - - """ - # Tenants - * list-tenants - * list-tenants-by-partial-domain - * describe-tenant - * add-tenant - * activate-tenant - * deactivate-tenant - - """ - @staticmethod - def list_tenants(): - return Stratos.get('tenants') - - @staticmethod - def list_tenants_by_partial_domain(partial_domain): - return Stratos.get('tenants/search/'+partial_domain) - - @staticmethod - def describe_tenant(tenant_domain_name): - return Stratos.get('tenants/'+tenant_domain_name) - - @staticmethod - def add_tenant(username, first_name, last_name, password, domain_name, email): - data = { - "admin": username, - "firstName": first_name, - "lastName": last_name, - "adminPassword": password, - "tenantDomain": domain_name, - "email": email, - "active": "true" - } - return Stratos.post('tenants', json.dumps(data)) - - @staticmethod - def update_tenant(username, first_name, last_name, password, domain_name, email, tenant_id): - data = { - "tenantId": tenant_id, - "admin": username, - "firstName": first_name, - "lastName": last_name, - "adminPassword": password, - "tenantDomain": domain_name, - "email": email, - "active": "true" - } - return Stratos.put('tenants', json.dumps(data)) - - @staticmethod - def activate_tenant(tenant_domain): - return Stratos.put('tenants/activate/'+tenant_domain, "") - - @staticmethod - def deactivate_tenant(tenant_domain): - return Stratos.put('tenants/deactivate/'+tenant_domain, "") - - """ - # Cartridges - * list-cartridges - * describe-cartridge - * add-cartridge - * remove-cartridges - - """ - @staticmethod - def list_cartridges(): - return Stratos.get('cartridges') - - @staticmethod - def list_cartridges_by_filter(filter_text): - return Stratos.get('cartridges/filter/'+filter_text) - - @staticmethod - def describe_cartridge(cartridge_type): - return Stratos.get('cartridges/'+cartridge_type) - - @staticmethod - def add_cartridge(json): - return Stratos.post('cartridges', json) - - @staticmethod - def update_cartridge(json): - return Stratos.put('cartridges', json) - - @staticmethod - def remove_cartridge(cartridge_type): - return Stratos.delete('cartridges/'+cartridge_type) - - """ - # Cartridge groups - * list-cartridge-groups - * describe-cartridge-group - * update-cartridges-group - * remove-cartridges-group - - """ - - @staticmethod - def list_cartridge_groups(): - return Stratos.get('cartridgeGroups') - - @staticmethod - def describe_cartridge_group(group_definition_name): - return Stratos.get('cartridgeGroups/'+group_definition_name) - - @staticmethod - def add_cartridge_group(json): - return Stratos.post('cartridgeGroups', json) - - @staticmethod - def update_cartridge_group(json): - return Stratos.put('cartridgeGroups', json) - - @staticmethod - def remove_cartridge_group(group_definition_name): - return Stratos.delete('cartridgeGroups/'+group_definition_name) - - """ - # Deployment Policy - * list-deployment-policies - * describe-deployment-policy - * add-deployment-policy - * update-deployment-policy - * remove-deployment-policy - - """ - @staticmethod - def list_deployment_policies(): - return Stratos.get('deploymentPolicies') - @staticmethod - def describe_deployment_policy(deployment_policy_name): - return Stratos.get('deploymentPolicies/'+ deployment_policy_name) - @staticmethod - def add_deployment_policy(json): - return Stratos.post('deploymentPolicies', json) - - @staticmethod - def update_deployment_policy(json): - return Stratos.put('deploymentPolicies', json) - - @staticmethod - def remove_deployment_policy(deployment_policy_id): - return Stratos.delete('deploymentPolicies/'+deployment_policy_id) - - """ - # Application Policy - * list-application-policies - * describe-application-policy - * update-application-policy - * remove-application-policy - - """ - @staticmethod - def list_application_policies(): - return Stratos.get('applicationPolicies') - @staticmethod - def describe_application_policy(application_policy_name): - return Stratos.get('applicationPolicies/'+ application_policy_name) - @staticmethod - def update_application_policy(json): - return Stratos.put('applicationPolicies', json) - - @staticmethod - def remove_application_policy(application_policy_id): - return Stratos.delete('applicationPolicies/'+application_policy_id) - - """ - # Network partitions - * list-network-partitions - * describe-network-partition - * add-network-partition - * update-network-partition - * remove-network-partition - - """ - @staticmethod - def list_network_partitions(): - return Stratos.get('networkPartitions') - - @staticmethod - def describe_network_partition(network_partition_id): - return Stratos.get('networkPartitions/'+network_partition_id) - @staticmethod - def add_network_partition(json): - return Stratos.post('networkPartitions', json) - @staticmethod - def update_network_partition(json): - return Stratos.put('networkPartitions', json) - - - @staticmethod - def remove_network_partition(network_partition_id): - return Stratos.delete('networkPartitions/'+network_partition_id) - - """ - # Auto-scaling policies - * list-autoscaling-policies - * describe-autoscaling-policy - * add-autoscaling-policy - * update-autoscaling-policy - * remove-autoscaling-policy - - """ - @staticmethod - def list_autoscaling_policies(): - return Stratos.get('autoscalingPolicies') - @staticmethod - def describe_autoscaling_policy(autoscaling_policy_id): - return Stratos.get('autoscalingPolicies/'+autoscaling_policy_id) - - @staticmethod - def add_autoscaling_policy(json): - return Stratos.post('autoscalingPolicies', json) - - @staticmethod - def add_application_policy(json): - return Stratos.post('applicationPolicies', json) - - @staticmethod - def update_autoscaling_policy(json): - return Stratos.put('autoscalingPolicies', json) - - @staticmethod - def remove_autoscaling_policy(autoscaling_policy_id): - return Stratos.delete('autoscalingPolicies/'+autoscaling_policy_id) - - """ - # Kubernetes clusters/hosts - * list-kubernetes-clusters - * describe-kubernetes-cluster - * describe-kubernetes-master - * add-kubernetes-cluster - * list-kubernetes-hosts - * update-kubernetes-host - * update-kubernetes-master - * remove-kubernetes-cluster - * remove-kubernetes-host - - """ - @staticmethod - def list_kubernetes_clusters(): - return Stratos.get('kubernetesClusters') - - @staticmethod - def describe_kubernetes_cluster(kubernetes_cluster_id): - return Stratos.get('kubernetesClusters/'+kubernetes_cluster_id) - @staticmethod - def describe_kubernetes_master(kubernetes_cluster_id): - return Stratos.get('kubernetesClusters/'+kubernetes_cluster_id+'/master') - - @staticmethod - def add_kubernetes_cluster(json): - return Stratos.post('kubernetesClusters', json) - - @staticmethod - def add_kubernetes_host(kubernetes_cluster_id, json): - return Stratos.post('kubernetesClusters/'+kubernetes_cluster_id+'/minion', json) - - @staticmethod - def list_kubernetes_hosts(kubernetes_cluster_id): - return Stratos.get('kubernetesClusters/'+kubernetes_cluster_id+'/hosts') - - @staticmethod - def update_kubernetes_master(cluster_id, json): - return Stratos.put('kubernetesClusters/'+cluster_id+'/master', json) - - @staticmethod - def update_kubernetes_host(json): - return Stratos.put('kubernetesClusters/update/host', json) - - @staticmethod - def remove_kubernetes_cluster(kubernetes_cluster_id): - return Stratos.delete('kubernetesClusters/'+kubernetes_cluster_id) - - @staticmethod - def remove_kubernetes_host(kubernetes_cluster_id, host_id): - return Stratos.delete('kubernetesClusters/'+kubernetes_cluster_id+"/hosts/"+host_id) - - """ - # Domain Mapping - * list-domain-mappings - * add-domain-mapping - * remove-domain-mapping - - """ - - @staticmethod - def list_domain_mappings(application_id): - return Stratos.get('applications/'+application_id+'/domainMappings') - - @staticmethod - def remove_domain_mappings(application_id): - return Stratos.delete('applications/'+application_id+'/domainMappings') - - @staticmethod - def add_domain_mapping(application_id, json): - return Stratos.post('applications/'+application_id+'/domainMappings', json) - - """ - # Utils - - """ - - @staticmethod - def authenticate(): - try: - Stratos.get('init') - return True - except BadResponseError as e: - return False - - @staticmethod - def get(resource): - r = requests.get(Configs.stratos_api_url + resource, - auth=(Configs.stratos_username, Configs.stratos_password), verify=False) - return Stratos.response(r) - - @staticmethod - def delete(resource): - r = requests.delete(Configs.stratos_api_url + resource, - auth=(Configs.stratos_username, Configs.stratos_password), verify=False) - return Stratos.response(r) - - @staticmethod - def post(resource, data): - headers = {'content-type': 'application/json'} - r = requests.post(Configs.stratos_api_url + resource, data, headers=headers, - auth=(Configs.stratos_username, Configs.stratos_password), verify=False) - return Stratos.response(r) - - @staticmethod - def put(resource, data): - headers = {'content-type': 'application/json'} - r = requests.put(Configs.stratos_api_url + resource, data, headers=headers, - auth=(Configs.stratos_username, Configs.stratos_password), verify=False) - return Stratos.response(r) - - - @staticmethod - def response(r): - if "False" not in Configs.debug_cli: - # print responses if debug is turned on - print(r) - print(r.text) - - if r.status_code == 200: - return r.json() - elif r.status_code == 201: - return True - elif r.status_code == 202: - return True - elif r.status_code >= 400: - if r.text and r.json() and r.json()['message']: - logging.error("HTTP "+str(r.status_code)+" : "+r.json()['message']) - raise BadResponseError(str(r.status_code), r.json()['message']) - else: - logging.error("HTTP "+str(r.status_code)+" : Could not connect to Stratos server") - raise BadResponseError(str(r.status_code), "Could not connect to Stratos server") - -
http://git-wip-us.apache.org/repos/asf/stratos/blob/54072669/components/org.apache.stratos.python.cli/src/main/python/cli/Utils.py ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.python.cli/src/main/python/cli/Utils.py b/components/org.apache.stratos.python.cli/src/main/python/cli/Utils.py deleted file mode 100644 index 9510273..0000000 --- a/components/org.apache.stratos.python.cli/src/main/python/cli/Utils.py +++ /dev/null @@ -1,99 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -from __future__ import print_function -import sys -from texttable import * -import json -import Configs -from Logging import logging - - -class PrintableTree: - - def __init__(self, tree_data): - self.tree_data = tree_data - pass - - def print_tree(self): - def _print_tree(t, level=0, ups=""): - if isinstance(t, list): - print('|') - for element in t[:-1]: - print(ups + "+-", end='') - _print_tree(element, level + 1, ups + "| ") - else: - print(ups + "+-", end='') - _print_tree(t[-1], level + 1, ups + " ") - elif isinstance(t, dict): - print('|') - l = [] - for k, v in t.items(): - if isinstance(v, list) or isinstance(v, dict): - l.extend([k, v]) - else: - l.extend([str(k) + ":" + str(v)]) - t = l - for element in t[:-1]: - print(ups + "+-", end='') - _print_tree(element, level + 1, ups + "| ") - else: - print(ups + "+-", end='') - _print_tree(t[-1], level + 1, ups + " ") - else: - print(str(t)) - print("_") - _print_tree(self.tree_data) - - -class PrintableTable(Texttable): - - def __init__(self): - Texttable.__init__(self) - self.set_deco(Texttable.BORDER | Texttable.HEADER | Texttable.VLINES) - - def print_table(self): - print(self.draw()) - - -class PrintableJSON(Texttable): - - def __init__(self, json): - self.json = json - - def pprint(self): - - print(json.dumps(self.json, indent=4, separators=(',', ': '))) - - -def auth(func): - """Authenticate""" - def auth_inner(self, *args, **kwargs): - if len(args) > 1 and hasattr(args[1], 'username') and args[1].username is not None: - Configs.stratos_username = args[1].username - if len(args) > 1 and hasattr(args[1], 'password') and args[1].password is not None: - Configs.stratos_password = args[1].password - - if Configs.stratos_username is "" and Configs.stratos_password is "": - print("Pre authentication failed. Some authentication details are missing") - logging.warning("Pre authentication failed. Some authentication details are missing") - else: - return func(self, *args, **kwargs) - auth_inner.__name__ = func.__name__.replace('_', '-') - auth_inner.__doc__ = func.__doc__ - return auth_inner -
