1 # Copyright 2017 Sandvine
5 # Licensed under the Apache License, Version 2.0 (the "License"); you may
6 # not use this file except in compliance with the License. You may obtain
7 # a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 # License for the specific language governing permissions and limitations
17 from io
import BytesIO
24 def __init__(self
,url
,user
='admin',password
='admin'):
27 self
._password
= password
28 self
._http
_header
= None
30 def set_http_header(self
,header
):
31 self
._http
_header
= header
33 def _get_curl_cmd(self
,endpoint
):
34 curl_cmd
= pycurl
.Curl()
35 curl_cmd
.setopt(pycurl
.URL
, self
._url
+ endpoint
)
36 curl_cmd
.setopt(pycurl
.SSL_VERIFYPEER
,0)
37 curl_cmd
.setopt(pycurl
.SSL_VERIFYHOST
,0)
38 curl_cmd
.setopt(pycurl
.USERPWD
, '{}:{}'.format(self
._user
,self
._password
))
40 curl_cmd
.setopt(pycurl
.HTTPHEADER
, self
._http
_header
)
43 def get_cmd( self
, endpoint
):
46 curl_cmd
=self
._get
_curl
_cmd
(endpoint
)
47 curl_cmd
.setopt(pycurl
.HTTPGET
,1)
48 curl_cmd
.setopt(pycurl
.WRITEFUNCTION
, data
.write
)
52 return json
.loads(data
.getvalue().decode())
55 def delete_cmd( self
, endpoint
):
57 curl_cmd
=self
._get
_curl
_cmd
(endpoint
)
58 curl_cmd
.setopt(pycurl
.CUSTOMREQUEST
, "DELETE")
59 curl_cmd
.setopt(pycurl
.WRITEFUNCTION
, data
.write
)
63 return json
.loads(data
.getvalue().decode())
66 def post_cmd( self
, endpoint
='', postfields_dict
=None, formfile
=None, ):
68 curl_cmd
=self
._get
_curl
_cmd
(endpoint
)
69 curl_cmd
.setopt(pycurl
.POST
,1)
70 curl_cmd
.setopt(pycurl
.WRITEFUNCTION
, data
.write
)
72 if postfields_dict
is not None:
73 jsondata
=json
.dumps(postfields_dict
)
74 curl_cmd
.setopt(pycurl
.POSTFIELDS
,jsondata
)
76 if formfile
is not None:
77 curl_cmd
.setopt(pycurl
.HTTPPOST
,[((formfile
[0],(pycurl
.FORM_FILE
,formfile
[1])))])
82 return json
.loads(data
.getvalue().decode())