Orientdb is an open source graph/document database. It supports various language bindings and plug-ins.

On top of that, it supports TinkerPop Blueprints and Java Data Objects(JDO). The TinkerPop Blueprints are particularly interesting as they provide a graph database Domain Specific Language (DSL) to operate directly on the graph structure.

This all looks like a solid foundation for a Configuration Management Data Base (CMDB), starting with capturing infrastructure information (server connections, service dependencies) in a graph, using a standardized information model structure, and storing configuration item (CI) details as documents.

Goal for the week is to have all the classes of the current CIM model reflected in the database.

Looking for hackers with the skills:

graphdb cmdb ruby java

This project is part of:

Hack Week 10

Activity

  • over 9 years ago: yac disliked this project.
  • about 11 years ago: yac liked this project.
  • about 11 years ago: kwk added keyword "graphdb" to this project.
  • about 11 years ago: kwk added keyword "cmdb" to this project.
  • about 11 years ago: kwk added keyword "ruby" to this project.
  • about 11 years ago: kwk added keyword "java" to this project.
  • about 11 years ago: bmaryniuk joined this project.
  • about 11 years ago: bmaryniuk liked this project.
  • about 11 years ago: kwk started this project.
  • about 11 years ago: kwk originated this project.

  • Comments

    • kwk
      about 11 years ago by kwk | Reply

      This plugin connects OrientDB with Pacer for easy graph manipulation and traversal in Ruby

    • kwk
      about 11 years ago by kwk | Reply

      OrientDB supports a graph and a database model. When setting up the database, one has to choose one model. This presentation recommends to use the graph model for our purpose.

    • kwk
      about 11 years ago by kwk | Reply

      Install OrientDB from here. Then (as root) edit /usr/share/orientdb/config/orientdb-server-config.xml and insert

      between the tags. Then (as root) systemctl start orientdb.service

      Run the console with orientdb

      Connect to database with connect remote:localhost MyUser MyPassword

    • kwk
      about 11 years ago by kwk | Reply

      Install OrientDB from here. Then (as root) edit /usr/share/orientdb/config/orientdb-server-config.xml and insert

          <user name="MyUser" password="MyPassword" resources="*"/>
      
      between the <users> tags.

      Then (as root)

          systemctl start orientdb.service
      

      Run the console with

          orientdb
      

      Connect to database with

          connect remote:localhost MyUser MyPassword
      

    • kwk
      about 11 years ago by kwk | Reply

      More about user creation and privileges here

    • kwk
      about 11 years ago by kwk | Reply

      Success !! CIM class schema graph view

    • kwk
      about 11 years ago by kwk | Reply

      I consider this project done. The importer code is not perfect but creates classes and parent relationships.

      Next step: Class properties, then instances, then instance associations

    • kwk
      about 11 years ago by kwk | Reply

      Oh, you also need the graph branch of my fork of orientdb4r

    • bmaryniuk
      about 11 years ago by bmaryniuk | Reply

      Most of the time I was looking how to store the actual instances into the Graph database and recursively traverse a CIM instance. The current SrMF project (https://github.com/isbm/srmf) already can clone the system with KIWI as well as it can describe the whole service, as long all XML definitions and XSL transformations are there to the basic CIM providers.

      The extension from the Hackweek now also allows to store the data into Object Database (Orient DB in this case) and manipulate it there. The next step for SrMF would be to distribute the database into a grid, where each local node describes only itself but the client tool queries the entire grid. There are plans to support Titan distributed graph database for really big scales (http://thinkaurelius.github.io/titan/) which is running on top of Hadoop. However, the primary focus is to support CMDB in smaller cases within the Orient DB cluster, which is already capable to hold billions of vertexes anyway. :)

      Please note, that an alternative attempt to re-implement SrMF (https://github.com/isbm/srmf) once again is "Project Alfred".

    Similar Projects

    Fix RSpec tests in order to replace the ruby-ldap rubygem in OBS by enavarro_suse

    Description

    "LDAP mode is not official supported by OBS!". See: config/options.yml.example#L100-L102

    However, there is an RSpec file which tests LDAP mode in OBS. These tests use the ruby-ldap rubygem, mocking the results returned by a LDAP server.

    The ruby-ldap rubygem seems no longer maintaned, and also prevents from updating to a more recent Ruby version. A good alternative is to replace it with the net-ldap rubygem.

    Before replacing the ruby-ldap rubygem, we should modify the tests so the don't mock the responses of a LDAP server. Instead, we should modify the tests and run them against a real LDAP server.

    Goals

    Goals of this project:

    • Modify the RSpec tests and run them against a real LDAP server
    • Replace the net-ldap rubygem with the ruby-ldap rubygem

    Achieving the above mentioned goals will:

    • Permit upgrading OBS from Ruby 3.1 to Ruby 3.2
    • Make a step towards officially supporting LDAP in OBS.

    Resources


    Recipes catalog and calculator in Rails 8 by gfilippetti

    My wife needs a website to catalog and sell the products of her upcoming bakery, and I need to learn and practice modern Rails. So I'm using this Hack Week to build a modern store using the latest Ruby on Rails best practices, ideally up to the deployment.

    TO DO

    • Index page
    • Product page
    • Admin area -- Supplies calculator based on orders -- Orders notification
    • Authentication
    • Payment
    • Deployment

    Day 1

    As my Rails knowledge was pretty outdated and I had 0 experience with Turbo (wich I want to use in the app), I started following a turbo-rails course. I completed 5 of 11 chapters.

    Day 2

    Continued the course until chapter 8 and added live updates & an empty state to the app. I should finish the course on day 3 and start my own project with the knowledge from it.

    Hackweek 24

    For this Hackweek I'll continue this project, focusing on a Catalog/Calculator for my wife's recipes so she can use for her Café.

    Day 1


    SUSE AI Meets the Game Board by moio

    Use tabletopgames.ai’s open source TAG and PyTAG frameworks to apply Statistical Forward Planning and Deep Reinforcement Learning to two board games of our own design. On an all-green, all-open source, all-AWS stack!
    A chameleon playing chess in a train car, as a metaphor of SUSE AI applied to games


    Results: Infrastructure Achievements

    We successfully built and automated a containerized stack to support our AI experiments. This included:

    A screenshot of k9s and nvtop showing PyTAG running in Kubernetes with GPU acceleration

    ./deploy.sh and voilà - Kubernetes running PyTAG (k9s, above) with GPU acceleration (nvtop, below)

    Results: Game Design Insights

    Our project focused on modeling and analyzing two card games of our own design within the TAG framework:

    • Game Modeling: We implemented models for Dario's "Bamboo" and Silvio's "Totoro" and "R3" games, enabling AI agents to play thousands of games ...in minutes!
    • AI-driven optimization: By analyzing statistical data on moves, strategies, and outcomes, we iteratively tweaked the game mechanics and rules to achieve better balance and player engagement.
    • Advanced analytics: Leveraging AI agents with Monte Carlo Tree Search (MCTS) and random action selection, we compared performance metrics to identify optimal strategies and uncover opportunities for game refinement .

    Cards from the three games

    A family picture of our card games in progress. From the top: Bamboo, Totoro, R3

    Results: Learning, Collaboration, and Innovation

    Beyond technical accomplishments, the project showcased innovative approaches to coding, learning, and teamwork:

    • "Trio programming" with AI assistance: Our "trio programming" approach—two developers and GitHub Copilot—was a standout success, especially in handling slightly-repetitive but not-quite-exactly-copypaste tasks. Java as a language tends to be verbose and we found it to be fitting particularly well.
    • AI tools for reporting and documentation: We extensively used AI chatbots to streamline writing and reporting. (Including writing this report! ...but this note was added manually during edit!)
    • GPU compute expertise: Overcoming challenges with CUDA drivers and cloud infrastructure deepened our understanding of GPU-accelerated workloads in the open-source ecosystem.
    • Game design as a learning platform: By blending AI techniques with creative game design, we learned not only about AI strategies but also about making games fun, engaging, and balanced.

    Last but not least we had a lot of fun! ...and this was definitely not a chatbot generated line!

    The Context: AI + Board Games


    Testing and adding GNU/Linux distributions on Uyuni by juliogonzalezgil

    Join the Gitter channel! https://gitter.im/uyuni-project/hackweek

    Uyuni is a configuration and infrastructure management tool that saves you time and headaches when you have to manage and update tens, hundreds or even thousands of machines. It also manages configuration, can run audits, build image containers, monitor and much more!

    Currently there are a few distributions that are completely untested on Uyuni or SUSE Manager (AFAIK) or just not tested since a long time, and could be interesting knowing how hard would be working with them and, if possible, fix whatever is broken.

    For newcomers, the easiest distributions are those based on DEB or RPM packages. Distributions with other package formats are doable, but will require adapting the Python and Java code to be able to sync and analyze such packages (and if salt does not support those packages, it will need changes as well). So if you want a distribution with other packages, make sure you are comfortable handling such changes.

    No developer experience? No worries! We had non-developers contributors in the past, and we are ready to help as long as you are willing to learn. If you don't want to code at all, you can also help us preparing the documentation after someone else has the initial code ready, or you could also help with testing :-)

    The idea is testing Salt and Salt-ssh clients, but NOT traditional clients, which are deprecated.

    To consider that a distribution has basic support, we should cover at least (points 3-6 are to be tested for both salt minions and salt ssh minions):

    1. Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
    2. Onboarding (salt minion from UI, salt minion from bootstrap scritp, and salt-ssh minion) (this will probably require adding OS to the bootstrap repository creator)
    3. Package management (install, remove, update...)
    4. Patching
    5. Applying any basic salt state (including a formula)
    6. Salt remote commands
    7. Bonus point: Java part for product identification, and monitoring enablement
    8. Bonus point: sumaform enablement (https://github.com/uyuni-project/sumaform)
    9. Bonus point: Documentation (https://github.com/uyuni-project/uyuni-docs)
    10. Bonus point: testsuite enablement (https://github.com/uyuni-project/uyuni/tree/master/testsuite)

    If something is breaking: we can try to fix it, but the main idea is research how supported it is right now. Beyond that it's up to each project member how much to hack :-)

    • If you don't have knowledge about some of the steps: ask the team
    • If you still don't know what to do: switch to another distribution and keep testing.

    This card is for EVERYONE, not just developers. Seriously! We had people from other teams helping that were not developers, and added support for Debian and new SUSE Linux Enterprise and openSUSE Leap versions :-)

    Pending

    FUSS

    FUSS is a complete GNU/Linux solution (server, client and desktop/standalone) based on Debian for managing an educational network.

    https://fuss.bz.it/

    Seems to be a Debian 12 derivative, so adding it could be quite easy.

    • [W] Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
    • [W] Onboarding (salt minion from UI, salt minion from bootstrap script, and salt-ssh minion) (this will probably require adding OS to the bootstrap repository creator) --> Working for all 3 options (salt minion UI, salt minion bootstrap script and salt-ssh minion from the UI).
    • [W] Package management (install, remove, update...) --> Installing a new package works, needs to test the rest.
    • [I] Patching (if patch information is available, could require writing some code to parse it, but IIRC we have support for Ubuntu already). No patches detected. Do we support patches for Debian at all?
    • [W] Applying any basic salt state (including a formula)
    • [W] Salt remote commands
    • [ ] Bonus point: Java part for product identification, and monitoring enablement