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 ralph_ng@localhost 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:admin@server-ip-address: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
    A tool to convert AWS EC2 instances back and forth between On-Demand and Spot billing models.

    ec2-spot-converter This tool converts existing AWS EC2 instances back and forth between On-Demand and 'persistent' Spot billing models while preservin

    jcjorel 152 Dec 29, 2022
    Hw-ci - Hardware CD/CI and Development Container

    Hardware CI & Dev Containter These containers were created for my personal hardware development projects and courses duing my undergraduate degree. Pl

    Matthew Dwyer 6 Dec 25, 2022
    pyinfra automates infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployment, configuration management and more.

    pyinfra automates/provisions/manages/deploys infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployme

    Nick Barrett 2.1k Dec 29, 2022
    Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:

    Latest Salt Documentation Open an issue (bug report, feature request, etc.) Salt is the world’s fastest, most intelligent and scalable automation engi

    SaltStack 12.9k Jan 4, 2023
    Ganeti is a virtual machine cluster management tool built on top of existing virtualization technologies such as Xen or KVM and other open source software.

    Ganeti 3.0 =========== For installation instructions, read the INSTALL and the doc/install.rst files. For a brief introduction, read the ganeti(7) m

    null 395 Jan 4, 2023
    A declarative Kubeflow Management Tool inspired by Terraform

    ?? KRSH is Alpha version, so many bugs can be reported. If you find a bug, please write an Issue and grow the project together! A declarative Kubeflow

    Riiid! 128 Oct 18, 2022
    Simple ssh overlay for easy, remote server management written in Python GTK with paramiko

    Simple "ssh" overlay for easy, remote server management written in Python GTK with paramiko

    kłapouch 3 May 1, 2022
    A system for managing CI data for Mozilla projects

    Treeherder Description Treeherder is a reporting dashboard for Mozilla checkins. It allows users to see the results of automatic builds and their resp

    Mozilla 235 Dec 22, 2022
    Cross-platform lib for process and system monitoring in Python

    Home Install Documentation Download Forum Blog Funding What's new Summary psutil (process and system utilities) is a cross-platform library for retrie

    Giampaolo Rodola 9k Jan 2, 2023
    Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.

    Glances - An eye on your system Summary Glances is a cross-platform monitoring tool which aims to present a large amount of monitoring information thr

    Nicolas Hennion 22k Jan 8, 2023
    A honey token manager and alert system for AWS.

    SpaceSiren SpaceSiren is a honey token manager and alert system for AWS. With this fully serverless application, you can create and manage honey token

    null 287 Nov 9, 2022
    Supervisor process control system for UNIX

    Supervisor Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems. Supported Platf

    Supervisor 7.6k Dec 31, 2022
    DC/OS - The Datacenter Operating System

    DC/OS - The Datacenter Operating System The easiest way to run microservices, big data, and containers in production. What is DC/OS? Like traditional

    DC/OS 2.3k Jan 6, 2023
    Bitnami Docker Image for Python using snapshots for the system packages repositories

    Python Snapshot packaged by Bitnami What is Python Snapshot? Python is a programming language that lets you work quickly and integrate systems more ef

    Bitnami 1 Jan 13, 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
    Big data on k8s

    # microsoft azure # https://docs.microsoft.com/en-us/cli/azure/install-azure-cli az account set --subscription [] az aks get-credentials --resource-g

    Luan Moreno 22 Dec 24, 2022
    Iris is a highly configurable and flexible service for paging and messaging.

    Iris Iris core, API, UI and sender service. For third-party integration support, see iris-relay, a stateless proxy designed to sit at the edge of a pr

    LinkedIn 715 Dec 28, 2022