コード例 #1
0
ファイル: nfs_share.py プロジェクト: rajendraindukuri/storops
    def prepare_nfs_share_parameters(**kwargs):
        default_access = kwargs.get('default_access')
        min_security = kwargs.get('min_security')

        NFSShareDefaultAccessEnum.verify(default_access)
        NFSShareSecurityEnum.verify(min_security)

        nfs_share_param = UnityClient.make_body(
            allow_empty=True,
            defaultAccess=default_access,
            minSecurity=min_security,
            noAccessHosts=kwargs.get('no_access_hosts'),
            readOnlyHosts=kwargs.get('read_only_hosts'),
            readWriteHosts=kwargs.get('read_write_hosts'),
            rootAccessHosts=kwargs.get('root_access_hosts'),
            readOnlyRootAccessHosts=kwargs.get('read_only_root_access_hosts'),
            noAccessHostsString=kwargs.get('no_access_hosts_string'),
            readOnlyHostsString=kwargs.get('read_only_hosts_string'),
            readWriteHostsString=kwargs.get('read_write_hosts_string'),
            readOnlyRootHostsString=kwargs.get('read_only_root_hosts_string'),
            readWriteRootHostsString=kwargs.get('root_access_hosts_string'),
            anonymousUID=kwargs.get('anonymous_uid'),
            anonymousGID=kwargs.get('anonymous_gid'),
            exportOption=kwargs.get('export_option'),
            description=kwargs.get('description'))
        return nfs_share_param
コード例 #2
0
ファイル: nfs_share.py プロジェクト: rajendraindukuri/storops
    def modify(self, default_access=None, min_security=None,
               no_access_hosts=None, read_only_hosts=None,
               read_write_hosts=None, root_access_hosts=None,
               read_only_root_access_hosts=None, no_access_hosts_string=None,
               read_only_hosts_string=None, read_write_hosts_string=None,
               read_only_root_hosts_string=None,
               root_access_hosts_string=None,
               anonymous_uid=None, anonymous_gid=None, export_option=None,
               host_config=None, description=None):
        if host_config is not None:
            no_access_hosts = host_config.no_access
            root_access_hosts = host_config.root
            read_only_root_access_hosts = host_config.root_ro
            read_only_hosts = host_config.ro
            read_write_hosts = host_config.rw

        NFSShareDefaultAccessEnum.verify(default_access)
        NFSShareSecurityEnum.verify(min_security)
        clz = storops.unity.resource.host.UnityHostList
        no_access_hosts = clz.get_list(self._cli, no_access_hosts)
        read_only_hosts = clz.get_list(self._cli, read_only_hosts)
        read_write_hosts = clz.get_list(self._cli, read_write_hosts)
        root_access_hosts = clz.get_list(self._cli, root_access_hosts)
        read_only_root_access_hosts = clz.get_list(
            self._cli, read_only_root_access_hosts)

        nfs_share_param = self.prepare_nfs_share_parameters(
            default_access=default_access,
            min_security=min_security,
            no_access_hosts=no_access_hosts,
            read_only_hosts=read_only_hosts,
            read_write_hosts=read_write_hosts,
            root_access_hosts=root_access_hosts,
            read_only_root_access_hosts=read_only_root_access_hosts,
            no_access_hosts_string=no_access_hosts_string,
            read_only_hosts_string=read_only_hosts_string,
            read_write_hosts_string=read_write_hosts_string,
            read_only_root_hosts_string=read_only_root_hosts_string,
            root_access_hosts_string=root_access_hosts_string,
            anonymous_uid=anonymous_uid,
            anonymous_gid=anonymous_gid,
            export_option=export_option,
            description=description)

        if nfs_share_param:
            # different api for different type of share
            if self.type == NFSTypeEnum.NFS_SHARE:
                resp = self._modify_fs_share(nfs_share_param)
            elif self.type == NFSTypeEnum.NFS_SNAPSHOT:
                resp = self._modify_snap_share(nfs_share_param)
            else:
                raise UnityShareTypeNotSupportAccessControlError()
        else:
            resp = RestResponse('', self._cli)
        resp.raise_if_err()
        return resp
コード例 #3
0
ファイル: nfs_share.py プロジェクト: rajendraindukuri/storops
    def create_from_snap(cls, cli, snap, name, path=None, is_read_only=None,
                         default_access=None, min_security=None,
                         no_access_hosts=None, read_only_hosts=None,
                         read_write_hosts=None, root_access_hosts=None,
                         read_only_root_access_hosts=None,
                         no_access_hosts_string=None,
                         read_only_hosts_string=None,
                         read_write_hosts_string=None,
                         read_only_root_hosts_string=None,
                         root_access_hosts_string=None,
                         anonymous_uid=None, anonymous_gid=None,
                         export_option=None, description=None):
        snap_clz = storops.unity.resource.snap.UnitySnap
        snap = snap_clz.get(cli, snap)
        NFSShareDefaultAccessEnum.verify(default_access)
        NFSShareSecurityEnum.verify(min_security)

        if path is None:
            path = '/'

        clz = storops.unity.resource.host.UnityHostList
        no_access_hosts = clz.get_list(cli, no_access_hosts)
        read_only_hosts = clz.get_list(cli, read_only_hosts)
        read_write_hosts = clz.get_list(cli, read_write_hosts)
        root_access_hosts = clz.get_list(cli, root_access_hosts)
        read_only_root_access_hosts = clz.get_list(
            cli, read_only_root_access_hosts)

        share_param = cls.prepare_nfs_share_parameters(
            default_access=default_access,
            min_security=min_security,
            no_access_hosts=no_access_hosts,
            read_only_hosts=read_only_hosts,
            read_write_hosts=read_write_hosts,
            root_access_hosts=root_access_hosts,
            read_only_root_access_hosts=read_only_root_access_hosts,
            no_access_hosts_string=no_access_hosts_string,
            read_only_hosts_string=read_only_hosts_string,
            read_write_hosts_string=read_write_hosts_string,
            read_only_root_hosts_string=read_only_root_hosts_string,
            root_access_hosts_string=root_access_hosts_string,
            anonymous_uid=anonymous_uid,
            anonymous_gid=anonymous_gid,
            export_option=export_option,
            description=description)

        resp = cli.post(
            cls().resource_class, snap=snap, path=path, name=name,
            isReadOnly=is_read_only,
            **share_param)
        resp.raise_if_err()
        return cls(_id=resp.resource_id, cli=cli)
コード例 #4
0
    def create(cls, cli, name, fs, path=None, share_access=None):
        fs_clz = storops.unity.resource.filesystem.UnityFileSystem
        fs = fs_clz.get(cli, fs).verify()
        NFSShareDefaultAccessEnum.verify(share_access)
        sr = fs.storage_resource

        if path is None:
            path = '/'

        share_param = cli.make_body(defaultAccess=share_access)
        param = cli.make_body(name=name, path=path,
                              nfsShareParameters=share_param)
        resp = sr.modify_fs(nfsShareCreate=[param])
        resp.raise_if_err()
        return UnityNfsShareList(cli=cli, name=name).first_item
コード例 #5
0
ファイル: nfs_share.py プロジェクト: crook/storops
    def create(cls, cli, name, fs, path=None, share_access=None):
        fs_clz = storops.unity.resource.filesystem.UnityFileSystem
        fs = fs_clz.get(cli, fs).verify()
        NFSShareDefaultAccessEnum.verify(share_access)
        sr = fs.storage_resource

        if path is None:
            path = '/'

        share_param = cli.make_body(defaultAccess=share_access)
        param = cli.make_body(name=name, path=path,
                              nfsShareParameters=share_param)
        resp = sr.modify_fs(nfsShareCreate=[param])
        resp.raise_if_err()
        return UnityNfsShareList(cli=cli, name=name).first_item
コード例 #6
0
    def create_from_snap(cls, cli, snap, name, path=None, is_read_only=None,
                         default_access=None):
        snap_clz = storops.unity.resource.snap.UnitySnap
        snap = snap_clz.get(cli, snap)
        NFSShareDefaultAccessEnum.verify(default_access)

        if path is None:
            path = '/'

        resp = cli.post(cls().resource_class,
                        snap=snap,
                        path=path,
                        name=name,
                        isReadOnly=is_read_only,
                        defaultAccess=default_access)
        resp.raise_if_err()
        return cls(_id=resp.resource_id, cli=cli)
コード例 #7
0
ファイル: nfs_share.py プロジェクト: crook/storops
    def create_from_snap(cls, cli, snap, name, path=None, is_read_only=None,
                         default_access=None):
        snap_clz = storops.unity.resource.snap.UnitySnap
        snap = snap_clz.get(cli, snap)
        NFSShareDefaultAccessEnum.verify(default_access)

        if path is None:
            path = '/'

        resp = cli.post(cls().resource_class,
                        snap=snap,
                        path=path,
                        name=name,
                        isReadOnly=is_read_only,
                        defaultAccess=default_access)
        resp.raise_if_err()
        return cls(_id=resp.resource_id, cli=cli)
コード例 #8
0
    def modify(self,
               default_access=None,
               min_security=None,
               no_access_hosts=None,
               read_only_hosts=None,
               read_write_hosts=None,
               root_access_hosts=None,
               host_config=None):
        if host_config is not None:
            no_access_hosts = host_config.no_access
            root_access_hosts = host_config.root
            read_only_hosts = host_config.ro
            read_write_hosts = host_config.rw

        NFSShareDefaultAccessEnum.verify(default_access)
        NFSShareSecurityEnum.verify(min_security)
        clz = storops.unity.resource.host.UnityHostList
        no_access_hosts = clz.get_list(self._cli, no_access_hosts)
        read_only_hosts = clz.get_list(self._cli, read_only_hosts)
        read_write_hosts = clz.get_list(self._cli, read_write_hosts)
        root_access_hosts = clz.get_list(self._cli, root_access_hosts)

        nfs_share_param = self._cli.make_body(
            allow_empty=True,
            defaultAccess=default_access,
            minSecurity=min_security,
            noAccessHosts=no_access_hosts,
            readOnlyHosts=read_only_hosts,
            readWriteHosts=read_write_hosts,
            rootAccessHosts=root_access_hosts)

        if nfs_share_param:
            # different api for different type of share
            if self.type == NFSTypeEnum.NFS_SHARE:
                resp = self._modify_fs_share(nfs_share_param)
            elif self.type == NFSTypeEnum.NFS_SNAPSHOT:
                resp = self._modify_snap_share(default_access,
                                               min_security,
                                               nfs_share_param)
            else:
                raise UnityShareTypeNotSupportAccessControlError()
        else:
            resp = RestResponse('', self._cli)
        resp.raise_if_err()
        return resp
コード例 #9
0
ファイル: nfs_share.py プロジェクト: crook/storops
    def modify(self,
               default_access=None,
               min_security=None,
               no_access_hosts=None,
               read_only_hosts=None,
               read_write_hosts=None,
               root_access_hosts=None,
               host_config=None):
        if host_config is not None:
            no_access_hosts = host_config.no_access
            root_access_hosts = host_config.root
            read_only_hosts = host_config.ro
            read_write_hosts = host_config.rw

        NFSShareDefaultAccessEnum.verify(default_access)
        NFSShareSecurityEnum.verify(min_security)
        clz = storops.unity.resource.host.UnityHostList
        no_access_hosts = clz.get_list(self._cli, no_access_hosts)
        read_only_hosts = clz.get_list(self._cli, read_only_hosts)
        read_write_hosts = clz.get_list(self._cli, read_write_hosts)
        root_access_hosts = clz.get_list(self._cli, root_access_hosts)

        nfs_share_param = self._cli.make_body(
            allow_empty=True,
            defaultAccess=default_access,
            minSecurity=min_security,
            noAccessHosts=no_access_hosts,
            readOnlyHosts=read_only_hosts,
            readWriteHosts=read_write_hosts,
            rootAccessHosts=root_access_hosts)

        if nfs_share_param:
            # different api for different type of share
            if self.type == NFSTypeEnum.NFS_SHARE:
                resp = self._modify_fs_share(nfs_share_param)
            elif self.type == NFSTypeEnum.NFS_SNAPSHOT:
                resp = self._modify_snap_share(default_access,
                                               min_security,
                                               nfs_share_param)
            else:
                raise UnityShareTypeNotSupportAccessControlError()
        else:
            resp = RestResponse('', self._cli)
        resp.raise_if_err()
        return resp