Ejemplo n.º 1
0
def getJobModel(appObj):
  global jobModel
  if jobModel is None:
    jobModel = appObj.flastRestPlusAPIObject.model('Job', {
      'name': fields.String(default=''),
      'command': fields.String(default=''),
      'enabled': fields.Boolean(default=False,description='Is auto scheduling enabled - otherwise manual run only'),
      'repetitionInterval': fields.String(default='',description='How the job is scheduled to run'),
      'nextScheduledRun': fields.DateTime(dt_format=u'iso8601', description='Next scheudled run'),
      'guid': fields.String(default='',description='Unique identifier for this job'),
      'creationDate': fields.DateTime(dt_format=u'iso8601', description='Time job record was created'),
      'lastUpdateDate': fields.DateTime(dt_format=u'iso8601', description='Last time job record was changed (excluding runs)'),
      'lastRunDate': fields.DateTime(dt_format=u'iso8601', description='Last time job record was run'),
      'lastRunReturnCode': fields.Integer(default=None,description='Return code for the last execution of this job or -1 for timed out'),
      'lastRunExecutionGUID': fields.String(default='',description='Unique identifier for the last job execution for this job'),
      'mostRecentCompletionStatus': fields.String(default='Unknown',description='READONLY - Success, Fail or Unknown. Success or Fail if the job has run in last 25 hours, Unknown otherwise'),
      'pinned': fields.Boolean(default=False,description='Pin job to dashboard'),
      'overrideMinutesBeforeMostRecentCompletionStatusBecomesUnknown': fields.Integer(default=None,description='Override global number of minutes a job has not been run before a job is considered to have Unknown status for this job.'),
      'StateChangeSuccessJobGUID': fields.String(default=None,description='GUID of job to call when this jobs state changes to Success'),
      'StateChangeFailJobGUID': fields.String(default=None,description='GUID of job to call when this jobs state changes to Fail'),
      'StateChangeUnknownJobGUID': fields.String(default=None,description='GUID of job to call when this jobs state changes to Unknown'),
      'StateChangeSuccessJobNAME': fields.String(default=None,description='READONLY - Name of job to call when this jobs state changes to Success'),
      'StateChangeFailJobNAME': fields.String(default=None,description='READONLY - Name of job to call when this jobs state changes to Fail'),
      'StateChangeUnknownJobNAME': fields.String(default=None,description='READONLY - Name of job to call when this jobs state changes to Unknown'),
    })
  return jobModel
Ejemplo n.º 2
0
class ContatoDto:
    api = Namespace('contatos', description='Operações com contatos')
    contatoinsert = api.model(
        'contato', {
            'valor':
            fields.String(required=True, description='valor contato'),
            'tipocontato_id':
            fields.Integer(required=True, description='id do tipo contato'),
            'fornecedor_id':
            fields.Integer(required=True, description='id do fornecedor'),
        })
    contatolista = api.model(
        'contatos', {
            'id':
            fields.String(description='id do contato'),
            'valor':
            fields.String(required=True, description='valor contato'),
            'tipocontato_id':
            fields.Integer(required=True, description='id do tipo contato'),
            'fornecedor_id':
            fields.Integer(required=True, description='id do fornecedor'),
            'ativo':
            fields.Boolean(description='status do contato'),
        })
    contatoupdate = api.model(
        'contatoupdate', {
            'valor': fields.String(description='valor contato'),
            'tipocontato_id': fields.Integer(description='id do tipo contato'),
            'ativo': fields.Boolean(description='status do contato'),
        })
Ejemplo n.º 3
0
class AccountDto:
    account = api.model(
        'user account', {
            'error':
            fields.Boolean(default=False, description=''),
            'message':
            fields.String(description='message'),
            'public_id':
            fields.String(description='user identifier',
                          example='729528d3-a7d3-4fef-9004-056919d97a5b'),
            'username':
            fields.String(required=True, description='username'),
            'email':
            fields.String(required=True, description='user email address'),
            'activated':
            fields.Boolean(description='user account activation status'),
            'blocked':
            fields.Boolean(description='user account blocked status'),
            'firstname':
            fields.String(description='user firstname'),
            'lastname':
            fields.String(description='user lastname'),
            'registered':
            fields.DateTime(description='user registration date')
        })
Ejemplo n.º 4
0
class UserDto:
    """User DTO"""
    api = Namespace('user', description='user related operations')
    signup = api.model('signup', {
        'email': fields.String(required=True, description='user email address'),
        'username': fields.String(required=True, description='user username'),
        'password': fields.String(required=True, description='user password'),
        'hire_date': fields.Date(required=True, description='user hire date')
    })

    lookup = api.model('lookup', {
        'id': fields.Integer(description='user identifier', readonly=True),
        'email': fields.String(required=True, description='user email address'),
        'username': fields.String(required=True, description='user username'),
        'hire_date': fields.Date(required=True, description='user hire date'),
        'admin': fields.Boolean(required=True, description='is user admin')
    })

    profile = api.model('profile', {
        'email': fields.String(description='user email address'),
        'username': fields.String(description='user username'),
        'hire_date': fields.Date(description='user hire date'),
        'admin': fields.Boolean(description='is user admin'),
        'department_id': fields.Integer(description='department id'),
    })

    manager = api.model('user_manager_relationship', {
        'manager_id': fields.Integer(description='manger id', required=True)
    })
Ejemplo n.º 5
0
class UsuarioDto:
    api = Namespace('usuarios', description='Operações com usuários')

    usuarioinsert = api.model(
        'usuarioinsert', {
            'login': fields.String(required=True),
            'nome': fields.String(required=True),
            'senha': fields.String(required=True),
            'perfil_id': fields.Integer(required=True,
                                        description='id do perfil')
        })
    usuariolist = api.model(
        'usuariolist', {
            'id': fields.Integer(readonly=True),
            'login': fields.String(required=True),
            'nome': fields.String(required=True),
            'ativo': fields.Boolean(),
            'uri': fields.Url('api.usuarios_usuario_id'),
            'perfil_id': fields.Integer(description='id do perfil')
        })
    usuarioupdate = api.model(
        'usuarioupdate', {
            'login':
            fields.String(required=False),
            'nome':
            fields.String(required=False),
            'senha':
            fields.String(required=False),
            'perfil_id':
            fields.Integer(required=False, description='id do perfil'),
            'ativo':
            fields.Boolean(required=False,
                           description='inativa/ativa usuário'),
        })
Ejemplo n.º 6
0
class UsuarioDto:
    api = Namespace('usuarios', description='Operações com usuários')

    usuarioinsert = api.model('usuarioinsert', {
        'login': fields.String(required=True),
        'nome' : fields.String(required=True),
        'senha': fields.String(required=True),
        'perfil_id': fields.Integer(required=True, description='id do perfil')
    })
    usuariolist = api.model('usuariolist', {
        'id'  : fields.Integer(readonly=False),
        'login': fields.String(required=False),
        'nome' : fields.String(required=False),
        'ativo': fields.Boolean(),
        'perfil_id': fields.Integer( description='id do perfil')
    })
    usuarioListRetorno = api.model('usuarioListRetorno', {
        'id'  : fields.Integer(readonly=True),
        'login': fields.String(required=True),
        'nome' : fields.String(required=True),
        'ativo': fields.Boolean(),
        'perfil_id': fields.Integer( description='id do perfil'),
        'status': fields.String(required=False, description='status da atualização do usuário'),
        'message': fields.String(required=False, description='descrição do resultado da atualização'),
    })
    usuarioupdate = api.model('usuarioupdate', {
        'login': fields.String(required=False),
        'nome' : fields.String(required=False),
        'senha': fields.String(required=False),
        'perfil_id': fields.Integer(required=False, description='id do perfil'),
        'ativo': fields.Boolean(required=False,description='inativa/ativa usuário'),
    })
Ejemplo n.º 7
0
class PhoneDto:
    """
    DTO Phone
    """
    api = Namespace("Phone", description="Endpoints API Agente Virtual")

    phone_remove = api.model('phone_remove', {
        'phone_id':
        fields.Integer(required=True, description="Id do telefone"),
    })

    phone_post = api.model(
        'phone_post', {
            'phone_number':
            fields.String(required=True, description="Número de telefone"),
            'available':
            fields.Boolean(description="Disponível para discagem"),
        })

    phone = api.model(
        'Phone', {
            'phone_id':
            fields.Integer(required=True, description="Id do telefone PHONE"),
            'phone_number':
            fields.String(required=True, description="Número de telefone"),
            'available':
            fields.Boolean(description="Disponível para discagem"),
        })
Ejemplo n.º 8
0
class EmployeeDTO:
    api = Namespace('employee', description='Endpoint to manage Employee')
    new_employee = api.model('new_employee',
                             {
                                 'firstName': fields.String(required=True, description='First Name of employee'),
                                 'lastName': fields.String(required=False, description='Last Name of employee'),
                                 'email': fields.String(required=True, description='Email ID of employee'),
                                 'designation': fields.String(required=False, description='Designation of employee'),
                                 'DOB': fields.Date(required=True, description='Date of Birth of employee'),
                                 'active': fields.Boolean(required=True, description='Active state of employee'),
                                 'company': fields.Integer(required=True, description='Company ID where an employee is working'),

                             })

    employees = api.model('employees',
                          {
                              'eId': fields.Integer(required=True, description='Id of employee'),
                              'firstName': fields.String(required=True, description='First Name of employee'),
                              'lastName': fields.String(required=False, description='Last Name of employee'),
                              'email': fields.String(required=True, description='Email ID of employee'),
                              'designation': fields.String(required=False, description='Designation of employee'),
                              'DOB': fields.Date(required=True, description='Date of Birth of employee'),
                              'active': fields.Boolean(required=True, description='Active state of employee'),
                              'company': fields.List(fields.Nested(api.model('employee',
                                                                             {
                                                                                 'cId': fields.Integer(required=True, description='Id of the company'),
                                                                                 'name': fields.String(required=True, description='Name of the Company'),
                                                                                 'address': fields.List(fields.Nested(api.model('address',
                                                                                                                                {'aId': fields.Integer(required=False, description='Id of Address'),
                                                                                                                                 'doorNo': fields.String(required=False),
                                                                                                                                 'streetName': fields.String(required=False),
                                                                                                                                 'city': fields.String(required=True),
                                                                                                                                 'state': fields.String(required=True),
                                                                                                                                 'country': fields.String(required=True),
                                                                                                                                 'pincode': fields.String(required=True),
                                                                                                                                 }), required=True)),
                                                                                 'latitude': fields.String(required=False, description='Latitude of company location'),
                                                                                 'longitude': fields.String(required=False, description='Longitude of company location')
                                                                             })))
                              #   'company': fields.String()
                          })

    update_employee = api.model('update_employee',
                                {
                                    'eId': fields.Integer(required=True, description='Id of employee'),
                                    'firstName': fields.String(required=True, description='First Name of employee'),
                                    'lastName': fields.String(required=False, description='Last Name of employee'),
                                    'email': fields.String(required=True, description='Email ID of employee'),
                                    'designation': fields.String(required=False, description='Designation of employee'),
                                    'DOB': fields.Date(required=True, description='Date of Birth of employee'),
                                    'active': fields.Boolean(required=True, description='Active state of employee'),
                                    'company': fields.Integer(required=True, description='Company ID where an employee is working'),

                                })
Ejemplo n.º 9
0
class UserDto:
    api = Namespace('user', description='user related operations')
    user = api.model('user', {
        'email': fields.String(required=True, description='email address'),
        'is_admin': fields.Boolean(required=False, description='is_admin')
    })
    post_user = api.model('user', {
        'email': fields.String(required=True, description='email address'),
        'password': fields.String(required=True, description='password'),
        'is_admin': fields.Boolean(required=True, description='is_admin')
    })
def getAuthProviderModel(appObj):
    return appObj.flastRestPlusAPIObject.model(
        'AuthProviderInfo', {
            'guid':
            fields.String(default=None,
                          description='Unique identifier of AuthProvider'),
            'Type':
            fields.String(default='internal',
                          description='Authorization provider type'),
            'AllowUserCreation':
            fields.Boolean(
                default=False,
                description=
                'Allow unknown logins to create new users. (Must be set to true at this level AND Tenant level to work)'
            ),
            'AllowLink':
            fields.Boolean(
                default=None,
                description='Allow user to add this as a secondary auth method'
            ),
            'AllowUnlink':
            fields.Boolean(
                default=None,
                description=
                'Allow user to remove this auth method (As long as they have others availiable)'
            ),
            'LinkText':
            fields.String(
                default=None,
                description=
                'Text to show on link button in Security settings UI'),
            'MenuText':
            fields.String(
                default='click here',
                description='Item text used in login method selection screen'),
            'IconLink':
            fields.String(
                default=None,
                description='Image link used in login method selection screen'
            ),
            'ConfigJSON':
            fields.String(
                default=None,
                description='Extra configuration required per auth type'),
            'StaticlyLoadedData':
            fields.Raw(description='Other data loaded for this auth type'),
            'saltForPasswordHashing':
            fields.String(
                default=None,
                description=
                'Salt that can be used for password hashing (Depends on auth method)'
            )
        })
def getTicketTypeModel(appObj):
    return appObj.flastRestPlusAPIObject.model(
        'TicketType', {
            'id':
            fields.String(
                default='DEFAULT',
                description='Unique identifier of User from login system'),
            'tenantName':
            fields.String(default='DEFAULT',
                          description='Tenant name for this ticket type'),
            'ticketTypeName':
            fields.String(default='DEFAULT',
                          description='Name displayed on admin screent'),
            'description':
            fields.String(default='DEFAULT',
                          description='Description of ticket type'),
            'enabled':
            fields.Boolean(
                default=False,
                description='Can the ticket type currently be used'),
            'welcomeMessage':
            fields.Nested(getCreateTicketTypeModel_welcomeMessage(appObj),
                          skip_none=True),
            'allowUserCreation':
            fields.Boolean(
                default=False,
                description=
                'Allow unknown logins to create new users when using this ticket.'
            ),
            'issueDuration':
            fields.Integer(
                default=None,
                description='Hours to issue ticket for on creation'),
            'roles':
            fields.List(
                fields.String(
                    default='DEFAULT',
                    description='List of roles this tickert type will assign')
            ),
            'postUseURL':
            fields.String(
                default='DEFAULT',
                description='URL to send user to after ticket is used'),
            'postInvalidURL':
            fields.String(
                default='DEFAULT',
                description=
                'URL to send user to after invalid or request validaiton'),
            RepositoryObjBaseClass.getMetadataElementKey():
            fields.Nested(
                RepositoryObjBaseClass.getMetadataModel(
                    appObj, flaskrestplusfields=fields))
        })
Ejemplo n.º 12
0
def getJobCreationModel(appObj):
  return appObj.flastRestPlusAPIObject.model('JobCreation', {
    'name': fields.String(default=''),
    'command': fields.String(default=''),
    'enabled': fields.Boolean(default=False,description='Is the job currently enabled'),
    'repetitionInterval': fields.String(default='',description='How the job is scheduled to run'),
    'pinned': fields.Boolean(default=False,description='Pin job to dashboard'),
    'overrideMinutesBeforeMostRecentCompletionStatusBecomesUnknown': fields.Integer(default=None,description='Override global number of minutes a job has not been run before a job is considered to have Unknown status for this job. (0 for no override)'),
    'StateChangeSuccessJobGUID': fields.String(default=None,description='GUID of job to call when this jobs state changes to Success'),
    'StateChangeFailJobGUID': fields.String(default=None,description='GUID of job to call when this jobs state changes to Fail'),
    'StateChangeUnknownJobGUID': fields.String(default=None,description='GUID of job to call when this jobs state changes to Unknown'),
  })
Ejemplo n.º 13
0
class TipoContatoDto:
    api = Namespace('tipocontatos', description='Operações com Tipo Contato dos Contatos')
    tipocontatoinsert = api.model('tipocontato', {
        'nome': fields.String(required=True, description='nome do tipo contato'),
    })
    tipocontatolista = api.model('tipocontatos', {
        'id': fields.Integer(description='id do tipo contato'),
        'nome': fields.String(description='nome do tipo contato'),
        'ativo': fields.Boolean(description='status do tipo contato'),
    })
    tipocontatoupdate = api.model('tipocontatoupdate', {
        'nome': fields.String(description='nome do tipo contato'),
        'ativo': fields.Boolean(description='status do tipo contato'),
    })
Ejemplo n.º 14
0
class PerfilDto:
    api = Namespace('perfis', description='Operações com Perfis de Usuario')
    perfil = api.model('perfil', {
        'id' : fields.Integer(description = 'id do perfil'),
        'nome': fields.String(required=True, description='nome do perfil'),
        'uri' : fields.Url('api.perfis_perfil', readonly=True),
        'ativo': fields.Boolean(description='ativo'),
    })
    perfilinsert = api.model('perfilinsert', {
        'nome': fields.String(required=True, description='nome do perfil'),
    })
    perfilupdate = api.model('perfilupdate', {
        'nome': fields.String(required=True, description='nome do perfil'),
        'ativo': fields.Boolean(description='ativo'),
    })
Ejemplo n.º 15
0
class RemoveHySDSIOType(Resource):
    resp_model = hysds_io_ns.model(
        'HySDS IO Removal Response(JSON)', {
            'success':
            fields.Boolean(
                required=True,
                description="Boolean, whether the API was successful"),
            'message':
            fields.String(required=True,
                          description="message describing success or failure"),
        })
    parser = hysds_io_ns.parser()
    parser.add_argument('id', required=True, type=str, help="HySDS IO ID")

    @hysds_io_ns.expect(parser)
    @hysds_io_ns.marshal_with(resp_model)
    def get(self):
        """Remove HySDS IO for the given ID"""
        _id = request.form.get('id', request.args.get('id', None))
        if _id is None:
            return {'success': False, 'message': 'id must be supplied'}, 400

        mozart_es.delete_by_id(index=HYSDS_IOS_INDEX, id=_id, ignore=404)
        app.logger.info('deleted %s from index: %s' % (_id, HYSDS_IOS_INDEX))

        return {
            'success': True,
            'message': "removed %s from index %s" % (_id, HYSDS_IOS_INDEX)
        }
Ejemplo n.º 16
0
Archivo: test.py Proyecto: hysds/pele
class Echo(Resource):
    """Echo."""

    parser = api.parser()
    parser.add_argument('echo_str',
                        required=True,
                        type=str,
                        help='string to echo')

    model = api.model(
        'Echo', {
            'success': fields.Boolean(description="success flag"),
            'message': fields.String(description="echo output"),
        })

    decorators = [limiter.limit("10/second")]

    @token_required
    @api.marshal_with(model)
    @api.doc(parser=parser, security='apikey')
    def get(self):
        echo_str = request.args.get('echo_str', None)
        if echo_str is None:
            return {
                'success': False,
                'message': "Missing echo_str parameter."
            }, 400

        return {'success': True, 'message': "{}".format(echo_str)}
Ejemplo n.º 17
0
def getCreateTenantModel(appObj):
    return appObj.flastRestPlusAPIObject.model(
        'CreateTenantInfo', {
            'Name':
            fields.String(default='DEFAULT',
                          description='Name and unique identifier of tenant'),
            'Description':
            fields.String(default='DEFAULT',
                          description='Description of tenant'),
            'AllowUserCreation':
            fields.Boolean(
                default=False,
                description=
                'Allow unknown logins to create new users. (Must be set to true at this level AND AuthPRovider level to work)'
            ),
            'AuthProviders':
            fields.List(fields.Nested(getAuthProviderModel(appObj))),
            'JWTCollectionAllowedOriginList':
            fields.List(
                fields.String(
                    default='DEFAULT',
                    description='Allowed origin to retrieve JWT tokens from')),
            'TicketOverrideURL':
            fields.String(default='', description='Overrider URL for tickets'),
            'TenantBannerHTML':
            fields.String(
                default='',
                description='HTML displayed in select auth and login screens'),
            'SelectAuthMessage':
            fields.String(
                default='',
                description=
                'Message displayed above buttons in select auth screen')
        })
Ejemplo n.º 18
0
class PrecoDto:
    api = Namespace('precos', description='Operações com Precos')
    precoinsert = api.model(
        'preco', {
            'preco_venda':
            fields.Float(required=True, description='Preço de venda'),
            'produto_id':
            fields.Integer(required=True, description='Id do produto'),
        })
    precolista = api.model(
        'precolista', {
            'id': fields.Integer(readonly=True),
            'preco_venda': fields.Float(description='Preço de venda'),
            'data_emissao':
            fields.DateTime(description='Data da movimentação'),
            'usuario_id': fields.Integer(description='Id do usuario'),
            'produto_id': fields.Integer(description='Id do produto'),
            'ativo': fields.Boolean(description='inativa/ativa preço')
        })
    precoproduto = api.model(
        'precoproduto', {
            'preco_venda': fields.Float(description='Preço de venda'),
            'data_emissao':
            fields.DateTime(description='Data da movimentação'),
        })
Ejemplo n.º 19
0
Archivo: jobs.py Proyecto: hysds/mozart
class GetJobInfo(Resource):
    """Get info of job IDs."""

    resp_model = job_ns.model('Job Info Response(JSON)', {
        'success': fields.Boolean(required=True, description="if 'false' encountered exception; "
                                                             "otherwise no errors occurred"),
        'message': fields.String(required=True, description="message describing success or failure"),
        'result':  fields.Raw(required=True, description="Job Info Object")
    })
    parser = job_ns.parser()
    parser.add_argument('id', type=str, required=True, help="Job ID")

    @job_ns.expect(parser)
    @job_ns.marshal_with(resp_model)
    def get(self):
        """Get complete info for submitted job based on id"""
        _id = request.form.get('id', request.args.get('id', None))
        if _id is None:
            return {
                'success': False,
                'message': 'id must be supplied (as query param or url param)'
            }, 400

        info = mozart_es.get_by_id(index=JOB_STATUS_INDEX, id=_id, ignore=404)
        if info['found'] is False:
            return {
                'success': False,
                'message': 'job info not found: %s' % _id
            }, 404

        return {
            'success': True,
            'message': "",
            'result': info['_source']
        }
Ejemplo n.º 20
0
Archivo: jobs.py Proyecto: hysds/mozart
class GetQueueNames(Resource):
    """Get list of job queues and return as JSON."""

    resp_model = queue_ns.model('Queue Listing Response(JSON)', {
        'success': fields.Boolean(required=True, description="if 'false' encountered exception; "
                                                             "otherwise no errors occurred"),
        'message': fields.String(required=True, description="message describing success or failure"),
        'result':  fields.Raw(required=True, description="queue response")
    })
    parser = queue_ns.parser()
    parser.add_argument('id', type=str, help="Job Type Specification ID")

    @queue_ns.expect(parser)
    @queue_ns.marshal_with(resp_model)
    def get(self):
        """Gets a listing of non-celery queues handling jobs."""
        try:
            ident = request.form.get('id', request.args.get('id', None))
            queues = mozart.lib.queue_utils.get_queue_names(ident)
            app.logger.warn("Queues: " + str(queues))
        except Exception as e:
            message = "Failed to list job queues. {0}:{1}".format(type(e), str(e))
            app.logger.warning(message)
            app.logger.warning(traceback.format_exc(e))
            return {'success': False, 'message': message}, 500
        return {
            'success': True,
            'message': "",
            'result': queues
        }
Ejemplo n.º 21
0
class DdlDto:
    api = Namespace('ddl', description='Ledger related operations')
    ledger_create = api.model(
        'ledger_create', {
            'ledger_name':
            fields.String(required=False,
                          description='Valid ledger name on QLDB',
                          default=f"{config.LEDGER_NAME}"),
        })

    ledgers = api.model(
        'ledgers', {
            'name':
            fields.String(
                required=True, description='ledger name', attribute='Name'),
            'state':
            fields.String(
                required=True, description='ledger state', attribute="State"),
            'creation_datetime':
            fields.DateTime(required=True,
                            description='ledger creation datetime',
                            attribute="CreationDateTime"),
        })

    ledger = api.clone(
        'ledger', ledgers, {
            'arn':
            fields.String(
                required=True, description='ledger Arn', attribute='Arn'),
            'deletion_protection':
            fields.Boolean(required=True,
                           description='ledger deletion protection',
                           attribute='DeletionProtection'),
        })
Ejemplo n.º 22
0
class GetContainerInfo(Resource):
    """Info a container"""

    resp_model = container_ns.model(
        'Container Info Response(JSON)', {
            'success':
            fields.Boolean(required=True,
                           description="if 'false', encountered exception; "
                           "otherwise no errors occurred"),
            'message':
            fields.String(required=True,
                          description="message describing success or failure"),
            'result':
            fields.Raw(required=True, description="Container Info")
        })
    parser = container_ns.parser()
    parser.add_argument('id', required=True, type=str, help="Container ID")

    @container_ns.expect(parser)
    @container_ns.marshal_with(resp_model)
    def get(self):
        """Get information on container by ID"""
        _id = request.form.get('id', request.args.get('id', None))

        container = mozart_es.get_by_id(index=CONTAINERS_INDEX,
                                        id=_id,
                                        ignore=404)
        if container['found'] is False:
            return {'success': False, 'message': ""}, 404

        return {'success': True, 'message': "", 'result': container['_source']}
Ejemplo n.º 23
0
class GetContainerRemove(Resource):
    """Remove a container"""

    resp_model = container_ns.model(
        'Container Removal Response(JSON)', {
            'success':
            fields.Boolean(required=True,
                           description="if 'false', encountered exception; "
                           "otherwise no errors occurred"),
            'message':
            fields.String(required=True,
                          description="message describing success or failure")
        })
    parser = container_ns.parser()
    parser.add_argument('id', required=True, type=str, help="Container ID")

    @container_ns.expect(parser)
    @container_ns.marshal_with(resp_model)
    def get(self):
        """Remove container based on ID"""
        _id = request.form.get('id', request.args.get('id', None))
        if _id is None:
            return {'success': False, 'message': 'id must be supplied'}, 400

        mozart_es.delete_by_id(index=CONTAINERS_INDEX, id=_id)
        app.logger.info('Deleted container %s from index: %s' %
                        (_id, CONTAINERS_INDEX))
        return {'success': True, 'message': "job_spec deleted: %s" % _id}
Ejemplo n.º 24
0
class GetHySDSIOType(Resource):
    """Get list of job queues and return as JSON."""

    resp_model = hysds_io_ns.model(
        'HySDS IO Response(JSON)', {
            'success':
            fields.Boolean(
                required=True,
                description="Boolean, whether the API was successful"),
            'message':
            fields.String(required=True,
                          description="message describing success or failure"),
            'result':
            fields.Raw(required=True, description="HySDS IO Object")
        })
    parser = hysds_io_ns.parser()
    parser.add_argument('id', required=True, type=str, help="HySDS IO Type ID")

    @hysds_io_ns.expect(parser)
    @hysds_io_ns.marshal_with(resp_model)
    def get(self):
        """Gets a HySDS-IO specification by ID"""
        _id = request.form.get('id', request.args.get('id', None))
        if _id is None:
            return {'success': False, 'message': 'missing parameter: id'}, 400

        hysds_io = mozart_es.get_by_id(index=HYSDS_IOS_INDEX,
                                       id=_id,
                                       ignore=404)
        if hysds_io['found'] is False:
            return {'success': False, 'message': ""}, 404

        return {'success': True, 'message': "", 'result': hysds_io['_source']}
Ejemplo n.º 25
0
class RemoveHySDSIOType(Resource):
    """Remove job spec"""

    resp_model = hysds_io_ns.model(
        'HySDS IO Removal Response(JSON)', {
            'success':
            fields.Boolean(required=True,
                           description="if 'false', encountered exception; "
                           "otherwise no errors occurred"),
            'message':
            fields.String(required=True,
                          description="message describing success or failure"),
        })
    parser = hysds_io_ns.parser()
    parser.add_argument('id', required=True, type=str, help="HySDS IO ID")

    @hysds_io_ns.expect(parser)
    @hysds_io_ns.marshal_with(resp_model)
    def get(self):
        """Remove HySDS IO for the given ID"""
        _id = request.form.get('id', request.args.get('id', None))
        if _id is None:
            return {
                'success': False,
                'message': 'id parameter not included'
            }, 400

        mozart_es.delete_by_id(index=HYSDS_IOS_INDEX, id=_id)
        app.logger.info('deleted %s from index: %s' % (_id, HYSDS_IOS_INDEX))

        return {'success': True, 'message': "deleted hysds_io: %s" % _id}
Ejemplo n.º 26
0
 def test_with_example(self):
     field = fields.Boolean(default=True, example=False)
     assert field.__schema__ == {
         "type": "boolean",
         "default": True,
         "example": False,
     }
class AuthDto:
    api = Namespace('account', description='Operations related to users')
    user = api.model(
        'User', {
            'id':
            fields.Integer(required=True,
                           description="Id of the existing user"),
            'name':
            fields.String(required=True,
                          description="Name of the existing user"),
            'photoUrl':
            fields.String(description="Profile picture of the existing user"),
            'emailVerified':
            fields.Boolean(
                description=
                "Returns true if the user has verified his/her email")
        })
    firebaseUser = api.model(
        'FirebaseUser', {
            'name':
            fields.String(required=True,
                          description="Id of the existing user"),
            'photoUrl':
            fields.String(description="Profile picture of the existing user")
        })
Ejemplo n.º 28
0
class ChannelDto:
    api = Namespace('ch', description='channel related operations')

    battlefield = api.model(name='bf', model={
        'battlefieldId': fields.Integer(readonly=True, description='Unique identifier'),
        'battlefieldName': fields.String(description='The battlefield\'s name'),
        'description': fields.String(description=''),
        'geography': fields.List(fields.List(fields.Integer()), description='The map')
    })

    player = api.model(name='player', model={
        'playerId': fields.Integer(readonly=True, required=False),
        'playerName': fields.String(description='Player\'s name'),
        'guest': fields.Boolean(readonly=True, required=False, description='Guest user or not'),
        'highscore': fields.Integer(description='Highest point player scored'),
        'dateEntered': fields.DateTime(readonly=True, required=False, description='Date player entered this channel'),
        'class': fields.String(description='Player\'s class')
    })

    channel = api.model(name='ch', model={
        'channelId': fields.Integer(readonly=True, description='Unique channel identifier'),
        'battlefieldId': fields.Integer(description='Unique battlefield identifier'),
        'battlefield': fields.Nested(model=battlefield, readonly=True, description='Channel\'s battlefield'),
        'maximum': fields.Integer(description='Maximum participants number'),
        'ranking': fields.List(fields.Nested(model=player), readonly=True, description='Player ranking for this channel'),        
        'participants': fields.List(fields.Nested(model=player), readonly=True, description='Players now participating this game')
    })
Ejemplo n.º 29
0
class ExerciseDto:
    name = api.model('name', {'de': fields.String(), 'en': fields.String()})
    description = api.model('description', {
        'de': fields.String(),
        'en': fields.String()
    })

    exercise = api.model(
        'exercise', {
            'id':
            fields.String(attribute='_id', description='exerciseID'),
            'name':
            fields.Nested(
                name,
                description='name of the exercise in diferent languages'),
            'description':
            fields.Nested(
                description,
                skip_none=True,
                description='description of the exercise in diferent languages'
            ),
            'musclegroup':
            fields.List(
                fields.String,
                skip_none=True,
                description='list of musclegroups this exercise belongs to'),
            'machine':
            fields.Boolean(description='exercise need a machine or not')
        })
Ejemplo n.º 30
0
class User:
    api = Namespace('User', description='User operations')
    model = api.model(
        'user', {
            'userid':
            fields.Integer(description='User identifier'),
            'name':
            fields.String(description='Username'),
            'email':
            fields.String(description='User email'),
            'password':
            fields.String(description='User password'),
            'is_active':
            fields.Boolean(description='User status (if is active, or not)'),
            'is_admin':
            fields.Boolean(description='User privilege (if is admin, or not)')
        })