Ralph is the CMDB / Asset Management system for data center and back office hardware.

Overview

Ralph

Ralph is full-featured Asset Management, DCIM and CMDB system for data centers and back offices.

Features:

  • keep track of assets purchases and their life cycle
  • flexible flow system for assets life cycle
  • data center and back office support
  • dc visualization built-in

It is an Open Source project provided on Apache v2.0 License.

Gitter Build Status Coverage Status Code Health

Live demo:

http://ralph-demo.allegro.tech/

  • login: ralph
  • password: ralph

Screenshots

img

img

img

Documentation

Visit our documentation on readthedocs.org

Getting help

Comments
  • [SOLVED] Installation on CentOS/RHEL7

    [SOLVED] Installation on CentOS/RHEL7

    The following procedure documents the minimum set of actions required to install the current release (20170613.1) on a pristine EPEL-enabled EL7, and run ralph as an unprivileged passwordless system user ralph in a virtualenv/nodeenv environment with a MariaDB SQL backend instance.

    As root :

    firewall-cmd --permanent --add-port=8000/tcp && firewall-cmd --reload
    
    yum-config-manager --enable epel
    yum install mariadb-server
    systemctl start mariadb && systemctl enable mariadb
    
    yum install gcc-c++ mariadb-devel redhat-rpm-config openldap-devel
    
    yum install python34-pip python34-devel
    useradd -d /opt/ralph -c "Ralph service account" -m -r ralph
    
    su - ralph
    

    As user ralph :

    (
    echo "DROP DATABASE IF EXISTS ralph_ng; CREATE DATABASE ralph_ng DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;"
    echo "CREATE USER 'ralph_ng'@'localhost' IDENTIFIED BY 'ralph_ng';"
    echo "GRANT ALL PRIVILEGES ON ralph_ng.* TO [email protected] WITH GRANT OPTION;"
    echo "FLUSH PRIVILEGES;"
    ) | mysql -u root
    
    pip3 install --user virtualenv
    virtualenv ralph && . ~/ralph/bin/activate
    echo ". ~/ralph/bin/activate" >> ~/.bashrc
    
    
    pip install nodeenv
    nodeenv -p
    npm install -g bower
    npm install -g gulp
    
    wget https://github.com/allegro/ralph/archive/20170613.1.tar.gz
    tar xf 20170613.1.tar.gz
    ln -s ralph-20170613.1/ ralph-core
    cd ralph-core/
    make install
    make install-test
    gulp
    ralph migrate
    make menu
    
    ralph syncdb
    	(credentials: admin/admin)
    
    RALPH_DEBUG=True ralph runserver 0.0.0.0:8000
    

    Ralph now runs on the publically accessible http://admin:[email protected]:8000/

    This solves issue https://github.com/allegro/ralph/issues/2978 .

    opened by didierm 26
  • Cannot start Ralph

    Cannot start Ralph

    I installed Ralph on Ubuntu 14.04 LTS using the installation guide from http://ralph-ng.readthedocs.org/en/ng/installation/ using the Ubuntu package. After I installed, I had to add ralph to my $PATH. When I was able to run ralph migrate, I was unable to progress because the command ran into an error. The error is inside the pastebin link below. I apologize if I am submitting an issue that seems dumb, I don't have much experience with *nix.

    http://pastebin.com/BZipKb0K

    opened by bc-csagit 24
  • LDAP Sync not working

    LDAP Sync not working

    I am trying to set up LDAP sync with our 2008 AD server and am running into some issues.

    Code inserted into src/ralph/settings/prod.py:

    AUTHENTICATION_BACKENDS = (
        'django_auth_ldap.backend.LDAPBackend',
        'django.contrib.auth.backends.ModelBackend',
    )
    
    import ldap
    from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
    AUTH_LDAP_SERVER_URI = "ldap://ladbsix.somenet.local:389"
    AUTH_LDAP_BIND_DN = "CN=ralph,OU=Ralph,DC=somenet,DC=local"
    AUTH_LDAP_BIND_PASSWORD = "somepass"
    AUTH_LDAP_PROTOCOL_VERSION = 3
    AUTH_LDAP_USER_USERNAME_ATTR = "sAMAccountName"
    AUTH_LDAP_USER_SEARCH_BASE = "DC=allegrogroup,DC=internal"
    AUTH_LDAP_USER_SEARCH_FILTER = '(&(objectClass=*)({0}=%(user)s))'.format(
      AUTH_LDAP_USER_USERNAME_ATTR)
    AUTH_LDAP_USER_SEARCH = LDAPSearch(AUTH_LDAP_USER_SEARCH_BASE,
      ldap.SCOPE_SUBTREE, AUTH_LDAP_USER_SEARCH_FILTER)
    AUTH_LDAP_USER_ATTR_MAP = {
      "first_name": "givenName",
      "last_name": "sn",
      "email": "mail",
    }
    
    from ralph.accounts.ldap import MappedGroupOfNamesType
    
    AUTH_LDAP_GROUP_MAPPING = {
      'CN=_gr_ralph_admin,OU=Ralph,DC=somenet,DC=local': "staff",
      'CN=_gr_ralph_admin,OU=Ralph,DC=somenet,DC=local': "superuser",
      'CN=_gr_ralph_admin,OU=Ralph,DC=somenet,DC=local': "ladb",
    }
    AUTH_LDAP_MIRROR_GROUPS = True
    AUTH_LDAP_GROUP_TYPE = MappedGroupOfNamesType(name_attr="cn")
    AUTH_LDAP_GROUP_SEARCH = LDAPSearch("DC=somenet,DC=local",
        ldap.SCOPE_SUBTREE, '(objectClass=group)')
    
    AUTH_LDAP_NESTED_GROUPS = {
        'CN=_gr_ralph_admin,OU=Ralph,DC=somenet,DC=local': "staff",  # _gr_ralph_users contains other LDAP groups inside
    }
    
    AUTH_LDAP_USER_FILTER = '(|(memberOf=CN=_gr_ralph_admin,OU=Ralph,'\
        'DC=somenet,DC=local))'
    

    output from running ralph ldap_sync

    
    Traceback (most recent call last):
      File "/usr/local/bin/ralph", line 9, in <module>
        load_entry_point('ralph==3.0.0', 'console_scripts', 'ralph')()
      File "/opt/ralph/src/ralph/__main__.py", line 29, in prod
        main('ralph.settings.prod')
      File "/opt/ralph/src/ralph/__main__.py", line 14, in main
        execute_from_command_line(sys.argv)
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
        utility.execute()
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 346, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 394, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 445, in execute
        output = self.handle(*args, **options)
      File "/opt/ralph/src/ralph/accounts/management/commands/ldap_sync.py", line 219, in handle
        self.nested_groups = NestedGroups()
      File "/opt/ralph/src/ralph/accounts/management/commands/ldap_sync.py", line 103, in __init__
        self.group_users, self.users_groups = get_nested_groups()
    TypeError: 'NoneType' object is not iterable
    
    bug ng 
    opened by mholttech 22
  • 500 inernal after upgrade ralph-core

    500 inernal after upgrade ralph-core

    Hey guys I have got 500 internal after upgrade ralph-core from 3.0.0-snapshot-20160607-5736 to 3.0.0-snapshot-20160610 this did help https://github.com/allegro/ralph/issues?page=2&q=is%3Aissue+is%3Aopen

    Error:

    ralph migrate /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/contenttypes/models.py:161: RemovedInDjango19Warning: Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class ContentType(models.Model):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/admin/models.py:28: RemovedInDjango19Warning: Model class django.contrib.admin.models.LogEntry doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class LogEntry(models.Model):

    /opt/ralph/ralph-core/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: django.contrib.contenttypes.generic is deprecated and will be removed in Django 1.9. Its contents have been moved to the fields, forms, and admin submodules of django.contrib.contenttypes. return f(_args, *_kwds)

    /opt/ralph/ralph-core/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: The utilities in django.db.models.loading are deprecated in favor of the new application loading system. return f(_args, *_kwds)

    /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/auth/models.py:41: RemovedInDjango19Warning: Model class django.contrib.auth.models.Permission doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class Permission(models.Model):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/auth/models.py:98: RemovedInDjango19Warning: Model class django.contrib.auth.models.Group doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class Group(models.Model):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/auth/models.py:436: RemovedInDjango19Warning: Model class django.contrib.auth.models.User doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class User(AbstractUser):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/taggit/models.py:96: RemovedInDjango19Warning: Model class taggit.models.Tag doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class Tag(TagBase):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/taggit/models.py:201: RemovedInDjango19Warning: Model class taggit.models.TaggedItem doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class TaggedItem(GenericTaggedItemBase, TaggedItemBase):

    /opt/ralph/ralph-core/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: django.utils.importlib will be removed in Django 1.9. return f(_args, *_kwds)

    password and user database are ok. also checked in ralph shell.

    opened by daro1337 21
  • Cannot import simple data

    Cannot import simple data

    I have an test asset CSV file for importing:

    rack,budget_info,parent,model,management_ip,service_env,asset_ptr,baseobject_ptr,id,created,modified,content_type,remarks,hostname,sn,barcode,niw,required_support,order_no,invoice_no,invoice_date,price,provider,depreciation_rate,force_depreciation,depreciation_end_date,task_url,property_of,status,position,orientation,slot_no,connections,source,delivery_date,production_year,production_use_date,management_hostname,tags
    ,,,1,,1,,,,,,,,,6CU543YD7R,,,,,,,,,,,,,,,,,,,,,,,,
    

    But I am seeing errors (I have enabled full traceback):

    Line number: 1 - Cannot assign None: "DataCenterAsset.model" does not allow null values.
    Traceback (most recent call last):
    File "/home/vagrant/lib/python3.4/site-packages/import_export/resources.py", line 360, in import_data
    self.import_obj(instance, row, real_dry_run)
    File "/home/vagrant/lib/python3.4/site-packages/import_export/resources.py", line 226, in import_obj
    self.import_field(field, obj, data)
    File "/home/vagrant/lib/python3.4/site-packages/import_export/resources.py", line 218, in import_field
    field.save(obj, data)
    File "/home/vagrant/lib/python3.4/site-packages/import_export/fields.py", line 94, in save
    setattr(obj, self.attribute, self.clean(data))
    File "/home/vagrant/lib/python3.4/site-packages/django/db/models/fields/related.py", line 634, in __set__
    (instance._meta.object_name, self.field.name)
    ValueError: Cannot assign None: "DataCenterAsset.model" does not allow null values.
    

    I am sure I have an asset model record with an id of 1.

    I have found the crux of the problem is at src/ralph/data_importer/widgets.py, in which the following statement yields nothing:

        imported_obj = ImportedObjects.objects.filter(
            content_type=content_type,
            old_object_pk=str(old_pk)
        ).first()
    

    How can I fix this problem?

    bug ng 
    opened by fossilet 19
  • ralph migrate issues --> Can't install!

    ralph migrate issues --> Can't install!

    Just installed 3.0.0-snapshot-20160824-6995, and can't seem to run ralph migrate:

    Operations to perform:
      Synchronize unmigrated apps: import_export, rest_framework, mptt, staticfiles, taggit_serializer, messages, humanize, ralph_admin, django_rq, table, dc_view, foundation, ralph2_sync, permissions
      Apply all migrations: accounts, external_services, assets, data_importer, authtoken, deployment, dhcp, licences, security, auth, custom_fields, admin, data_center, taggit, dashboards, transitions, sessions, attachments, operations, reversion, sitetree, back_office, reports, supports, domains, virtual, networks, contenttypes
    Synchronizing apps without migrations:
      Creating tables...
        Running deferred SQL...
      Installing custom SQL...
    Running migrations:
      Rendering model states... DONE
      Applying contenttypes.0001_initial... OK
      Applying contenttypes.0002_remove_content_type_name... OK
      Applying auth.0001_initial... OK
      Applying auth.0002_alter_permission_name_max_length... OK
      Applying auth.0003_alter_user_email_max_length... OK
      Applying auth.0004_alter_user_username_opts... OK
      Applying auth.0005_alter_user_last_login_null... OK
      Applying auth.0006_require_contenttypes_0002... OK
      Applying accounts.0001_initial... OK
      Applying accounts.0002_auto_20151204_0758... OK
      Applying accounts.0003_region_country... OK
      Applying accounts.0004_region_stocktaking_enabled... OK
      Applying admin.0001_initial... OK
      Applying data_importer.0001_initial... OK
      Applying data_importer.0002_auto_20151125_1354... OK
      Applying data_importer.0003_auto_20160624_1217... OK
      Applying data_importer.0004_auto_20160728_1046... OK
      Applying taggit.0001_initial... OK
      Applying taggit.0002_auto_20150616_2121... OK
      Applying assets.0001_initial... OK
      Applying assets.0002_auto_20151125_1354... OK
      Applying assets.0003_auto_20151126_2205... OK
      Applying assets.0004_auto_20151204_0758... OK
      Applying assets.0005_category_depreciation_rate... OK
      Applying assets.0006_category_show_buyout_date... OK
      Applying assets.0007_auto_20160122_1022... OK
      Applying assets.0008_auto_20160122_1429... OK
      Applying assets.0009_auto_20160307_1138... OK
      Applying assets.0010_auto_20160405_1531... OK
      Applying assets.0011_auto_20160603_0742... OK
      Applying assets.0012_auto_20160606_1409... OK
      Applying assets.0013_auto_20160615_2140... OK
      Applying assets.0014_memory... OK
      Applying assets.0015_auto_20160701_0952... OK
      Applying assets.0016_fibrechannelcard... OK
      Applying assets.0017_processor... OK
      Applying assets.0018_disk... OK
      Applying assets.0019_auto_20160719_1443... OK
      Applying assets.0020_auto_20160803_0712...Traceback (most recent call last):
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
        return self.cursor.execute(sql, params)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/mysql/base.py", line 124, in execute
        return self.cursor.execute(query, args)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 220, in execute
        self.errorhandler(self, exc, value)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
        raise errorvalue
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 209, in execute
        r = self._query(query)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 371, in _query
        rowcount = self._do_query(q)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 335, in _do_query
        db.query(q)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/connections.py", line 280, in query
        _mysql.connection.query(self, query)
    _mysql_exceptions.OperationalError: (1025, "Error on rename of './ralph/#sql-220b_8c' to './ralph/assets_configurationclass' (errno: 150)")
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "/opt/ralph/ralph-core/bin/ralph", line 9, in <module>
        load_entry_point('ralph==3.0.0', 'console_scripts', 'ralph')()
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/ralph/__main__.py", line 29, in prod
        main('ralph.settings.prod')
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/ralph/__main__.py", line 14, in main
        execute_from_command_line(sys.argv)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
        utility.execute()
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/__init__.py", line 346, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/base.py", line 394, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/base.py", line 445, in execute
        output = self.handle(*args, **options)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 222, in handle
        executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/executor.py", line 110, in migrate
        self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/executor.py", line 148, in apply_migration
        state = migration.apply(state, schema_editor)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/migration.py", line 115, in apply
        operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/operations/special.py", line 43, in database_forwards
        database_operation.database_forwards(app_label, schema_editor, from_state, to_state)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/operations/fields.py", line 275, in database_forwards
        to_model._meta.get_field(self.new_name),
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 484, in alter_field
        old_db_params, new_db_params, strict)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 547, in _alter_field
        self.execute(self._rename_field_sql(model._meta.db_table, old_field, new_field, new_type))
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 111, in execute
        cursor.execute(sql, params)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
        return self.cursor.execute(sql, params)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/utils.py", line 98, in __exit__
        six.reraise(dj_exc_type, dj_exc_value, traceback)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/utils/six.py", line 685, in reraise
        raise value.with_traceback(tb)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
        return self.cursor.execute(sql, params)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/mysql/base.py", line 124, in execute
        return self.cursor.execute(query, args)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 220, in execute
        self.errorhandler(self, exc, value)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
        raise errorvalue
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 209, in execute
        r = self._query(query)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 371, in _query
        rowcount = self._do_query(q)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 335, in _do_query
        db.query(q)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/connections.py", line 280, in query
        _mysql.connection.query(self, query)
    django.db.utils.OperationalError: (1025, "Error on rename of './ralph/#sql-220b_8c' to './ralph/assets_configurationclass' (errno: 150)")
    
    opened by yanfosec 17
  • 500 internal error

    500 internal error

    hi OS ubuntu Buster

    i imported about 900 vms in virtual servers and it have 9 pages now i can view 6 pages without problem but in pages 7 - 9 i get this error

    Environment:

    Request Method: GET Request URL: http://foo.bar/virtual/virtualserver/?p=6

    Django Version: 1.8.19 Python Version: 3.6.7 Installed Applications: ('ralph.admin', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.humanize', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_rq', 'import_export', 'mptt', 'reversion', 'sitetree', 'ralph.accounts', 'ralph.assets', 'ralph.attachments', 'ralph.back_office', 'ralph.configuration_management', 'ralph.dashboards', 'ralph.data_center', 'ralph.dhcp', 'ralph.deployment', 'ralph.licences', 'ralph.domains', 'ralph.trade_marks', 'ralph.sim_cards', 'ralph.supports', 'ralph.security', 'ralph.lib.foundation', 'ralph.lib.table', 'ralph.networks', 'ralph.data_importer', 'ralph.dc_view', 'ralph.reports', 'ralph.virtual', 'ralph.operations', 'ralph.lib.external_services', 'ralph.lib.transitions', 'ralph.lib.permissions', 'ralph.lib.custom_fields', 'ralph.lib.hooks', 'ralph.notifications', 'ralph.ssl_certificates', 'rest_framework', 'rest_framework.authtoken', 'taggit', 'taggit_serializer') Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'threadlocals.middleware.ThreadLocalMiddleware')

    Template error: In template /opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/admin/templates/admin/change_list.html, error at line 104 'NoneType' object has no attribute 'get_absolute_url'

    94 : {% include 'admin/partials/filters.html' %}

    95 : {% endif %}

    96 : {% endif %}

    97 : {% endblock %}

    98 : {% endif %}

    99 :

    100 : {% block result_list %}

    101 : {% if cl.formset %}

    102 : {{ cl.formset.management_form }}

    103 : {% endif %}

    104 : {% result_list cl %}

    105 : {% if action_form and actions_on_bottom and cl.show_admin_actions %}

    106 : {% admin_actions %}

    107 : {% endif %}

    108 : {% endblock %}

    109 :

    110 :

    111 :

    112 :

    113 : {% block pagination %}

    114 : {% pagination cl %}

    Traceback: File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/core/handlers/base.py" in get_response 164. response = response.render() File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/response.py" in render 158. self.content = self.rendered_content File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/response.py" in rendered_content 135. content = template.render(context, self._request) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/backends/django.py" in render 74. return self.template.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 210. return self._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 135. return compiled_parent._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 135. return compiled_parent._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 135. return compiled_parent._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 135. return compiled_parent._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 65. result = block.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 65. result = block.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 1273. _dict = func(*resolved_args, **resolved_kwargs) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/templatetags/admin_list.py" in result_list 320. 'results': list(results(cl))} File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/templatetags/admin_list.py" in results 296. yield ResultList(None, items_for_result(cl, res, None)) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/templatetags/admin_list.py" in init 287. super(ResultList, self).init(*items) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/templatetags/admin_list.py" in items_for_result 199. f, attr, value = lookup_field(field_name, result, cl.model_admin) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/utils.py" in lookup_field 278. value = attr(obj) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/virtual/admin.py" in get_parent 177. obj.parent.get_absolute_url(), obj.parent.hostname

    Exception Type: AttributeError at /virtual/virtualserver/ Exception Value: 'NoneType' object has no attribute 'get_absolute_url'

    opened by Talangor 15
  • Installation

    Installation

    Hi,

    i have a Problem, i will tested ralph3 but cannot installation.

    1. sudo apt-get update && sudo apt-get install apt-transport-https 2.sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 3.sudo sh -c "echo 'deb https://dl.bintray.com/vi4m/ralph wheezy main' > /etc/apt/sources.list.d/vi4m_ralph.list" 4.sudo apt-get update

    Error: OK:1 http://de.archive.ubuntu.com/ubuntu xenial InRelease OK:2 http://security.ubuntu.com/ubuntu xenial-security InRelease
    OK:3 http://de.archive.ubuntu.com/ubuntu xenial-updates InRelease
    OK:4 http://de.archive.ubuntu.com/ubuntu xenial-backports InRelease Ign:5 https://dl.bintray.com/vi4m/ralph wheezy InRelease Ign:6 https://dl.bintray.com/vi4m/ralph wheezy Release Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Fehl:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages 404 Not Found Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Paketlisten werden gelesen... Fertig W: The repository 'https://dl.bintray.com/vi4m/ralph wheezy Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation and user configuration details. E: Failed to fetch https://dl.bintray.com/vi4m/ralph/dists/wheezy/main/binary-amd64/Packages 404 Not Found E: Einige Indexdateien konnten nicht heruntergeladen werden. Sie wurden ignoriert oder alte an ihrer Stelle benutzt.

    What is wrong?

    Thanks

    opened by spinnnor 14
  • Back Office / Hardware

    Back Office / Hardware

    Hi Since the last update i can there are some basic info display error. Here, the model is no longer displayed. Also the user no longer appears.

    I see also this error everytime when I load a page: /static/bower_components/iron-a11y-announcer/iron-a11y-announcer.html HTTP/1.1" 404 1796

    opened by renki81 14
  • USE_TZ = True.

    USE_TZ = True.

    We are using the following settings regarding timezone:

    TIME_ZONE = 'Europe/Warsaw'
    USE_TZ = False
    

    When USE_TZ is False, Django would store timestamps in the timezone of TIME_ZONE, and this is how ralph is storing time. After I realised I should change TIME_ZONE, even if I changed TIME_ZONE to 'Asia/Beijing', the stored time are still in the old timezone (GMT+1). How about it that we change USE_TZ to True, to make sue time is always saved as UTC? This is also recommended by Django.

    opened by fossilet 14
  • Mariadb maximum keylength 767

    Mariadb maximum keylength 767

    Steps to reproduce

    Install on Ubuntu 18.04 with mariadb-server

    Expected behavior

    ralphctl migrate complete successfully

    Actual behavior

    Exception raised Applying accounts.0001_initial...Traceback (most recent call last): File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/backends/utils.py", line 62, in execute return self.cursor.execute(sql) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 124, in execute return self.cursor.execute(query, args) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/cursors.py", line 250, in execute self.errorhandler(self, exc, value) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler raise errorvalue File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/cursors.py", line 247, in execute res = self._query(query) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/cursors.py", line 412, in _query rowcount = self._do_query(q) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/cursors.py", line 375, in _do_query db.query(q) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/connections.py", line 276, in query _mysql.connection.query(self, query) _mysql_exceptions.OperationalError: (1071, 'Specified key was too long; max key length is 767 bytes')

    Environment

    • Ralph version: ralph-core 20190124.2 amd64
    • Mariadb: mariadb-server 1:10.1.34-0ubunt all
    • Operating system: Ubuntu 18.04
    • Method of installation: repository package (as per installation documentation)
    opened by tsdogs 13
  • the ralph default password?

    the ralph default password?

    • Ralph version: 3.0
    • Operating system: ubuntu 20.04 docker compose install ; https://ralph-ng.readthedocs.io/en/stable/installation/installation/ this is the url .

    I installed ralph via docker, I have reached the login screen after the installation is complete, but there is no password to log in properly, docker-compose installation, please ask what is the default password?

    opened by thisisannetwork 1
  • docker-compose.yml.tmpl missing / located elsewhere

    docker-compose.yml.tmpl missing / located elsewhere

    https://ralph-ng.readthedocs.io/en/stable/installation/installation/ says to look for docker-compose.yml.tmpl in https://github.com/allegro/ralph/tree/ng/contrib , but that file is not there.

    There's docker-compose.yml in https://github.com/allegro/ralph/tree/ng/docker , but it's not quite clear whether that's the same thing.

    opened by richlv 2
  • WIP django3.2 python 3.10 support

    WIP django3.2 python 3.10 support

    I started working on porting to django 3.2 but currently stuck on

    django-admin migrate   
    Traceback (most recent call last):
      File "/home/jens/.local/bin/django-admin", line 8, in <module>
        sys.exit(execute_from_command_line())
      File "/home/jens/.local/lib/python3.10/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
        utility.execute()
      File "/home/jens/.local/lib/python3.10/site-packages/django/core/management/__init__.py", line 395, in execute
        django.setup()
      File "/home/jens/.local/lib/python3.10/site-packages/django/__init__.py", line 24, in setup
        apps.populate(settings.INSTALLED_APPS)
      File "/home/jens/.local/lib/python3.10/site-packages/django/apps/registry.py", line 114, in populate
        app_config.import_models()
      File "/home/jens/.local/lib/python3.10/site-packages/django/apps/config.py", line 301, in import_models
        self.models_module = import_module(models_module_name)
      File "/usr/lib64/python3.10/importlib/__init__.py", line 126, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
      File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
      File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 883, in exec_module
      File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
      File "/home/jens/workplace/ralph-ng/src/ralph/access_cards/models.py", line 13, in <module>
        from ralph.back_office.models import autocomplete_user
      File "/home/jens/workplace/ralph-ng/src/ralph/back_office/models.py", line 19, in <module>
        from ralph.assets.models.assets import (
      File "/home/jens/workplace/ralph-ng/src/ralph/assets/models/__init__.py", line 1, in <module>
        from ralph.assets.models.assets import (
      File "/home/jens/workplace/ralph-ng/src/ralph/assets/models/assets.py", line 15, in <module>
        from ralph.assets.models.base import BaseObject
      File "/home/jens/workplace/ralph-ng/src/ralph/assets/models/base.py", line 9, in <module>
        from ralph.lib.custom_fields.models import (
      File "/home/jens/workplace/ralph-ng/src/ralph/lib/custom_fields/models.py", line 17, in <module>
        from .fields import (
      File "/home/jens/workplace/ralph-ng/src/ralph/lib/custom_fields/fields.py", line 5, in <module>
        from django.contrib.contenttypes.fields import (
    ImportError: cannot import name 'ReverseGenericRelatedObjectsDescriptor' from 'django.contrib.contenttypes.fields' (/home/jens/.local/lib/python3.10/site-packages/django/contrib/contenttypes/fields.py)
    

    I will see if I have some time later to look into this

    opened by JensTimmerman 0
  • ralh is still based on django 1.8 when this is no longer supported

    ralh is still based on django 1.8 when this is no longer supported

    This means there is a high chance that there exist critical security updates in django that never make it to this project https://endoflife.date/django

    consider porting to django 3.2

    opened by JensTimmerman 0
  • Releases(20221208.1)
    • 20221208.1(Dec 8, 2022)

      What's Changed

      • Add new statuses for assets by @matyldv in https://github.com/allegro/ralph/pull/3744

      Full Changelog: https://github.com/allegro/ralph/compare/20221108.1...20221208.1

      Source code(tar.gz)
      Source code(zip)
    • 20221108.1(Nov 8, 2022)

      What's Changed

      • ITS-368993 | Added new status to backoffice assets. by @lukaszkarykowski in https://github.com/allegro/ralph/pull/3725

      Full Changelog: https://github.com/allegro/ralph/compare/20221107.1...20221108.1

      Source code(tar.gz)
      Source code(zip)
    • 20221107.1(Nov 7, 2022)

      What's Changed

      • Modify buyout date calculation by @hipek8 in https://github.com/allegro/ralph/pull/3743

      Full Changelog: https://github.com/allegro/ralph/compare/20221027.1...20221107.1

      Source code(tar.gz)
      Source code(zip)
    • 20221027.1(Oct 27, 2022)

      What's Changed

      • Add Utility Model by @awieckowski in https://github.com/allegro/ralph/pull/3741

      Full Changelog: https://github.com/allegro/ralph/compare/20220725.1...20221027.1

      Source code(tar.gz)
      Source code(zip)
    • 20220725.1(Jul 25, 2022)

      What's Changed

      • Allow editing hostname by default by @hipek8 in https://github.com/allegro/ralph/pull/3729

      Full Changelog: https://github.com/allegro/ralph/compare/20220718.1...20220725.1

      Source code(tar.gz)
      Source code(zip)
    • 20220718.1(Jul 18, 2022)

      What's Changed

      • Add additional transitions history filter fields by @awieckowski in https://github.com/allegro/ralph/pull/3736
      • Add import ssl certificates from many repositories by @awieckowski in https://github.com/allegro/ralph/pull/3738

      Full Changelog: https://github.com/allegro/ralph/compare/20220701.1...20220718.1

      Source code(tar.gz)
      Source code(zip)
    • 20220701.1(Jul 1, 2022)

      What's Changed

      • fix vip update event handling by @szymi- in https://github.com/allegro/ralph/pull/3734
      • Fix report generation by @matyldv in https://github.com/allegro/ralph/pull/3733
      • disallow ralph user modification in ralph demo by @szymi- in https://github.com/allegro/ralph/pull/3735

      New Contributors

      • @matyldv made their first contribution in https://github.com/allegro/ralph/pull/3733

      Full Changelog: https://github.com/allegro/ralph/compare/20220414.1...20220701.1

      Source code(tar.gz)
      Source code(zip)
    • 20220414.1(Apr 14, 2022)

      What's Changed

      • Fix failure when service missing in dnsaas record by @hipek8 in https://github.com/allegro/ralph/pull/3726

      Full Changelog: https://github.com/allegro/ralph/compare/20220411.1...20220414.1

      Source code(tar.gz)
      Source code(zip)
    • 20220411.1(Apr 11, 2022)

      What's Changed

      • Fix/dnsaas service | Fix maximum recursion error when querying dnsaas API by @hipek8 in https://github.com/allegro/ralph/pull/3723

      Full Changelog: https://github.com/allegro/ralph/compare/20220405.1...20220411.1

      Source code(tar.gz)
      Source code(zip)
    • 20220405.1(Apr 6, 2022)

      What's Changed

      • fix ralph demo nginx config by @szymi- in https://github.com/allegro/ralph/pull/3719
      • Don't query obsolete dnsaas /api/domains endpoint by @hipek8 in https://github.com/allegro/ralph/pull/3722

      Full Changelog: https://github.com/allegro/ralph/compare/20220301.1...20220405.1

      Source code(tar.gz)
      Source code(zip)
    • 20220301.1(Mar 1, 2022)

      What's Changed

      • Fix extra arguments persisting between requests by @hipek8 in https://github.com/allegro/ralph/pull/3714

      Full Changelog: https://github.com/allegro/ralph/compare/20220228.1...20220301.1

      Source code(tar.gz)
      Source code(zip)
    • 20220228.1(Feb 28, 2022)

      What's Changed

      • ralph demo resources by @szymi- in https://github.com/allegro/ralph/pull/3709
      • Switching to Discourse by @vi4m in https://github.com/allegro/ralph/pull/3708
      • trace request id if operational error occurs by @szymi- in https://github.com/allegro/ralph/pull/3713

      Full Changelog: https://github.com/allegro/ralph/compare/20220207.1...20220228.1

      Source code(tar.gz)
      Source code(zip)
    • 20220207.1(Feb 7, 2022)

      What's Changed

      • Prevent xss in network related to ip address and in related subnetwork table by @hipek8 in https://github.com/allegro/ralph/pull/3699

      Full Changelog: https://github.com/allegro/ralph/compare/20220111.1...20220207.1

      Source code(tar.gz)
      Source code(zip)
    • 20220111.1(Jan 11, 2022)

      What's Changed

      • incremental openstack sync by @szymi- in https://github.com/allegro/ralph/pull/3697

      Full Changelog: https://github.com/allegro/ralph/compare/20211222.1...20220111.1

      Source code(tar.gz)
      Source code(zip)
    • 20211222.1(Dec 22, 2021)

      What's Changed

      • initial data commands by @szymi- in https://github.com/allegro/ralph/pull/3680
      • refactor openstack client by @szymi- in https://github.com/allegro/ralph/pull/3682
      • Documentation links should now work correctly locally and hosted by @hipek8 in https://github.com/allegro/ralph/pull/3698

      Full Changelog: https://github.com/allegro/ralph/compare/20211220.1...20211222.1

      Source code(tar.gz)
      Source code(zip)
    • 20211220.1(Dec 20, 2021)

      What's Changed

      • Add trademark type 3D by @hipek8 in https://github.com/allegro/ralph/pull/3688
      • Fix XSS vulnerability in IP Addresses when linked object contained html tags by @hipek8 in https://github.com/allegro/ralph/pull/3681
      • VIP error logs should now correctly aggregate by @hipek8 in https://github.com/allegro/ralph/pull/3696

      Full Changelog: https://github.com/allegro/ralph/compare/20211123.1...20211220.1

      Source code(tar.gz)
      Source code(zip)
    • 20211123.1(Dec 6, 2021)

      What's Changed

      • Auto strip whitespaces in hostnames by @hipek8 in https://github.com/allegro/ralph/pull/3676
      • Fix error causing problems on Support import by @hipek8 in https://github.com/allegro/ralph/pull/3679

      Full Changelog: https://github.com/allegro/ralph/compare/20211117.1...20211123.1

      Source code(tar.gz)
      Source code(zip)
    • 20211117.1(Nov 17, 2021)

    • 20211112.1(Nov 12, 2021)

    • 20211108.1(Nov 8, 2021)

    • 20211029.1(Oct 29, 2021)

    • 20210922.1(Sep 22, 2021)

    • 20210921.3(Sep 21, 2021)

    • 20210921.2(Sep 21, 2021)

    • 20210921.1(Sep 21, 2021)

    • 20210908.1(Sep 8, 2021)

    • 20210706.1(Jul 6, 2021)

    • 20210629.1(Jun 29, 2021)

    • 20210615.1(Jun 15, 2021)

    • 20210525.1(May 25, 2021)

    Owner
    Allegro Tech
    Allegro Tech Open Source Projects
    Allegro Tech
    Ansible for DevOps examples.

    Ansible for DevOps Examples This repository contains Ansible examples developed to support different sections of Ansible for DevOps, a book on Ansible

    Jeff Geerling 6.6k Jan 08, 2023
    CI repo for building Skia as a shared library

    Automated Skia builds This repo is dedicated to building Skia binaries for use in Skija. Prebuilt binaries Prebuilt binaries can be found in releases.

    Humble UI 20 Jan 06, 2023
    A Python library for the Docker Engine API

    Docker SDK for Python A Python library for the Docker Engine API. It lets you do anything the docker command does, but from within Python apps – run c

    Docker 6.1k Dec 31, 2022
    This projects provides the documentation and the automation(code) for the Oracle EMEA WLA COA Demo UseCase.

    COA DevOps Training UseCase This projects provides the documentation and the automation(code) for the Oracle EMEA WLA COA Demo UseCase. Demo environme

    Cosmin Tudor 1 Jan 28, 2022
    Webinar oficial Zabbix Brasil. Uma série de 4 aulas sobre API do Zabbix.

    Repositório de scripts do Webinar de API do Zabbix Webinar oficial Zabbix Brasil. Uma série de 4 aulas sobre API do Zabbix. Nossos encontros [x] 04/11

    Robert Silva 7 Mar 31, 2022
    Python utility function to communicate with a subprocess using iterables: for when data is too big to fit in memory and has to be streamed

    iterable-subprocess Python utility function to communicate with a subprocess using iterables: for when data is too big to fit in memory and has to be

    Department for International Trade 5 Jul 10, 2022
    Self-hosted, easily-deployable monitoring and alerts service - like a lightweight PagerDuty

    Cabot Maintainers wanted Cabot is stable and used by hundreds of companies and individuals in production, but it is not actively maintained. We would

    Arachnys 5.4k Dec 23, 2022
    Nagios status monitor for your desktop.

    Nagstamon Nagstamon is a status monitor for the desktop. It connects to multiple Nagios, Icinga, Opsview, Centreon, Op5 Monitor/Ninja, Checkmk Multisi

    Henri Wahl 361 Jan 05, 2023
    gunicorn 'Green Unicorn' is a WSGI HTTP Server for UNIX, fast clients and sleepy applications.

    Gunicorn Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for UNIX. It's a pre-fork worker model ported from Ruby's Unicorn project. The Gunicorn

    Benoit Chesneau 8.7k Jan 08, 2023
    This is a tool to develop, build and test PHP extensions in Docker containers.

    Develop, Build and Test PHP Extensions This is a tool to develop, build and test PHP extensions in Docker containers. Installation Clone this reposito

    Suora GmbH 10 Oct 22, 2022
    Automate SSH in python easily!

    RedExpect RedExpect makes automating remote machines over SSH very easy to do and is very fast in doing exactly what you ask of it. Based on ssh2-pyth

    Red_M 19 Dec 17, 2022
    Python job scheduling for humans.

    schedule Python job scheduling for humans. Run Python functions (or any other callable) periodically using a friendly syntax. A simple to use API for

    Dan Bader 10.4k Jan 02, 2023
    This repository contains useful docker-swarm-tools.

    docker-swarm-tools This repository contains useful docker-swarm-tools. swarm-guardian This Docker image is intended to be used in a multihost docker e

    NeuroForge GmbH & Co. KG 4 Jan 12, 2022
    Google Kubernetes Engine (GKE) with a Snyk Kubernetes controller installed/configured for Snyk App

    Google Kubernetes Engine (GKE) with a Snyk Kubernetes controller installed/configured for Snyk App This example provisions a Google Kubernetes Engine

    Pas Apicella 2 Feb 09, 2022
    CTF infrastructure deployment automation tool.

    CTF infrastructure deployment automation tool. Focus on the challenges. Mirrored from

    Fake News 1 Apr 12, 2022
    CDK Template of Table Definition AWS Lambda for RDB

    CDK Template of Table Definition AWS Lambda for RDB Overview This sample deploys Amazon Aurora of PostgreSQL or MySQL with AWS Lambda that can define

    AWS Samples 5 May 16, 2022
    Run Oracle on Kubernetes with El Carro

    El Carro is a new project that offers a way to run Oracle databases in Kubernetes as a portable, open source, community driven, no vendor lock-in container orchestration system. El Carro provides a p

    Google Cloud Platform 205 Dec 30, 2022
    docker-compose工程部署时的辅助脚本

    okta-cmd Introduction docker-compose 辅助脚本

    完美风暴666 4 Dec 09, 2021
    A tool to clone efficiently all the repos in an organization

    cloner A tool to clone efficiently all the repos in an organization Installation MacOS (not yet tested) python3 -m venv .venv pip3 install virtualenv

    Ramon 6 Apr 15, 2022