예제 #1
0
def test_ParseResultDottedDict():
    url = 'https://ansible.com/blog'
    parts = urls.urlparse(url)
    dotted_parts = urls.ParseResultDottedDict(parts._asdict())
    assert parts[0] == dotted_parts.scheme

    assert dotted_parts.as_list() == list(parts)
    def _prepare_links(self, collection):
        purge_links = list()
        purge_paths = [urlparse(link).path for link in collection]

        for path in purge_paths:
            link = "https://{0}:{1}{2}".format(
                self.client.provider['server'],
                self.client.provider['server_port'], path)
            purge_links.append(link)
        return purge_links
예제 #3
0
    def _prepare_links(self, collection):
        # this is to ensure no duplicates are in the provided collection
        no_dupes = list(set(collection))
        links = list()
        purge_paths = [urlparse(link).path for link in no_dupes]

        for path in purge_paths:
            link = "https://{0}:{1}{2}".format(
                self.client.provider['server'],
                self.client.provider['server_port'], path)
            links.append(link)
        return links
예제 #4
0
    def _normalize_url(self, url):
        '''
        The hostname in URLs from vmware may be ``*`` update it accordingly
        '''
        url_parts = generic_urlparse(urlparse(url))
        if url_parts.hostname == '*':
            if url_parts.port:
                url_parts.netloc = '%s:%d' % (self.params['hostname'],
                                              url_parts.port)
            else:
                url_parts.netloc = self.params['hostname']

        return urlunparse(url_parts.as_list())
예제 #5
0
 def __del__(self):
     if self.last_url is None:
         return
     token = self.request.headers.get('X-F5-Auth-Token', None)
     if not token:
         return
     try:
         p = generic_urlparse(urlparse(self.last_url))
         uri = "https://{0}:{1}/mgmt/shared/authz/tokens/{2}".format(
             p['hostname'], p['port'], token
         )
         self.delete(uri)
     except ValueError:
         pass
예제 #6
0
def tmos_version(client):
    uri = "https://{0}:{1}/mgmt/tm/sys/".format(
        client.provider['server'],
        client.provider['server_port'],
    )
    resp = client.api.get(uri)

    try:
        response = resp.json()
    except ValueError as ex:
        raise F5ModuleError(str(ex))

    if 'code' in response and response['code'] in [400, 403]:
        if 'message' in response:
            raise F5ModuleError(response['message'])
        else:
            raise F5ModuleError(resp.content)

    to_parse = urlparse(response['selfLink'])
    query = to_parse.query
    version = query.split('=')[1]
    return version
 def _set_volume_url(self, item):
     path = urlparse(item['selfLink']).path
     self.volume_url = "https://{0}:{1}{2}".format(
         self.client.provider['server'],
         self.client.provider['server_port'], path)