Skip to content

Commit 3fec2f6

Browse files
author
Alpine Release
committed
update to support https
1 parent 04900df commit 3fec2f6

File tree

8 files changed

+64
-23
lines changed

8 files changed

+64
-23
lines changed

alpine/apiclient.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ def __init__(self, host=None, port=None, username=None, password=None, is_secure
5151

5252
super(APIClient, self).__init__(token=token)
5353
self._setup_logging(default_level=logging_level)
54-
self.is_secure = is_secure
5554

5655
if is_secure:
5756
self.protocol = 'https'
@@ -64,13 +63,20 @@ def __init__(self, host=None, port=None, username=None, password=None, is_secure
6463
self.host = host
6564
else:
6665
self.host = "{0}:{1}".format(host, port)
67-
66+
### disable InsecureRequestWarning
67+
requests.packages.urllib3.disable_warnings()
6868
self.session = requests.Session() # instantiate a session for requests
6969

7070
self.base_url = "{0}://{1}/api".format(self.protocol, self.host)
7171

72-
self.ca_certs = ca_certs
73-
self.validate_certs = validate_certs
72+
self.verify = False
73+
if validate_certs == False or ca_certs is None:
74+
self.verify = validate_certs
75+
else:
76+
self.verify = ca_certs
77+
78+
self.session.verify = self.verify
79+
7480
self.user_id = None
7581
if username and password:
7682
self.login(username, password)
@@ -95,19 +101,12 @@ def login(self, username, password):
95101
# url = self.base_url + "/sessions?session_id=NULL"
96102
body = {"username": username, "password": password}
97103
# TODO login with cert.
98-
cert_path = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),
99-
"../host_deploy/resource/ssl/certificates/test.crt")
100-
101-
key_path = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),
102-
"../host_deploy/resource/ssl/certificates/test.key")
103-
104104
self.session.headers.update({"Content-Type": "application/x-www-form-urlencoded"})
105105

106106
if self.protocol == 'http':
107107
login_response = self.session.post(url, data=body)
108108
else:
109109
login_response = self.session.post(url, data=body,
110-
verify=self.validate_certs, cert=(cert_path, key_path),
111110
headers={'Connection': 'close'})
112111
if login_response.status_code == 201:
113112
response = login_response.json()

tests/api/alpineunittest.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,14 @@
1919
class AlpineTestCase(TestCase):
2020

2121
def setUp(self):
22-
self.host = "10.0.0.205"
23-
self.port = "8080"
24-
self.regex_alpine_version_string = "6.3.*"
25-
self.username = "demoadmin"
26-
self.password = "4*DemoAdmin"
22+
self.is_secure = True
23+
self.validate_certs = False
24+
self.ca_certs = None
25+
self.host = "alpineqa2.alpinenow.local"
26+
self.port = "8443"
27+
self.regex_alpine_version_string = "6.4.*"
28+
self.username = "ggao"
29+
self.password = "1*Alpine"
2730

2831
def tearDown(self):
2932
pass

tests/api/test_alpine.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ def setUp(self):
1111
# Creating Alpine Client in setUp Function for tests
1212
global alpine_client
1313
global login_info
14-
alpine_client = APIClient(self.host, self.port)
14+
alpine_client = APIClient(self.host, self.port,
15+
is_secure=self.is_secure,
16+
validate_certs=self.validate_certs,
17+
ca_certs=self.ca_certs)
1518
login_info = alpine_client.login(self.username, self.password)
1619

1720
def tearDown(self):

tests/api/test_dataSource.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@ def setUp(self):
1212
# Creating Alpine Client in setUp Function for tests
1313
global alpine_client
1414
global login_info
15-
alpine_client = APIClient(self.host, self.port)
15+
alpine_client = APIClient(self.host, self.port,
16+
is_secure=self.is_secure,
17+
validate_certs=self.validate_certs,
18+
ca_certs=self.ca_certs)
1619
login_info = alpine_client.login(self.username, self.password)
1720

1821
global db_datasource_id

tests/api/test_job.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ def setUp(self):
1616
# Creating Alpine Client in setUp Function for tests
1717
global alpine_client
1818
global login_info
19-
alpine_client = APIClient(self.host, self.port)
19+
alpine_client = APIClient(self.host, self.port,
20+
is_secure=self.is_secure,
21+
validate_certs=self.validate_certs,
22+
ca_certs=self.ca_certs)
2023
login_info = alpine_client.login(self.username, self.password)
2124

2225
global workspace_id

tests/api/test_user.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ def setUp(self):
1313
# Creating Alpine Client in setUp Function for tests
1414
global alpine_client
1515
global login_info
16-
alpine_client = APIClient(self.host, self.port)
16+
alpine_client = APIClient(self.host, self.port,
17+
is_secure=self.is_secure,
18+
validate_certs=self.validate_certs,
19+
ca_certs=self.ca_certs)
1720
login_info = alpine_client.login(self.username, self.password)
1821

1922
def test_create_user(self):

tests/api/test_workfile.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ def setUp(self):
1717
# Creating Alpine Client in setUp Function for tests
1818
global alpine_client
1919
global login_info
20-
alpine_client = APIClient(self.host, self.port)
20+
alpine_client = APIClient(self.host, self.port,
21+
is_secure=self.is_secure,
22+
validate_certs=self.validate_certs,
23+
ca_certs=self.ca_certs)
2124
login_info = alpine_client.login(self.username, self.password)
2225

2326
global workspace_name
@@ -126,6 +129,13 @@ def test_run_workflow_variable_quote(self):
126129
workfile_id = alpine_client.workfile.get_id(workfile_name, workspace_id)
127130
process_id = alpine_client.workfile.process.run(workfile_id, variables)
128131
alpine_client.workfile.process.wait_until_finished(workfile_id, process_id)
132+
133+
def test_run_workflow_variable_single_quote_in_variable(self):
134+
variables = [{"name": "@min_credit_line", "value": "7"}, {"name": "@outlook", "value": "'su\'nny'"}]
135+
workfile_id = alpine_client.workfile.get_id(workfile_name, workspace_id)
136+
process_id = alpine_client.workfile.process.run(workfile_id, variables)
137+
alpine_client.workfile.process.wait_until_finished(workfile_id, process_id)
138+
129139

130140
def test_query_workflow_status(self):
131141
valid_workfile_status = ["WORKING", "FINISHED"]
@@ -151,7 +161,21 @@ def test_download_workflow_results(self):
151161
while workfile_status != "FINISHED":
152162
time.sleep(1)
153163
workfile_status = alpine_client.workfile.process.query_status(process_id)
154-
response = alpine_client.workfile.process.download_results(workfile_id, process_id)
164+
results = alpine_client.workfile.process.download_results(workfile_id, process_id)
165+
results_metadata = alpine_client.workfile.process.get_metadata(results)
166+
start_time = results_metadata['startTime'] #u'2018-03-14T06:15:42.828-0700'
167+
end_time = results_metadata['endTime'] #u'2018-03-14T06:15:51.480-0700'
168+
status = results_metadata['status'] #Could be either u'FAILURE' or u'SUCCESS'
169+
print(status)
170+
numberOfError = results_metadata['noOfError']
171+
if results_metadata['noOfError'] != 0:
172+
for log_step in results["logs"]:
173+
errorMessage = log_step["errMessage"]
174+
if errorMessage != 'null':
175+
nodeName = log_step["nodeName"]
176+
uuid = log_step["uuid"]
177+
print("Error Message of Node {0} is: {1}".format(uuid, errorMessage))
178+
print (status)
155179

156180
def test_stop_workflow(self):
157181
variables = [{"name": "@min_credit_line", "value": "7"}]

tests/api/test_workspace.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@ def setUp(self):
1212
# Creating Alpine Client in setUp Function for tests
1313
global alpine_client
1414
global login_info
15-
alpine_client = APIClient(self.host, self.port)
15+
alpine_client = APIClient(self.host, self.port,
16+
is_secure=self.is_secure,
17+
validate_certs=self.validate_certs,
18+
ca_certs=self.ca_certs)
1619
login_info = alpine_client.login(self.username, self.password)
1720

1821
def test_create_new_workspace(self):

0 commit comments

Comments
 (0)