Esempio n. 1
0
    def __init__(self, server):
        self.logger = LoggerFactory.getLogger("com.xebialabs.snyk-plugin")
        if server in [None, ""]:
            raise Exception("server is undefined")

        self.orgId = server['orgId']
        self.http_request = HttpRequest(server)
 def revoke_token(self):
     print "Revoking token"
     httpRequest = HttpRequest(self.httpConnection, None, None)
     servicenowApiUrl = "/oauth_revoke_token.do?token=%s" % self.accessToken
     response = httpRequest.get(servicenowApiUrl)
     servicenowApiUrl = "/oauth_revoke_token.do?token=%s" % self.refreshToken
     response = httpRequest.get(servicenowApiUrl)
def get_applications(ancestor, applications_count):
    request = HttpRequest(server, username, password)
    applications_batch = []
    results_remain = True
    page = 0
    while results_remain:
        endpoint = '/deployit/repository/query?page={}&resultsPerPage=100&type=udm.Application&ancestor={}'.format(
            page, ancestor)
        response = request.get(endpoint, contentType='application/json')
        if not response.isSuccessful():
            raise Exception(
                "Failed to get application information from XL Deploy. Server return [%s], with content [%s]"
                % (response.status, response.response))
        results = json.loads(response.response)
        if results == []:
            results_remain = False
        else:
            for result in results:
                applications_batch.append({
                    "id": "{}".format(applications_count),
                    "name": result["ref"]
                })
                applications_count += 1
            page += 1
    return {"batch": applications_batch, "count": applications_count}
Esempio n. 4
0
 def _putRequest(self, url, data):
     encoded_data = json.dumps(data).encode(self.encoding)
     response = HttpRequest(self.params).put(url,
                                             encoded_data,
                                             contentType=self.content_type,
                                             headers=self.headers)
     return response
 def __init__(self, httpConnection, apiKey, username="", password=""):
     self.headers        = {"X-NuGet-ApiKey": apiKey}
     self.query_params   = ""
     self.httpConnection = httpConnection
     self.httpConnection['username'] = username
     self.httpConnection['password'] = password
     self.httpRequest = HttpRequest(self.httpConnection, username, password)
Esempio n. 6
0
    def __init__(self, tokenServer, url, username, password):

        try:
            from urlparse import urlparse  # Python 2.X
        except ImportError:
            from urllib.parse import urlparse  # Python 3+

        # Fixes some issues with TLS
        os.environ['REQUESTS_CA_BUNDLE'] = 'ca.pem'

        # logger.info("Executing SamlTokenProvider.__init__()")
        # print("Executing SamlTokenProvider.__init__() \r\n")

        # print("url: " + url + " \r\n")
        hostname = urlparse(url).hostname
        # print("hostname: " + hostname + " \r\n")

        # logger.info("url = %s" % url)
        self.tokenServer = tokenServer
        self.tokenParams = {
            'url': 'https://login.microsoftonline.com',
            'username': username,
            'password': password
        }
        self.cookieParams = {
            'url': 'https://' + urlparse(url).hostname,
            'username': username,
            'password': password
        }
        self.url = url
        self.tokenRequest = HttpRequest(self.tokenParams, username, password)
        self.cookieRequest = HttpRequest(self.cookieParams, username, password)
        self.username = username
        self.password = password

        # External Security Token Service for SPO
        self.sts = {'host': 'login.microsoftonline.com', 'path': '/extSTS.srf'}

        # Sign in page url
        self.login = '******'

        # Last occurred error
        self.error = ''

        self.token = None
        self.FedAuth = None
        self.rtFa = None
Esempio n. 7
0
 def testServer(self, variables):
     httpConnection = variables['params']
     httpRequest = HttpRequest(httpConnection)
     response = httpRequest.get("/")
     self.logger.error("Response Status = %s" % response.getStatus())
     if response.getStatus() == 200:
         return
     sys.exit(-1)
 def __init__(self, httpConnection, username=None, password=None):
     self.headers = {}
     self.query_params = ""
     self.httpConnection = httpConnection
     if username is not None:
         self.httpConnection['username'] = username
     if password is not None:
         self.httpConnection['password'] = password
     self.httpRequest = HttpRequest(self.httpConnection, username, password)
Esempio n. 9
0
def call_url(verb, data, baseUrl, testUrl, keyId, keySecret, serverProxyHost, serverProxyPort, serverProxyUsername, serverProxyPassword ):
    r"""A convenience definition to call a URL with the necessary headers
    and payload. No need to worry about how to POST multipart/form-data
    or how to handle certain error exceptions. The return value is either 
    the respopnse body or error reason code.
    """

    params = {
        'url': baseUrl,
        'username': keyId,
        'password': keySecret,
        'proxyHost': serverProxyHost,
        'proxyPort': serverProxyPort,
        'proxyUsername': serverProxyUsername,
        'proxyPassword': serverProxyPassword
    }

    try:
        if verb == 'post':
            response = HttpRequest(params).post(testUrl, json.dumps(data), contentType='application/json')
        elif verb == 'put':
            response = HttpRequest(params).put(testUrl, json.dumps(data), contentType='application/json')
        elif verb == 'patch':
            response = HttpRequest(params).patch(testUrl, json.dumps(data), contentType='application/json')
        elif verb == 'delete':
            response = HttpRequest(params).delete(testUrl, json.dumps(data), contentType='application/json')
        elif verb == 'get':
            response = HttpRequest(params).get(testUrl, contentType='application/json')
        else:
            logger.error("FATAL: HTTP verb error! Only POST, PUT, PATCH, DELETE and GET verbs supported.")
            sys.exit(201)

        output = json.loads(response.getResponse())

    # Catch all exceptions
    except Exception as error:
        logger.error("FATAL: Error! %s" % error)
        raise Exception(
            "Failed to connect to Blazemeter Server."
        )
        sys.exit(205)

    return output
Esempio n. 10
0
 def __init__(self, httpConnection, username=None, password=None):
     self.headers = {"Accept": "application/json"}
     self.accessToken = None
     self.refreshToken = None
     self.httpConnection = httpConnection
     if username:
         self.httpConnection['username'] = username
     if password:
         self.httpConnection['password'] = password
     self.httpRequest = HttpRequest(self.httpConnection, username, password)
 def __init__(self, v1CI):
     self.Token = v1CI['accessToken']
     self.uriBase = v1CI['uriBase']
     self.storyStatus = v1CI['StoryStatus']
     self.httpConnection = v1CI
     self.httpRequest = HttpRequest(v1CI)
     self.optionHeader = {
         "Accept": "application/json",
         "Authorization": "Bearer %s" % self.Token
     }
Esempio n. 12
0
 def __init__(self,
              httpConnection,
              webhookToken,
              maxChecksPerDeploymentId=30,
              timeout=5):
     self.httpConnection = httpConnection
     self.httpRequest = HttpRequest(httpConnection)
     self.webhookToken = webhookToken
     self.headers = self._get_headers()
     self.maxChecksPerDeploymentId = maxChecksPerDeploymentId
     self.timeout = timeout
Esempio n. 13
0
 def __init__(self, httpConnection, username=None, password=None): 
     self.headers        = {}
     self.accessToken    = None
     self.refreshToken   = None
     self.httpConnection = httpConnection
     self.useOAuth = httpConnection['useOAuth']
     if username:
        self.httpConnection['username'] = username
     if password:
        self.httpConnection['password'] = password
     self.httpRequest = HttpRequest(self.httpConnection, username, password)
     self.sysparms = 'sysparm_display_value=%s&sysparm_input_display_value=%s' % (self.httpConnection['sysparmDisplayValue'], self.httpConnection['sysparmInputDisplayValue'])
 def complete_task(self, taskId, username=None, password=None):
     request = HttpRequest(self.httpConnection, username, password)
     context = '/api/v1/tasks/%s/complete' % taskId
     body = '{"comment":"Completed by XL Deploy"}'
     response = request.post(context, body, contentType='application/json')
     if response.isSuccessful() and self.isTaskCompleted(taskId):
         print "Current Task with id [%s] is %s." % (taskId, COMPLETED)
         return True
     else:
         print "Failed to complete task with id: %s" % taskId
         response.errorDump()
         sys.exit(1)
Esempio n. 15
0
    def __init__(self, tokenServer, url, username, password):

        logger.info("Executing SamlTokenProvider.__init__()")
        logger.info("url = %s" % url)
        self.tokenServer = tokenServer
        self.tokenParams = {
            'url': 'https://login.microsoftonline.com',
            'username': username,
            'password': password
        }
        self.cookieParams = {
            'url': 'https://login.microsoftonline.com',
            'username': username,
            'password': password
        }
        self.url = url
        self.tokenRequest = HttpRequest(self.tokenParams, username, password)
        self.cookieRequest = HttpRequest(self.cookieParams, username, password)
        self.username = username
        self.password = password

        # External Security Token Service for SPO
        self.sts = {'host': 'login.microsoftonline.com', 'path': '/extSTS.srf'}

        # Sign in page url
        self.login = '******'

        #dwang_DEBUG
        self.msftlogin = '******'
        self.msfthost = 'login.microsoftonline.com'

        # Last occurred error
        self.error = ''

        self.token = None
        self.FedAuth = None
        self.rtFa = None

        logger.info("Exiting SamlTokenProvider.__init__()")
 def assign_task(self, task_id, owner, username=None, password=None):
     request = HttpRequest(self.httpConnection, username, password)
     context = '/api/v1/tasks/%s/assign/%s' % (task_id, owner)
     body = ''
     response = request.post(context, body, contentType='application/json')
     if response.isSuccessful():
         print "Assigned task with id [%s] to [%s]" % (task_id, owner)
         return True
     else:
         print "Failed to assign task with id [%s] to [%s]" % (task_id,
                                                               owner)
         response.errorDump()
         sys.exit(1)
 def isTaskCompleted(self, taskId, username=None, password=None):
     request = HttpRequest(self.httpConnection, username, password)
     context = '/api/v1/tasks/%s' % taskId
     response = request.get(context, contentType='application/json')
     if response.isSuccessful():
         data = json.loads(response.response)
         status = data["status"]
         print "Current Task with id [%s] is %s." % (taskId, status)
         return status == COMPLETED
     else:
         print "Failed to get status for task with id: %s" % taskId
         response.errorDump()
         sys.exit(1)
Esempio n. 18
0
 def meetup_getpostcomments(self, variables):
     httpConnection = variables['server']
     httpRequest = HttpRequest(httpConnection, variables['username'], variables['password'])
     url = "/comments?postId=%s" % variables['postId']
     self.logger.error("Get Post Comments %s" % (url))
     response = httpRequest.get(url, contentType='application/json')
     jsonData = response.getResponse()
     data = json.loads( jsonData )
     listData = []
     for recordData in data:
         self.logger.error( recordData['body'] )
         listData.append( recordData['body'] )
     returnData = {"responseJson": jsonData, "comments": listData }
     return returnData
Esempio n. 19
0
 def refresh_token(self, httpConnection, refreshToken):
     servicenowUrl = "/oauth_token.do"
     content                  = {}
     content['grant_type']    = 'refresh_token'
     content['client_id']     = httpConnection['clientId']
     content['client_secret'] = httpConnection['clientSecret']
     content['refresh_token'] = refreshToken
     httpRequest = HttpRequest(httpConnection, None, None)
     response = httpRequest.post(servicenowUrl, body=urllib.urlencode(content), contentType='application/x-www-form-urlencoded')
     if response.getStatus() == SN_RESULT_STATUS:
         data = json.loads(response.getResponse())
         return data
     print "Unable to refresh token using %s" % refreshToken
     self.throw_error(response)        
Esempio n. 20
0
    def __init__(self, httpConnection, username=None, password=None):
        self.headers = {}
        self.accessToken = None
        self.httpConnection = httpConnection

        self.username = username if username else httpConnection['username']
        self.password = password if password else httpConnection['password']

        # clear username/password so underlying library doesn't try to do basic authentication
        del httpConnection['username']
        del httpConnection['password']

        self.httpRequest = HttpRequest(self.httpConnection)

        self.issue_token()
Esempio n. 21
0
 def create_token(self, httpConnection):
     servicenow_oauth_url     = "/oauth_token.do"
     content                  = {}
     content['grant_type']    = 'password'
     content['client_id']     = httpConnection['clientId']
     content['client_secret'] = httpConnection['clientSecret']
     content['username']      = httpConnection['oauthUsername']
     content['password']      = httpConnection['oauthPassword']
     httpRequest              = HttpRequest(httpConnection, None, None)
     response                 = httpRequest.post(servicenow_oauth_url, body=urllib.urlencode(content), contentType='application/x-www-form-urlencoded')
     if response.getStatus() == SN_RESULT_STATUS:
         data = json.loads(response.getResponse())
         return data
     print 'Could not get access token'
     self.throw_error(response)
 def __init__(self, httpConnection, username=None, password=None):
     self.headers = {'Content-type': 'application/json; charset=UTF-8'}
     self.accessToken = None
     self.refreshToken = None
     self.httpConnection = httpConnection
     self.useServicenowApp = httpConnection['useServicenowApp']
     self.useOAuth = httpConnection['useOAuth']
     self.service_now_url = httpConnection['url'].rstrip("/")
     if username:
         self.httpConnection['username'] = username
     if password:
         self.httpConnection['password'] = password
     self.httpRequest = HttpRequest(self.httpConnection, username, password)
     self.sysparms = 'sysparm_display_value=%s&sysparm_input_display_value=%s' % (
         self.httpConnection['sysparmDisplayValue'],
         self.httpConnection['sysparmInputDisplayValue'])
def get_applications_metadata(applications):
    request = HttpRequest(server, username, password)
    application_metadata = {}
    for application in applications:
        applicationShortName = application["name"].split('/')[-1]
        application_metadata[applicationShortName] = {}

        application_metadata[applicationShortName]["plotId"] = application[
            "id"]

        endpoint = '/deployit/repository/ci/{}'.format(application["name"])
        response = request.get(endpoint, contentType='application/json')
        if not response.isSuccessful():
            raise Exception(
                "Failed to get application information from XL Deploy. Server return [%s], with content [%s]"
                % (response.status, response.response))
        lastVersion = json.loads(response.response)["lastVersion"]
        application_metadata[applicationShortName]["lastVersion"] = lastVersion

        if lastVersion == "":
            applicationDependencies = []
        else:
            endpoint = '/deployit/repository/ci/{}/{}'.format(
                application["name"], lastVersion)
            response = request.get(endpoint, contentType='application/json')
            if not response.isSuccessful():
                raise Exception(
                    "Failed to get deployment package information from XL Deploy. Server return [%s], with content [%s]"
                    % (response.status, response.response))
            if json.loads(response.response)["type"] == "udm.CompositePackage":
                applicationDependencies = []
            else:
                applicationDependencies = json.loads(
                    response.response)["applicationDependencies"].keys()
        application_metadata[applicationShortName][
            "applicationDependencies"] = applicationDependencies

        application_metadata[applicationShortName]["dependedUponCount"] = 0

    for application in application_metadata.keys():
        for dependency in application_metadata[application][
                "applicationDependencies"]:
            if dependency in application_metadata.keys(
            ):  # only add if dependency exists in XLD
                application_metadata[dependency]["dependedUponCount"] += 1

    return application_metadata
 def __init__(self, httpConnection, username=None, password=None):
     self.httpConnection = httpConnection
     if username is not None:
         self.httpConnection['username'] = username
     if password is not None:
         self.httpConnection['password'] = password
     params = {
         'url': httpConnection['url'],
         'proxyHost': httpConnection['proxyHost'],
         'proxyPort': httpConnection['proxyPort']
     }
     self.httpRequest = HttpRequest(params)
     self.accessToken = self._getAuthToken()
     self.headers = {
         'Accept': 'application/json',
         'Cookie': 'token=%s' % self.accessToken
     }
def hasPermission(task, is610andAbove, configs=None):
    de = getProperty(t, is610andAbove, "environment", "deploymentEnvironment")
    if de != None:
        u = getProperty(t, is610andAbove, "username")
        p = getProperty(t, is610andAbove, "password", isPassword=True)
        dp = getProperty(t, is610andAbove, "deploymentPackage")
        if is610andAbove:
            s = getProperty(t, is610andAbove, "server")
            if u == None or u == "":
                u = s.username
            if p == None or p == "":
                p = s.password
            url = s.url
        else:
            s = findServerData(getProperty(t, is610andAbove, "server"),
                               configs)[0]
            if u == None or u == "":
                u = s["username"]
            if p == None or p == "":
                p = s["password"]
                p = "admin"
            url = s["url"]
        http_request = HttpRequest(
            {
                "url": url,
                "username": str(u),
                "password": str(p)
            }, "", "")
        response = http_request.get(
            "/deployit/security/check/deploy%23initial/Environments/" + de,
            contentType="application/xml")
        if response.status == 200:
            res_text = response.getResponse()
            if res_text.find("false") > -1:
                return False
            else:
                return True
        else:
            return False
    else:
        return False
Esempio n. 26
0
 def __init__(self, buildId, testName, testNameWildCard, hourRange, limit,
              http_connection, acctUsername, accessKey):
     self.configUsername = acctUsername
     self.configAccessKey = accessKey
     self.http_connection = http_connection
     # If not username and accessKey not configured in the getJobs task, use the info from the
     #    SauceLabs server configuration
     if not self.configUsername:
         self.configUsername = http_connection.get("username")
     if not self.configAccessKey:
         self.configAccessKey = http_connection.get("password")
     self.http_request = HttpRequest(http_connection, self.configUsername,
                                     self.configAccessKey)
     self.acctUsername = acctUsername
     self.buildId = buildId
     self.testName = testName
     self.testNameWildCard = testNameWildCard
     self.beginRange = None
     self.endRange = None
     self.limit = limit
     if hourRange and hourRange > 0:
         self.endRange = str(int(time.time()))
         self.beginRange = str(int(time.time()) - (int(hourRange) * 3600))
Esempio n. 27
0
 def __init__(self, http_connection, username=None, password=None):
     self.http_request = HttpRequest(http_connection, username, password)
Esempio n. 28
0
 def __init__(self, server, username, password):
     self.logger = LoggerFactory.getLogger("com.xebialabs.bitbucket-plugin")
     creds = CredentialsFallback(server, username,
                                 password).getCredentials()
     self.http_request = HttpRequest(server, creds['username'],
                                     creds['password'])
#

from jenkinsci import JenkinsciScript
from xlrelease.HttpRequest import HttpRequest
import json, urllib

jenkins_server = securityApi.decrypt(
    configurationApi.getConfiguration(request.query['serverId']))

params = {
    'url': jenkins_server.url,
    'username': jenkins_server.username,
    'password': jenkins_server.password,
    'proxyHost': jenkins_server.proxyHost,
    'proxyPort': jenkins_server.proxyPort,
    'proxyUsername': jenkins_server.proxyUsername,
    'proxyPassword': jenkins_server.proxyPassword
}

buildId = request.query['buildId']
jobId = request.query['jobid']
http_request = HttpRequest(params)
jenkins_response = http_request.get('/job/' + jobId + '/' + buildId +
                                    '/testReport/api/json')

if jenkins_response.isSuccessful():
    json_data = json.loads(jenkins_response.getResponse())
    response.entity = json_data
else:
    error = json.loads(jenkins_response.getResponse())
    sys.exit(1)
Esempio n. 30
0
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#

import json
from xlrelease.HttpRequest import HttpRequest

if not sonarServer:
    raise Exception("Sonar server ID must be provided")

sonar_url = sonarServer['url']
sonar_server_api_url = '/api/measures/component?componentKey=%s&metricKeys=%s' % (
    resource, ','.join(metrics.keys()))
http_request = HttpRequest(sonarServer, username, password)
sonar_response = http_request.get(sonar_server_api_url)
if sonar_response.isSuccessful():
    json_data = json.loads(sonar_response.getResponse())
    data1 = {}
    data1['id'] = json_data['component']['id']
    data1['key'] = json_data['component']['key']
    data1['name'] = json_data['component']['name']
    data1['sonarUrl'] = sonar_url
    for item in json_data['component']['measures']:
        data1[item['metric']] = item['value']
    data = data1
else:
    error = json.loads(sonar_response.getResponse())
    if 'Invalid table' in error['error']['message']:
        print "Invalid Table Name"