diff options
Diffstat (limited to 'testapi')
-rw-r--r-- | testapi/testapi-client/testapiclient/auth.py | 4 | ||||
-rw-r--r-- | testapi/testapi-client/testapiclient/authHandler.py | 19 | ||||
-rw-r--r-- | testapi/testapi-client/testapiclient/command.py | 23 | ||||
-rw-r--r-- | testapi/testapi-client/testapiclient/identity.py | 16 | ||||
-rw-r--r-- | testapi/testapi-client/testapiclient/pods.py | 46 | ||||
-rw-r--r-- | testapi/testapi-client/testapiclient/projects.py | 49 |
6 files changed, 73 insertions, 84 deletions
diff --git a/testapi/testapi-client/testapiclient/auth.py b/testapi/testapi-client/testapiclient/auth.py index 6f51231..49da309 100644 --- a/testapi/testapi-client/testapiclient/auth.py +++ b/testapi/testapi-client/testapiclient/auth.py @@ -1,6 +1,6 @@ import logging from cliff.command import Command -from authHandler import AuthHandler +from testapiclient import identity class Auth(Command): @@ -21,7 +21,7 @@ class Auth(Command): return parser def take_action(self, parsed_args): - response = AuthHandler.authenticate(parsed_args.u, parsed_args.p) + response = identity.authenticate(parsed_args.u, parsed_args.p) if "login" in response.text: print "Authentication has failed." else: diff --git a/testapi/testapi-client/testapiclient/authHandler.py b/testapi/testapi-client/testapiclient/authHandler.py deleted file mode 100644 index baa1088..0000000 --- a/testapi/testapi-client/testapiclient/authHandler.py +++ /dev/null @@ -1,19 +0,0 @@ -import requests -from user import User -from config import Config -import urllib - - -class AuthHandler: - - @staticmethod - def authenticate(username, password): - session = requests.Session() - hostname = '{}{}{}'.format( - Config.config.get("cas", "auth_url"), - urllib.quote(Config.config.get("api", "url")), - Config.config.get("cas", "signin_return")) - data = {'name': username, 'pass': password, 'form_id': 'user_login'} - response = session.post(hostname, data) - User.session = session - return response diff --git a/testapi/testapi-client/testapiclient/command.py b/testapi/testapi-client/testapiclient/command.py new file mode 100644 index 0000000..5c2ce5c --- /dev/null +++ b/testapi/testapi-client/testapiclient/command.py @@ -0,0 +1,23 @@ +from cliff import command +# from testapiclient import identity + + +class Command(command.Command): + def get_parser(self, prog_name): + parser = super(Command, self).get_parser(prog_name) + parser.add_argument('-u', + type=str, + help='Username for authentication') + parser.add_argument('-p', + type=str, + help='Password for authentication') + + return parser + + +class Lister(command.Command): + pass + + +class ShowOne(command.Command): + pass diff --git a/testapi/testapi-client/testapiclient/identity.py b/testapi/testapi-client/testapiclient/identity.py new file mode 100644 index 0000000..5456270 --- /dev/null +++ b/testapi/testapi-client/testapiclient/identity.py @@ -0,0 +1,16 @@ +import requests +from user import User +from config import Config +import urllib + + +def authenticate(username, password): + session = requests.Session() + hostname = '{}{}{}'.format( + Config.config.get("cas", "auth_url"), + urllib.quote(Config.config.get("api", "url")), + Config.config.get("cas", "signin_return")) + data = {'name': username, 'pass': password, 'form_id': 'user_login'} + response = session.post(hostname, data) + User.session = session + return response diff --git a/testapi/testapi-client/testapiclient/pods.py b/testapi/testapi-client/testapiclient/pods.py index 6c8aaed..81d4b9e 100644 --- a/testapi/testapi-client/testapiclient/pods.py +++ b/testapi/testapi-client/testapiclient/pods.py @@ -1,17 +1,17 @@ import json -from user import User -from cliff.command import Command -from httpClient import HTTPClient -from authHandler import AuthHandler +from testapiclient import identity +from testapiclient import command + from config import Config +from httpClient import HTTPClient +from user import User -class PodBase(Command): - pods_url = Config.config.get("api", "url") + "/pods" +PODS_URL = Config.config.get("api", "url") + "/pods" -class PodGet(PodBase): +class PodGet(command.Lister): "Handle get request for pods" def get_parser(self, prog_name): @@ -23,14 +23,14 @@ class PodGet(PodBase): def take_action(self, parsed_args): http_client = HTTPClient.get_Instance() - url = PodGet.pods_url + url = PODS_URL if(parsed_args.name): - url = PodGet.pods_url + "?name=" + parsed_args.name + url = PODS_URL + "?name=" + parsed_args.name pods = http_client.get(url) print pods -class PodGetOne(PodBase): +class PodGetOne(command.ShowOne): "Handle get request for pod by name" def get_parser(self, prog_name): @@ -43,21 +43,15 @@ class PodGetOne(PodBase): def take_action(self, parsed_args): http_client = HTTPClient.get_Instance() - pods = http_client.get(PodGetOne.pods_url + "/" + parsed_args.name) + pods = http_client.get(PODS_URL + "/" + parsed_args.name) print pods -class PodCreate(PodBase): +class PodCreate(command.Command): "Handle post request for pods" def get_parser(self, prog_name): parser = super(PodCreate, self).get_parser(prog_name) - parser.add_argument('-u', - type=str, - help='Username for authentication') - parser.add_argument('-p', - type=str, - help='Password for authentication') parser.add_argument('pod', type=json.loads, help='Pod create request format :\n' @@ -70,11 +64,11 @@ class PodCreate(PodBase): def take_action(self, parsed_args): http_client = HTTPClient.get_Instance() if(parsed_args.u and parsed_args.p): - response = AuthHandler.authenticate(parsed_args.u, parsed_args.p) + response = identity.authenticate(parsed_args.u, parsed_args.p) if "login" in response.text: print "Authentication has failed." return - response = http_client.post(PodCreate.pods_url, + response = http_client.post(PODS_URL, User.session, parsed_args.pod) if response.status_code == 200: @@ -83,17 +77,11 @@ class PodCreate(PodBase): print response.text -class PodDelete(PodBase): +class PodDelete(command.Command): "Handle delete request for pods" def get_parser(self, prog_name): parser = super(PodDelete, self).get_parser(prog_name) - parser.add_argument('-u', - type=str, - help='Username for authentication') - parser.add_argument('-p', - type=str, - help='Password for authentication') parser.add_argument('-name', type=str, required=True, @@ -103,10 +91,10 @@ class PodDelete(PodBase): def take_action(self, parsed_args): http_client = HTTPClient.get_Instance() if(parsed_args.u and parsed_args.p): - response = AuthHandler.authenticate(parsed_args.u, parsed_args.p) + response = identity.authenticate(parsed_args.u, parsed_args.p) if "login" in response.text: print "Authentication has failed." return - pods = http_client.delete(PodDelete.pods_url + "/" + parsed_args.name, + pods = http_client.delete(PODS_URL + "/" + parsed_args.name, User.session) print pods diff --git a/testapi/testapi-client/testapiclient/projects.py b/testapi/testapi-client/testapiclient/projects.py index eedfa3d..36d0960 100644 --- a/testapi/testapi-client/testapiclient/projects.py +++ b/testapi/testapi-client/testapiclient/projects.py @@ -1,16 +1,15 @@ import json from user import User -from cliff.command import Command +from testapiclient import command from httpClient import HTTPClient -from authHandler import AuthHandler +from testapiclient import identity from config import Config -class ProjectBase(Command): - projects_url = Config.config.get("api", "url") + "/projects" +PROJECTS_URL = Config.config.get("api", "url") + "/projects" -class ProjectGet(ProjectBase): +class ProjectGet(command.Lister): def get_parser(self, prog_name): parser = super(ProjectGet, self).get_parser(prog_name) @@ -21,14 +20,14 @@ class ProjectGet(ProjectBase): def take_action(self, parsed_args): httpClient = HTTPClient.get_Instance() - url = ProjectGet.projects_url + url = PROJECTS_URL if parsed_args.name: url = url + "?name=" + parsed_args.name projects = httpClient.get(url) print projects -class ProjectGetOne(ProjectBase): +class ProjectGetOne(command.ShowOne): def get_parser(self, prog_name): parser = super(ProjectGetOne, self).get_parser(prog_name) @@ -40,21 +39,15 @@ class ProjectGetOne(ProjectBase): def take_action(self, parsed_args): httpClient = HTTPClient.get_Instance() - url = ProjectGet.projects_url + "/" + parsed_args.name + url = PROJECTS_URL + "/" + parsed_args.name project = httpClient.get(url) print project -class ProjectCreate(ProjectBase): +class ProjectCreate(command.Command): def get_parser(self, prog_name): parser = super(ProjectCreate, self).get_parser(prog_name) - parser.add_argument('-u', - type=str, - help='Username for authentication') - parser.add_argument('-p', - type=str, - help='Password for authentication') parser.add_argument('project', type=json.loads, help='Project create request format :{' @@ -65,7 +58,7 @@ class ProjectCreate(ProjectBase): def take_action(self, parsed_args): httpClient = HTTPClient.get_Instance() if(parsed_args.u and parsed_args.p): - response = AuthHandler.authenticate(parsed_args.u, parsed_args.p) + response = identity.authenticate(parsed_args.u, parsed_args.p) if "login" in response.text: print "Authentication has failed." return @@ -78,16 +71,10 @@ class ProjectCreate(ProjectBase): print response.text -class ProjectDelete(ProjectBase): +class ProjectDelete(command.Command): def get_parser(self, prog_name): parser = super(ProjectDelete, self).get_parser(prog_name) - parser.add_argument('-u', - type=str, - help='Username for authentication') - parser.add_argument('-p', - type=str, - help='Password for authentication') parser.add_argument('-name', type=str, required=True, @@ -97,26 +84,20 @@ class ProjectDelete(ProjectBase): def take_action(self, parsed_args): httpClient = HTTPClient.get_Instance() if(parsed_args.u and parsed_args.p): - response = AuthHandler.authenticate(parsed_args.u, parsed_args.p) + response = identity.authenticate(parsed_args.u, parsed_args.p) if "login" in response.text: print "Authentication has failed." return projects = httpClient.delete( - ProjectDelete.projects_url + "/" + parsed_args.name, + PROJECTS_URL + "/" + parsed_args.name, User.session) print projects -class ProjectPut(ProjectBase): +class ProjectPut(command.Command): def get_parser(self, prog_name): parser = super(ProjectPut, self).get_parser(prog_name) - parser.add_argument('-u', - type=str, - help='Username for authentication') - parser.add_argument('-p', - type=str, - help='Password for authentication') parser.add_argument('-name', type=str, required=True, @@ -131,12 +112,12 @@ class ProjectPut(ProjectBase): def take_action(self, parsed_args): httpClient = HTTPClient.get_Instance() if(parsed_args.u and parsed_args.p): - response = AuthHandler.authenticate(parsed_args.u, parsed_args.p) + response = identity.authenticate(parsed_args.u, parsed_args.p) if "login" in response.text: print "Authentication has failed." return projects = httpClient.put( - ProjectPut.projects_url + "/" + parsed_args.name, + PROJECTS_URL + "/" + parsed_args.name, User.session, parsed_args.project) print projects |