Repository files navigation

perfSONAR Toolkit

This repository contains scripts and GUIs included with the Toolkit distribution of perfSONAR. A Toolkit includes a full operating system with a consistent environment in terms of default system tunings, firewalls, and software configurations. It also includes GUIs used to manage the Toolkit system and display measurement results.

Getting the Code

You may checkout the code with the following command:

git clone --recursive https://github.com/perfsonar/toolkit.git

Note the use of the --recursive option to ensure any submodule trees are included in the clone.

Building and Installing

It is recommended you use the provided Vagrant VM to run the software. The Vagrant VM builds an environment with the needed dependencies to build, run and test the software. Changes you make in the directory on the host system will be reflected in the /vagrant directory of the VM. You can start the VM as follows:

vagrant up

You can then login with:

vagrant ssh

As you make changes, you can deploy them as follows:

cd /vagrant
sudo make install

Packaging the Source

You may create a source tarball of this code with the following:

make dist

Building RPMs

You can build the RPMs with the following commands:

cd rpms
vagrant up
vagrant ssh
build

For more information on building and testing RPMs see shared/rpms/RPM_README.md.

Using the shared Submodule

This repository contains a git submodule to the perfSONAR shared repository. This submodule is used to access common perfSONAR libraries. You will find a number of symbolic links to these modules under lib. The use of a submodule has a few implications when working with the code in this repository:

  • As previously noted, when you clone the repository for the first time, you will want to use the --recursive option to make sure the submodule tree is included. If you do not, any symbolic links under lib will be broken in your local copy. If you forget the --recursive option, you can pull the submodule tree with the following commands:

    git submodule init
    git submodule update
  • When you are editing files under lib be sure to check if you are working on an actual file or whether it's a link to something under shared. In general it is better to make changes to the shared submodule by editing the shared repository directly. If however you do make changes while working in this repository, see the git submodule page for more details on pushing those changes to the server.

  • Keep in mind that a submodule points at a specific revision of the repository it is referencing. As such if a new commit is made to the shared submodule's repository, this project will not get the change automatically. Instead it will still point at the old revision. To update to the latest revision of the shared submodule repository run the following commands:

    git submodule foreach git pull origin master
    git commit -a -m "Updating to latest shared"
    git push
  • If you want to include a new file from the shared submodule, create a symbolic link under lib. For example, if you were to add a reference to the perfSONAR_PS::Utils::DNS module you would run the following:

    mkdir -p lib/perfSONAR_PS/Utils/
    cd lib/perfSONAR_PS/Utils/
    ln -s ../../../shared/lib/perfSONAR_PS/Utils/DNS.pm DNS.pm

For more information on using the submodule, see the shared/README.md file or access it here

About

perfSONAR Toolkit distribution environment scripts and GUI

Resources

Stars

37 stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

perfSONAR Toolkit

This repository contains scripts and GUIs included with the Toolkit distribution of perfSONAR. A Toolkit includes a full operating system with a consistent environment in terms of default system tunings, firewalls, and software configurations. It also includes GUIs used to manage the Toolkit system and display measurement results.

Getting the Code

You may checkout the code with the following command:

git clone --recursive https://github.com/perfsonar/toolkit.git

Note the use of the --recursive option to ensure any submodule trees are included in the clone.

Building and Installing

It is recommended you use the provided Vagrant VM to run the software. The Vagrant VM builds an environment with the needed dependencies to build, run and test the software. Changes you make in the directory on the host system will be reflected in the /vagrant directory of the VM. You can start the VM as follows:

vagrant up

You can then login with:

vagrant ssh

As you make changes, you can deploy them as follows:

cd /vagrant
sudo make install

Packaging the Source

You may create a source tarball of this code with the following:

make dist

Building RPMs

You can build the RPMs with the following commands:

cd rpms
vagrant up
vagrant ssh
build

For more information on building and testing RPMs see shared/rpms/RPM_README.md.

Using the shared Submodule

This repository contains a git submodule to the perfSONAR shared repository. This submodule is used to access common perfSONAR libraries. You will find a number of symbolic links to these modules under lib. The use of a submodule has a few implications when working with the code in this repository:

  • As previously noted, when you clone the repository for the first time, you will want to use the --recursive option to make sure the submodule tree is included. If you do not, any symbolic links under lib will be broken in your local copy. If you forget the --recursive option, you can pull the submodule tree with the following commands:

    git submodule init
    git submodule update
  • When you are editing files under lib be sure to check if you are working on an actual file or whether it's a link to something under shared. In general it is better to make changes to the shared submodule by editing the shared repository directly. If however you do make changes while working in this repository, see the git submodule page for more details on pushing those changes to the server.

  • Keep in mind that a submodule points at a specific revision of the repository it is referencing. As such if a new commit is made to the shared submodule's repository, this project will not get the change automatically. Instead it will still point at the old revision. To update to the latest revision of the shared submodule repository run the following commands:

    git submodule foreach git pull origin master
    git commit -a -m "Updating to latest shared"
    git push
  • If you want to include a new file from the shared submodule, create a symbolic link under lib. For example, if you were to add a reference to the perfSONAR_PS::Utils::DNS module you would run the following:

    mkdir -p lib/perfSONAR_PS/Utils/
    cd lib/perfSONAR_PS/Utils/
    ln -s ../../../shared/lib/perfSONAR_PS/Utils/DNS.pm DNS.pm

For more information on using the submodule, see the shared/README.md file or access it here

About

perfSONAR Toolkit distribution environment scripts and GUI

Resources

Stars

37 stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

perfSONAR Toolkit

This repository contains scripts and GUIs included with the Toolkit distribution of perfSONAR. A Toolkit includes a full operating system with a consistent environment in terms of default system tunings, firewalls, and software configurations. It also includes GUIs used to manage the Toolkit system and display measurement results.

Getting the Code

You may checkout the code with the following command:

git clone --recursive https://github.com/perfsonar/toolkit.git

Note the use of the --recursive option to ensure any submodule trees are included in the clone.

Building and Installing

It is recommended you use the provided Vagrant VM to run the software. The Vagrant VM builds an environment with the needed dependencies to build, run and test the software. Changes you make in the directory on the host system will be reflected in the /vagrant directory of the VM. You can start the VM as follows:

vagrant up

You can then login with:

vagrant ssh

As you make changes, you can deploy them as follows:

cd /vagrant
sudo make install

Packaging the Source

You may create a source tarball of this code with the following:

make dist

Building RPMs

You can build the RPMs with the following commands:

cd rpms
vagrant up
vagrant ssh
build

For more information on building and testing RPMs see shared/rpms/RPM_README.md.

Using the shared Submodule

This repository contains a git submodule to the perfSONAR shared repository. This submodule is used to access common perfSONAR libraries. You will find a number of symbolic links to these modules under lib. The use of a submodule has a few implications when working with the code in this repository:

  • As previously noted, when you clone the repository for the first time, you will want to use the --recursive option to make sure the submodule tree is included. If you do not, any symbolic links under lib will be broken in your local copy. If you forget the --recursive option, you can pull the submodule tree with the following commands:

    git submodule init
    git submodule update
  • When you are editing files under lib be sure to check if you are working on an actual file or whether it's a link to something under shared. In general it is better to make changes to the shared submodule by editing the shared repository directly. If however you do make changes while working in this repository, see the git submodule page for more details on pushing those changes to the server.

  • Keep in mind that a submodule points at a specific revision of the repository it is referencing. As such if a new commit is made to the shared submodule's repository, this project will not get the change automatically. Instead it will still point at the old revision. To update to the latest revision of the shared submodule repository run the following commands:

    git submodule foreach git pull origin master
    git commit -a -m "Updating to latest shared"
    git push
  • If you want to include a new file from the shared submodule, create a symbolic link under lib. For example, if you were to add a reference to the perfSONAR_PS::Utils::DNS module you would run the following:

    mkdir -p lib/perfSONAR_PS/Utils/
    cd lib/perfSONAR_PS/Utils/
    ln -s ../../../shared/lib/perfSONAR_PS/Utils/DNS.pm DNS.pm

For more information on using the submodule, see the shared/README.md file or access it here

About

perfSONAR Toolkit distribution environment scripts and GUI

Resources

Stars

37 stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

perfSONAR Toolkit

This repository contains scripts and GUIs included with the Toolkit distribution of perfSONAR. A Toolkit includes a full operating system with a consistent environment in terms of default system tunings, firewalls, and software configurations. It also includes GUIs used to manage the Toolkit system and display measurement results.

Getting the Code

You may checkout the code with the following command:

git clone --recursive https://github.com/perfsonar/toolkit.git

Note the use of the --recursive option to ensure any submodule trees are included in the clone.

Building and Installing

It is recommended you use the provided Vagrant VM to run the software. The Vagrant VM builds an environment with the needed dependencies to build, run and test the software. Changes you make in the directory on the host system will be reflected in the /vagrant directory of the VM. You can start the VM as follows:

vagrant up

You can then login with:

vagrant ssh

As you make changes, you can deploy them as follows:

cd /vagrant
sudo make install

Packaging the Source

You may create a source tarball of this code with the following:

make dist

Building RPMs

You can build the RPMs with the following commands:

cd rpms
vagrant up
vagrant ssh
build

For more information on building and testing RPMs see shared/rpms/RPM_README.md.

Using the shared Submodule

This repository contains a git submodule to the perfSONAR shared repository. This submodule is used to access common perfSONAR libraries. You will find a number of symbolic links to these modules under lib. The use of a submodule has a few implications when working with the code in this repository:

  • As previously noted, when you clone the repository for the first time, you will want to use the --recursive option to make sure the submodule tree is included. If you do not, any symbolic links under lib will be broken in your local copy. If you forget the --recursive option, you can pull the submodule tree with the following commands:

    git submodule init
    git submodule update
  • When you are editing files under lib be sure to check if you are working on an actual file or whether it's a link to something under shared. In general it is better to make changes to the shared submodule by editing the shared repository directly. If however you do make changes while working in this repository, see the git submodule page for more details on pushing those changes to the server.

  • Keep in mind that a submodule points at a specific revision of the repository it is referencing. As such if a new commit is made to the shared submodule's repository, this project will not get the change automatically. Instead it will still point at the old revision. To update to the latest revision of the shared submodule repository run the following commands:

    git submodule foreach git pull origin master
    git commit -a -m "Updating to latest shared"
    git push
  • If you want to include a new file from the shared submodule, create a symbolic link under lib. For example, if you were to add a reference to the perfSONAR_PS::Utils::DNS module you would run the following:

    mkdir -p lib/perfSONAR_PS/Utils/
    cd lib/perfSONAR_PS/Utils/
    ln -s ../../../shared/lib/perfSONAR_PS/Utils/DNS.pm DNS.pm

For more information on using the submodule, see the shared/README.md file or access it here

About

perfSONAR Toolkit distribution environment scripts and GUI

Resources

Stars

37 stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

perfSONAR Toolkit

This repository contains scripts and GUIs included with the Toolkit distribution of perfSONAR. A Toolkit includes a full operating system with a consistent environment in terms of default system tunings, firewalls, and software configurations. It also includes GUIs used to manage the Toolkit system and display measurement results.

Getting the Code

You may checkout the code with the following command:

git clone --recursive https://github.com/perfsonar/toolkit.git

Note the use of the --recursive option to ensure any submodule trees are included in the clone.

Building and Installing

It is recommended you use the provided Vagrant VM to run the software. The Vagrant VM builds an environment with the needed dependencies to build, run and test the software. Changes you make in the directory on the host system will be reflected in the /vagrant directory of the VM. You can start the VM as follows:

vagrant up

You can then login with:

vagrant ssh

As you make changes, you can deploy them as follows:

cd /vagrant
sudo make install

Packaging the Source

You may create a source tarball of this code with the following:

make dist

Building RPMs

You can build the RPMs with the following commands:

cd rpms
vagrant up
vagrant ssh
build

For more information on building and testing RPMs see shared/rpms/RPM_README.md.

Using the shared Submodule

This repository contains a git submodule to the perfSONAR shared repository. This submodule is used to access common perfSONAR libraries. You will find a number of symbolic links to these modules under lib. The use of a submodule has a few implications when working with the code in this repository:

  • As previously noted, when you clone the repository for the first time, you will want to use the --recursive option to make sure the submodule tree is included. If you do not, any symbolic links under lib will be broken in your local copy. If you forget the --recursive option, you can pull the submodule tree with the following commands:

    git submodule init
    git submodule update
  • When you are editing files under lib be sure to check if you are working on an actual file or whether it's a link to something under shared. In general it is better to make changes to the shared submodule by editing the shared repository directly. If however you do make changes while working in this repository, see the git submodule page for more details on pushing those changes to the server.

  • Keep in mind that a submodule points at a specific revision of the repository it is referencing. As such if a new commit is made to the shared submodule's repository, this project will not get the change automatically. Instead it will still point at the old revision. To update to the latest revision of the shared submodule repository run the following commands:

    git submodule foreach git pull origin master
    git commit -a -m "Updating to latest shared"
    git push
  • If you want to include a new file from the shared submodule, create a symbolic link under lib. For example, if you were to add a reference to the perfSONAR_PS::Utils::DNS module you would run the following:

    mkdir -p lib/perfSONAR_PS/Utils/
    cd lib/perfSONAR_PS/Utils/
    ln -s ../../../shared/lib/perfSONAR_PS/Utils/DNS.pm DNS.pm

For more information on using the submodule, see the shared/README.md file or access it here

About

perfSONAR Toolkit distribution environment scripts and GUI

Resources

Stars

37 stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

perfSONAR Toolkit

This repository contains scripts and GUIs included with the Toolkit distribution of perfSONAR. A Toolkit includes a full operating system with a consistent environment in terms of default system tunings, firewalls, and software configurations. It also includes GUIs used to manage the Toolkit system and display measurement results.

Getting the Code

You may checkout the code with the following command:

git clone --recursive https://github.com/perfsonar/toolkit.git

Note the use of the --recursive option to ensure any submodule trees are included in the clone.

Building and Installing

It is recommended you use the provided Vagrant VM to run the software. The Vagrant VM builds an environment with the needed dependencies to build, run and test the software. Changes you make in the directory on the host system will be reflected in the /vagrant directory of the VM. You can start the VM as follows:

vagrant up

You can then login with:

vagrant ssh

As you make changes, you can deploy them as follows:

cd /vagrant
sudo make install

Packaging the Source

You may create a source tarball of this code with the following:

make dist

Building RPMs

You can build the RPMs with the following commands:

cd rpms
vagrant up
vagrant ssh
build

For more information on building and testing RPMs see shared/rpms/RPM_README.md.

Using the shared Submodule

This repository contains a git submodule to the perfSONAR shared repository. This submodule is used to access common perfSONAR libraries. You will find a number of symbolic links to these modules under lib. The use of a submodule has a few implications when working with the code in this repository:

  • As previously noted, when you clone the repository for the first time, you will want to use the --recursive option to make sure the submodule tree is included. If you do not, any symbolic links under lib will be broken in your local copy. If you forget the --recursive option, you can pull the submodule tree with the following commands:

    git submodule init
    git submodule update
  • When you are editing files under lib be sure to check if you are working on an actual file or whether it's a link to something under shared. In general it is better to make changes to the shared submodule by editing the shared repository directly. If however you do make changes while working in this repository, see the git submodule page for more details on pushing those changes to the server.

  • Keep in mind that a submodule points at a specific revision of the repository it is referencing. As such if a new commit is made to the shared submodule's repository, this project will not get the change automatically. Instead it will still point at the old revision. To update to the latest revision of the shared submodule repository run the following commands:

    git submodule foreach git pull origin master
    git commit -a -m "Updating to latest shared"
    git push
  • If you want to include a new file from the shared submodule, create a symbolic link under lib. For example, if you were to add a reference to the perfSONAR_PS::Utils::DNS module you would run the following:

    mkdir -p lib/perfSONAR_PS/Utils/
    cd lib/perfSONAR_PS/Utils/
    ln -s ../../../shared/lib/perfSONAR_PS/Utils/DNS.pm DNS.pm

For more information on using the submodule, see the shared/README.md file or access it here

About

perfSONAR Toolkit distribution environment scripts and GUI

Resources

Stars

37 stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

perfSONAR Toolkit

This repository contains scripts and GUIs included with the Toolkit distribution of perfSONAR. A Toolkit includes a full operating system with a consistent environment in terms of default system tunings, firewalls, and software configurations. It also includes GUIs used to manage the Toolkit system and display measurement results.

Getting the Code

You may checkout the code with the following command:

git clone --recursive https://github.com/perfsonar/toolkit.git

Note the use of the --recursive option to ensure any submodule trees are included in the clone.

Building and Installing

It is recommended you use the provided Vagrant VM to run the software. The Vagrant VM builds an environment with the needed dependencies to build, run and test the software. Changes you make in the directory on the host system will be reflected in the /vagrant directory of the VM. You can start the VM as follows:

vagrant up

You can then login with:

vagrant ssh

As you make changes, you can deploy them as follows:

cd /vagrant
sudo make install

Packaging the Source

You may create a source tarball of this code with the following:

make dist

Building RPMs

You can build the RPMs with the following commands:

cd rpms
vagrant up
vagrant ssh
build

For more information on building and testing RPMs see shared/rpms/RPM_README.md.

Using the shared Submodule

This repository contains a git submodule to the perfSONAR shared repository. This submodule is used to access common perfSONAR libraries. You will find a number of symbolic links to these modules under lib. The use of a submodule has a few implications when working with the code in this repository:

  • As previously noted, when you clone the repository for the first time, you will want to use the --recursive option to make sure the submodule tree is included. If you do not, any symbolic links under lib will be broken in your local copy. If you forget the --recursive option, you can pull the submodule tree with the following commands:

    git submodule init
    git submodule update
  • When you are editing files under lib be sure to check if you are working on an actual file or whether it's a link to something under shared. In general it is better to make changes to the shared submodule by editing the shared repository directly. If however you do make changes while working in this repository, see the git submodule page for more details on pushing those changes to the server.

  • Keep in mind that a submodule points at a specific revision of the repository it is referencing. As such if a new commit is made to the shared submodule's repository, this project will not get the change automatically. Instead it will still point at the old revision. To update to the latest revision of the shared submodule repository run the following commands:

    git submodule foreach git pull origin master
    git commit -a -m "Updating to latest shared"
    git push
  • If you want to include a new file from the shared submodule, create a symbolic link under lib. For example, if you were to add a reference to the perfSONAR_PS::Utils::DNS module you would run the following:

    mkdir -p lib/perfSONAR_PS/Utils/
    cd lib/perfSONAR_PS/Utils/
    ln -s ../../../shared/lib/perfSONAR_PS/Utils/DNS.pm DNS.pm

For more information on using the submodule, see the shared/README.md file or access it here

About

perfSONAR Toolkit distribution environment scripts and GUI

Resources

Stars

37 stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

perfSONAR Toolkit

This repository contains scripts and GUIs included with the Toolkit distribution of perfSONAR. A Toolkit includes a full operating system with a consistent environment in terms of default system tunings, firewalls, and software configurations. It also includes GUIs used to manage the Toolkit system and display measurement results.

Getting the Code

You may checkout the code with the following command:

git clone --recursive https://github.com/perfsonar/toolkit.git

Note the use of the --recursive option to ensure any submodule trees are included in the clone.

Building and Installing

It is recommended you use the provided Vagrant VM to run the software. The Vagrant VM builds an environment with the needed dependencies to build, run and test the software. Changes you make in the directory on the host system will be reflected in the /vagrant directory of the VM. You can start the VM as follows:

vagrant up

You can then login with:

vagrant ssh

As you make changes, you can deploy them as follows:

cd /vagrant
sudo make install

Packaging the Source

You may create a source tarball of this code with the following:

make dist

Building RPMs

You can build the RPMs with the following commands:

cd rpms
vagrant up
vagrant ssh
build

For more information on building and testing RPMs see shared/rpms/RPM_README.md.

Using the shared Submodule

This repository contains a git submodule to the perfSONAR shared repository. This submodule is used to access common perfSONAR libraries. You will find a number of symbolic links to these modules under lib. The use of a submodule has a few implications when working with the code in this repository:

  • As previously noted, when you clone the repository for the first time, you will want to use the --recursive option to make sure the submodule tree is included. If you do not, any symbolic links under lib will be broken in your local copy. If you forget the --recursive option, you can pull the submodule tree with the following commands:

    git submodule init
    git submodule update
  • When you are editing files under lib be sure to check if you are working on an actual file or whether it's a link to something under shared. In general it is better to make changes to the shared submodule by editing the shared repository directly. If however you do make changes while working in this repository, see the git submodule page for more details on pushing those changes to the server.

  • Keep in mind that a submodule points at a specific revision of the repository it is referencing. As such if a new commit is made to the shared submodule's repository, this project will not get the change automatically. Instead it will still point at the old revision. To update to the latest revision of the shared submodule repository run the following commands:

    git submodule foreach git pull origin master
    git commit -a -m "Updating to latest shared"
    git push
  • If you want to include a new file from the shared submodule, create a symbolic link under lib. For example, if you were to add a reference to the perfSONAR_PS::Utils::DNS module you would run the following:

    mkdir -p lib/perfSONAR_PS/Utils/
    cd lib/perfSONAR_PS/Utils/
    ln -s ../../../shared/lib/perfSONAR_PS/Utils/DNS.pm DNS.pm

For more information on using the submodule, see the shared/README.md file or access it here

About

perfSONAR Toolkit distribution environment scripts and GUI

Resources

Stars

37 stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages