예제 #1
0
 def delete(self, id):
     """
     根据任务日志id删除信息
    ---
    tags:
       - logs
    parameters:
      - in: path
        name: id
        type: integer
        format: int64
        required: true
    responses:
      200:
        description: 根据任务日志id删除信息
        schema:
          properties:
             ok:
               type: boolean
               default: 200
               description: 状态
             code:
               type: string
             msg:
               type: string
             data:
               type: array
               items:
                 properties:
     """
     try:
         control.task_logs.log_delete(id)
     except Exception as e:
         return set_return_val(False, [], str(e), 1529), 400
     return set_return_val(True, [], 'request log deleted succeeded.', 1520)
예제 #2
0
 def post(self):
     """
     登录
     ---
     tags:
       - login
     parameters:
       - in: formData
         name: username
         type: string
         required: true
       - in: formData
         name: password
         type: string
         required: true
     responses:
       200:
         description: 用户登录
         schema:
           id: User
           properties:
             id:
               type: string
               description: 用户id
               default: Steven Wilson
               name: code
     """
     args = parser.parse_args()
     try:
         if not all([args['username'], args['password']]):
             raise Exception('Incorrect username or password.')
         users = Users.query.filter_by(username=args['username']).first()
         # print('status:', users.verify_password(args['password']))
         # if not users or not users.verify_password(args['password']):
         if not users:
             raise Exception('Incorrect username or password.')
         else:
             if not users.verify_password(args['password']):
                 raise Exception('Incorrect username or password.')
             else:
                 login_user(users, True)
                 token = users.generate_auth_token()
                 # token = create_token(users.id, users.username)
                 data = {
                     'token': token,
                     'id': users.id,
                     'username': users.username,
                     'email': users.email,
                     'mobile': users.mobile,
                     'department': users.department,
                     'job': users.job,
                     'location': users.location,
                     'sex': users.sex,
                     'remarks': users.remarks
                 }
                 session[token] = True
     except Exception as e:
         return set_return_val(False, {}, str(e), 1301), 400
     return set_return_val(True, data, 'login successful', 1300)
예제 #3
0
    def post(self):
        """
         创建角色信息
         ---
         tags:
           - role
         summary: Add a new pet to the store
         parameters:
           - in: query
             name: name
             type: string
             description: 角色名
           - in: query
             name: description
             type: string
             description: 描述
         responses:
           200:
            description: 创建角色信息
            schema:
             properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
         """
        args = parser.parse_args()

        if not all([args['name'], args['description']]):
            raise Exception('Parameter error')
        try:
            role = control.role.role_create(name=args['name'],
                                            description=args['description'])
            id = role.id
        except Exception as e:
            control.event_logs.eventlog_create(type='role',
                                               result=False,
                                               resources_id='',
                                               event=unicode('创建新角色:%s' %
                                                             args['name']),
                                               submitter=g.username)
            return set_return_val(False, [], str(e), 1319), 400
        control.event_logs.eventlog_create(type='role',
                                           result=True,
                                           resources_id=id,
                                           event=unicode('创建新角色:%s' %
                                                         args['name']),
                                           submitter=g.username)
        return set_return_val(True, [],
                              'The role information is created successfully.',
                              1200)
예제 #4
0
 def put(self, id):
     """
      更新角色信息
      ---
      tags:
        - role
      parameters:
        - in: path
          type: integer
          format: int64
          name: id
          required: true
        - in: query
          name: name
          type: string
          description: 角色名
        - in: query
          name: description
          type: string
          description: 描述
      responses:
        200:
         description: 更新角色信息
         schema:
          properties:
             ok:
               type: boolean
               default: 200
               description: 状态
             code:
               type: string
             msg:
               type: string
             data:
               type: array
               items:
                 properties:
      """
     args = parser.parse_args()
     try:
         name = control.role.role_update(role_id=int(id),
                                         name=args['name'],
                                         description=args['description'])
     except Exception as e:
         control.event_logs.eventlog_create(type='role',
                                            result=False,
                                            resources_id=id,
                                            event=unicode('更新角色信息'),
                                            submitter=g.username)
         return set_return_val(False, [], str(e), 1319), 400
     control.event_logs.eventlog_create(type='role',
                                        result=True,
                                        resources_id=id,
                                        event=unicode('更新角色:%s' % name),
                                        submitter=g.username)
     return set_return_val(True, [],
                           'Role information updated successfully', 1200)
예제 #5
0
    def post(self):
        """
         用户角色分配
         ---
         tags:
           - user_role
         parameters:
           - in: query
             type: string
             name: user_id
             description: 用户id
           - in: query
             name: role_id
             type: string
             description: 角色id
         responses:
           200:
            description: 用户角色分配
            schema:
             properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
         """
        try:
            args = parser.parse_args()
            user_id = args.get('user_id')
            role_id = args.get('role_id')
            # if user_id and role_id:
            if not all([user_id, role_id]):
                raise Exception('参数错误,参数不能为空')

            user_username, role_name = control.roles_users.role_user_add(
                user_id, role_id)
        except Exception as e:
            control.event_logs.eventlog_create(type='roles_users',
                                               result=False,
                                               resources_id='',
                                               event=unicode('为用户分配角色'),
                                               submitter=g.username)
            return set_return_val(False, {}, str(e), 1234), 400
        control.event_logs.eventlog_create(
            type='roles_users',
            result=True,
            resources_id='',
            event=unicode('为用户:%s 分配角色:%s' % (user_username, role_name)),
            submitter=g.username)
        return set_return_val(True, {}, '用户角色添加成功', 1234)
예제 #6
0
 def get(self):
     try:
         args = parser.parse_args()
         user_name = args.get('user_name')
         role_name = args.get('role_name')
         # 获取所有用户角色权限 列表
         data = role_user_manage.role_user_list(user_name, role_name)
     except Exception as e:
         return set_return_val(False, {}, str(e), 1234), 400
     return set_return_val(True, data, '获取列表成功', 1234)
예제 #7
0
    def get(self):
        """
        获取系统配置信息
        ---
        tags:
         - system config
        responses:
          200:
            description: 创建系统配置
            schema:
              properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
                      copyright:
                        type: string
                        default: 2019
                        description: copyright
                      debug:
                        type: string
                        default: True
                        description: debug
                      id:
                        type: string
                        default: 1
                        description: id
                      platform_name:
                        type: string
                        default: naguan
                        description: platform_name
                      user_authentication_mode:
                        type: string
                        default: local
                        description: user_authentication_mode
                      version:
                        type: string
                        default: 1.0.1
                        description: version
            """

        try:
            data = control.system.system_config_list()
        except Exception as e:
            return set_return_val(False, [], str(e), 1319), 400
        return set_return_val(True, data, 'System configuration succeeded',
                              1300)
예제 #8
0
 def delete(self):
     # 删除用户所有角色
     try:
         args = parser.parse_args()
         user_id = args.get('user_id')
         if not user_id:
             raise Exception('参数错误,参数不能为空')
         role_user_manage.role_user_delete(user_id)
     except Exception as e:
         return set_return_val(False, {}, str(e), 1234), 400
     return set_return_val(True, {}, '用户角色删除成功', 1234)
예제 #9
0
    def post(self):
        try:
            args = parser.parse_args()
            user_id = args.get('user_id')
            role_id = args.get('role_id')
            # if user_id and role_id:
            if not all([user_id, role_id]):
                raise Exception('参数错误,参数不能为空')

            role_user_manage.role_user_add(user_id, role_id)
        except Exception as e:
            return set_return_val(False, {}, str(e), 1234), 400
        return set_return_val(True, {}, '用户角色添加成功', 1234)
예제 #10
0
 def delete(self):
     """
      用户角色删除
      ---
      tags:
        - user_role
      parameters:
        - in: query
          type: string
          name: user_id
          description: 用户id
      responses:
        200:
         description: 删除用户角色
         schema:
          properties:
             ok:
               type: boolean
               default: 200
               description: 状态
             code:
               type: string
             msg:
               type: string
             data:
               type: array
               items:
                 properties:
      """
     # 删除用户所有角色
     try:
         args = parser.parse_args()
         user_id = args.get('user_id')
         if not user_id:
             raise Exception('参数错误,参数不能为空')
         username = control.roles_users.role_user_delete(user_id)
     except Exception as e:
         control.event_logs.eventlog_create(type='roles_users',
                                            result=False,
                                            resources_id='',
                                            event=unicode('删除用户角色'),
                                            submitter=g.username)
         return set_return_val(False, {}, str(e), 1234), 400
     control.event_logs.eventlog_create(type='roles_users',
                                        result=True,
                                        resources_id='',
                                        event=unicode('删除用户:%s 的角色' %
                                                      username),
                                        submitter=g.username,
                                        user_id=user_id)
     return set_return_val(True, {}, '用户角色删除成功', 1234)
예제 #11
0
    def put(self):
        # 更新用户角色
        try:
            args = parser.parse_args()
            user_id = args.get('user_id')
            new_role_id = args.get('new_role_id')
            old_role_id = args.get('old_role_id')

            if not all([user_id, new_role_id, old_role_id]):
                raise Exception('参数错误,参数不能为空')

            role_user_manage.role_user_update(user_id, new_role_id,
                                              old_role_id)
        except Exception as e:
            return set_return_val(False, {}, str(e), 1234), 400
        return set_return_val(True, {}, '用户角色更新成功', 1234)
예제 #12
0
 def put(self):
     """
     update logo
     ---
     tags:
      - system config
     parameters:
     - name: "logo"
       in: "formData"
       required: true
       type: file
       format: "int64"
     responses:
         200:
           description: 更新系统logo
           schema:
             properties:
               ok:
                 type: boolean
                 default: 200
                 description: 状态
               code:
                 type: string
               msg:
                 type: string
               data:
                 type: array
                 items:
                   properties:
     """
     args = parser.parse_args()
     try:
         logo = args['logo']
         control.system.system_config_update_logo(logo)
     except Exception as e:
         control.event_logs.eventlog_create(type='system',
                                            result=False,
                                            resources_id='',
                                            event=unicode('更新系统logo'),
                                            submitter=g.username)
         return set_return_val(False, [], str(e), 1319), 400
     control.event_logs.eventlog_create(type='system',
                                        result=True,
                                        resources_id=1,
                                        event=unicode('更新系统logo'),
                                        submitter=g.username)
     return set_return_val(True, [], 'System logo upload succeeded', 1300)
예제 #13
0
 def delete(self, id):
     """
     删除角色信息
     ---
     tags:
       - role
     parameters:
       - in: path
         type: integer
         format: int64
         name: id
         required: true
     responses:
       200:
         description: 删除角色信息
         schema:
          properties:
             ok:
               type: boolean
               default: 200
               description: 状态
             code:
               type: string
             msg:
               type: string
             data:
               type: array
               items:
                 properties:
       """
     try:
         name = control.role.role_delete(id)
     except Exception as e:
         control.event_logs.eventlog_create(type='role',
                                            result=False,
                                            resources_id=id,
                                            event=unicode('删除角色信息'),
                                            submitter=g.username)
         return set_return_val(False, [], str(e), 1319), 400
     control.event_logs.eventlog_create(type='role',
                                        result=True,
                                        resources_id=id,
                                        event=unicode('删除角色:%s' % name),
                                        submitter=g.username)
     return set_return_val(
         True, [], 'The role information was deleted successfully.', 1200)
예제 #14
0
 def delete(self, id):
     """
     根据ID删除菜单信息
    ---
    tags:
       - menu
    parameters:
      - in: path
        name: id
        type: integer
        format: int64
        required: true
    responses:
      200:
         description: 删除菜单信息
         schema:
          properties:
             ok:
               type: boolean
               default: 200
               description: 状态
             code:
               type: string
             msg:
               type: string
             data:
               type: array
               items:
                 properties:
     """
     try:
         name = control.menu.menu_delete(id=id)
     except Exception as e:
         control.event_logs.eventlog_create(type='menu',
                                            result=False,
                                            resources_id=id,
                                            event=unicode('删除菜单信息'),
                                            submitter=g.username)
         return set_return_val(False, [], str(e), 1319), 400
     control.event_logs.eventlog_create(type='menu',
                                        result=True,
                                        resources_id=id,
                                        event=unicode('删除菜单:%s' % name),
                                        submitter=g.username)
     return set_return_val(False, [], 'Menu deletion successfully', 1300)
예제 #15
0
    def post(self):
        """
        创建平台类型
       ---
       tags:
          - cloudplatformtype
       parameters:
         - in: query
           name: name
           type: string
           description: 平台类型名称
       responses:
         200:
            description: 创建平台类型
            schema:
             properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
        """
        args = parser.parse_args()

        if not args['name']:
            raise Exception('Please pass in the platform type name.')

        try:
            id = control.platform_type.type_create(name=args['name'])

        except Exception as e:
            control.event_logs.eventlog_create(type='platform_type', result=False, resources_id='',
                                               event=unicode('增加平台类型'), submitter=g.username)
            return set_return_val(False, [], str(e), 1319), 400
        control.event_logs.eventlog_create(type='platform_type', result=True, resources_id=id, event=unicode('增加平台类型'),
                                           submitter=g.username)
        return set_return_val(True, [], 'Platform type create succeeded.', 1430)
예제 #16
0
 def delete(self, id):
     """
     根据id删除云平台类型信息
    ---
    tags:
       - cloudplatformtype
    parameters:
      - in: path
        name: id
        type: integer
        format: int64
        required: true
    responses:
      200:
         description: 删除平台类型
         schema:
          properties:
             ok:
               type: boolean
               default: 200
               description: 状态
             code:
               type: string
             msg:
               type: string
             data:
               type: array
               items:
                 properties:
     """
     try:
         control.platform_type.type_delete(id)
     except Exception as e:
         control.event_logs.eventlog_create(type='platform_type', result=False, resources_id=id,
                                            event=unicode('删除平台类型信息'), submitter=g.username)
         return set_return_val(False, [], str(e), 1529), 400
     control.event_logs.eventlog_create(type='platform_type', result=True, resources_id=id, event=unicode('删除平台类型信息'),
                                        submitter=g.username)
     return set_return_val(True, [], 'Platform type delete succeeded.', 1520)
예제 #17
0
class PlatformTypeMg(Resource):
    def get(self):
        """
        查询云平台类型信息
       ---
       tags:
          - cloudplatformtype
       parameters:
         - in: query
           name: id
           type: integer
           format: int64
         - in: query
           name: name
           type: string
           description: 平台类型名称
       responses:
          200:
            description: 查询平台类型
            schema:
             properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
                      id:
                        type: string
                        default: 1
                        description: id
                      name:
                        type: string
                        default: vcenter
                        description: 平台类型名称

        """
        args = parser.parse_args()
        try:

            data = control.platform_type.type_list(id=args['id'], name=args['name'])
        except Exception, e:
            return set_return_val(False, [], str(e), 1319), 400

        return set_return_val(True, data, 'Platform type query succeeded.', 1430)
예제 #18
0
    def put(self, id):
        """
        根据id更新云平台类型信息
       ---
       tags:
          - cloudplatformtype
       parameters:
         - in: path
           name: id
           type: integer
           format: int64
           required: true
         - in: query
           name: name
           type: string
           description: 平台类型名称
       responses:
         200:
            description: 更新平台类型
            schema:
             properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
        """

        args = parser.parse_args()
        if not args['name']:
            raise Exception('Please pass in the platform type name.')
        try:
            control.platform_type.type_update(id, args['name'])

        except Exception, e:
            control.event_logs.eventlog_create(type='platform_type', result=False, resources_id=id,
                                               event=unicode('更新平台类型信息'), submitter=g.username)
            return set_return_val(False, [], str(e), 1529), 400
예제 #19
0
    def delete(self, id):
        """
        根据id用户信息
       ---
       tags:
          - user
       parameters:
         - in: path
           name: id
           type: integer
           format: int64
           required: true
       responses:
         200:
            description: 删除用户信息
            schema:
              properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
        """
        try:
            username = control.user.user_delete(id=id)

        except Exception, e:
            control.event_logs.eventlog_create(type='user', result=True, resources_id=id,
                                               event=unicode('删除用户'), submitter=g.username)
            return set_return_val(False, [], str(e), 1001), 400
예제 #20
0
    def put(self):
        """
        更新系统配置
        ---
        tags:
          - system config
        parameters:
          - in: query
            name: platform_name
            type: string
            description: 平台名称
          - name: version_information
            type: string
            in: query
            description: 版本信息
          - name: copyright
            type: string
            in: query
            description: 版权
          - name: user_authentication_mode
            type: string
            in: query
            description: 用户验证模式
          - name: debug
            type: int
            in: query
            description: debug
        responses:
          200:
            description: 更新系统配置
            schema:
              properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
        """
        args = parser.parse_args()

        try:
            control.system.system_config_update(
                platform_name=args['platform_name'],
                version_information=args['version_information'],
                copyright=args['copyright'],
                user_authentication_mode=args['user_authentication_mode'],
                debug=args['debug'])

        except Exception as e:
            control.event_logs.eventlog_create(type='system',
                                               result=False,
                                               resources_id='',
                                               event=unicode('更新系统配置'),
                                               submitter=g.username)
            return set_return_val(False, [], str(e), 1319), 400
        control.event_logs.eventlog_create(type='system',
                                           result=True,
                                           resources_id=1,
                                           event=unicode('更新系统配置'),
                                           submitter=g.username)
        return set_return_val(True, [],
                              'System configuration updated succeeded', 1300)
예제 #21
0
                    properties:
        """

        args = parser.parse_args()
        if not args['name']:
            raise Exception('Please pass in the platform type name.')
        try:
            control.platform_type.type_update(id, args['name'])

        except Exception, e:
            control.event_logs.eventlog_create(type='platform_type', result=False, resources_id=id,
                                               event=unicode('更新平台类型信息'), submitter=g.username)
            return set_return_val(False, [], str(e), 1529), 400
        control.event_logs.eventlog_create(type='platform_type', result=True, resources_id=id, event=unicode('更新平台类型信息'),
                                           submitter=g.username)
        return set_return_val(True, [], 'Platform type update succeeded.', 1520)

    @basic_auth.login_required
    def delete(self, id):
        """
        根据id删除云平台类型信息
       ---
       tags:
          - cloudplatformtype
       parameters:
         - in: path
           name: id
           type: integer
           format: int64
           required: true
       responses:
예제 #22
0
    def get(self):
        """
         获取 instance 信息
        ---
        tags:
          - vCenter instances
        parameters:
          - in: query
            name: platform_id
            type: string
            description: 平台id
            required: true
          - in: query
            name: host
            type: string
            description: host 名称
          - in: query
            name: vm_name
            type: string
            description: vmOcName
          - in: query
            name: pgsort
            type: string
            description: pgsort
          - in: query
            name: pgnum
            type: int
            description: 页码
        responses:
          200:
            description: vCenter tree 信息
            schema:
              properties:
                ok:
                  type: boolean
                  description: 状态
                code:
                  type: "integer"
                  format: "int64"
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
                      cpu:
                        type: string
                        default: 2
                        description: cpu
                      created_at:
                        type: string
                        default: 2019-05-17 14:39:00
                        description: created_at
                      guest_full_name:
                        type: string
                        default: 'Red Hat Enterprise Linux 6 (64-bit)'
                        description: guest_full_name
                      guest_id:
                        type: string
                        default: rhel6_64Guest
                        description: guest_id
                      host:
                        type: string
                        default: 192.168.12.203
                        description: host
                      id:
                        type: string
                        default: 2
                        description: id
                      instance_uuid:
                        type: string
                        default: 500114bd-a861-f0ae-0f8d-f6e70d7c2c5c
                        description: instance_uuid
                      ip:
                        type: string
                        default: NUll
                        description: ip
                      memory:
                        type: string
                        default: 2048
                        description: memory
                      num_ethernet_cards:
                        type: string
                        default: 2
                        description: num_ethernet_cards
                      num_virtual_disks:
                        type: string
                        default: 2
                        description: num_virtual_disks
                      platform_id:
                        type: string
                        default: 2
                        description: platform_id
                      status:
                        type: string
                        default: poweredOff
                        description: status
                      template:
                        type: string
                        default: false
                        description: template
                      uuid:
                        type: string
                        default: 42018b9a-5e13-796b-02fa-57d6f56f3ac8
                        description: uuid
                      vm_mor_name:
                        type: string
                        default: vm-1362
                        description: vm_mor_name
                      vm_name:
                        type: string
                        default: 测试菜单1
                        description: vm_name
                      vm_path_name:
                        type: string
                        default: 测试菜单1
                        description: '[datastore1] 测试菜单1/测试菜单1.vmx'

          400:
            description: 获取失败
            schema:
              properties:
                ok:
                  type: boolean
                  description: 状态
                  default: False
                code:
                  type: "integer"
                  format: "int64"
                  default: 1302
                msg:
                  type: string
                  default: "获取失败"
                data:
                  type: array
                  items:
                    properties:
        """
        args = parser.parse_args()
        try:
            instance = Instance(platform_id=args['platform_id'])
            # print(args['pgnum'])
            pgnum = args['pgnum']
            if not pgnum:
                pgnum = 1  # 默认第一页
            print(args['pgsort'])
            data, pg = instance.list(host=args['host'], vm_name=args['vm_name'], pgnum=pgnum,
                                     pgsort=args['pgsort'])
            # data = instance_manage.vm_list_all(platform_id=args['platform_id'], host=args['host'],
            #                                    vm_name=args['vm_name'])

        except Exception as e:
            return set_return_val(False, [], str(e), 1529), 400
        return set_return_val(True, data, 'instance gets success.', 1520, pg)
예제 #23
0
    def get(self):
        """
         获取用户角色列表
         ---
         tags:
           - user_role
         parameters:
           - in: query
             type: string
             name: user_name
             description: 用户名
           - in: query
             name: role_name
             type: string
             description: 角色名
         responses:
           200:
            description: 获取用户角色信息
            schema:
             properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
                      role_id:
                        type: string
                        default: 1
                        description: role_id
                      role_name:
                        type: string
                        default: admin
                        description: role_name
                      user_id:
                        type: string
                        default: 1
                        description: user_id
                      user_name:
                        type: string
                        default: admin
                        description: user_name
         """
        try:

            args = parser.parse_args()
            # user_name = args.get('user_name')
            # role_name = args.get('role_name')
            # 获取所有用户角色权限 列表
            # data = role_user_manage.role_user_list(args['user_name'], args['role_name'])
            data = control.roles_users.role_user_list(args['user_name'],
                                                      args['role_name'])
        except Exception as e:
            return set_return_val(False, {}, str(e), 1234), 400
        return set_return_val(True, data, '获取列表成功', 1234)
예제 #24
0
    def post(self):
        """
         操作 vm 信息
        ---
        tags:
          - vCenter instances
        parameters:
          - in: query
            name: platform_id
            type: string
            description: 云平台id
            required: true
          - in: query
            name: uuid
            type: string
            description: 云主机id
          - in: query
            name: action
            type: string
            description: 'start stop suspend remove restart create clone cold_migrate'
            required: true
          - in: query
            name: vm_name
            type: string
            description: 云主机名称
          - in: query
            name: new_cpu
            type: string
            description: new_cpu
          - in: query
            name: new_memory
            type: string
            description: new_memory
          - in: query
            name: host
            type: string
            description: host
          - in: query
            name: dc_id
            type: string
            description: datacenter id
          - in: query
            name: ds_id
            type: string
            description: datastore id
          - in: query
            name: resourcepool
            type: string
            description: resourcepool
          - in: query
            name: guest_id
            type: string
            description: guest_id
          - in: query
            name: image_id
            type: string
            description: image id
          - in: query
            name: disks
            type: string
            description: '[{"type":"thin","size":1},{"type":"thin","size":1}]'
          - in: query
            name: networks
            type: string
            description: '[1,2]--network_port_group_id'
        responses:
          200:
            description: vCenter tree 信息
            schema:
              properties:
                ok:
                  type: boolean
                  description: 状态
                code:
                  type: "integer"
                  format: "int64"
                msg:
                  type: string
                  default: "操作成功"
                data:
                  type: array
                  items:
                    properties:
          400:
            description: 获取失败
            schema:
              properties:
                ok:
                  type: boolean
                  description: 状态
                  default: False
                code:
                  type: "integer"
                  format: "int64"
                  default: 1302
                msg:
                  type: string
                  default: "获取失败"
                data:
                  type: array
                  items:
                    properties:
        """
        args = parser.parse_args()
        try:
            instance = Instance(platform_id=args['platform_id'], uuid=args['uuid'])

            if args['action'] == 'start':
                instance.start()

            elif args['action'] == 'stop':
                instance.stop()

            elif args['action'] == 'suspend':
                instance.suspend()

            elif args['action'] == 'restart':
                instance.restart()

            elif args['action'] == 'create':

                instance.boot(new_cpu=args['new_cpu'], new_memory=args['new_memory'], dc_id=args['dc_id'],
                              ds_id=args['ds_id'], vm_name=args['vm_name'], networks=args['networks'],
                              disks=args['disks'], image_id=args['image_id'])

            elif args['action'] == 'clone':
                instance.clone(new_vm_name=args['vm_name'], ds_id=args['ds_id'], dc_id=args['dc_id'],
                               resourcepool=args['resourcepool'])

            elif args['action'] == 'cold_migrate':
                instance.cold_migrate(host_name=args['host'], ds_id=args['ds_id'], dc_id=args['dc_id'],
                                      resourcepool=args['resourcepool'])
            elif args['action'] == 'ip_assignment':
                instance.ip_assignment(ip=args['ip'], subnet=args['subnet'],
                                       gateway=args['gateway'], dns=args['dns'], domain=args.get('domain'))
            else:
                raise Exception('Parameter error')
        except Exception as e:
            return set_return_val(False, [], str(e), 1529), 400
        return set_return_val(True, [], 'instance action success.', 1520)
예제 #25
0
 def delete(self, platform_id, uuid):
     """
     删除 vm 信息
     ---
     tags:
       - vCenter instances
     parameters:
       - in: path
         name: platform_id
         type: string
         description: platform_id
         required: true
       - in: path
         name: uuid
         type: string
         description: uuid
         required: true
     responses:
       200:
         description: vCenter tree 信息
         schema:
           properties:
             ok:
               type: boolean
               description: 状态
             code:
               type: "integer"
               format: "int64"
             msg:
               type: string
               default: "删除成功"
             data:
               type: array
               items:
                 properties:
       400:
         description: 删除失败
         schema:
           properties:
             ok:
               type: boolean
               description: 状态
               default: False
             code:
               type: "integer"
               format: "int64"
               default: 1302
             msg:
               type: string
               default: "删除失败"
             data:
               type: array
               items:
                 properties:
     """
     # args = parser.parse_args()
     try:
         instance = Instance(platform_id=platform_id, uuid=uuid)
         instance.delete()
     except Exception as e:
         return set_return_val(False, [], str(e), 1529), 400
     return set_return_val(True, [], 'instance delete success.', 1520)
예제 #26
0
    def post(self):
        """
        初始化系统配置
        ---
        tags:
          - system config
        parameters:
          - name: platform_name
            in: query
            type: string
            description: 平台名称
            required: true
          - name: version_information
            type: string
            in: query
            description: 版本信息
          - name: copyright
            type: string
            in: query
            description: 版权
          - name: user_authentication_mode
            type: string
            in: query
            description: 用户验证模式
          - name: debug
            type: string
            in: query
            description: debug
        responses:
          200:
            description: 创建系统配置
            schema:
              properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:

        """
        args = parser.parse_args()

        if int(args['debug']) not in [1, 2]:
            raise Exception(
                'The debug parameter is wrong, 1 is True and 2 is False')
        try:

            control.system.system_config_create(
                platform_name=args['platform_name'],
                version_information=args['version_information'],
                copyright=args['copyright'],
                user_authentication_mode=args['user_authentication_mode'],
                debug=args['debug'])
        except Exception as e:
            control.event_logs.eventlog_create(type='system',
                                               result=False,
                                               resources_id='',
                                               event=unicode('创建系统配置'),
                                               submitter=g.username)
            return set_return_val(False, [], str(e), 1319), 400
        control.event_logs.eventlog_create(type='system',
                                           result=True,
                                           resources_id=1,
                                           event=unicode('创建系统配置'),
                                           submitter=g.username)
        return set_return_val(True, [], 'System config created successfully',
                              1300)
예제 #27
0
    def put(self):
        """
         更新 vm 信息
        ---
        tags:
          - vCenter instances
        parameters:
          - in: path
            name: platform_id
            type: string
            description: platform_id
            required: true
          - in: path
            name: uuid
            type: string
            description: uuid
            required: true
          - in: query
            name: new_cpu
            type: string
            description: new_cpu
          - in: query
            name: old_cpu
            type: string
            description: old_cpu
          - in: query
            name: new_memory
            type: string
            description: new_memory
          - in: query
            name: old_memory
            type: string
            description: old_memory
        responses:
          200:
            description: vCenter tree 信息
            schema:
              properties:
                ok:
                  type: boolean
                  description: 状态
                code:
                  type: "integer"
                  format: "int64"
                msg:
                  type: string
                  default: "操作成功"
                data:
                  type: array
                  items:
                    properties:

          400:
            description: 获取失败
            schema:
              properties:
                ok:
                  type: boolean
                  description: 状态
                  default: False
                code:
                  type: "integer"
                  format: "int64"
                  default: 1302
                msg:
                  type: string
                  default: "获取失败"
                data:
                  type: array
                  items:
                    properties:
        """

        args = parser.parse_args()

        try:
            instance = Instance(platform_id=args['platform_id'], uuid=args['uuid'])
            if all([args['new_cpu'], args['old_cpu']]):
                instance.update_vcpu(new_cpu=args['new_cpu'], old_cpu=args['old_cpu'])

            if all([args['new_memory'], args['old_memory']]):
                instance.update_vmemory(new_memory=args['new_memory'], old_memory=args['old_memory'])

            # # 添加网络
            # if args['new_networks']:
            #     instance.add_network(networks=args['new_networks'])
            #
            # if args['del_networks']:
            #     instance.del_network(networks=args['del_networks'])

            # if args['new_disks']:
            #     instance.add_disk(disks=args['new_disks'])
            #     # pass
            # if args['del_disks']:
            #     instance.delete_disk(disks=args['del_disks'])

            # if args['snapshot_name']:
            #     print(args['snapshot_name'])
            #     instance.add_snapshot(snapshot_name=args['snapshot_name'], description=args['description'])
            # if args['snapshot_id']:
            #     print(args['snapshot_id'])
            #     instance.delete_snapshot(snapshot_id=args['snapshot_id'])
        except Exception as e:
            return set_return_val(False, [], str(e), 1529), 400
        return set_return_val(True, [], 'instance update success.', 1520)
예제 #28
0
    def get(self):
        """
         获取vCenter datastore 信息
        ---
        tags:
          - vCenter DataStore
        parameters:
          - in: query
            name: platform_id
            type: integer
            required: true
        responses:
          200:
            description: 获取datastore 成功
            schema:
              properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
                      capacity:
                        type: string
                        default: 591363309568
                        description: capacity
                      dc_mor_name:
                        type: string
                        default: datacenter-661
                        description: dc_mor_name
                      dc_name:
                        type: string
                        default: 200
                        description: Datacenter
                      ds_mor_name:
                        type: string
                        default: datastore-671
                        description: ds_mor_name
                      ds_name:
                        type: string
                        default: datastore1
                        description: ds_name
                      free_capacity:
                        type: string
                        default: 173924155392
                        description: free_capacity
                      host:
                        type: string
                        default: 192.168.12.203
                        description: host
                      id:
                        type: string
                        default: 200
                        description: id
                      local:
                        type: boolean
                        default: 200
                        description: local
                      platform_id:
                        type: string
                        default: 200
                        description: platform_id
                      ssd:
                        type: boolean
                        default: true
                        description: ssd
                      type:
                        type: string
                        default: VMFS
                        description: type
                      used_capacity:
                        type: string
                        default: 417439154176
                        description: type
                      uuid:
                        type: string
                        default: 5c19f5d5-ada3c960-acd7-b8ca3af5a86b
                        description: type
                      version:
                        type: string
                        default: 6.8.2
                        description: type

          400:
            description: 获取datastore失败
            schema:
              properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
        """
        args = parser.parse_args()
        # test_get_ds(args['platform_id'])
        try:
            if not args['platform_id']:
                raise Exception('Parameter error')
            data = control.datastores.get_datastore_by_platform_id(
                args['platform_id'])
        except Exception as e:
            return set_return_val(False, [], str(e), 1529), 400
        return set_return_val(True, data, 'Datastore gets success.', 1520)
예제 #29
0
    def get(self):
        """
        获取任务日志信息
        ---
        tags:
          - logs
        summary: Add a new pet to the store
        parameters:
          - in: query
            name: task_id
            type: string
            description: 任务id
          - in: query
            name: rely_task_id
            type: string
            description: 依赖任务id
          - in: query
            name: pgnum
            type: int
            description: 页码
          - name: submitter
            type: string
            in: query
            description: 提交者
          - name: request_id
            type: string
            in: query
            description: 请求id
        responses:
          200:
            description: 任务日志信息
            schema:
              properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
                      id:
                        type: int
                        default: 1
                      await_execute:
                        type: string
                        default: 1/2
                      end_time:
                        type: string
                        default: 2019-05-20 15:59:26.096000
                      enqueue_time:
                        type: string
                        default: 2019-05-20 15:58:26.096000
                      method_name:
                        type: string
                        default: sync_tree
                      queue_name:
                        type: string
                        default: vsphere
                      rely_task_id:
                        type: string
                        default: --
                      request_id:
                        type: string
                        default: 96be5461-abb2-508f-aba5-38cf027efe48
                      start_time:
                        type: string
                        default: None
                      status:
                        type: string
                        default: wait
                      submitter:
                        type: string
                        default: anonymous
                      task_id:
                        type: string
                        default: eb054bcd-3360-4eff-a10d-1f2c35a977fb

        """
        args = parser.parse_args()
        task_id = args.get('task_id')
        rely_task_id = args.get('rely_task_id')
        request_id = args.get('request_id')
        submitter = args.get('submitter')
        pgnum = args.get('pgnum')
        if not pgnum:
            pgnum = 1  # 默认第一页
        options = {
            'page': pgnum,
            'task_id': task_id,
            'rely_task_id': rely_task_id,
            'request_id': request_id,
            'submitter': submitter,
        }

        try:

            data, pg = control.task_logs.log_list(
                pgnum=pgnum,
                task_id=args['task_id'],
                rely_task_id=args['rely_task_id'],
                submitter=args['submitter'],
                request_id=args['request_id'])
        except Exception as e:
            return set_return_val(False, [], str(e), 1529), 400
        return set_return_val(True, data, 'request log list succeeded.', 1520,
                              pg)
예제 #30
0
    def put(self):
        """
         用户角色更新
         ---
         tags:
           - user_role
         parameters:
           - in: query
             type: string
             name: user_id
             description: 用户id
           - in: query
             name: new_role_id
             type: string
             description: 新角色id
           - in: query
             name: old_role_id
             type: string
             description: 旧角色id
         responses:
           200:
            description: 用户角色重新分配
            schema:
             properties:
                ok:
                  type: boolean
                  default: 200
                  description: 状态
                code:
                  type: string
                msg:
                  type: string
                data:
                  type: array
                  items:
                    properties:
         """
        # 更新用户角色
        try:
            args = parser.parse_args()
            user_id = args.get('user_id')
            new_role_id = args.get('new_role_id')
            old_role_id = args.get('old_role_id')

            if not all([user_id, new_role_id, old_role_id]):
                raise Exception('参数错误,参数不能为空')

            username, new_name, old_name = control.roles_users.role_user_update(
                user_id, new_role_id, old_role_id)
        except Exception as e:
            control.event_logs.eventlog_create(type='roles_users',
                                               result=False,
                                               resources_id='',
                                               event=unicode('更新用户角色'),
                                               submitter=g.username)
            return set_return_val(False, {}, str(e), 1234), 400

        control.event_logs.eventlog_create(
            type='roles_users',
            result=True,
            resources_id=user_id,
            event=unicode('更新用户:%s 的角色 %s 为  %s' %
                          (username, old_name, new_name)),
            submitter=g.username,
            role_id=new_role_id)
        return set_return_val(True, {}, '用户角色更新成功', 1234)