import requests import base64 def GenerateZertoRestSession_VcenterAuthentication(zvmIp, user, password): credStr = user + ":" + password encodedCredStr = "Basic " + base64.b64encode(credStr) print encodedCredStr payload = {"AuthenticationMethod": 1} dataval = json.dumps(payload) print (dataval) headers = {'Authorization': encodedCredStr, 'content-type': 'application/json'} url = "https://" + zvmIp + ":9669/v1/session/add" r = requests.post(url, data=dataval, headers=headers, verify=False) print r.status_code if(r.status_code != requests.codes.ok): raise Exception("Failed authenticating to ZVM") res = r.headers.get('x-zerto-session') print "session = " + res return res |
import requests import base64 def GenerateZertoRestSession_WindowsAuthentication(zvmIp, user, password): credStr = user + ":" + password encodedCredStr = "Basic " + base64.b64encode(credStr) print encodedCredStr headers = {'Authorization': encodedCredStr} url = "https://" + zvmIp + ":9669/v1/session/add" r = requests.post(url, headers=headers, verify=False) print r.status_code if(r.status_code != requests.codes.ok): raise Exception("Failed authenticating to ZVM") res = r.headers.get('x-zerto-session') print "session = " + res return res |
import requests def EndZertoRestSession(zvmIp, sessionId): url = "https://" + zvmIp + ":9669/v1/session" headers = {'x-zerto-session': sessionId, 'content-type': 'application/json'} r = requests.delete(url, headers=headers, verify=False) print r.status_codes |
$strZVMIP = "{ZVM IP}" $strZVMPort = "{ZVM HTTPS port}" $strZVMUser = "{ZVM user}" $strZVMPwd = "{ZVM user password}" ## Perform authentication so that Zerto APIs can run. Return a session identifier that needs to be inserted in the header for subsequent requests. function getxZertoSession ($userName, $password){ $baseURL = "https://" + $strZVMIP + ":"+$strZVMPort $xZertoSessionURL = $baseURL +"/v1/session/add" $authInfo = ("{0}: {1}" -f $userName,$password) $authInfo = [System.Text.Encoding]::UTF8.GetBytes($authInfo) $authInfo = [System.Convert]::ToBase64String($authInfo) $headers = @{Authorization=("Basic {0}" -f $authInfo)} $body = '{"AuthenticationMethod": "1"}' $contentType = "application/json" $xZertoSessionResponse = Invoke-WebRequest -Uri $xZertoSessionURL -Headers $headers -Method POST -Body $body -ContentType $contentType #$xZertoSessionResponse = Invoke-WebRequest -Uri $xZertoSessionURL -Headers $headers -Body $body -Method POST return $xZertoSessionResponse.headers.get_item("x-zerto-session") } #Extract x-zerto-session from the response, and add it to the actual API: $xZertoSession = getxZertoSession $strZVMUser $strZVMPwd $zertoSessionHeader = @{"x-zerto-session"=$xZertoSession} |
$body = '{"AuthenticationMethod": "1"}' |
$body = '{"AuthenticationMethod": "0"}' |
String loginType = args.Length > 4 ? args[4] : "1"; |
String loginType = args.Length > 4 ? args[4] : "0"; |
private void LogOut() { String addSessionUri = m_baseAddress + "/session"; HttpWebRequest request = WebRequest.Create(addSessionUri) as HttpWebRequest; //logging-out is about DELETING a session, with the DELETE http command request.Method = "DELETE"; request.Timeout = 10000; //you need to set the id of the session to be deleted --> logged-out request.Headers.Add(c_authorizationHeader, m_sessionId); HttpWebResponse httpResponse = request.GetResponse() as HttpWebResponse; if (httpResponse.StatusCode == HttpStatusCode.OK) { m_sessionId = String.Empty; Console.WriteLine("\nLogged out - by deleting the session"); } else { Console.WriteLine("Request {0} failed with code: {1}, {2}", request, httpResponse.StatusCode, httpResponse.StatusDescription); } } |