Ejemplo n.º 1
0
def iops_get(conninfo, credentials, specific_type=None):
    method = 'GET'
    uri = UriBuilder(path='/v1/analytics/iops')
    if specific_type:
        uri.add_query_param('type', specific_type)

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 2
0
def iops_get(conninfo, credentials, specific_type=None):
    method = "GET"
    uri = UriBuilder(path="/v1/stats/iops")
    if specific_type:
        uri.add_query_param('type', specific_type)

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 3
0
def current_activity_get(conninfo, credentials, specific_type=None):
    method = "GET"
    uri = UriBuilder(path="/v1/analytics/activity/current")
    if specific_type:
        uri.add_query_param('type', specific_type)

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 4
0
def config_put(conninfo,
               credentials,
               install_path,
               target,
               override_version=False):
    '''
    Set upgrade config.

    Warning: override_version allows an unsafe upgrade, which can result in
    corruption if used improperly. It should never be used on a production
    system.  It is useful when upgrading from a non-release build.
    '''
    req = {
        'install_path': str(install_path),
        'target': str(target),
    }
    method = "PUT"
    uri = UriBuilder(path="/v1/upgrade/settings")
    if override_version:
        uri.add_query_param('override_compatibility_check', 'True')

    return request.rest_request(conninfo,
                                credentials,
                                method,
                                str(uri),
                                body=req)
Ejemplo n.º 5
0
def node_specific_quorum(conninfo, credentials, expected_nodes):
    method = "GET"
    uri = UriBuilder(path="/v1/node/quorum/specific")

    uri.add_query_param('nodes', ','.join(expected_nodes))

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 6
0
def iops_get(conninfo, credentials, specific_type=None):
    method = 'GET'
    uri = UriBuilder(path='/v1/analytics/iops')
    if specific_type:
        uri.add_query_param('type', specific_type)

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 7
0
def current_activity_get(conninfo, credentials, specific_type=None):
    method = "GET"
    uri = UriBuilder(path="/v1/analytics/activity/current")
    if specific_type:
        uri.add_query_param('type', specific_type)

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 8
0
    def __init__(self, initial_url, fn, page_size=None):
        self.initial_url = initial_url
        self.rest_request = fn
        self.page_size = page_size

        self.uri = UriBuilder(path=initial_url, rstrip_slash=False)
        if page_size is not None:
            self.uri.add_query_param("limit", page_size)
Ejemplo n.º 9
0
def superblock(conninfo, credentials, use_hex=False):
    method = "GET"
    uri = UriBuilder(path="/v1/debug/inspect/superblock")

    if use_hex:
        uri.add_query_param('hex')

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 10
0
def config(conninfo, credentials, use_hex):
    method = "GET"
    uri = UriBuilder(path="/v1/debug/inspect/config")

    if use_hex:
        uri.add_query_param('hex')

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 11
0
def build_files_uri(components, append_slash=False):
    uri = UriBuilder(path="/v1/files")

    if components:
        for component in components:
            uri.add_path_component(component)

    if append_slash:
        uri.append_slash()

    return uri
Ejemplo n.º 12
0
def nfs_modify_export(conninfo,
        credentials,
        id_,
        export_path,
        fs_path,
        description,
        restrictions,
        allow_fs_path_create=False,
        present_64_bit_fields_as_32_bit=False,
        if_match=None):

    allow_fs_path_create_ = "true" if allow_fs_path_create else "false"

    if_match = if_match if if_match is None else if_match

    method = "PUT"
    uri = str(
        UriBuilder(path="/v2/nfs/exports/").
        add_path_component(id_).
        add_query_param("allow-fs-path-create", allow_fs_path_create_))

    share_info = {
        'id': id_,
        'export_path':  export_path,
        'fs_path':      fs_path,
        'description':  description,
        'restrictions': [r.dictionary() for r in restrictions],
        'present_64_bit_fields_as_32_bit': present_64_bit_fields_as_32_bit,
    }

    return request.rest_request(conninfo, credentials, method, uri,
        body=share_info, if_match=if_match)
Ejemplo n.º 13
0
def smb_delete_share(conninfo, credentials, id_=None, name=None):
    assert [id_, name].count(None) == 1

    method = "DELETE"
    uri = str(
        UriBuilder(path="/v2/smb/shares").add_path_component(id_ or name))
    return request.rest_request(conninfo, credentials, method, uri)
Ejemplo n.º 14
0
def nfs_add_export(
        conninfo,
        credentials,
        export_path,
        fs_path,
        description,
        restrictions,
        allow_fs_path_create=False,
        present_64_bit_fields_as_32_bit=False):

    method = "POST"
    allow_fs_path_create_ = "true" if allow_fs_path_create else "false"

    uri = str(UriBuilder(path="/v2/nfs/exports/", rstrip_slash=False).
            add_query_param("allow-fs-path-create", allow_fs_path_create_))

    share_info = {
        'export_path':  export_path,
        'fs_path':      fs_path,
        'description':  description,
        'restrictions': [r.dictionary() for r in restrictions],
        'present_64_bit_fields_as_32_bit': present_64_bit_fields_as_32_bit,
    }

    return request.rest_request(conninfo, credentials, method, uri,
        body=share_info)
Ejemplo n.º 15
0
def directory(conninfo, credentials, inode_num):
    method = "GET"
    uri = str(
        UriBuilder(
            path="/v1/debug/inspect/directory").add_path_component(inode_num))

    return request.rest_request(conninfo, credentials, method, uri)
Ejemplo n.º 16
0
def get_quota_with_status(conninfo, credentials, id_, if_match=None):
    method = "GET"
    uri = UriBuilder(path="/v1/files/quotas/status/{}".format(id_))
    return request.rest_request(conninfo,
                                credentials,
                                method,
                                unicode(uri),
                                if_match=if_match)
Ejemplo n.º 17
0
def delete(conninfo, credentials, key, uid):
    uid = int(uid)

    method = "DELETE"
    uri = UriBuilder(path="/v1/kv")\
        .add_path_component(uid)\
        .add_path_component(key)
    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 18
0
def delete_quota(conninfo, credentials, id_, if_match=None):
    method = "DELETE"
    uri = UriBuilder(path="/v1/files/quotas/{}".format(id_))
    return request.rest_request(conninfo,
                                credentials,
                                method,
                                unicode(uri),
                                if_match=if_match)
Ejemplo n.º 19
0
def dump(conninfo, credentials, file_):
    method = "GET"
    uri = str(UriBuilder(path="/v1/debug/trace/dump"))
    return request.rest_request(conninfo,
                                credentials,
                                method,
                                uri,
                                response_file=file_)
Ejemplo n.º 20
0
def nfs_delete_export(conninfo, credentials, id_=None, export_path=None):
    assert [id_, export_path].count(None) == 1

    method = "DELETE"
    uri = str(UriBuilder(path="/v2/nfs/exports/").
        add_path_component(id_ or export_path))

    return request.rest_request(conninfo, credentials, method, uri)
Ejemplo n.º 21
0
def create_quota(conninfo, credentials, id_, limit_in_bytes):
    body = {'id': str(id_), 'limit': str(limit_in_bytes)}
    method = "POST"
    uri = UriBuilder(path="/v1/files/quotas/", rstrip_slash=False)
    return request.rest_request(conninfo,
                                credentials,
                                method,
                                unicode(uri),
                                body=body)
Ejemplo n.º 22
0
def config_set(conninfo, credentials, mock, time=None):
    method = "PUT"
    uri = str(UriBuilder(path="/v1/debug/mock-clock"))

    config = { "mock": mock }
    if mock:
        config['time'] = time

    return request.rest_request(conninfo, credentials, method, uri, body=config)
Ejemplo n.º 23
0
def update_quota(conninfo, credentials, id_, limit_in_bytes, if_match=None):
    body = {'id': str(id_), 'limit': str(limit_in_bytes)}
    method = "PUT"
    uri = UriBuilder(path="/v1/files/quotas/{}".format(id_))
    return request.rest_request(conninfo,
                                credentials,
                                method,
                                unicode(uri),
                                body=body,
                                if_match=if_match)
Ejemplo n.º 24
0
def metatree(conninfo, credentials, inode_num, begin_off=None, end_off=None):
    method = "GET"
    uri = UriBuilder(path="/v1/debug/inspect/metatree")

    uri.add_path_component(inode_num)

    if begin_off != None:
        uri.add_query_param('begin', str(begin_off))

    if end_off != None:
        uri.add_query_param('end', str(end_off))

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 25
0
def config_put(
    conninfo, credentials, install_path, target, override_version=False):
    '''
    Set upgrade config.

    Warning: override_version allows an unsafe upgrade, which can result in
    corruption if used improperly. It should never be used on a production
    system.  It is useful when upgrading from a non-release build.
    '''
    req = {
        'install_path': str(install_path),
        'target': str(target),
    }
    method = "PUT"
    uri = UriBuilder(path="/v1/upgrade/settings")
    if override_version:
        uri.add_query_param('override_compatibility_check', 'True')

    return request.rest_request(
        conninfo, credentials, method, str(uri), body=req)
Ejemplo n.º 26
0
def add_new_disk(conninfo, credentials, slot_id, size):
    method = "POST"
    uri = str(
        UriBuilder(path="/v1/debug/slots").add_path_component(
            slot_id).add_path_component("add_new_disk"))

    # size is a 64 bit integer encoded as a string
    body = {
        "size": str(size),
    }
    return request.rest_request(conninfo, credentials, method, uri, body=body)
Ejemplo n.º 27
0
def point_set(conninfo, credentials, path, program, persist=False):
    if program:
        assert program.endswith(';') or program.endswith('}'), \
            'Non-empty program {} must end with ";" or "}}"'.format(program)
    method = "PUT"
    uri = str(UriBuilder(path="/v1/debug/fail").add_path_component(path))
    config = {'program': program, 'persist': persist}
    return request.rest_request(conninfo,
                                credentials,
                                method,
                                uri,
                                body=config)
Ejemplo n.º 28
0
def smb_modify_share(conninfo,
                     credentials,
                     id_=None,
                     old_name=None,
                     share_name=None,
                     fs_path=None,
                     description=None,
                     permissions=None,
                     allow_fs_path_create=False,
                     access_based_enumeration_enabled=None,
                     default_file_create_mode=None,
                     default_directory_create_mode=None,
                     bytes_per_sector=None,
                     if_match=None):
    assert [id_, old_name].count(None) == 1

    allow_fs_path_create_ = "true" if allow_fs_path_create else "false"
    if_match = None if if_match is None else if_match

    method = "PATCH"
    uri = str(
        UriBuilder(path="/v2/smb/shares/").add_path_component(
            id_ or old_name).add_query_param("allow-fs-path-create",
                                             allow_fs_path_create_))

    share_info = {}
    if share_name is not None:
        share_info['share_name'] = share_name
    if fs_path is not None:
        share_info['fs_path'] = fs_path
    if description is not None:
        share_info['description'] = description
    if permissions is not None:
        share_info['permissions'] = permissions
    if access_based_enumeration_enabled is not None:
        share_info['access_based_enumeration_enabled'] = \
            bool(access_based_enumeration_enabled)
    if default_file_create_mode is not None:
        share_info['default_file_create_mode'] = \
            default_file_create_mode
    if default_directory_create_mode is not None:
        share_info['default_directory_create_mode'] = \
            default_directory_create_mode
    if bytes_per_sector is not None:
        share_info['bytes_per_sector'] = str(bytes_per_sector)

    return request.rest_request(conninfo,
                                credentials,
                                method,
                                uri,
                                body=share_info,
                                if_match=if_match)
Ejemplo n.º 29
0
class PagingIterator(object):
    def __init__(self, initial_url, fn, page_size=None):
        self.initial_url = initial_url
        self.rest_request = fn
        self.page_size = page_size

        self.uri = UriBuilder(path=initial_url, rstrip_slash=False)
        if page_size is not None:
            self.uri.add_query_param("limit", page_size)

    def __iter__(self):
        return self

    def __next__(self):
        if self.uri == '' or self.uri == None:
            raise StopIteration
        result = self.rest_request(self.uri)
        self.uri = result.data['paging']['next']

        return result

    next = __next__  # python2
Ejemplo n.º 30
0
def put(conninfo, credentials, key, value, uid):
    uid = int(uid)

    method = "PUT"
    uri = UriBuilder(path="/v1/kv").add_path_component(uid)\
          .add_path_component(key)

    config = {'key': key, 'value': value}
    return request.rest_request(conninfo,
                                credentials,
                                method,
                                str(uri),
                                body=config)
Ejemplo n.º 31
0
def paddr(conninfo, credentials, pstore_id, addr):
    method = "GET"
    uri = UriBuilder(path="/v1/debug/inspect/paddr")

    uri.add_path_component(pstore_id)
    uri.add_path_component(addr)

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 32
0
def btree(conninfo, credentials, btree_name, verbose):
    method = "GET"
    uri = UriBuilder(path="/v1/debug/inspect/btree")
    uri.add_path_component(btree_name)
    if verbose:
        uri.add_query_param("verbose")

    return request.rest_request(conninfo, credentials, method, str(uri))
Ejemplo n.º 33
0
def smb_set_share(conninfo,
                  credentials,
                  id_,
                  share_name,
                  fs_path,
                  description,
                  permissions,
                  allow_fs_path_create=False,
                  access_based_enumeration_enabled=None,
                  default_file_create_mode=None,
                  default_directory_create_mode=None,
                  if_match=None):
    '''
    Replaces all share attributes.  The result is a share identical to what
    would have been produced if the same arguments were given on creation.
    Note that this means that an unspecified optional argument will result in
    that attribute being reset to default, even if the share currently has a
    non-default value.
    '''
    allow_fs_path_create_ = "true" if allow_fs_path_create else "false"
    id_ = id_
    share_info = {
        'id': id_,
        'share_name': share_name,
        'fs_path': fs_path,
        'description': description,
        'permissions': permissions,
    }
    if access_based_enumeration_enabled is not None:
        share_info['access_based_enumeration_enabled'] = \
            bool(access_based_enumeration_enabled)
    if default_file_create_mode is not None:
        share_info['default_file_create_mode'] = \
            default_file_create_mode
    if default_directory_create_mode is not None:
        share_info['default_directory_create_mode'] = \
            default_directory_create_mode

    uri = str(
        UriBuilder(
            path="/v2/smb/shares/").add_path_component(id_).add_query_param(
                "allow-fs-path-create", allow_fs_path_create_))

    if_match = None if if_match is None else if_match
    return request.rest_request(conninfo,
                                credentials,
                                "PUT",
                                uri,
                                body=share_info,
                                if_match=if_match)
Ejemplo n.º 34
0
def inode(conninfo,
          credentials,
          use_hex=False,
          verbose=False,
          begin_inode=None,
          end_inode=None):

    method = "GET"
    uri = UriBuilder(path="/v1/debug/inspect/inode")

    if use_hex:
        uri.add_query_param('hex')

    if verbose:
        uri.add_query_param('verbose')

    if begin_inode != None:
        uri.add_query_param('begin', str(begin_inode))

    if end_inode != None:
        uri.add_query_param('end', str(end_inode))

    return request.rest_request(conninfo, credentials, method, str(uri))