Service request portal on top of Ansible Tower

Overview

Gitter Last pull request

Squest - A service request portal based on Ansible Tower

Squest is a Web portal that allow to expose Tower based automation as a service.

If you want an idea of what you can do with Squest, click on the image below DEMO

Links

Comments
  • Error while accepting request via API

    Error while accepting request via API

    Like discussed here https://gitter.im/HewlettPackard/squest?at=63038a0c9994996293ffe438 I am trying to implement a custom approval business logic in a python filter triggered by a global hook on request submission.

    After some debug on the python module itself, I tried to use the "accept/reject" api via CURL to reduce the debug complexity, but it still throws an error.

    That's the curl command :

    curl -vvv -X POST "https://[...]/api/service_catalog/request/233/accept/" -H "accept: application/json" -H "authorization: Bearer [...]"

    And the error is :

    {"required":"This field is required.","null":"This field may not be null.","invalid":"Invalid data. Expected a dictionary, but got {datatype}."}

    Please note that :

    • Request is in the "Submitted" state
    • Same error is thrown when calling the "reject" api (https://[...]/api/service_catalog/request/233/reject/)
    • The "cancel" api is working as expected

    Seems like I am missing some parameters, but looking at the swagger those apis don't need any payload, just request id in query string.

    opened by mr-falken 9
  • Can't request delete operation from API

    Can't request delete operation from API

    When I try to request the delete operation fon an instance I got a stack trace from django (I'm on version 1.7.6b).

    That's the curl I try to execute :

    curl -X POST "https://[...]/api/service_catalog/instance/[...]/operation/[...]/request/" -d '{ "fill_in_survey": { } }' -H 'Content-Type: application/json' -H "accept: application/json" -H "authorization: Bearer [...]"

    And that's the django stack trace :

    [...]
      File "/app/service_catalog/models/request.py", line 62, in full_survey
        return {k: v for k, v in {**self.fill_in_survey, **self.admin_fill_in_survey}.items() if v is not None}
    
    Exception Type: TypeError at /api/service_catalog/instance/[...]/operation/[...]/request/
    Exception Value: 'str' object is not a mapping
    Request information:
    USER: admin
    
    GET: No GET data
    POST: No POST data
    FILES: No FILES data
    COOKIES: No cookie data
    [...]
    

    Please note that deleting from UI works as expected.

    opened by mr-falken 7
  • mariadbd failed while attempting to check config

    mariadbd failed while attempting to check config

    Describe the bug mariadbd error for a docker deployment

    1- I did clone the Squest github branch v1.7.5 2 - i did execute the command line : docker-compose up -d 3 - for see if it works : docker ps

    [[email protected] squest]# 
    CONTAINER ID   IMAGE                         COMMAND                  CREATED        STATUS        PORTS                                                                                                         NAMES
    14cdc66c3ba7   nginx:alpine                  "/docker-entrypoint.…"   23 hours ago   Up 23 hours   80/tcp, 0.0.0.0:8080->8080/tcp                                                                                squest_nginx_1
    ff61fdf676cf   rabbitmq:3-management         "docker-entrypoint.s…"   24 hours ago   Up 23 hours   4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   squest_rabbitmq_1
    9e252ca59667   redis:6-alpine                "docker-entrypoint.s…"   24 hours ago   Up 23 hours   0.0.0.0:6379->6379/tcp                                                                                        squest_redis-cache_1
    1aa13d258d4a   phpmyadmin/phpmyadmin:5.1.3   "/docker-entrypoint.…"   24 hours ago   Up 23 hours   0.0.0.0:8082->80/tcp                                                                                          squest_phpmyadmin_1
    57344043bfbd   nginx:alpine                  "/docker-entrypoint.…"   24 hours ago   Up 23 hours   80/tcp                                                                                                        squest_maintenance_1
    

    The database isn't started. I have an error for db service

    [[email protected] squest]# docker-compose logs -f db
    Attaching to squest_db_1
    db_1             | 2022-09-29 13:32:29+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.9.3+maria~ubu2204 started.
    db_1             | 2022-09-29 13:32:29+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
    db_1             |      command was: mariadbd --verbose --help --log-bin-index=/tmp/tmp.1mcnSd4wDn
    db_1             |      Can't initialize timers
    db_1             | 2022-09-29 13:33:37+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.9.3+maria~ubu2204 started.
    db_1             | 2022-09-29 13:33:37+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
    db_1             |      command was: mariadbd --verbose --help --log-bin-index=/tmp/tmp.BgFSwpU3Bi
    db_1             |      Can't initialize timers
    db_1             | 2022-09-30 08:06:24+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.9.3+maria~ubu2204 started.
    db_1             | 2022-09-30 08:06:24+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
    db_1             |      command was: mariadbd --verbose --help --log-bin-index=/tmp/tmp.bkZFKjSNiw
    db_1             |      Can't initialize timers
    squest_db_1 exited with code 1
    
    **Expected behavior**
    db starting correctly and Squest is Up
    
    **Additional context**
    here the content of : ./docker/environnement_variables/db.env
    MYSQL_DATABASE=squest_db
    MYSQL_USER=squest_user
    MYSQL_PASSWORD=squest_password
    MYSQL_ROOT_PAS[email protected]
    MYSQL_HOST=127.0.0.1
    MYSQL_PORT=3306
    
    is it a problem with the db config ?
    
    I try with MYSQL_HOST, MYSQL_PORT and without
    
    - Squest version 1.7.5: 
    - Ansible Tower/AWX version: NA
    opened by kogarastu 6
  • 'list' object has no attribute 'splitlines' when using multiple choice questions in survey

    'list' object has no attribute 'splitlines' when using multiple choice questions in survey

    Describe the bug Squest throw an exception when an AWX survey have either 'multiple select' or 'multiple select multiple' type of field.

    To Reproduce Steps to reproduce the behavior:

    1. Make a survey on AWX with either 'multiple select' or 'multiple select multiple' type of field
    2. Click on the button "Order" to get a ressource that have this survey
    3. Squest throw the exception 'list' object has no attribute 'splitlines'

    Expected behavior Survey can be displayed

    Errors

    Request Method: | GET
    -- | --
    http://squest.example.com/ui/service_catalog/service/6/operation/4/request/
    3.2.13
    AttributeError
    'list' object has no attribute 'splitlines'
    /app/service_catalog/forms/utils.py, line 25, in get_choices_from_string
    /usr/local/bin/python
    3.10.6
    ['/app',  '/app/squest',  '/usr/local/lib/python3.10/site-packages/git/ext/gitdb',  '/app',  '/usr/local/bin',  '/usr/local/lib/python310.zip',  '/usr/local/lib/python3.10',  '/usr/local/lib/python3.10/lib-dynload',  '/usr/local/lib/python3.10/site-packages',  '/usr/local/lib/python3.10/site-packages/gitdb/ext/smmap']
    Mon, 08 Aug 2022 15:17:00 +0200
    

    Traces

    Environment:
    
    
    Request Method: GET
    Request URL: http://squest.example.com/ui/service_catalog/service/6/operation/4/request/
    
    Django Version: 3.2.13
    Python Version: 3.10.6
    Installed Applications:
    ['django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'rest_framework',
     'django_celery_results',
     'django_celery_beat',
     'guardian',
     'tempus_dominus',
     'django_node_assets',
     'django_filters',
     'drf_yasg',
     'taggit',
     'martor',
     'django_tables2',
     'dbbackup',
     'service_catalog',
     'resource_tracker',
     'profiles',
     'monitoring',
     'cachalot',
     'django_cleanup.apps.CleanupConfig']
    Installed Middleware:
    ['django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
     'Squest.middleware.maintenance.MaintenanceMiddleware']
    
    
    
    Traceback (most recent call last):
      File "/usr/local/lib/python3.10/site-packages/django/core/handlers/exception.py", line 47, in inner
        response = get_response(request)
      File "/usr/local/lib/python3.10/site-packages/django/core/handlers/base.py", line 181, in _get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "/usr/local/lib/python3.10/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
        return view_func(request, *args, **kwargs)
      File "/app/service_catalog/views/customer/catalog_views.py", line 30, in customer_service_request
        form = ServiceRequestForm(request.user, **parameters)
      File "/app/service_catalog/forms/service_request_forms.py", line 62, in __init__
        self.fields.update(get_fields_from_survey(purged_survey_with_validator))
      File "/app/service_catalog/forms/utils.py", line 80, in get_fields_from_survey
        choices=get_choices_from_string(survey_field["choices"]),
      File "/app/service_catalog/forms/utils.py", line 25, in get_choices_from_string
        split_lines = string_with_anti_slash_n.splitlines()
    
    Exception Type: AttributeError at /ui/service_catalog/service/6/operation/4/request/
    Exception Value: 'list' object has no attribute 'splitlines'
    

    Version

    • Squest version or GIT commit number: 1.7.2
    • Ansible Tower/AWX version: 21.3.0
    opened by wilf1rst 6
  • Feature: create instance from the API

    Feature: create instance from the API

    Description of the feature Our ansible playbook can install multiple servers in parallel. I would like to see that possibility to install multiple instances with the same configuration in one go.

    Multiple server installs are not possible today if I understand it correctly.

    feature 
    opened by magnusolsson80 6
  • 'NoneType' object has no attribute 'name'

    'NoneType' object has no attribute 'name'

    Describe the bug If I try to process a service from the catalog I receive the following error: Exception Value: 'NoneType' object has no attribute 'name' service_catalog/views/common.py, line 78, in create_pie_chart_instance_by_service_type

    I don't use any billing groups nor resources. Just use the default value for the service

    To Reproduce Steps to reproduce the behavior:

    1. Run through the workflow of "Order a Service from the Service Catalog"
    2. Accept and then Process
    3. After hitting the "Process request" button in the "Confirm process request" view I receive this error and can't do anything more in squest

    Expected behavior No error

    Screenshots

    Additional context

    • Squest version or GIT commit number: latest from master branch
    • Ansible Tower/AWX version: 17.0.1
    opened by eschek87 6
  • Bug when I process a request

    Bug when I process a request

    Bug appear after processing a request with the "Demo job template"

    Environment:
    
    
    Request Method: POST
    Request URL: http://127.0.0.1:8000/admin/request/10/process/
    
    Django Version: 3.1.7
    Python Version: 3.8.10
    Installed Applications:
    ['django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'rest_framework',
     'fontawesome-free',
     'django_celery_results',
     'django_celery_beat',
     'guardian',
     'django_node_assets',
     'django_filters',
     'drf_yasg',
     'service_catalog',
     'resource_tracker']
    Installed Middleware:
    ['django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware']
    
    
    
    Traceback (most recent call last):
      File "/home/anthony/.cache/pypoetry/virtualenvs/tower-service-catalog--Kn3-9f8-py3.8/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
        response = get_response(request)
      File "/home/anthony/.cache/pypoetry/virtualenvs/tower-service-catalog--Kn3-9f8-py3.8/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "/home/anthony/.cache/pypoetry/virtualenvs/tower-service-catalog--Kn3-9f8-py3.8/lib/python3.8/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
        return view_func(request, *args, **kwargs)
      File "/home/anthony/HPE/squest/service_catalog/views/admin/request.py", line 162, in admin_request_process
        target_request.perform_processing()
      File "/home/anthony/.cache/pypoetry/virtualenvs/tower-service-catalog--Kn3-9f8-py3.8/lib/python3.8/site-packages/django_fsm/__init__.py", line 520, in _change_state
        return fsm_meta.field.change_state(instance, func, *args, **kwargs)
      File "/home/anthony/.cache/pypoetry/virtualenvs/tower-service-catalog--Kn3-9f8-py3.8/lib/python3.8/site-packages/django_fsm/__init__.py", line 326, in change_state
        result = method(instance, *args, **kwargs)
      File "/home/anthony/HPE/squest/service_catalog/models/request.py", line 105, in perform_processing
        tower_job_id = self.operation.job_template.execute(extra_vars=tower_extra_vars)
      File "/home/anthony/HPE/squest/service_catalog/models/job_templates.py", line 22, in execute
        return tower_job_run.id
    
    Exception Type: AttributeError at /admin/request/10/process/
    Exception Value: 'NoneType' object has no attribute 'id'
    
    bug 
    opened by a-belhadj 6
  • Several additional fields types are available in surveys.

    Several additional fields types are available in surveys.

    Multiselect, text area, password, integer and float fields have been added. The initial values and validators were mapped with values defined in survey spec.

    opened by EliasBoulharts 5
  • Feature: day 2 operations: survey pre filled from spec

    Feature: day 2 operations: survey pre filled from spec

    As an example, I order a new service "Virtal Machine". The AWX survey ask therefore options like name, CPU and memory. Later I'll update the existing instance using the update operation, the CPU and memory field are prefilled with the current value from specs.

    feature 
    opened by Sispheor 4
  • Getting details of user requesting the service in ansible vars

    Getting details of user requesting the service in ansible vars

    It'd be nice to have details (i.e. username, email, etc) of the user submitting the request filled into ansible vars.

    I'm using squest -> awx to provision vm in vcenter environment and I'd like to set vm attributes to specify contact person and other details: I can set those attributes via ansible, but in this case I'm missing user's value.

    In the squest part of the payload I can just see squest user id (squest.user field) while variables as "awx_user_name" or "awx_user_email" are filled with details of the awx user been impersonated by awx application.

    opened by mr-falken 4
  • Auto resource expiration

    Auto resource expiration

    From time to time we need to provide "time bounded" resources, like vm for students that we need to delete after a certain period of time.

    It'd be nice to have a mapping between groups/resource types where admin could specify whenever expiration date is mandatory during request.

    Deletion of resources would obviously happen as is done at the moment, invoking a specific playbook, but with a scheduled job server side without human intervention.

    opened by mr-falken 4
  • REfactoring of resource pool page

    REfactoring of resource pool page

    The page is useless in its curent state. We never use it.

    Todo:

    • Flat view like the resource page with all attributes (leave blank a cell not used by a pool)
    • Export CSV button
    • Filters
    enhancement 
    opened by Sispheor 0
  • Personal filters for list pages (Instances/Requests)

    Personal filters for list pages (Instances/Requests)

    As a end user I would like to:

    • Create a filter for a page (E.g: instances) where I set flags like my email as spoc
    • Save the filter
    • From the instance page on top right corner I have a dropdown with all filters I have created
    • I select a filter and click "apply"
    feature 
    opened by Sispheor 0
  • Feature: advanced billing feature

    Feature: advanced billing feature

    We need a value to calculate the cost of each service. For example vCPU of a VM converted as $ per day.

    Need to take into account a change of the value itself in time as well as the change of the spec of an instance (added vcpu on a vm)

    feature 
    opened by Sispheor 0
  • Migration guidelines

    Migration guidelines

    1. Service catalog
      1. Define service: Day 1 and day 2 (think about variables you need to perform all your operations)
      2. Code playbooks
        1. List inputs
        2. Magic
        3. Generates specs and create a resource
      3. Split survey fields
        1. User fields
        2. Admin fields
      4. Split instance specs
        1. User specs
        2. Admin specs
      5. Migration of your old datas
        1. Current Source of Truth to Squest via API:
          1. Define graphs with Resource Groups, Resource Pools and Resources (optional)
          2. Create Resource Pools (optional)
          3. Create Resource Groups (at least one used to place resoufc
          4. Create Instance
          5. Create Resources
    documentation 
    opened by EliasBoulharts 0
Releases(v1.9.0)
  • v1.9.0(Dec 14, 2022)

    Breaking changes ⚠

    • Global hook execution now send the same "squest" metadata to the job template as the one used in service operations

    Enhancement

    • Minor UI enhancements
    • Add a link to go back to a request details from request comment page

    Fix

    • Global hook now send squest metadata
    • Global hook use admin request serializer instead of read only serializer
    • Fix table sort in request and instance list page
    Source code(tar.gz)
    Source code(zip)
  • v1.8.2(Oct 31, 2022)

    Fix

    • In API, extra_vars JSON fields were displayed as str instead of dict.
    • Allow to delete UserRoleBinding linked to deleted object.
    • UserRoleBindings on Request object were not deleted when deleting Request (Fix and cleanup migration).

    Feature

    • Tags can be filtered with 'AND' or 'OR' method (only 'AND' before).
    Source code(tar.gz)
    Source code(zip)
  • v1.8.1(Oct 12, 2022)

  • v1.8.0(Oct 10, 2022)

    Breaking changes ⚠

    • Context usable with Jinja has changed. spec/user_spec --> instance. Impacted pages:
      • default values of an operation survey
      • 'when' of a profile notification filter

    Fix

    • URL for available instances was wrong
    • Fix JSON integer cast in survey
    • Remove exposed MySQL port from prod

    Feature

    • Add job template config on request process
    • Notification filters split: Support or request notification

    Enhancement

    • Add billing group field in UserSerializer
    • Filter instance by spec and user spec
    • Update filter sidebar size
    • Add accepted_by and approved_by field
    Source code(tar.gz)
    Source code(zip)
  • v1.7.5(Sep 16, 2022)

  • v1.7.4(Sep 15, 2022)

    Fix

    • Accept request from API without survey doesn't work
    • Auto-process only worked if auto-accept is enabled
    • The extra_vars field is not valid if it is in JSON from the API.
    • Update resource from API does not work for all fields

    Enhancement]

    • link docs to operations
    • add request messages to request detail
    Source code(tar.gz)
    Source code(zip)
  • v1.7.3(Aug 31, 2022)

    Enhancement

    • Create instance from API return full serializer
    • Instance filtered by multiple choice instead of text in UI
    • Link to access instances by service from home page in UI
    • Service catalog forms with data live search in UI
    • Filter for attribute definitions in API

    Fix

    • Request operation from API return the new request
    • Support choices as list in AWX survey
    Source code(tar.gz)
    Source code(zip)
  • v1.7.2(Aug 4, 2022)

    Feature

    • Custom links on instance detail page

    Enhancement

    • Custom threshold color on resource pool and quota
    • Add description documentation to services and portfolios

    Fix

    • Date submitted was updated on each save
    • Hide disabled services from homepage
    • Hide admin only create operations for end users
    Source code(tar.gz)
    Source code(zip)
  • v1.7.1(Jul 21, 2022)

    Enhancement

    • Date format can be set for all date from the settings
    • Merge operation name and operation color type

    Fix

    • Fix breadcrumbs links in notification page
    • Link to the doc now target the correct current version of the running squest instance
    • fill_in_survey flag was saved as a string when created from the API
    • Fix maintenance mode was not working when used from the API
    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Jul 18, 2022)

    Internal

    • Bump python version to 3.10

    Fix

    • Global hook was not working
    • Fix ajax call when synchronizing job template. Number of template was not updated

    Feature

    • Notification filters
    • Extra vars on Tower server, service and operation
    • Add maintenance mode

    Enhancement

    • Operations can be limited to administrators only
    Source code(tar.gz)
    Source code(zip)
  • v1.6.1(Jul 4, 2022)

  • v1.6.0(Jun 30, 2022)

    1.6.0 2022-06-30

    Breaking changes

    • API: Pagination added to all GET list of objects

    Fix

    • API: ID was not given when new request created
    • Format issue with fill in survey
    • instance_name variable can be used in the tower survey

    Enhancement

    • Swagger page support bearer auth
    • Send email when support is closed
    • show specs on accept/review page
    • Add pending request for each service in the admin dashboard
    • Save tags in session

    Feature

    • API: Add filters (filter by exact name in API vs contains in UI)
    • Default API admin token can be added to the settings
    • Python script based validator for form field
    • Approval workflow
    • Bulk delete for Instances
    • Allow several create operations
    • Portfolio
    Source code(tar.gz)
    Source code(zip)
  • v1.5.2(Apr 4, 2022)

    Fix

    • Remove hardcoded url in email template
    • Mails were not send to user after receiving a new message

    Enhancement

    • Instance serializer used User serializer instead of id
    • Supports list can be filtered by Service
    • Global hook can be linked to an operation
    • Instance can be deleted by an admin from API

    Feature

    • Message can be edited
    • Operations can be disabled
    Source code(tar.gz)
    Source code(zip)
  • v1.5.1(Mar 1, 2022)

    Fix

    • Calculate total resources of a resource group was not called when creating a resource from the API

    Enhancement

    • Added a button to re calculate total of a resource group
    Source code(tar.gz)
    Source code(zip)
  • v1.5(Feb 28, 2022)

    Breaking changes

    • API: Service and Operation creation split.

    Fix

    • Patch a resource without "text_attribute" field filled.
    • Fix Squest logo not shown in maintenance page for non-root URLs.
    • Resource group and Resource pool with the same name was not displayed in the graph.
    • Add missing swagger doc for operation survey.

    Enhancement

    • Performance: cache + calculation + asynchronous call.
    • API : Create a Service return full Service Serializer.
    • Catch all Tower exceptions when processing a request.
    • Remove role binding from team details.
    • Global hook can be linked to a service.
    • Admin can set to blank a non required field with default value in Tower survey.
    • Split Service and Operation form.
    • API: Split Service and Operation serializer.

    Feature

    • Jinja template on survey default field value.
    Source code(tar.gz)
    Source code(zip)
  • v1.4.1(Feb 2, 2022)

    Breaking changes

    • API: Split between admin survey and user survey

    Fix

    • Fix Celery wait timeout when starting Docker compose

    Enhancement

    • Admin accept request form can now update billing group and instance name
    • Add date available on successfully processed instance
    • Custom 404 page
    • Bulk delete on request page as admin
    • Added delete button on resource details page
    • Hide admin filled fields from the end user survey

    Feature

    • API: request state machine management
    • Added "user spec" field to instance. Spec are now only visible by admin.
    Source code(tar.gz)
    Source code(zip)
  • v1.4(Jan 20, 2022)

    Breaking changes

    • API: Move job template URL behind Tower URLs

    Fix

    • Fix collect static in Docker image
    • Service image upload on edit service
    • Fix global hooks execution
    • Instance details page was not displayed when the SPOC was not defined
    • Several fix in UI
    • Fix email notifications
    • Fix team deletion. Old role bindings are deleted

    Enhancement

    • Auto deletion of resource from resource group when instance from service catalog is deleted
    • Celery containers wait for Squest app to be ready before starting
    • Admin can manually edit requests
    • End user can access request details page
    • Comment field for each request
    • Instance list: add some filter
    • Request details page for end users

    Feature

    • Resource quota per billing group
    • Prometheus metrics
    • Support list for end users
    • API: Job Template sync
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Dec 20, 2021)

    Fix

    • Collect static are not executed during the docker image build anymore to prevent caching
    • Email sent when request execution fail
    • Migration of old permission after creating Teams
    • Fix job template sync when multiple tower/awx instance are declared
    • Fix swagger generated page on POST /service//request. Fileds w

    Enhancement

    • Remove metrics and graph from the main dashboard to speed up the loading
    • Add squest host to metadata sent to Tower
    • UI: refactoring of the resource group list page
    • Add billing group to instance list filter

    Feature

    • Bulk delete on resources
    Source code(tar.gz)
    Source code(zip)
  • v1.3(Dec 15, 2021)

    Fix

    • Support and instance in sidebar are no more highlighted together
    • Total resource was empty in resource group list
    • Email notification for comment on request and support message

    Enhancement

    • Filter hidden by default in graph

    Feature

    • Team management to share instances
    • API - get resource/resource group/resource pool by name
    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Nov 19, 2021)

    Fix

    • Resource pool consumption is now updated after resource deletion
    • Fix resource group save form
    • Fix resource pool calculation executed when adding/deleting resources

    Enhancement

    • load git module only once in settings
    • remove useless calculation call
    • enhance test execution speed
    • add scroll bar in resource list table
    • filters moved into a sidebar
    Source code(tar.gz)
    Source code(zip)
  • v1.2(Nov 15, 2021)

    v1.2 2021-11-15

    Fix

    • Update permissions when SPOC is changed from instance
    • Fix display error in resource pool list
    • Fix default value when integer is used in Tower survey

    Enhancement

    • Re-process failed requests
    • Add a filter in resource tracker resource list
    • Graph perf enhancement

    Feature

    • User and billing group API
    • User can disable email notification
    Source code(tar.gz)
    Source code(zip)
  • v1.1(Oct 22, 2021)

    Breaking changes

    • Replace API token key work "Token" by "Bearer"

    Fix

    • Fix empty job template survey
    • Fix attribute text display in some form
    • Fix link to doc in instance pages

    Enhancement

    • Add a button to collapse filters in the graph view

    Feature

    • Add functional testing playbooks
    • API: CRUD on resource group
    • API: CRUD on resource pool
    • add static HTML maintenance page
    • API: CRUD on Request
    • API: CRUD on Service
    • API: CRUD on Operation
    • Show GIT sha in the footer
    Source code(tar.gz)
    Source code(zip)
  • v1.0(Oct 1, 2021)

    • Fix: Fix LDAP TLS support with self-signed certificates
    • Fix: Fix email host url from settings
    • Enhancement: API authentication via token
    • Enhancement: Text attribute on resource group
    • Enhancement: Add instance and request details page
    • Enhancement: Add job template details page
    • Enhancement: Admin can delete instance
    • Enhancement: Admin can archive and/or delete requests
    • Enhancement: Add titles to identify squest fields and survey fields
    • Enhancement: Multi stage Docker build
    • Enhancement: Add button to list resources from resource group edit page
    • Enhancement: Add filter on all page that list resources
    • Feature: add documentation linkable to services
    • Feature: automatic cleanup of ghost images from documentation
    • Feature: add overcommitment ratio on resource group attributes
    • Feature: add announcements
    • Feature: Token management
    • Feature: Job template compliancy checking
    • Feature: add integrated backup support
    • Feature: add official Docker image
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Aug 11, 2021)

    Bug fixes

    • All fields from AWX/Tower are available when admin accept a request - #76
    • Error in pie chart if Instance doesn't have a Service - #114
    Source code(tar.gz)
    Source code(zip)
  • v0.1(Aug 4, 2021)

Owner
Hewlett Packard Enterprise
Hewlett Packard Enterprise on github; please contact [email protected] for access
Hewlett Packard Enterprise
Resolve form field arguments dynamically when a form is instantiated

django-forms-dynamic Resolve form field arguments dynamically when a form is instantiated, not when it's declared. Tested against Django 2.2, 3.2 and

DabApps 108 Jan 03, 2023
A simple REST API to manage postal addresses, written in Python/Django.

A simple REST API to manage postal addresses, written in Python/Django.

Attila Bagossy 2 Feb 14, 2022
A generic system for filtering Django QuerySets based on user selections

Django Filter Django-filter is a reusable Django application allowing users to declaratively add dynamic QuerySet filtering from URL parameters. Full

Carlton Gibson 3.9k Jan 03, 2023
Django Serverless Cron - Run cron jobs easily in a serverless environment

Django Serverless Cron - Run cron jobs easily in a serverless environment

Paul Onteri 41 Dec 16, 2022
https://django-storages.readthedocs.io/

Installation Installing from PyPI is as easy as doing: pip install django-storages If you'd prefer to install from source (maybe there is a bugfix in

Josh Schneier 2.3k Jan 06, 2023
A quick way to add React components to your Django templates.

Django-React-Templatetags This django library allows you to add React (16+) components into your django templates. Features Include react components u

Fröjd Agency 408 Jan 08, 2023
Django Audit is a simple Django app that tracks and logs requests to your application.

django-audit Django Audit is a simple Django app that tracks and logs requests to your application. Quick Start Install django-audit pip install dj-au

Oluwafemi Tairu 6 Dec 01, 2022
AUES Student Management System Developed for laboratory works №9 Purpose using Python (Django).

AUES Student Management System (L M S ) AUES Student Management System Developed for laboratory works №9 Purpose using Python (Django). I've created t

ANAS NABIL 2 Dec 06, 2021
A simple page with paypal payment and confiramtion in django

django-paypal a simple page with paypal payment and confiramtion in django Youtube Video : Paypal Smart Button : https://developer.paypal.com/demo/che

Mahmoud Ahmed 5 Feb 19, 2022
django-compat-lint

django_compat_lint -- check Django compatibility of your code Django's API stability policy is nice, but there are still things that change from one v

James Bennett 40 Sep 30, 2021
A fresh approach to autocomplete implementations, specially for Django. Status: v3 stable, 2.x.x stable, 1.x.x deprecated. Please DO regularely ping us with your link at #yourlabs IRC channel

Features Python 2.7, 3.4, Django 2.0+ support (Django 1.11 (LTS), is supported until django-autocomplete-light-3.2.10), Django (multiple) choice suppo

YourLabs 1.7k Jan 01, 2023
A GitHub Action for checking Django migrations

🔍 Django migrations checker A GitHub Action for checking Django migrations About This repository contains a Github Action that checks Django migratio

Oda 5 Nov 15, 2022
django-reversion is an extension to the Django web framework that provides version control for model instances.

django-reversion django-reversion is an extension to the Django web framework that provides version control for model instances. Requirements Python 3

Dave Hall 2.8k Jan 02, 2023
Chatbot for ordering and tracking a Pizza.

Pizza Chatbot To start the app, follow the below steps: Clone the repo using the below command: git clone Shreya Shah 1 Jul 15, 2021

Ugly single sign-on for django projects only

django-usso Ugly single sign-on for django projects only. Do you have many django apps with different users? Do you want to use only one of those apps

Erwin Feser 1 Mar 01, 2022
Учебное пособие по основам Django и сопутствующим технологиям

Учебный проект для закрепления основ Django Подробный разбор проекта здесь. Инструкция по запуску проекта на своей машине: Скачиваем репозиторий Устан

Stanislav Garanzha 12 Dec 30, 2022
A django integration for huey task queue that supports multi queue management

django-huey This package is an extension of huey contrib djhuey package that allows users to manage multiple queues. Installation Using pip package ma

GAIA Software 32 Nov 26, 2022
Wagtail - Vue - Django : The initial environment of full-stack local dev web app with wagtail and vue

Wagtail - Vue - Django : The initial environment of full-stack local dev web app with wagtail and vue. A demo to show how to use .vue files inside django app.

Quang PHAM 2 Oct 20, 2022
Compresses linked and inline javascript or CSS into a single cached file.

Django Compressor Django Compressor processes, combines and minifies linked and inline Javascript or CSS in a Django template into cacheable static fi

2.6k Jan 03, 2023
A simple polling app made in Django and Bootstrap

DjangoPolls A Simple Polling app made with Django Instructions Make sure you have Python installed Step 1. Open a terminal Step 2. Paste the given cod

Aditya Priyadarshi 1 Nov 10, 2021