8000 Improve code quality · Issue #48 · citelab/gini · GitHub
[go: up one dir, main page]

Skip to content

Improve code quality #48

Open
Open

Description

@trungams

It would be good if we can make Gini compatible with Python3, since support for version 2 will be dropped soon. Also, since the structure is quite complicated, we should improve the quality in terms of code commenting, modularization, following style guides, etc.

Activity

  1. trungams commented on Mar 8, 2019

    @trungams
    MemberAuthor

    Regarding modularization, the models on the backend and frontend are currently inconsistent, and I also think it's a good idea to separate components into 2(+) categories: host elements (end devices) and network elements (switch/routing devices)

  2. trungams commented on Mar 10, 2019

    @trungams
    MemberAuthor

    When building Gini using Scons, it's better if we structure each component the similar to the source code, as in it should be split into lib/frontend and lib/backend. This makes adding/removing python packages easier

    E.g: a python file can import another module using from backend import ... instead of using relative module path

  3. trungams commented on Mar 10, 2019

    @trungams
    MemberAuthor

    Rely on SDK instead of subprocess calls to manage docker (and ovs). Pox is already good to use

  4. trungams commented on Mar 14, 2019

    @trungams
    MemberAuthor

    One thing to consider is to run gbuilder (and consequently, other components) as root, so we don't need to change a lot of the configurations (setuid bits, wiresharks, docker, etc) during installation.

    One obvious advantage of this is we can now run ovs-docker without having to create a netns directory and change ownership first. Since it's a bash script instead of a binary executable, setuid bit has zero effect.

    https://unix.stackexchange.com/questions/364/allow-setuid-on-shell-scripts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0