You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ch...@apache.org on 2015/11/09 14:35:28 UTC

[3/4] stratos git commit: Python CLI - Fixed issues in help display, improved packaging, removed setuptools configuration, minor improvements, added stratos.sh file to product

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
-