• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python util.handle_exception函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中storageadmin.util.handle_exception函数的典型用法代码示例。如果您正苦于以下问题:Python handle_exception函数的具体用法?Python handle_exception怎么用?Python handle_exception使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了handle_exception函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: _refresh_and_reload

 def _refresh_and_reload(request):
     try:
         refresh_afp_config(list(NetatalkShare.objects.all()))
         return systemctl('netatalk', 'reload-or-restart')
     except Exception as e:
         e_msg = ('Failed to reload Netatalk server. Exception: %s' % e.__str__())
         handle_exception(Exception(e_msg), request)
开发者ID:sfranzen,项目名称:rockstor-core,代码行数:7,代码来源:netatalk.py


示例2: post

    def post(self, request, command):
        """
        execute a command on the service
        """
        e_msg = ('Failed to %s SNMP service due to system error.' %
                 command)
        with self._handle_exception(request, e_msg):
            if (command == 'config'):
                service = Service.objects.get(name=self.service_name)
                config = request.data.get('config', {})
                if (type(config) != dict):
                    e_msg = ('config dictionary is required input')
                    handle_exception(Exception(e_msg), request)
                for option in ('syslocation', 'syscontact', 'rocommunity',):
                    if (option not in config):
                        e_msg = ('%s is missing in config' % option)
                        handle_exception(Exception(e_msg), request)
                    if (config[option] is None or config[option] == ''):
                        e_msg = ('%s cannot be empty' % option)
                        handle_exception(Exception(e_msg), request)
                if ('aux' not in config):
                    e_msg = ('aux is missing in config: %s' % config)
                    handle_exception(Exception(e_msg), request)
                if (type(config['aux']) != list):
                    e_msg = ('aux must be a list in config: %s' % config)
                    handle_exception(Exception(e_msg), request)

                configure_snmp(config)
                self._save_config(service, config)
            else:
                self._switch_snmp(command)
        return Response()
开发者ID:Ajunboys,项目名称:rockstor-core,代码行数:32,代码来源:snmp_service.py


示例3: _ntp_check

 def _ntp_check(self, request):
     ntpo = Service.objects.get(name='ntpd')
     if (not self._get_status(ntpo)):
         e_msg = ('NTP must be configured and running first before Rockstor'
                  ' can join AD. Configure NTP service first '
                  'and try again.')
         handle_exception(Exception(e_msg), request)
开发者ID:Mchakravartula,项目名称:rockstor-core,代码行数:7,代码来源:active_directory.py


示例4: post

    def post(self, request, sname, command):
        with self._handle_exception(request):
            share = self._validate_share(request, sname)

            if (command == 'clone'):
                new_name = request.data.get('name', '')
                return create_clone(share, new_name, request, logger)

            if (command == 'rollback'):
                snap = self._validate_snapshot(request, share)

                if (NFSExport.objects.filter(share=share).exists()):
                    e_msg = ('Share(%s) cannot be rolled back as it is '
                             'exported via nfs. Delete nfs exports and '
                             'try again' % sname)
                    handle_exception(Exception(e_msg), request)

                if (SambaShare.objects.filter(share=share).exists()):
                    e_msg = ('Share(%s) cannot be rolled back as it is shared'
                             ' via Samba. Unshare and try again' % sname)
                    handle_exception(Exception(e_msg), request)

                rollback_snap(snap.real_name, share.name, share.subvol_name,
                              share.pool)
                update_quota(share.pool, snap.qgroup, share.size * 1024)
                share.qgroup = snap.qgroup
                share.save()
                snap.delete()
                return Response()
开发者ID:Ajunboys,项目名称:rockstor-core,代码行数:29,代码来源:share_command.py


示例5: _validate_enabled

 def _validate_enabled(request):
     enabled = request.data.get('enabled', True)
     if (type(enabled) != bool):
         e_msg = ('enabled flag must be a boolean and not %s' %
                  type(enabled))
         handle_exception(Exception(e_msg), request)
     return enabled
开发者ID:Lorgne,项目名称:rockstor-core,代码行数:7,代码来源:task_scheduler.py


示例6: put

 def put(self, request, username):
     user = self._get_user_object(request, username)
     try:
         # if password is present in input data, change password
         if ('password' in request.DATA):
             # change password
             password = request.DATA['password']
             usermod(username, password)
             smbpasswd(username, password)
             user.set_password(password)
             user.save()
         # check if admin attribute has changed
         if ('is_active' in request.DATA):
             is_active = request.DATA['is_active']
             # put is through bacbone model save so is_active comes in
             # as a boolean
             if is_active != user.is_active:
                 if request.user.username == username:
                     e_msg = ('Cannot modify admin attribute of the '
                              'currently logged in user')
                     handle_exception(Exception(e_msg), request)
                 user.is_active = is_active
                 shell = settings.DEFAULT_SHELL
                 if (is_active is True):
                     shell = settings.ADMIN_SHELL
                 update_shell(username, shell)
                 user.save()
         return Response(UserSerializer(user).data)
     except RockStorAPIException:
         raise
     except Exception, e:
         handle_exception(e, request)
开发者ID:sigkill,项目名称:rockstor-core,代码行数:32,代码来源:user.py


示例7: _validate_input

 def _validate_input(backup_id, request):
     try:
         return ConfigBackup.objects.get(id=backup_id)
     except ConfigBackup.DoesNotExist:
         e_msg = ('Config backup for the id ({}) '
                  'does not exist.').format(backup_id)
         handle_exception(Exception(e_msg), request)
开发者ID:MFlyer,项目名称:rockstor-core,代码行数:7,代码来源:config_backup.py


示例8: delete

    def delete(self, request, id):
        try:
            sftpo = SFTP.objects.get(id=id)
        except:
            e_msg = ('SFTP config for the id(%s) does not exist' % id)
            handle_exception(Exception(e_msg), request)

        try:
            mnt_prefix = ('%s%s/' % (settings.SFTP_MNT_ROOT,
                                     sftpo.share.owner))

            if (is_share_mounted(sftpo.share.name, mnt_prefix)):
                sftp_snap_toggle(sftpo.share, mount=False)
                umount_root(('%s%s' % (mnt_prefix, sftpo.share.name)))
                import shutil
                shutil.rmtree(mnt_prefix)
            sftpo.delete()
            input_list = []
            for so in SFTP.objects.all():
                if (so.id != sftpo.id):
                    input_list.append({'user': so.share.owner,
                                       'dir': ('%s%s' %
                                               (settings.SFTP_MNT_ROOT,
                                                so.share.name)), })
            update_sftp_config(input_list)
            return Response()
        except RockStorAPIException:
            raise
        except Exception, e:
            handle_exception(e, request)
开发者ID:rcgade,项目名称:rockstor-core,代码行数:30,代码来源:sftp.py


示例9: post

    def post(self, request, command):
        """
        execute a command on the service
        """
        service = Service.objects.get(name=self.name)
        if (command == 'config'):
            try:
                config = request.data.get('config')
                try:
                    listener_port = int(config['listener_port'])
                except ValueError:
                    raise Exception('Listener Port must be a valid port number between 0-65535')

                if (listener_port < 0 or listener_port > 65535):
                    raise Exception('Invalid listener port(%d)' % listener_port)
                ni = config['network_interface']
                try:
                    nco = NetworkConnection.objects.get(name=ni)
                except NetworkConnection.DoesNotExist:
                    raise Exception('Network Connection(%s) does not exist.' % ni)
                #@todo: we should make restart transparent to the user.
                ztask_helpers.restart_rockstor.async(nco.ipaddr, listener_port)
                self._save_config(service, config)
                return Response()
            except Exception, e:
                e_msg = ('Failed to configure Rockstor service. Try again. Exception: %s' % e.__str__())
                handle_exception(Exception(e_msg), request)
开发者ID:Ajunboys,项目名称:rockstor-core,代码行数:27,代码来源:rockstor_service.py


示例10: _btrfs_disk_import

 def _btrfs_disk_import(self, dname, request):
     try:
         disk = self._validate_disk(dname, request)
         p_info = get_pool_info(dname)
         # get some options from saved config?
         po = Pool(name=p_info['label'], raid="unknown")
         # need to save it so disk objects get updated properly in the for
         # loop below.
         po.save()
         for d in p_info['disks']:
             do = Disk.objects.get(name=d)
             do.pool = po
             do.parted = False
             do.save()
             mount_root(po)
         po.raid = pool_raid('%s%s' % (settings.MNT_PT, po.name))['data']
         po.size = pool_usage('%s%s' % (settings.MNT_PT, po.name))[0]
         po.save()
         enable_quota(po)
         import_shares(po, request)
         for share in Share.objects.filter(pool=po):
             import_snapshots(share)
         return Response(DiskInfoSerializer(disk).data)
     except Exception, e:
         e_msg = ('Failed to import any pool on this device(%s). Error: %s'
                  % (dname, e.__str__()))
         handle_exception(Exception(e_msg), request)
开发者ID:BillTheBest,项目名称:rockstor-core,代码行数:27,代码来源:disk.py


示例11: _validate_input

 def _validate_input(request):
     meta = {}
     crontab = request.data.get('crontab')
     crontabwindow = request.data.get('crontabwindow')
     meta = request.data.get('meta', {})
     if (type(meta) != dict):
         e_msg = ('meta must be a dictionary, not %s' % type(meta))
         handle_exception(Exception(e_msg), request)
     if 'pool' in meta:
         if not Pool.objects.filter(id=meta['pool']).exists():
             raise Exception('Non-existent Pool(%s) in meta. %s' %
                             (meta['pool'], meta))
         # Add pool_name to task meta dictionary
         pool = Pool.objects.get(id=meta['pool'])
         meta['pool_name'] = pool.name
     if 'share' in meta:
         if not meta['share'].isdigit():
             raise Exception('Non-digit share element ({}) in meta {}'
                             .format(meta['share'], meta))
         if not Share.objects.filter(id=meta['share']).exists():
             raise Exception('Non-existent Share id (%s) in meta. %s' %
                             (meta['pool'], meta))
     if 'rtc_hour' in meta:
         meta['rtc_hour'] = int(meta['rtc_hour'])
         meta['rtc_minute'] = int(meta['rtc_minute'])
     return crontab, crontabwindow, meta
开发者ID:MFlyer,项目名称:rockstor-core,代码行数:26,代码来源:task_scheduler.py


示例12: post

    def post(self, request, command, dname=None):
        with self._handle_exception(request):
            if (command == 'scan'):
                return self._update_disk_state()

        e_msg = ('Unsupported command(%s).' % command)
        handle_exception(Exception(e_msg), request)
开发者ID:BillTheBest,项目名称:rockstor-core,代码行数:7,代码来源:disk.py


示例13: post

    def post(self, request, pname, command=None):
        pool = self._validate_pool(pname, request)
        if (command is not None and command != 'status'):
            e_msg = ('Unknown scrub command: %s' % command)
            handle_exception(Exception(e_msg), request)

        with self._handle_exception(request):
            ps = self._scrub_status(pool)
            if (command == 'status'):
                return Response(PoolScrubSerializer(ps).data)
            force = request.data.get('force', False)
            if ((PoolScrub.objects.filter(pool=pool,
                                          status__regex=r'(started|running)')
                 .exists())):
                if (force):
                    p = PoolScrub.objects.filter(
                        pool=pool,
                        status__regex=r'(started|running)').order_by('-id')[0]
                    p.status = 'terminated'
                    p.save()
                else:
                    e_msg = ('A Scrub process is already running for '
                             'pool(%s). If you really want to kill it '
                             'and start a new scrub, use force option' % pname)
                    handle_exception(Exception(e_msg), request)

            scrub_pid = scrub_start(pool, force=force)
            ps = PoolScrub(pool=pool, pid=scrub_pid)
            ps.save()
            return Response(PoolScrubSerializer(ps).data)
开发者ID:Ajunboys,项目名称:rockstor-core,代码行数:30,代码来源:pool_scrub.py


示例14: _handle_exception

 def _handle_exception(request, msg):
     try:
         yield
     except RockStorAPIException:
         raise
     except Exception, e:
         handle_exception(e, request, msg)
开发者ID:Ajunboys,项目名称:rockstor-core,代码行数:7,代码来源:afp_service.py


示例15: _delete_snapshot

    def _delete_snapshot(self, request, sname, id=None, snap_name=None):
        share = self._validate_share(sname, request)
        try:
            snapshot = None
            if (id is not None):
                snapshot = Snapshot.objects.get(id=id)
            elif (snap_name is not None):
                snapshot = Snapshot.objects.get(share=share, name=snap_name)
            else:
                return True
        except:
            e_msg = ''
            if (id is not None):
                e_msg = ('Snapshot(%s) does not exist.' % id)
            else:
                e_msg = ('Snapshot(%s) does not exist.' % snap_name)
            handle_exception(Exception(e_msg), request)

        if (snapshot.uvisible):
            self._toggle_visibility(share, snapshot.real_name, on=False)
            toggle_sftp_visibility(share, snapshot.real_name, on=False)

        remove_snap(share.pool, sname, snapshot.name)
        snapshot.delete()
        return Response()
开发者ID:sfranzen,项目名称:rockstor-core,代码行数:25,代码来源:snapshot.py


示例16: _create

    def _create(self, share, snap_name, pool_device, request, uvisible,
                snap_type, writable):
        if (Snapshot.objects.filter(share=share, name=snap_name).exists()):
            e_msg = ('Snapshot(%s) already exists for the Share(%s).' %
                     (snap_name, share.name))
            handle_exception(Exception(e_msg), request)

        real_name = snap_name
        snap_size = 0
        qgroup_id = '0/na'
        if (snap_type != 'receiver'):
            if (snap_type == 'replication'):
                writable = False
            add_snap(share.pool, pool_device, share.subvol_name,
                     real_name, readonly=not writable)
            snap_id = share_id(share.pool, pool_device, real_name)
            qgroup_id = ('0/%s' % snap_id)
            snap_size = share_usage(share.pool, pool_device,
                                    qgroup_id)
        s = Snapshot(share=share, name=snap_name, real_name=real_name,
                     size=snap_size, qgroup=qgroup_id,
                     uvisible=uvisible, snap_type=snap_type,
                     writable=writable)
        s.save()
        return Response(SnapshotSerializer(s).data)
开发者ID:drtyhbo,项目名称:rockstor-core,代码行数:25,代码来源:snapshot.py


示例17: get_queryset

    def get_queryset(self, *args, **kwargs):
        with self._handle_exception(self.request):
            try:
                share = Share.objects.get(name=self.kwargs['sname'])
            except:
                if ('sname' not in self.kwargs):
                    return Snapshot.objects.filter().order_by('-id')

                e_msg = ('Share with name: %s does not exist' % self.kwargs['sname'])
                handle_exception(Exception(e_msg), self.request)

            if ('snap_name' in self.kwargs):
                self.paginate_by = 0
                try:
                    return Snapshot.objects.get(share=share,
                                                name=self.kwargs['snap_name'])
                except:
                    return []

            snap_type = self.request.query_params.get('snap_type', None)
            if (snap_type is not None and snap_type != ''):
                return Snapshot.objects.filter(
                    share=share, snap_type=snap_type).order_by('-id')

            return Snapshot.objects.filter(share=share).order_by('-id')
开发者ID:sfranzen,项目名称:rockstor-core,代码行数:25,代码来源:snapshot.py


示例18: post

    def post(self, request, sname, snap_name, command=None):
        with self._handle_exception(request):
            share = self._validate_share(sname, request)
            uvisible = request.data.get('uvisible', False)
            if (type(uvisible) != bool):
                e_msg = ('uvisible must be a boolean, not %s' % type(uvisible))
                handle_exception(Exception(e_msg), request)

            snap_type = request.data.get('snap_type', 'admin')
            writable = request.data.get('writable', 'rw')
            writable = True if (writable == 'rw') else False
            if (command is None):
                ret = self._create(share, snap_name, request,
                                   uvisible=uvisible, snap_type=snap_type,
                                   writable=writable)

                if (uvisible):
                    try:
                        self._toggle_visibility(share, ret.data['real_name'])
                    except Exception, e:
                        msg = ('Failed to make the Snapshot(%s) visible. '
                               'Exception: %s' % (snap_name, e.__str__()))
                        logger.error(msg)
                        logger.exception(e)

                    try:
                        toggle_sftp_visibility(share, ret.data['real_name'])
                    except Exception, e:
                        msg = ('Failed to make the Snapshot(%s) visible for '
                               'SFTP. Exception: %s' % (snap_name, e.__str__()))
                        logger.error(msg)
                        logger.exception(e)

                return ret
开发者ID:Ajunboys,项目名称:rockstor-core,代码行数:34,代码来源:snapshot.py


示例19: delete

    def delete(self, request, id):
        try:
            sftpo = SFTP.objects.get(id=id)
        except:
            e_msg = ('SFTP config for the id(%s) does not exist' % id)
            handle_exception(Exception(e_msg), request)

        try:
            mnt_prefix = ('%s%s/' % (settings.SFTP_MNT_ROOT,
                                     sftpo.share.owner))

            if (is_share_mounted(sftpo.share.name, mnt_prefix)):
                sftp_snap_toggle(sftpo.share, mount=False)
                mnt_pt = ('%s%s' % (mnt_prefix, sftpo.share.name))
                umount_root(mnt_pt)
                if (os.path.isdir(mnt_pt)):
                    shutil.rmtree(mnt_pt)
            sftpo.delete()
            input_map = {}
            for so in SFTP.objects.all():
                if (so.id != sftpo.id):
                    input_map[so.share.owner] = (
                        '%s%s' % (settings.SFTP_MNT_ROOT, so.share.owner))
            update_sftp_config(input_map)
            return Response()
        except RockStorAPIException:
            raise
        except Exception, e:
            handle_exception(e, request)
开发者ID:kamal-gade,项目名称:rockstor-core,代码行数:29,代码来源:sftp.py


示例20: refresh_wrapper

 def refresh_wrapper(exports, request, logger):
     try:
         refresh_nfs_exports(exports)
     except Exception as e:
         e_msg = ('A lower level error occured while refreshing '
                  'NFS exports: %s' % e.__str__())
         handle_exception(Exception(e_msg), request)
开发者ID:priyaganti,项目名称:rockstor-core,代码行数:7,代码来源:nfs_exports.py



注:本文中的storageadmin.util.handle_exception函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python s3boto.safe_join函数代码示例发布时间:2022-05-27
下一篇:
Python data.struct_to_ndarray函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap