├── toolkit ├── perfsonar-toolkit │ ├── etc │ │ ├── administrative_info │ │ ├── perfsonar_ulimit_apache.conf │ │ ├── perfsonar_sudo │ │ ├── default_service_configs │ │ │ └── jail.local │ │ ├── firewalld │ │ │ └── services │ │ │ │ ├── owamp-control.xml │ │ │ │ ├── twamp-control.xml │ │ │ │ ├── bwctl.xml │ │ │ │ └── traceroute.xml │ │ ├── perfsonar_ulimit.conf │ │ ├── templates │ │ │ ├── motd.tmpl │ │ │ └── ntp_conf.tmpl │ │ ├── default_system_firewall_settings.conf │ │ ├── configdaemon-logger.conf │ │ ├── perfsonar_firewalld_settings.conf │ │ ├── configdaemon.conf │ │ ├── apache-perfsonar-security.conf │ │ ├── perfsonar_firewall_settings.conf │ │ └── ntp_known_servers │ ├── unibuild-packaging │ │ ├── deb │ │ │ ├── compat │ │ │ ├── source │ │ │ │ ├── format │ │ │ │ └── lintian-overrides │ │ │ ├── perfsonar-toolkit-ntp.dirs │ │ │ ├── perfsonar-toolkit-sysctl.install │ │ │ ├── tests │ │ │ │ ├── ntp │ │ │ │ ├── config-daemon │ │ │ │ ├── systemenv │ │ │ │ ├── web │ │ │ │ ├── sysctl │ │ │ │ ├── webauth │ │ │ │ ├── security │ │ │ │ ├── pssudo │ │ │ │ └── control │ │ │ ├── perfsonar-toolkit-archive-utils.install │ │ │ ├── perfsonar-toolkit.links │ │ │ ├── patches │ │ │ │ ├── series │ │ │ │ ├── debian-security.diff │ │ │ │ ├── debian-sysctl.diff │ │ │ │ ├── debian-install.diff │ │ │ │ └── debian-config-daemon.diff │ │ │ ├── perfsonar-toolkit-web-services.install │ │ │ ├── perfsonar-toolkit-systemenv-testpoint.logrotate │ │ │ ├── perfsonar-toolkit-ntp.install │ │ │ ├── perfsonar-toolkit-config-daemon.install │ │ │ ├── perfsonar-toolkit-library.install │ │ │ ├── perfsonar-toolkit-install.install │ │ │ ├── perfsonar-toolkit-security.install │ │ │ ├── copyright │ │ │ ├── perfsonar-toolkit-systemenv-testpoint.install │ │ │ ├── perfsonar-toolkit-web-services.postrm │ │ │ ├── perfsonar-toolkit-sysctl.postrm │ │ │ ├── perfsonar-toolkit-config-daemon.postrm │ │ │ ├── perfsonar-toolkit-web-services.prerm │ │ │ ├── perfsonar-toolkit.install │ │ │ ├── perfsonar-toolkit-security.postinst │ │ │ ├── perfsonar-toolkit.prerm │ │ │ ├── perfsonar-toolkit-config-daemon.postinst │ │ │ ├── rules │ │ │ ├── perfsonar-toolkit-systemenv-testpoint.postinst │ │ │ ├── perfsonar-toolkit-systemenv.postinst │ │ │ ├── perfsonar-toolkit-archive-utils.postinst │ │ │ ├── perfsonar-toolkit.postrm │ │ │ ├── perfsonar-toolkit-systemenv.install │ │ │ ├── perfsonar-toolkit-sysctl.postinst │ │ │ └── perfsonar-toolkit-web-services.postinst │ │ └── rpm │ │ │ └── remove_ntp_configdaemon.patch │ ├── web-ng │ │ ├── root │ │ │ ├── js │ │ │ │ ├── actions │ │ │ │ │ └── Dispatcher.js │ │ │ │ ├── pubsub │ │ │ │ │ └── node_modules │ │ │ │ │ │ └── pubsub-js │ │ │ │ │ │ ├── iframe │ │ │ │ │ │ ├── pubsub-bridge.js │ │ │ │ │ │ ├── frame1.html │ │ │ │ │ │ ├── frame2.html │ │ │ │ │ │ └── index.html │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ ├── jquery-integration.html │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ ├── bower.json │ │ │ │ │ │ ├── wrappers │ │ │ │ │ │ └── jquery │ │ │ │ │ │ │ ├── pubsub.js.pre.txt │ │ │ │ │ │ │ └── pubsub.js.post.txt │ │ │ │ │ │ ├── .jslintrc │ │ │ │ │ │ ├── composer.json │ │ │ │ │ │ ├── autolint.js │ │ │ │ │ │ ├── test │ │ │ │ │ │ ├── test-clearSubscriptions.js │ │ │ │ │ │ ├── buster.js │ │ │ │ │ │ ├── test-issue-54.js │ │ │ │ │ │ ├── test-bug-9.js │ │ │ │ │ │ ├── helper.js │ │ │ │ │ │ └── test-jquery-integration.js │ │ │ │ │ │ ├── Gruntfile.js │ │ │ │ │ │ ├── Rakefile │ │ │ │ │ │ └── CONTRIBUTING.md │ │ │ │ ├── jquery-ui │ │ │ │ │ └── images │ │ │ │ │ │ ├── ui-icons_444444_256x240.png │ │ │ │ │ │ ├── ui-icons_555555_256x240.png │ │ │ │ │ │ ├── ui-icons_777620_256x240.png │ │ │ │ │ │ ├── ui-icons_777777_256x240.png │ │ │ │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ │ ├── datatables_plugin │ │ │ │ │ └── DataTables-1.10.12 │ │ │ │ │ │ ├── images │ │ │ │ │ │ ├── sort_asc.png │ │ │ │ │ │ ├── sort_both.png │ │ │ │ │ │ ├── sort_desc.png │ │ │ │ │ │ ├── sort_asc_disabled.png │ │ │ │ │ │ └── sort_desc_disabled.png │ │ │ │ │ │ └── js │ │ │ │ │ │ ├── dataTables.bootstrap.min.js │ │ │ │ │ │ └── dataTables.foundation.min.js │ │ │ │ ├── admin │ │ │ │ │ ├── components │ │ │ │ │ │ └── OldTestConfigComponent.js │ │ │ │ │ └── pages │ │ │ │ │ │ ├── TestConfigPage.js │ │ │ │ │ │ └── AdminInfoPage.js │ │ │ │ ├── select2 │ │ │ │ │ └── i18n │ │ │ │ │ │ ├── zh-TW.js │ │ │ │ │ │ ├── az.js │ │ │ │ │ │ ├── zh-CN.js │ │ │ │ │ │ ├── fi.js │ │ │ │ │ │ ├── id.js │ │ │ │ │ │ ├── hu.js │ │ │ │ │ │ ├── th.js │ │ │ │ │ │ ├── tr.js │ │ │ │ │ │ ├── ko.js │ │ │ │ │ │ ├── nb.js │ │ │ │ │ │ ├── vi.js │ │ │ │ │ │ ├── is.js │ │ │ │ │ │ ├── de.js │ │ │ │ │ │ ├── et.js │ │ │ │ │ │ ├── hr.js │ │ │ │ │ │ ├── sv.js │ │ │ │ │ │ ├── bg.js │ │ │ │ │ │ ├── he.js │ │ │ │ │ │ ├── gl.js │ │ │ │ │ │ ├── da.js │ │ │ │ │ │ ├── fr.js │ │ │ │ │ │ ├── ro.js │ │ │ │ │ │ ├── en.js │ │ │ │ │ │ ├── hi.js │ │ │ │ │ │ ├── fa.js │ │ │ │ │ │ ├── eu.js │ │ │ │ │ │ ├── mk.js │ │ │ │ │ │ ├── pt-BR.js │ │ │ │ │ │ ├── lv.js │ │ │ │ │ │ ├── pt.js │ │ │ │ │ │ ├── lt.js │ │ │ │ │ │ ├── nl.js │ │ │ │ │ │ ├── ca.js │ │ │ │ │ │ ├── es.js │ │ │ │ │ │ ├── it.js │ │ │ │ │ │ ├── sr.js │ │ │ │ │ │ ├── pl.js │ │ │ │ │ │ ├── uk.js │ │ │ │ │ │ ├── ru.js │ │ │ │ │ │ ├── sk.js │ │ │ │ │ │ └── cs.js │ │ │ │ ├── stores │ │ │ │ │ ├── CommunityHostsStore.js │ │ │ │ │ ├── HostHealthStore.js │ │ │ │ │ ├── NTPClosestStore.js │ │ │ │ │ ├── HostNTPInfoStore.js │ │ │ │ │ ├── HostServicesStore.js │ │ │ │ │ ├── HostGuessLatLonStore.js │ │ │ │ │ ├── CommunityAllStore.js │ │ │ │ │ ├── DataStore.js │ │ │ │ │ ├── NTPConfigStore.js │ │ │ │ │ └── HostDetailsStore.js │ │ │ │ ├── foundation │ │ │ │ │ └── foundation.alert.js │ │ │ │ ├── pages │ │ │ │ │ └── DashboardPage.js │ │ │ │ └── components │ │ │ │ │ └── PageHeader.js │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ │ ├── perfSONAR-logo.png │ │ │ │ ├── perfSONAR-logo-powered.png │ │ │ │ ├── perfSONAR-logo-reversed.png │ │ │ │ ├── perfSONAR-logo-whitebg.png │ │ │ │ ├── perfSONAR-logo-powered-reverse.png │ │ │ │ └── perfSONAR-logo-reversed-green.png │ │ │ ├── css │ │ │ │ ├── google-fonts │ │ │ │ │ ├── Open_Sans_300.ttf │ │ │ │ │ ├── Open_Sans_400.ttf │ │ │ │ │ ├── Open_Sans_700.ttf │ │ │ │ │ ├── Open_Sans_300.woff │ │ │ │ │ ├── Open_Sans_300.woff2 │ │ │ │ │ ├── Open_Sans_400.woff │ │ │ │ │ ├── Open_Sans_400.woff2 │ │ │ │ │ ├── Open_Sans_700.woff │ │ │ │ │ ├── Open_Sans_700.woff2 │ │ │ │ │ ├── Open_Sans_400italic.ttf │ │ │ │ │ ├── Open_Sans_400italic.woff │ │ │ │ │ ├── Open_Sans_400italic.woff2 │ │ │ │ │ ├── Open_Sans_700italic.ttf │ │ │ │ │ ├── Open_Sans_700italic.woff │ │ │ │ │ └── Open_Sans_700italic.woff2 │ │ │ │ ├── font-awesome │ │ │ │ │ └── fonts │ │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ └── toolkit.css │ │ │ └── data │ │ │ │ └── us_states_hash.json │ │ ├── templates │ │ │ ├── page.html │ │ │ ├── components │ │ │ │ ├── json_link.html │ │ │ │ ├── main.html │ │ │ │ ├── loader.html │ │ │ │ ├── explanation.html │ │ │ │ ├── dashboard.html │ │ │ │ ├── bottom.html │ │ │ │ ├── top.html │ │ │ │ └── sidebar.html │ │ │ ├── admin │ │ │ │ └── components │ │ │ │ │ ├── admin_header_nav.html │ │ │ │ │ ├── sticky_bar.html │ │ │ │ │ └── test_config_add_host_by_community.html │ │ │ └── host │ │ │ │ ├── sidebar_host_health.html │ │ │ │ ├── services.html │ │ │ │ └── host_overview.html │ │ └── etc │ │ │ ├── logger.conf │ │ │ ├── test_config_defaults.conf │ │ │ └── web_admin.conf │ ├── scripts │ │ ├── system_environment │ │ │ ├── disable_esmond │ │ │ ├── configure_tests_gui │ │ │ ├── disable_zeroconf │ │ │ ├── enable_ntp_restarts │ │ │ ├── disable_php_advertising │ │ │ ├── testpoint │ │ │ │ ├── increase_owamp_port_range │ │ │ │ ├── configure_owamp_testports │ │ │ │ ├── enable_dns_caching │ │ │ │ ├── increase_owamp_limits │ │ │ │ └── enable_auto_updates │ │ │ ├── add_toolkit_dirs_path │ │ │ ├── configure_fail2ban │ │ │ ├── add_sbin_path │ │ │ ├── add_psadmin_pssudo │ │ │ ├── upgrade_lsregistration │ │ │ ├── upgrade_fix_permissions │ │ │ ├── enable_apache_redirect │ │ │ └── disable_unwanted_services │ │ ├── configure_memcached_security │ │ ├── apache-toolkit_web_services.conf │ │ └── configure_apache_security │ ├── t │ │ ├── etc │ │ │ ├── owamp-server.limits │ │ │ ├── web_admin.conf │ │ │ ├── bwctl-server.limits │ │ │ └── lsregistrationdaemon.conf │ │ ├── test-delete_all_tests.t │ │ ├── lib │ │ │ └── perfSONAR_PS │ │ │ │ └── NPToolkit │ │ │ │ └── UnitTests │ │ │ │ └── Mock.pm │ │ └── host-get_metadata.t │ ├── archive │ │ └── http_logstash.json │ ├── init_scripts │ │ └── perfsonar-configdaemon.service │ ├── lib │ │ └── perfSONAR_PS │ │ │ └── Utils │ │ │ └── Config │ │ │ └── NTP.pm │ ├── dependencies │ └── Makefile └── Makefile ├── .gitattributes ├── unibuild-order ├── .gitignore ├── .github └── workflows │ ├── project_auto_add_issue.yml │ └── toolkit-workflow.yml └── Makefile /toolkit/perfsonar-toolkit/etc/administrative_info: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/compat: -------------------------------------------------------------------------------- 1 | 10 2 | -------------------------------------------------------------------------------- /toolkit/Makefile: -------------------------------------------------------------------------------- 1 | AUTO_TARBALL := 1 2 | 3 | include unibuild/unibuild.make -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-ntp.dirs: -------------------------------------------------------------------------------- 1 | etc/ntp 2 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/perfsonar_ulimit_apache.conf: -------------------------------------------------------------------------------- 1 | [Service] 2 | LimitNOFILE=32768 3 | LimitNPROC=32768 4 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-sysctl.install: -------------------------------------------------------------------------------- 1 | scripts/configure_sysctl usr/lib/perfsonar/scripts 2 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/actions/Dispatcher.js: -------------------------------------------------------------------------------- 1 | // Make sure pubsub-js.js is loaded first 2 | var Dispatcher = PubSub; 3 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/tests/ntp: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | grep -A 10 'at least 4 NTP servers' /etc/ntp.conf 6 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Ignore those files when creating a tarball with `git archive` 2 | debian/ export-ignore 3 | distribution/ export-ignore 4 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-archive-utils.install: -------------------------------------------------------------------------------- 1 | archive/http_logstash.json etc/perfsonar/psconfig/archives.d 2 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/favicon.ico -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/tests/config-daemon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | service perfsonar-toolkit-config-daemon status 6 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/iframe/pubsub-bridge.js: -------------------------------------------------------------------------------- 1 | function setPubSub( PubSub ){ 2 | window.PubSub = PubSub; 3 | } -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/tests/systemenv: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | bash -l -c 'echo $PATH' | grep /usr/lib/perfsonar/scripts 6 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/tests/web: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | curl -s -k https://localhost/toolkit/ | grep -C 10 'perfSONAR Toolkit' 6 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/templates/page.html: -------------------------------------------------------------------------------- 1 | [% INCLUDE components/top.html %] 2 | [% INCLUDE components/main.html %] 3 | [% INCLUDE components/bottom.html %] 4 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/perfsonar_sudo: -------------------------------------------------------------------------------- 1 | # Installed by perfSONAR Toolkit. Allows anyone in pssudo group to have sudo on this machine 2 | %pssudo ALL=(ALL) ALL 3 | 4 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_300.ttf -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400.ttf -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700.ttf -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-powered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-powered.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-reversed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-reversed.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-whitebg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-whitebg.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_300.woff -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_300.woff2 -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400.woff -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400.woff2 -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700.woff -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700.woff2 -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit.links: -------------------------------------------------------------------------------- 1 | /var/log/perfsonar /usr/lib/perfsonar/web-ng/root/admin/logs 2 | /var/log/pscheduler/pscheduler.log /var/log/perfsonar/pscheduler.log 3 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400italic.ttf -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400italic.woff -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_400italic.woff2 -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700italic.ttf -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700italic.woff -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/google-fonts/Open_Sans_700italic.woff2 -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-powered-reverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-powered-reverse.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-reversed-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/images/perfSONAR-logo-reversed-green.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/jquery-ui/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/tests/sysctl: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | VAL=$(cat /proc/sys/net/ipv4/conf/all/arp_filter) 6 | echo "net.ipv4.conf.all.arp_filter=$VAL" 7 | [ "$VAL" -eq 1 ] || exit 1 8 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/css/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - "0.10" 5 | 6 | before_script: 7 | - npm -q install 8 | 9 | script: 10 | - npm test 11 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/templates/components/json_link.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/default_service_configs/jail.local: -------------------------------------------------------------------------------- 1 | #Enable ssh filtering 2 | [sshd] 3 | enabled = true 4 | 5 | #disable mail for ssh-iptables 6 | [ssh-iptables] 7 | action = iptables[name=SSH, port=ssh, protocol=tcp] 8 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_asc.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_both.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_desc.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/firewalld/services/owamp-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | OWAMP 4 | OWAMP control port. 5 | 6 | 7 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/firewalld/services/twamp-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | TWAMP 4 | TWAMP control port. 5 | 6 | 7 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/jquery-integration.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/patches/series: -------------------------------------------------------------------------------- 1 | debian-config-daemon.diff 2 | debian-security.diff 3 | debian-toolkit.diff 4 | chkconfig.diff 5 | debian-install.diff 6 | debian-systemenv.diff 7 | debian-sysctl.diff 8 | debian-unittest.diff 9 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-web-services.install: -------------------------------------------------------------------------------- 1 | web-ng/etc usr/lib/perfsonar/web-ng/ 2 | web-ng/root/services usr/lib/perfsonar/web-ng/root/ 3 | scripts/apache-toolkit_web_services.conf etc/apache2/conf-available/ 4 | 5 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perfsonar/toolkit/HEAD/toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-systemenv-testpoint.logrotate: -------------------------------------------------------------------------------- 1 | /var/log/perfsonar/owamp.log { 2 | sharedscripts 3 | create 664 perfsonar adm 4 | postrotate 5 | invoke-rc.d rsyslog rotate > /dev/null 6 | endscript 7 | } 8 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/firewalld/services/bwctl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | BWCTL 4 | BWCTL test service. 5 | 6 | 7 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/disable_esmond: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Remove esmond local archive definition from psconfig 4 | if [ -f "/etc/perfsonar/psconfig/archives.d/esmond_local.json" ]; then 5 | rm -f /etc/perfsonar/psconfig/archives.d/esmond_local.json 6 | fi -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-ntp.install: -------------------------------------------------------------------------------- 1 | etc/ntp_known_servers etc/perfsonar/toolkit 2 | etc/templates/ntp_conf.tmpl etc/perfsonar/toolkit/templates 3 | scripts/autoselect_ntp_servers usr/lib/perfsonar/scripts 4 | scripts/configure_ntpd usr/lib/perfsonar/scripts 5 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/firewalld/services/traceroute.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Traceroute 4 | Incoming traceroute connections. 5 | 6 | 7 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/templates/components/main.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | [% INCLUDE components/page_header.html %] 4 | [% INCLUDE $page %] 5 | [% IF sidebar %] 6 | [% INCLUDE components/sidebar.html %] 7 | [% END %] 8 | 9 | -------------------------------------------------------------------------------- /unibuild-order: -------------------------------------------------------------------------------- 1 | changequote()dnl 2 | changecom()dnl 3 | # 4 | # This file determines the order in which the package in the 5 | # repository are built. 6 | # 7 | # See the documentation at https://github.com/perfsonar/unibuild for 8 | # more information. 9 | # 10 | 11 | # Build primary packages 12 | toolkit 13 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/t/etc/owamp-server.limits: -------------------------------------------------------------------------------- 1 | limit root with delete_on_fetch=on, bandwidth=0, disk=0, allow_open_mode=on 2 | limit regular with delete_on_fetch=on, parent=root, bandwidth=20M, disk=10G, allow_open_mode=on 3 | limit jail with parent=root, bandwidth=1, disk=1, allow_open_mode=off 4 | assign default regular 5 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-config-daemon.install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/dh-exec 2 | etc/configdaemon.conf => etc/perfsonar/toolkit/configdaemon.conf 3 | etc/configdaemon-logger.conf => etc/perfsonar/toolkit/configdaemon-logger.conf 4 | bin/config_daemon.pl => usr/lib/perfsonar/bin/configdaemon.pl 5 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-library.install: -------------------------------------------------------------------------------- 1 | lib/perfSONAR_PS/Utils/Config/* usr/lib/perfsonar/lib/perfSONAR_PS/Utils/Config 2 | lib/perfSONAR_PS/Config/OWP/* usr/lib/perfsonar/lib/perfSONAR_PS/Config/OWP 3 | lib/OWP/* usr/lib/perfsonar/lib/OWP 4 | python_lib/* usr/lib/perfsonar/python_lib/ 5 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/source/lintian-overrides: -------------------------------------------------------------------------------- 1 | # Uncorrect JS detection by lintian, already reported to lintian devs. 2 | # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=744972 3 | # and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808756 4 | perfsonar-toolkit source: source-is-missing web-ng/root/js/* 5 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/templates/components/loader.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-install.install: -------------------------------------------------------------------------------- 1 | etc/default_service_configs/pscheduler_limits.conf etc/perfsonar/toolkit/default_service_configs/ 2 | etc/perfsonar_ulimit.conf etc/security/limits.d/ 3 | etc/perfsonar_ulimit_apache.conf etc/systemd/system/apache2.d/ 4 | scripts/nptoolkit-configure.py usr/lib/perfsonar/scripts/ 5 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/tests/webauth: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | USERNAME=autopkgtest 6 | PASSWORD=autopass 7 | 8 | htpasswd -b /etc/perfsonar/toolkit/psadmin.htpasswd $USERNAME $PASSWORD 2>&1 9 | 10 | curl -s -k https://localhost/toolkit/auth/ --basic --user $USERNAME:$PASSWORD \ 11 | | grep -C 10 'perfSONAR Toolkit' 12 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/templates/components/explanation.html: -------------------------------------------------------------------------------- 1 |
2 | Note: this is a preview of the new Toolkit interface. Configuration still uses the old interface. 3 | [% IF !authenticated %] 4 | Log in to see additional info. 5 | [% END %] 6 |
7 | 8 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/archive/http_logstash.json: -------------------------------------------------------------------------------- 1 | { 2 | "archiver": "http", 3 | "data": { 4 | "schema": 2, 5 | "_url": "http://localhost:11283", 6 | "op": "put", 7 | "_headers": { 8 | "x-ps-observer": "{% scheduled_by_address %}", 9 | "content-type": "application/json" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/.editorconfig: -------------------------------------------------------------------------------- 1 | ; EditorConfig file: http://EditorConfig.org 2 | ; Install the "EditorConfig" plugin into your editor to use 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | end_of_line = lf 9 | insert_final_newline = true 10 | indent_style = tab 11 | trim_trailing_whitespace = true 12 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/perfsonar_ulimit.conf: -------------------------------------------------------------------------------- 1 | # Increases process limit and number of files open for various perfsonar tools 2 | 3 | pscheduler soft nproc 32768 4 | apache soft nproc 32768 5 | pscheduler soft nofile 32768 6 | apache soft nofile 32768 7 | perfsonar soft nofile 32768 8 | owamp soft nofile 32768 9 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/configure_tests_gui: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -f "/var/lib/perfsonar/toolkit/gui-tasks.conf" ]; then 4 | mkdir -p /var/lib/perfsonar/toolkit 5 | touch /var/lib/perfsonar/toolkit/gui-tasks.conf 6 | chown -R perfsonar:perfsonar /var/lib/perfsonar/toolkit 7 | chmod 644 /var/lib/perfsonar/toolkit/gui-tasks.conf 8 | fi 9 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-security.install: -------------------------------------------------------------------------------- 1 | etc/default_system_firewall_settings.conf etc/perfsonar/toolkit 2 | etc/perfsonar_firewall_settings.conf etc/perfsonar/toolkit 3 | etc/perfsonar_firewalld_settings.conf etc/perfsonar/toolkit 4 | etc/firewalld/services/* usr/lib/firewalld/services/ 5 | scripts/configure_firewall usr/lib/perfsonar/scripts 6 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/tests/security: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | VER=$(iptables -V | sed 's/iptables v//') 6 | if dpkg --compare-versions $VER ge 1.6.0; then 7 | WAIT="-w 10" 8 | else 9 | WAIT="-w" 10 | fi 11 | 12 | for i in 1 2 3 4 5; do 13 | if iptables $WAIT -nvL | grep -C 10 33434:33634; then 14 | break 15 | fi 16 | 17 | sleep 1 18 | done 19 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/disable_zeroconf: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ####################### 3 | # Disable zeroconf route. Does not matter if this is running in an 4 | # 'upgrade' or 'new install' context. 5 | ####################### 6 | 7 | grep NOZEROCONF /etc/sysconfig/network &> /dev/null 8 | if [ $? != 0 ]; then 9 | cat >> /etc/sysconfig/network <" /etc/perfsonar/toolkit/configdaemon.conf > /dev/null 2>&1 5 | if [ $? != 0 ]; then 6 | sed -i '//a \\t \ 7 | \t\trestart \t 1 \ 8 | \t\tstart \t\t 1 \ 9 | \t\tstop \t\t 1 \ 10 | \t' /etc/perfsonar/toolkit/configdaemon.conf 11 | fi 12 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PubSubJS", 3 | "version": "1.5.2", 4 | "main": "src/pubsub.js", 5 | "ignore": [ 6 | "**/.*", 7 | "iframe", 8 | "lib", 9 | "test", 10 | "wrappers", 11 | "autolint.js", 12 | "Gruntfile.js", 13 | "jquery-integration.html", 14 | "package.json", 15 | "Rakefile" 16 | ] 17 | } -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/disable_php_advertising: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ####################### 3 | # Disable showing that PHP is installed on the server (see 4 | # http://seclists.org/webappsec/2004/q4/324 for why). Can be run whether in 5 | # upgrade or new install mode. 6 | ####################### 7 | if [ -f /etc/php.ini ]; then 8 | sed -i 's|expose_php *=.*|expose_php = Off|' /etc/php.ini 9 | fi 10 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/wrappers/jquery/pubsub.js.pre.txt: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010,2011,2012 Morgan Roderick http://roderick.dk 3 | License: MIT - http://mrgnrdrck.mit-license.org 4 | 5 | https://github.com/mroderick/PubSubJS 6 | */ 7 | /*jslint white:true, plusplus:true */ 8 | /*global 9 | jQuery, 10 | PubSub 11 | */ 12 | ;(function($){ 13 | "use strict"; 14 | var self = this; 15 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/testpoint/increase_owamp_port_range: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Issue 741 4 | # https://code.google.com/p/perfsonar-ps/issues/detail?id=741 5 | 6 | # Upgrades an owamp installation that has the default 200 port range to a 1200 port range. 7 | 8 | OWAMP_FILE="/etc/owamp-server/owamp-server.conf" 9 | 10 | sed -i 's/testports 8760-8960/\n\#\# port range upgraded from pS toolkit installation\ntestports 8760-9960/' $OWAMP_FILE; -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/tests/pssudo: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | adduser --disabled-password --gecos autopkgtest autopkgtest 6 | adduser autopkgtest pssudo 7 | echo autopkgtest:autopkgpass | chpasswd 8 | 9 | cat > $AUTOPKGTEST_TMP/askpass <&1 \ 16 | | grep root 17 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/.jslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "indent": 4, 3 | "maxlen": 120, 4 | "browser": false, 5 | "couch": false, 6 | "devel": false, 7 | "node": false, 8 | "rhino": false, 9 | "white": true, 10 | "plusplus":true, 11 | "stupid":true, 12 | 13 | "predef": [ 14 | "setTimeout", 15 | "module", 16 | "exports", 17 | "define", 18 | "require", 19 | "window", 20 | "buster", 21 | "sinon" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/templates/motd.tmpl: -------------------------------------------------------------------------------- 1 | [%- UNLESS external_address; SET external_address = "[host address]"; END -%] 2 | Welcome to the perfSONAR Toolkit v[%- IF version ; version ; END %] 3 | 4 | You may create accounts to manage this host through the web interface by running the following as root: 5 | 6 | /usr/lib/perfsonar/scripts/nptoolkit-configure.py 7 | 8 | The web interface should be available at: 9 | 10 | https://[% external_address %]/toolkit 11 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/admin/components/OldTestConfigComponent.js: -------------------------------------------------------------------------------- 1 | // make sure jquery and Dispatcher load before this 2 | 3 | var OldTestConfigComponent = { 4 | 5 | }; 6 | 7 | OldTestConfigComponent.initialize = function() { 8 | $('#loading-modal').foundation('reveal', 'open'); 9 | $('#oldTestFrame').load(function() { 10 | $('#loading-modal').foundation('reveal', 'close'); 11 | }); 12 | }; 13 | 14 | OldTestConfigComponent.initialize(); 15 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/configure_memcached_security: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -f /etc/sysconfig/memcached ]; then 4 | grep -q "OPTIONS=\"\"" /etc/sysconfig/memcached 5 | if [ $? -eq 0 ]; then 6 | sed -i "s/OPTIONS=\"\"/OPTIONS=\"-l 127.0.0.1,::1\"/" /etc/sysconfig/memcached 7 | if [ -f "/etc/init.d/memcached" ]; then 8 | /etc/init.d/memcached restart 9 | else 10 | systemctl restart memcached 11 | fi 12 | fi 13 | fi -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/init_scripts/perfsonar-configdaemon.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=perfSONAR Toolkit Configuration Daemon 3 | After=network.target 4 | 5 | [Service] 6 | Type=forking 7 | PIDFile=/var/run/configdaemon.pid 8 | ExecStart=/usr/lib/perfsonar/bin/config_daemon.pl --config=/etc/perfsonar/toolkit/configdaemon.conf --pidfile=/var/run/configdaemon.pid --logger=/etc/perfsonar/toolkit/configdaemon-logger.conf --user=perfsonar --group=perfsonar 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #Ignore mac hidden file 2 | .DS_Store 3 | #Ignore vs_code 4 | .vscode 5 | # Ignore quilt cache directory 6 | .pc/ 7 | # Ignore vagrant files 8 | .vagrant 9 | vagrant-data 10 | # Ignore coverage data 11 | cover_db 12 | # Ignore unibuild files 13 | unibuild-log 14 | unibuild-work/ 15 | unibuild-repo/ 16 | multiarch_build/ 17 | INSTALLED_FILES 18 | #Additional files 19 | debian/patches/*~ 20 | .*.swn 21 | .*.swo 22 | .*.swp 23 | *.pyc 24 | .vagrant 25 | # Ignore unit test output 26 | tap_output/ 27 | node_modules 28 | artifacts/ 29 | -------------------------------------------------------------------------------- /.github/workflows/project_auto_add_issue.yml: -------------------------------------------------------------------------------- 1 | name: Adds all new issues to project board 2 | 3 | on: 4 | issues: 5 | types: 6 | - opened 7 | 8 | jobs: 9 | add-to-project: 10 | name: Add issue to perfSONAR project 11 | runs-on: ubuntu-latest 12 | steps: 13 | # NOTE: "uses" cannot be a variable so name and version hard-coded here 14 | - uses: actions/add-to-project@v0.5.0 15 | with: 16 | project-url: ${{ vars.PROJECT_PS_URL }} 17 | github-token: ${{ secrets.PAT_PROJECT_PS_AUTO_ADD }} -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/tests/control: -------------------------------------------------------------------------------- 1 | Tests: web, webauth, pssudo 2 | Depends: perfsonar-toolkit, curl, sudo 3 | Restrictions: needs-root 4 | 5 | Tests: config-daemon 6 | Depends: perfsonar-toolkit-config-daemon 7 | Restrictions: needs-root 8 | 9 | Tests: security 10 | Depends: perfsonar-toolkit-security 11 | Restrictions: needs-root 12 | 13 | Tests: ntp 14 | Depends: perfsonar-toolkit-ntp 15 | 16 | Tests: sysctl 17 | Depends: perfsonar-toolkit-sysctl 18 | 19 | Tests: systemenv 20 | Depends: perfsonar-toolkit-systemenv 21 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/add_toolkit_dirs_path: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ####################### 3 | # Add /usr/lib/perfsonar/scripts to everyone's path 4 | ####################### 5 | cat >/etc/profile.d/add_toolkit_dirs.sh < 3 | 9 | [% INCLUDE host/host_overview.html %] 10 | [% INCLUDE host/services.html %] 11 | [% INCLUDE tests/results.html %] 12 | 13 | [% INCLUDE components/json_link.html %] 14 | 15 | 16 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/configure_fail2ban: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -f /etc/fail2ban/jail.local ]; then 4 | cp -f /etc/perfsonar/toolkit/default_service_configs/jail.local /etc/fail2ban/jail.local 5 | fi 6 | 7 | #change for upgrades to fail2ban config file format 8 | grep -q "\\[sshd\\]" /etc/fail2ban/jail.local 9 | if [ $? -ne 0 ]; then 10 | echo "" >> /etc/fail2ban/jail.local 11 | echo "[sshd]" >> /etc/fail2ban/jail.local 12 | echo "enabled = true" >> /etc/fail2ban/jail.local 13 | /sbin/service fail2ban restart 14 | fi 15 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/add_sbin_path: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ####################### 3 | # Add /sbin, /usr/sbin, /usr/local/sbin to everyone's path 4 | ####################### 5 | cat >/etc/profile.d/add_sbin_dirs.sh < 2 |
3 | 8 |
9 |
10 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/t/etc/web_admin.conf: -------------------------------------------------------------------------------- 1 | # whether to allow interfaces with private ip addresses 2 | allow_internal_addresses 0 3 | 4 | # if you want, specify a primary interface like this (by default we try to detect this): 5 | #primary_interface eth0 6 | 7 | # "hostname" that is displayed when no hostname or IP is detected 8 | toolkit_name perfSONAR-Toolkit 9 | 10 | logger_conf logger.conf 11 | debug 1 12 | sessions_directory /var/run/web_admin_sessions 13 | cache_directory /var/lib/perfsonar/lscache 14 | 15 | use_cache 1 16 | 17 | ntp_conf /etc/ntp.conf 18 | enable_select_closest 1 19 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/wrappers/jquery/pubsub.js.post.txt: -------------------------------------------------------------------------------- 1 | 2 | if ( $.pubsub ){ 3 | $.error( 'pubsub is already defined on jQuery, skipping integration of PubSubJS' ); 4 | return false; 5 | } 6 | 7 | function pubsub( method ){ 8 | if ( PubSub.hasOwnProperty( method ) && typeof PubSub[ method ] === 'function' ){ 9 | return PubSub[ method ].apply( self, Array.prototype.slice.call( arguments, 1 ) ); 10 | } else { 11 | $.error( 'Method ' + method + ' does not exist on jQuery.pubsub' ); 12 | } 13 | } 14 | 15 | // export into jQuery 16 | $.pubsub = pubsub; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/autolint.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | // a list of paths to the files you want linted 4 | paths: [ 5 | "./src/**/*.js", 6 | "./test/**/*.js", 7 | ], 8 | 9 | // 'jslint' or 'jshint' 10 | linter: "jslint", 11 | 12 | // see default-configuration.js for a list of all options 13 | linterOptions: { 14 | maxlen : 240, 15 | plusplus : true, 16 | white : true, 17 | 18 | // a list of known global variables 19 | predef: [] 20 | }, 21 | 22 | // a list of strings/regexes matching filenames that should not be linted 23 | excludes: [] 24 | 25 | }; -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/patches/debian-security.diff: -------------------------------------------------------------------------------- 1 | Index: b/scripts/configure_firewall 2 | =================================================================== 3 | --- a/scripts/configure_firewall 2025-09-18 14:28:10.785061608 -0400 4 | +++ b/scripts/configure_firewall 2025-09-18 14:28:12.418989195 -0400 5 | @@ -38,7 +38,7 @@ 6 | if type firewall-cmd &>/dev/null; then 7 | firewall-cmd --quiet --runtime-to-permanent 8 | else 9 | - for iptables_cmd in "iptables" "ip6tables"; do 10 | + for iptables_cmd in "iptables-persistent"; do 11 | service $iptables_cmd save 12 | done 13 | fi 14 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/admin/pages/TestConfigPage.js: -------------------------------------------------------------------------------- 1 | // make sure jquery, Dispatcher 2 | // all load before this. 3 | 4 | var TestConfigPage = { 5 | }; 6 | 7 | TestConfigPage.initialize = function() { 8 | //$('#loading-modal').foundation('reveal', 'open'); 9 | //Dispatcher.subscribe(HostDetailsStore.detailsTopic, TestConfigPage._setDetails); 10 | $('#admin_info_save_button').click(TestConfigComponent.save); 11 | }; 12 | 13 | TestConfigPage._setDetails = function(topic) { 14 | $('#loading-modal').foundation('reveal', 'close'); 15 | var details = HostDetailsStore.getHostDetails(); 16 | 17 | }; 18 | 19 | TestConfigPage.initialize(); 20 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/zh-TW.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/az.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/zh-CN.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/stores/CommunityHostsStore.js: -------------------------------------------------------------------------------- 1 | // assumes stores/DataStore has already been loaded 2 | 3 | var CommunityHostsStore = new DataStore("store.change.test_by_community", "services/communities.cgi?method=get_hosts_in_community", false); 4 | 5 | CommunityHostsStore.baseurl = CommunityHostsStore.url; 6 | 7 | CommunityHostsStore.getHostByCommunity = function ( community, testType ) { 8 | var url = CommunityHostsStore.baseurl; 9 | url += '&community=' + encodeURIComponent(community); 10 | if (testType ) { 11 | url += '&test_type=' + encodeURIComponent(testType); 12 | } 13 | CommunityHostsStore.url = url; 14 | CommunityHostsStore._retrieveData(); 15 | 16 | }; 17 | 18 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/fi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/id.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/hu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/th.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/tr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/ko.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/nb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/testpoint/configure_owamp_testports: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | TRANSFORM_SCRIPT="/etc/perfsonar/psconfig/transforms.d/latency-testports.json" 4 | 5 | #set powstream test ports if no default parameters 6 | TESTPORTS=`grep -m 1 '^testports' /etc/owamp-server/owamp-server.conf | cut -f2 -d " "` 7 | if [ -n "$TESTPORTS" ]; then 8 | IFS='-' read -ra PORT_RANGE <<< "$TESTPORTS" 9 | if [ -n "${PORT_RANGE[0]}" ] && [ -n "${PORT_RANGE[1]}" ]; then 10 | cat >${TRANSFORM_SCRIPT} < %F{1}:%L %M - %m%n 19 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/vi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/templates/host/sidebar_host_health.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/is.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/de.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/et.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/hr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/test/test-clearSubscriptions.js: -------------------------------------------------------------------------------- 1 | (function( global ){ 2 | 'use strict'; 3 | 4 | var PubSub = global.PubSub || require('../src/pubsub'), 5 | TestHelper = global.TestHelper || require('../test/helper'), 6 | refute = buster.refute; 7 | 8 | buster.testCase( 'clearAllSubscriptions method', { 9 | 'must clear all subscriptions' : function(){ 10 | var topic = TestHelper.getUniqueString(), 11 | spy1 = sinon.spy(), 12 | spy2 = sinon.spy(); 13 | 14 | PubSub.subscribe(topic, spy1); 15 | PubSub.subscribe(topic, spy2); 16 | 17 | PubSub.clearAllSubscriptions(); 18 | 19 | PubSub.publishSync(topic, TestHelper.getUniqueString()); 20 | 21 | refute(spy1.called); 22 | refute(spy2.called); 23 | } 24 | }); 25 | }(this)); 26 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/sv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/templates/components/bottom.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | [% FOREACH file IN js_files %] 19 | 20 | [% END %] 21 | 22 | 23 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/bg.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/he.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"התוצאות לא נטענו בהלכה"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק "+t+" תווים";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס "+t+" תווים או יותר";return n},loadingMore:function(){return"טען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור רק "+e.maximum+" פריטים";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/gl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Engada ";return t===1?n+="un carácter":n+=t+" caracteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Elimine ";return t===1?n+="un carácter":n+=t+" caracteres",n},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){var t="Só pode ";return e.maximum===1?t+="un elemento":t+=e.maximum+" elementos",t},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/da.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Angiv venligst "+t+" tegn mindre";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Angiv venligst "+t+" tegn mere";return n},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/fr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/ro.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să introduceți mai puțin de "+t;return n+=" caracter",n!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți incă "+t;return n+=" caracter",n!==1&&(n+="e"),n},loadingMore:function(){return"Se încarcă…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",t!==1&&(t+="e"),t},noResults:function(){return"Nu a fost găsit nimic"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/en.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/iframe/frame1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | iframe demo frame 1 6 | 7 | 23 | 24 | 25 |

frame1.html

26 | 27 | 28 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/hi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/iframe/frame2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | iframe demo frame 2 6 | 7 | 23 | 24 | 25 |

frame2.html

26 | 27 | 28 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/fa.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for unibuild top-level directory 3 | # 4 | 5 | default: build 6 | 7 | 8 | BUILD_LOG=unibuild-log 9 | 10 | ifdef START 11 | UNIBUILD_OPTS += --start $(START) 12 | endif 13 | ifdef STOP 14 | UNIBUILD_OPTS += --stop $(STOP) 15 | endif 16 | 17 | # The shell command below does the equivalent of BASH's pipefail 18 | # within the confines of POSIX. 19 | # Source: https://unix.stackexchange.com/a/70675/15184 20 | build: 21 | rm -rf $(BUILD_LOG) 22 | ((( \ 23 | (unibuild build $(UNIBUILD_OPTS); echo $$? >&3) \ 24 | | tee $(BUILD_LOG) >&4) 3>&1) \ 25 | | (read XS; exit $$XS) \ 26 | ) 4>&1 27 | TO_CLEAN += $(BUILD_LOG) 28 | 29 | 30 | uninstall: 31 | unibuild make --reverse $@ 32 | 33 | fresh: uninstall build 34 | 35 | clean: 36 | unibuild make $(UNIBUILD_OPTS) clean 37 | unibuild clean 38 | rm -rf $(TO_CLEAN) 39 | find . -name '*~' | xargs rm -f 40 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/eu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/mk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/templates/ntp_conf.tmpl: -------------------------------------------------------------------------------- 1 | # /etc/ntp.conf, configuration for NTP 2 | # by default act only as a basic NTP client 3 | restrict -4 default nomodify nopeer noquery notrap 4 | restrict -6 default nomodify nopeer noquery notrap 5 | # allow NTP messages from the loopback address, useful for debugging 6 | restrict 127.0.0.1 7 | restrict ::1 8 | logfile /var/log/ntpd 9 | driftfile /var/lib/ntp/ntp.drift 10 | statsdir /var/lib/ntp/ 11 | statistics loopstats peerstats clockstats 12 | filegen loopstats file loopstats type day enable 13 | filegen peerstats file peerstats type day enable 14 | filegen clockstats file clockstats type day enable 15 | 16 | # You should have at least 4 NTP servers 17 | [% FOREACH server_info IN servers %] 18 | server [% server_info.address %] iburst [% IF server_info.description %] # [% server_info.description %] [% END %] 19 | [% END %] 20 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/pt-BR.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/lv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/pt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"carácter",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/lt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%100>9&&e%100<21||e%10===0?e%10>1?n:r:t}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"ių","ius","į"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"ių","ius","į"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ų","us","ą"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/nl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t="Er kunnen maar "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t+=" worden geselecteerd",t},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/etc/test_config_defaults.conf: -------------------------------------------------------------------------------- 1 | # This config file stores default test parameters for perfSONAR tests as defined in RegularTesting 2 | 3 | 4 | local_interface default 5 | packet_interval 0.1 6 | packet_padding 0 7 | 8 | 9 | 10 | local_interface default 11 | test_interval 21600 12 | duration 20 13 | protocol tcp 14 | window_size 0 15 | tos_bits 0 16 | tool iperf3,iperf 17 | 18 | 19 | 20 | local_interface default 21 | test_interval 300 22 | packet_count 10 23 | packet_size 1000 24 | packet_interval 1 25 | 26 | 27 | 28 | local_interface default 29 | tool traceroute,tracepath 30 | test_interval 600 31 | packet_size 40 32 | first_ttl # not set to anything 33 | max_ttl # not set to anything 34 | 35 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/ca.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/es.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/it.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/sr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 3 | 'use strict'; 4 | 5 | // Project configuration. 6 | grunt.initConfig({ 7 | buster: { 8 | test: { 9 | config: 'test/buster.js' 10 | } 11 | }, 12 | 13 | concat: { 14 | options: { 15 | // overrides the default linefeed separator 16 | separator: '' 17 | }, 18 | jquery: { 19 | src: ['wrappers/jquery/pubsub.js.pre.txt', 'src/pubsub.js', 'wrappers/jquery/pubsub.js.post.txt'], 20 | dest: 'jquery.pubsub.js' 21 | } 22 | } 23 | }); 24 | 25 | grunt.loadNpmTasks('grunt-buster'); 26 | grunt.loadNpmTasks('grunt-contrib-concat'); 27 | 28 | 29 | grunt.registerTask('test', ['buster']); 30 | 31 | // build jQuery version 32 | grunt.registerTask('jquery', 'concat:jquery'); 33 | 34 | // Default task. 35 | grunt.registerTask('default', 'test'); 36 | }; 37 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/pl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maxiumum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/add_psadmin_pssudo: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Add a script to inspire them to create a 'psadmin' and sudo user if they don't already have one 4 | # Clear out old references first to fix bug where these got repeated 5 | sed -i "/add_psadmin_user/d" /root/.bashrc 6 | sed -i "/add_pssudo_user/d" /root/.bashrc 7 | sed -i '/^if \[ -t 0 -a -t 1 -a -t 2 \];/,/^fi/d' /root/.bashrc 8 | 9 | cat > /etc/profile.d/add_psadmin_pssudo.sh <10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/testpoint/enable_dns_caching: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ####################### 3 | # Enable systemd-resolved and make sure the old nscd is disabled 4 | ####################### 5 | 6 | systemctl disable --now nscd 2> /dev/null 7 | systemctl enable --now systemd-resolved 8 | 9 | # Put resolved into the name service switch configuration. It needs 10 | # to go before 'files' because, even though systemd-resolved claims to 11 | # synthesize entries for the local system, it doesn't. That causes 12 | # problems trying to resolve the local host's name. 13 | 14 | # Steps: 15 | # - Remove any instance of 'resolve' 16 | # - If there's a 'files' insert 'resolve' after that 17 | # - If there's no 'files', insert 'resolve' first 18 | sed -i -E \ 19 | -e '/^hosts:/ s/resolve[[:space:]]?//' \ 20 | -e '/^hosts:.*files/ s/files/files resolve/' \ 21 | -e '/^hosts:.*files/! s/^(hosts:[[:space:]]*)/\1resolve /' \ 22 | /etc/nsswitch.conf 23 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/ru.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/copyright: -------------------------------------------------------------------------------- 1 | Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Name: perfsonar-toolkit 3 | Source: 4 | 5 | Files: * 6 | Copyright: 2000-2023 perfSONAR project 7 | License: Apache-2.0 8 | 9 | License: Apache-2.0 10 | Licensed under the Apache License, Version 2.0 (the "License"); 11 | you may not use this file except in compliance with the License. 12 | You may obtain a copy of the License at 13 | . 14 | http://www.apache.org/licenses/LICENSE-2.0 15 | . 16 | Unless required by applicable law or agreed to in writing, software 17 | distributed under the License is distributed on an "AS IS" BASIS, 18 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | See the License for the specific language governing permissions and 20 | limitations under the License. 21 | . 22 | On Debian systems, the complete text of the Apache version 2.0 license 23 | can be found in "/usr/share/common-licenses/Apache-2.0". 24 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/lib/perfSONAR_PS/Utils/Config/NTP.pm: -------------------------------------------------------------------------------- 1 | package perfSONAR_PS::Utils::Config::NTP; 2 | 3 | use strict; 4 | use warnings; 5 | 6 | use Params::Validate; 7 | 8 | use base 'Exporter'; 9 | 10 | our @EXPORT_OK = qw( ntp_conf_read ntp_conf_read_file ); 11 | 12 | sub ntp_conf_read_file { 13 | my $parameters = validate( @_, { file => 1, } ); 14 | 15 | unless ( open( NTP_CONF_FILE, $parameters->{file} ) ) { 16 | return ( -1, "Couldn't open file: " . $parameters->{file} ); 17 | } 18 | 19 | my @lines = ; 20 | 21 | close( NTP_CONF_FILE ); 22 | 23 | return ntp_conf_read( { lines => \@lines } ); 24 | } 25 | 26 | sub ntp_conf_read { 27 | my $parameters = validate( @_, { lines => 1, } ); 28 | 29 | my @servers = (); 30 | 31 | foreach my $line ( @{ $parameters->{lines} } ) { 32 | chomp( $line ); 33 | 34 | if ( $line =~ /^\s*server\s*([^ ]+)/ ) { 35 | push @servers, $1; 36 | } 37 | } 38 | 39 | return ( 0, \@servers ); 40 | } 41 | 42 | 1; 43 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-systemenv-testpoint.install: -------------------------------------------------------------------------------- 1 | scripts/system_environment/testpoint/configure_owamp_testports usr/lib/perfsonar/scripts/system_environment/testpoint/ 2 | scripts/system_environment/testpoint/configure_syslog_local5_location usr/lib/perfsonar/scripts/system_environment/testpoint/ 3 | scripts/system_environment/testpoint/enable_auto_updates usr/lib/perfsonar/scripts/system_environment/testpoint/ 4 | scripts/system_environment/testpoint/enable_dns_caching usr/lib/perfsonar/scripts/system_environment/testpoint/ 5 | scripts/system_environment/testpoint/upgrade_pscheduler_limits usr/lib/perfsonar/scripts/system_environment/testpoint/ 6 | scripts/mod_interface_route usr/lib/perfsonar/scripts/ 7 | # The default OWAMP configuration is managed by the owamp package 8 | #scripts/system_environment/testpoint/increase_owamp_limits usr/lib/perfsonar/scripts/system_environment/testpoint/ 9 | #scripts/system_environment/testpoint/increase_owamp_port_range usr/lib/perfsonar/scripts/system_environment/testpoint/ 10 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/upgrade_lsregistration: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #Add pscheduler service if missing 4 | #match on host> because some old files are 5 | grep -q pscheduler /etc/perfsonar/lsregistrationdaemon.conf 6 | if [ $? != 0 ]; then 7 | 8 | sed -i '/host>/ a \ 9 | \ 10 | inherits local_web_service\ 11 | type pscheduler\ 12 | http_port 80\ 13 | https_port 443\ 14 | url_path /pscheduler\ 15 | service_version pscheduler-1.0\ 16 | autodiscover_tests 1\ 17 | autodiscover_tools 1\ 18 | ' /etc/perfsonar/lsregistrationdaemon.conf 19 | 20 | fi 21 | 22 | 23 | #Add twamp service if missing 24 | #match on host> because some old files are 25 | grep -q twamp /etc/perfsonar/lsregistrationdaemon.conf 26 | if [ $? != 0 ]; then 27 | 28 | sed -i '/host>/ a \ 29 | \ 30 | inherits local_latency_service\ 31 | type twamp\ 32 | ' /etc/perfsonar/lsregistrationdaemon.conf 33 | 34 | fi -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/upgrade_fix_permissions: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Since this script isn't harmful if it's run on an upgraded installation, run 4 | # the commands no matter what version. 5 | 6 | # Make sure the log directories are all correct 7 | mkdir -p /var/log/perfsonar 8 | chown -R perfsonar:perfsonar /var/log/perfsonar 9 | 10 | mkdir -p /var/log/cacti 11 | chown -R apache /var/log/cacti 12 | 13 | mkdir -p /var/log/perfsonar/web_admin 14 | chown -R apache:perfsonar /var/log/perfsonar/web_admin 15 | 16 | # Make sure that the various /var/lib/perfsonar directories are correct. 17 | mkdir -p /var/lib/perfsonar 18 | find /var/lib/perfsonar -type d -exec chown perfsonar:perfsonar {} \; 19 | 20 | # Make sure that /var/lib/owamp is owned by the owamp user 21 | chown -R owamp:owamp /var/lib/owamp 22 | 23 | # Toolkit odds and ends 24 | mkdir -p /var/run/web_admin_sessions 25 | chown -R apache /var/run/web_admin_sessions 26 | 27 | #Try cacti data, but don't complain if it's not there 28 | chown -R apache /var/lib/cacti/rra 2> /dev/null 29 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/templates/components/top.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | perfSONAR Toolkit 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | [% FOREACH file IN css %] 17 | 18 | [% END %] 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/apache-toolkit_web_services.conf: -------------------------------------------------------------------------------- 1 | #NOTE: If full toolkit installed, a /toolkit alias is created that won't conflict with this 2 | Alias /toolkit/services /usr/lib/perfsonar/web-ng/root/services 3 | 4 | #NOTE: Toolkit GUI will leverage this as well as web services 5 | # Set the base directory to not require auth by default 6 | 7 | Options +FollowSymLinks -MultiViews +ExecCGI 8 | DirectoryIndex index.cgi index.php index.html 9 | AddHandler cgi-script .cgi 10 | AllowOverride All 11 | = 2.4> 12 | Require all granted 13 | 14 | 15 | Order allow,deny 16 | Allow from all 17 | 18 | Header set X-Frame-Options "DENY" 19 | Header set X-XSS-Protection "1; mode=block" 20 | Header set X-Content-Type-Options "nosniff" 21 | Header set Content-Security-Policy "default-src 'self' ; script-src 'self' 'unsafe-eval' 'unsafe-inline' ; img-src 'self' 'unsafe-inline' data: ; style-src 'self' 'unsafe-inline' ; connect-src * " 22 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/test/buster.js: -------------------------------------------------------------------------------- 1 | var config = module.exports; 2 | config["PubSubJS browser"] = { 3 | rootPath: "../", 4 | environment: "browser", 5 | sources: [ 6 | "src/pubsub.js" 7 | ], 8 | tests: [ 9 | "test/helper.js", 10 | "test/test-*.js" 11 | ] 12 | }; 13 | 14 | config["PubSubJS - jQuery 1.7.2"] = { 15 | rootPath: "../", 16 | environment: "browser", 17 | 18 | libs: [ 19 | "lib/jquery-1.7.2.js" 20 | ], 21 | 22 | resources: [ 23 | "src/pubsub.js", 24 | "wrappers/jquery/*", 25 | { 26 | path: "/jquery.pubsub.js", 27 | combine: [ 28 | "wrappers/jquery/pubsub.js.pre.txt", 29 | "src/pubsub.js", 30 | "wrappers/jquery/pubsub.js.post.txt" 31 | ] 32 | } 33 | ], 34 | 35 | sources: ["/jquery.pubsub.js"], 36 | 37 | tests: [ 38 | "test/helper.js", 39 | "test/test-*.js" 40 | ] 41 | }; 42 | 43 | /* 44 | config["PubSubJS node"] = { 45 | rootPath: "../", 46 | environment: "node", 47 | sources: [ 48 | "src/pubsub.js" 49 | ], 50 | tests: [ 51 | "test/helper.js", 52 | "test/test-*.js" 53 | ] 54 | }; 55 | */ 56 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/stores/HostHealthStore.js: -------------------------------------------------------------------------------- 1 | // Make sure jquery loads first 2 | // assumes Dispatcher has already been declared (so load that first as well) 3 | 4 | var HostHealthStore = { 5 | hostHealth: null, 6 | healthTopic: 'store.change.health_status', 7 | }; 8 | 9 | HostHealthStore.initialize = function() { 10 | HostHealthStore._retrieveHealth(); 11 | 12 | }; 13 | 14 | HostHealthStore._retrieveHealth = function() { 15 | $.ajax({ 16 | url: "services/host.cgi?method=get_health", 17 | type: 'GET', 18 | contentType: "application/json", 19 | dataType: "json", 20 | success: function (data) { 21 | HostHealthStore.hostHealth = data; 22 | Dispatcher.publish(HostHealthStore.healthTopic); 23 | }, 24 | error: function (jqXHR, textStatus, errorThrown) { 25 | console.log(errorThrown); 26 | } 27 | }); 28 | }; 29 | 30 | HostHealthStore.getHealthStatus = function() { 31 | return HostHealthStore.hostHealth; 32 | }; 33 | 34 | HostHealthStore.initialize(); 35 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/stores/NTPClosestStore.js: -------------------------------------------------------------------------------- 1 | // Make sure jquery loads first 2 | // assumes Dispatcher has already been declared (so load that first as well) 3 | 4 | var NTPClosestStore = { 5 | ntpClosest: null, 6 | ntpClosestTopic: 'store.change.ntp_closest', 7 | }; 8 | 9 | NTPClosestStore.initialize = function() { 10 | // NTPClosestStore._retrieveNTPClosest(); 11 | }; 12 | 13 | NTPClosestStore.retrieveNTPClosest = function() { 14 | $.ajax({ 15 | url: "services/ntp.cgi?method=get_closest_servers", 16 | type: 'GET', 17 | contentType: "application/json", 18 | dataType: "json", 19 | success: function (data) { 20 | NTPClosestStore.ntpClosest = data; 21 | Dispatcher.publish(NTPClosestStore.ntpClosestTopic); 22 | }, 23 | error: function (jqXHR, textStatus, errorThrown) { 24 | console.log(errorThrown); 25 | } 26 | }); 27 | }; 28 | 29 | NTPClosestStore.getNTPClosest = function() { 30 | return NTPClosestStore.ntpClosest; 31 | }; 32 | 33 | NTPClosestStore.initialize(); 34 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/patches/debian-sysctl.diff: -------------------------------------------------------------------------------- 1 | Index: b/scripts/configure_sysctl 2 | =================================================================== 3 | --- a/scripts/configure_sysctl 2025-09-18 14:28:10.785319193 -0400 4 | +++ b/scripts/configure_sysctl 2025-09-18 14:28:13.938436164 -0400 5 | @@ -70,7 +70,6 @@ 6 | #set if centos 6 and 10Gbps or higher 7 | $default_sysctl_settings{'net.core.netdev_max_backlog'} = 250000 if($max_speed >= 10000000000); 8 | } 9 | - 10 | }elsif($os_info->{'distribution_name'} =~ /^Debian/){ 11 | #debian 12 | if($os_info->{'distribution_version'} =~ /^8/){ 13 | @@ -81,7 +80,8 @@ 14 | } 15 | 16 | #output params 17 | -open(my $SYSCTL, ">>", "/etc/sysctl.conf") or die "Unable to open /etc/sysctl.conf: $!"; 18 | +my $SYSCTL_CONF = "/etc/sysctl.d/perfsonar-toolkit-sysctl.conf"; 19 | +open(my $SYSCTL, ">", $SYSCTL_CONF) or die "Unable to open $SYSCTL_CONF: $!"; 20 | print $SYSCTL "####################################\n"; 21 | print $SYSCTL "#Default perfSONAR sysctl settings\n"; 22 | print $SYSCTL "####################################\n"; 23 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/etc/web_admin.conf: -------------------------------------------------------------------------------- 1 | # whether to allow interfaces with private ip addresses 2 | allow_internal_addresses 0 3 | 4 | # if you want, specify a primary interface like this (by default we try to detect this): 5 | #primary_interface eth0 6 | 7 | # "hostname" that is displayed when no hostname or IP is detected 8 | toolkit_name HOST 9 | 10 | # flag to set toolkit_name value as the hostname, regardless of autodetection 11 | force_toolkit_name 0 12 | 13 | # URL for fetching global list of LS 14 | active_hosts http://ps1.es.net:8096/lookup/activehosts.json 15 | 16 | # flag to be set to 1 for disabling LS lookups 17 | disable_ls_lookups 0 18 | 19 | # configurable link to privacy policy on the main toolkit page 20 | privacy_link https://www.perfsonar.net/about/privacy-policy/ 21 | 22 | # configurable text for the privacy policy link 23 | privacy_text perfSONAR Privacy Policy 24 | 25 | logger_conf logger.conf 26 | debug 1 27 | sessions_directory /var/run/web_admin_sessions 28 | cache_directory /var/lib/perfsonar/lscache 29 | 30 | use_cache 1 31 | 32 | ntp_conf /etc/ntp.conf 33 | enable_select_closest 1 34 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/stores/HostNTPInfoStore.js: -------------------------------------------------------------------------------- 1 | // Make sure jquery loads first 2 | // assumes Dispatcher has already been declared (so load that first as well) 3 | 4 | var HostNTPInfoStore = { 5 | hostNTPInfo: null, 6 | ntpInfoTopic: 'store.change.host_ntp_info', 7 | }; 8 | 9 | HostNTPInfoStore.initialize = function() { 10 | HostNTPInfoStore._retrieveInfo(); 11 | 12 | }; 13 | 14 | HostNTPInfoStore._retrieveInfo = function() { 15 | $.ajax({ 16 | url: "services/host.cgi?method=get_ntp_info", 17 | type: 'GET', 18 | contentType: "application/json", 19 | dataType: "json", 20 | success: function (data) { 21 | HostNTPInfoStore.hostNTPInfo = data; 22 | Dispatcher.publish(HostNTPInfoStore.ntpInfoTopic); 23 | }, 24 | error: function (jqXHR, textStatus, errorThrown) { 25 | console.log(errorThrown); 26 | } 27 | }); 28 | }; 29 | 30 | HostNTPInfoStore.getHostNTPInfo = function() { 31 | return HostNTPInfoStore.hostNTPInfo; 32 | }; 33 | 34 | HostNTPInfoStore.initialize(); 35 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/stores/HostServicesStore.js: -------------------------------------------------------------------------------- 1 | // Make sure jquery loads first 2 | // assumes Dispatcher has already been declared (so load that first as well) 3 | 4 | var HostServicesStore = { 5 | hostServices: null, 6 | servicesTopic: 'store.change.host_services', 7 | }; 8 | 9 | HostServicesStore.initialize = function() { 10 | HostServicesStore._retrieveServices(); 11 | 12 | }; 13 | 14 | HostServicesStore._retrieveServices = function() { 15 | $.ajax({ 16 | url: "services/host.cgi?method=get_services", 17 | type: 'GET', 18 | contentType: "application/json", 19 | dataType: "json", 20 | success: function (data) { 21 | HostServicesStore.hostServices = data; 22 | Dispatcher.publish(HostServicesStore.servicesTopic); 23 | }, 24 | error: function (jqXHR, textStatus, errorThrown) { 25 | console.log(errorThrown); 26 | } 27 | }); 28 | }; 29 | 30 | HostServicesStore.getHostServices = function() { 31 | return HostServicesStore.hostServices; 32 | }; 33 | 34 | HostServicesStore.initialize(); 35 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/sk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/stores/HostGuessLatLonStore.js: -------------------------------------------------------------------------------- 1 | // Make sure jquery loads first 2 | // assumes Dispatcher has already been declared (so load that first as well) 3 | 4 | var HostGuessLatLonStore = { 5 | coordinates: null, 6 | latLonTopic: 'store.change.guess_lat_lon', 7 | }; 8 | 9 | HostGuessLatLonStore.initialize = function() { 10 | HostGuessLatLonStore._retrieveLatLon(); 11 | }; 12 | 13 | HostGuessLatLonStore._retrieveLatLon = function() { 14 | $.ajax({ 15 | url: "services/host.cgi?method=get_calculated_lat_lon", 16 | type: 'GET', 17 | contentType: "application/json", 18 | dataType: "json", 19 | success: function (data) { 20 | HostGuessLatLonStore.coordinates = data; 21 | Dispatcher.publish(HostGuessLatLonStore.latLonTopic); 22 | }, 23 | error: function (jqXHR, textStatus, errorThrown) { 24 | console.log(errorThrown); 25 | } 26 | }); 27 | }; 28 | 29 | HostGuessLatLonStore.getLatLon = function() { 30 | return HostGuessLatLonStore.coordinates; 31 | }; 32 | 33 | HostGuessLatLonStore.initialize(); 34 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/select2/i18n/cs.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím zadejte o jeden znak méně":n<=4?"Prosím zadejte o "+e(n,!0)+" znaky méně":"Prosím zadejte o "+n+" znaků méně"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím zadejte ještě jeden znak":n<=4?"Prosím zadejte ještě další "+e(n,!0)+" znaky":"Prosím zadejte ještě dalších "+n+" znaků"},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky":"Můžete zvolit maximálně "+n+" položek"},noResults:function(){return"Nenalezeny žádné položky"},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/patches/debian-install.diff: -------------------------------------------------------------------------------- 1 | Index: b/scripts/nptoolkit-configure.py 2 | =================================================================== 3 | --- a/scripts/nptoolkit-configure.py 2025-09-18 14:28:10.785740403 -0400 4 | +++ b/scripts/nptoolkit-configure.py 2025-09-18 14:28:13.422462207 -0400 5 | @@ -99,7 +99,7 @@ 6 | }, 7 | { 8 | "description": "Change Timezone", 9 | - "command": "/usr/bin/tzselect", 10 | + "command": "/usr/sbin/dpkg-reconfigure tzdata", 11 | "isConfiguredFunction": None, 12 | "required": False, 13 | "requiresReboot": True, 14 | @@ -130,7 +130,7 @@ 15 | 16 | for item in known_items: 17 | # Skip the item if it's associated command isn't available. 18 | - if (not os.path.exists(item["command"])): 19 | + if (not os.path.exists(item["command"].split(" ")[0])): 20 | continue 21 | 22 | item = toolkitItem(item["description"], item["command"], item["isConfiguredFunction"], item["required"], item["requiresReboot"]) 23 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/rpm/remove_ntp_configdaemon.patch: -------------------------------------------------------------------------------- 1 | diff --git a/toolkit/perfsonar-toolkit/etc/configdaemon.conf b/toolkit/perfsonar-toolkit/etc/configdaemon.conf 2 | index 76b39f95..5159d855 100644 3 | --- a/toolkit/perfsonar-toolkit/etc/configdaemon.conf 4 | +++ b/toolkit/perfsonar-toolkit/etc/configdaemon.conf 5 | @@ -18,27 +18,10 @@ firewall_script /usr/lib/perfsonar/scripts/system_environment/configure_firewall 6 | start 1 7 | stop 1 8 | 9 | - 10 | - start 1 11 | - stop 1 12 | - restart 1 13 | - 14 | - 15 | - read 1 16 | - write 1 17 | - 18 | 19 | read 1 20 | write 1 21 | 22 | - 23 | - read 1 24 | - write 1 25 | - 26 | - 27 | - read 1 28 | - write 1 29 | - 30 | 31 | read 1 32 | write 1 33 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/default_system_firewall_settings.conf: -------------------------------------------------------------------------------- 1 | # perfSONAR Toolkit Firewall Config v1.0 2 | 3 | *filter 4 | :INPUT ACCEPT [0:0] 5 | :FORWARD ACCEPT [0:0] 6 | :OUTPUT ACCEPT [0:0] 7 | 8 | # convenience for logging things we want to specifically deny 9 | #-N DENYLOG 10 | #-A DENYLOG -j LOG --log-prefix DENIED_HOST: 11 | #-A DENYLOG -j DROP 12 | #-A INPUT -j DENYLOG -s 13 | 14 | # Allow Loopback 15 | -A INPUT -i lo -j ACCEPT 16 | -A OUTPUT -o lo -j ACCEPT 17 | 18 | # Accept existing and related connections 19 | -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 20 | 21 | # Incoming SSH - TCP Port 22 22 | -A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 22 -j ACCEPT 23 | 24 | # SSH Throttling (Uncomment to enable) 25 | #-A INPUT -p tcp --dport 22 --syn -m limit --limit 1/m --limit-burst 3 -j ACCEPT 26 | #-A INPUT -p tcp --dport 22 --syn -j DROP 27 | 28 | # DHCPv6 29 | -A INPUT -m state --state NEW -m udp -p udp --dport 546 --sport 547 -j ACCEPT 30 | 31 | # [% default_perfsonar_rules %] 32 | 33 | # log before we drop whatever is left. 34 | # -A INPUT -j LOG --log-prefix DROPPED_PACKET: 35 | 36 | # Drop the rest 37 | -A INPUT -j REJECT 38 | -A FORWARD -j REJECT 39 | 40 | COMMIT 41 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/testpoint/increase_owamp_limits: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ####################### 3 | # Override the owamp-server.conf to make sure that the disk limit to 1G from the 4 | # default of 10M. 5 | ####################### 6 | if [ "$1" == "new" ]; then 7 | cat >/etc/owamp-server/owamp-server.limits < 34 | 35 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-web-services.postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postrm script for perfsonar-postrm 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `purge' 11 | # * `upgrade' 12 | # * `failed-upgrade' 13 | # * `abort-install' 14 | # * `abort-install' 15 | # * `abort-upgrade' 16 | # * `disappear' 17 | # 18 | # for details, see http://www.debian.org/doc/debian-policy/ or 19 | # the debian-policy package 20 | 21 | 22 | case "$1" in 23 | purge) 24 | # directory setup 25 | rm -rf /var/log/perfsonar/web_admin 26 | ;; 27 | 28 | remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 29 | ;; 30 | 31 | *) 32 | echo "postrm called with unknown argument \`$1'" >&2 33 | exit 1 34 | ;; 35 | esac 36 | 37 | # dh_installdeb will replace this with shell code automatically 38 | # generated by other debhelper scripts. 39 | 40 | #DEBHELPER# 41 | 42 | exit 0 43 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-sysctl.postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postrm script for #PACKAGE# 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `purge' 11 | # * `upgrade' 12 | # * `failed-upgrade' 13 | # * `abort-install' 14 | # * `abort-install' 15 | # * `abort-upgrade' 16 | # * `disappear' 17 | # 18 | # for details, see http://www.debian.org/doc/debian-policy/ or 19 | # the debian-policy package 20 | 21 | 22 | case "$1" in 23 | purge) 24 | # cleanup generated config 25 | rm -f /etc/sysctl.d/perfsonar-toolkit-sysctl.conf 26 | ;; 27 | 28 | remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 29 | ;; 30 | 31 | *) 32 | echo "postrm called with unknown argument \`$1'" >&2 33 | exit 1 34 | ;; 35 | esac 36 | 37 | # dh_installdeb will replace this with shell code automatically 38 | # generated by other debhelper scripts. 39 | 40 | #DEBHELPER# 41 | 42 | exit 0 43 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/enable_apache_redirect: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ####################### 3 | # Setup redirects so that if clients go to "http://[host]/" or 4 | # "https://[host]/", they get redirected to Grafana or. It writes a toolkit-specific file, and modifies 5 | # ssl.conf only if it hasn't modified it already so it does not matter if this 6 | # is running in an 'upgrade' or 'new install' context. 7 | ####################### 8 | cat > /etc/httpd/conf.d/toolkit_root_redirect.conf < /dev/null 21 | if [ $? != 0 ]; then 22 | sed -i 's||RewriteEngine on\nRewriteOptions Inherit\n|g' /etc/httpd/conf.d/ssl.conf 23 | fi 24 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/admin/pages/AdminInfoPage.js: -------------------------------------------------------------------------------- 1 | // make sure jquery, Dispatcher, TestStore, TestResultsComponent, 2 | // HostMetadataStore, HostMetadataComponent load before this. 3 | 4 | var AdminInfoPage = { 5 | adminInfoTopic: 'store.change.host_info', 6 | formSubmitTopic: 'ui.form.submit', 7 | }; 8 | 9 | AdminInfoPage.initialize = function() { 10 | $("#adminInfoForm") 11 | .on('valid.fndtn.abide', function(e) { 12 | if(e.namespace != 'abide.fndtn') { 13 | return; 14 | } 15 | Dispatcher.publish(AdminInfoPage.formSubmitTopic); 16 | e.preventDefault(); 17 | }) 18 | .on('invalid.fndtn.abide', function (e) { 19 | if(e.namespace != 'abide.fndtn') { 20 | return; 21 | } 22 | var checkbox = $("#privacyPolicySwitch"); 23 | if ( checkbox.prop("checked") ) { 24 | StickySaveBar.showValidationError(); 25 | } else { 26 | var message = "You must accept our privacy policy to save this information."; 27 | StickySaveBar.showCustomValidationError( message ); 28 | 29 | } 30 | }); 31 | $('#loading-modal').foundation('reveal', 'open'); 32 | }; 33 | 34 | AdminInfoPage.initialize(); 35 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/iframe/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | iframe demo 6 | 7 | 10 | 11 | 12 |

Cross iframe communication with PubSubJS

13 |

14 | This is a small demonstration that shows that it is possible to use PubSubJS for communication across iframes. 15 |

16 | 17 | 18 | 19 | 20 | 21 | 40 | 41 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/configdaemon-logger.conf: -------------------------------------------------------------------------------- 1 | log4perl.logger.perfSONAR_PS=INFO, A1 2 | 3 | # uncomment to display log messages on the screen 4 | #log4perl.appender.A1=Log::Dispatch::Screen 5 | 6 | # uncomment the following line to log via syslog 7 | #log4perl.appender.A1=Log::Dispatch::Syslog 8 | #log4perl.appender.A1.facility=local5 9 | 10 | # Uncomment the following lines to log messages to the specified file. 11 | log4perl.appender.A1=Log::Dispatch::FileRotate 12 | log4perl.appender.A1.filename=/var/log/perfsonar/configdaemon.log 13 | log4perl.appender.A1.max=5 14 | log4perl.appender.A1.permissions=sub{ 0644; } 15 | log4perl.appender.A1.size=16777216 16 | log4perl.appender.A1.mode=append 17 | 18 | 19 | log4perl.appender.A1.layout=Log::Log4perl::Layout::PatternLayout 20 | log4perl.appender.A1.layout.ConversionPattern=%d (%P) %p> %F{1}:%L %M - %m%n 21 | 22 | # Uncomment the following lines to enable NetLogger instrumentation to the file 23 | # "/var/log/perfsonar/config_daemon-netlogger.log" 24 | # 25 | #log4perl.category.NetLogger=DEBUG, A2 26 | #log4perl.appender.A2=Log::Dispatch::File 27 | #log4perl.appender.A2.filename=/var/log/perfsonar/config_daemon-netlogger.log 28 | #log4perl.appender.A2.mode=append 29 | #log4perl.appender.A2.layout=Log::Log4perl::Layout::PatternLayout 30 | #log4perl.appender.A2.layout.ConversionPattern=%m%n 31 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-config-daemon.postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postrm script for perfsonar-toolkit-config-daemon 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `purge' 11 | # * `upgrade' 12 | # * `failed-upgrade' 13 | # * `abort-install' 14 | # * `abort-install' 15 | # * `abort-upgrade' 16 | # * `disappear' 17 | # 18 | # for details, see http://www.debian.org/doc/debian-policy/ or 19 | # the debian-policy package 20 | 21 | 22 | case "$1" in 23 | purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 24 | if [ -x "/etc/init.d/perfsonar-toolkit-config-daemon" ]; then 25 | invoke-rc.d perfsonar-toolkit-config-daemon stop || true 26 | fi 27 | ;; 28 | 29 | *) 30 | echo "postrm called with unknown argument \`$1'" >&2 31 | exit 1 32 | ;; 33 | esac 34 | 35 | # dh_installdeb will replace this with shell code automatically 36 | # generated by other debhelper scripts. 37 | 38 | #DEBHELPER# 39 | 40 | exit 0 41 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-web-services.prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # prerm script for perfsonar-toolkit 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `upgrade' 11 | # * `failed-upgrade' 12 | # * `remove' `in-favour' 13 | # * `deconfigure' `in-favour' 14 | # `removing' 15 | # 16 | # for details, see http://www.debian.org/doc/debian-policy/ or 17 | # the debian-policy package 18 | 19 | 20 | case "$1" in 21 | remove|upgrade|deconfigure) 22 | if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then 23 | . /usr/share/apache2/apache2-maintscript-helper 24 | 25 | apache2_invoke disconf apache-toolkit_web_services 26 | fi 27 | ;; 28 | 29 | failed-upgrade) 30 | ;; 31 | 32 | *) 33 | echo "prerm called with unknown argument \`$1'" >&2 34 | exit 1 35 | ;; 36 | esac 37 | 38 | # dh_installdeb will replace this with shell code automatically 39 | # generated by other debhelper scripts. 40 | 41 | #DEBHELPER# 42 | 43 | exit 0 44 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/perfsonar_firewalld_settings.conf: -------------------------------------------------------------------------------- 1 | # Incoming SSH - TCP Port 22 2 | --add-service=ssh 3 | 4 | # Incoming NTP - UDP Port 123 5 | --add-service=ntp 6 | 7 | # DHCPv6 8 | --add-service=dhcpv6-client 9 | 10 | 11 | # =-=-=-=-=-=- perfSONAR Measurement Tools: data =-=-=-=-=-=- 12 | # Rules for BWCTL and OWAMP are taken directly from their own config files. 13 | # They shouldn't be replicated here. 14 | 15 | # UDP Traceroute (Incoming) 16 | --add-service=traceroute 17 | 18 | # iperf3 (TCP) 19 | --add-port=5201/tcp 20 | 21 | # iperf3 (UDP) 22 | --add-port=5201/udp 23 | 24 | # iperf2 (TCP) 25 | --add-port=5001/tcp 26 | 27 | # iperf2 (UDP) 28 | --add-port=5001/udp 29 | 30 | # nuttcp (TCP) 31 | --add-port=5000/tcp 32 | --add-port=5101/tcp 33 | 34 | # nuttcp (UDP) 35 | --add-port=5000/udp 36 | --add-port=5101/udp 37 | 38 | # simplestream (TCP) 39 | --add-port=5890-5900/tcp 40 | 41 | # =-=-=-=-=-=- perfSONAR Measurement Tools: control =-=-=-=-=-=- 42 | 43 | # BWCTL Control (Incoming) 44 | --add-service=bwctl 45 | 46 | # OWAMP Control (Incoming) 47 | --add-service=owamp-control 48 | 49 | # TWAMP Control (Incoming) 50 | --add-service=twamp-control 51 | 52 | # =-=-=-=-=-=- Core perfSONAR Services =-=-=-=-=-=- 53 | 54 | # Incoming Web (esmond and Toolkit GUI) - TCP Ports 80 and 443 55 | --add-service=http 56 | --add-service=https 57 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/stores/CommunityAllStore.js: -------------------------------------------------------------------------------- 1 | // Make sure jquery loads first 2 | // assumes Dispatcher has already been declared (so load that first as well) 3 | 4 | var CommunityAllStore = { 5 | communityDetails: null, 6 | communityAllTopic: 'store.change.communities_all', 7 | communityAllErrorTopic: 'store.change.communities_all_error', 8 | }; 9 | 10 | CommunityAllStore.initialize = function() { 11 | CommunityAllStore._retrieveCommunities(); 12 | 13 | }; 14 | 15 | CommunityAllStore._retrieveCommunities = function() { 16 | $.ajax({ 17 | url: "services/communities.cgi?method=get_all_communities", 18 | type: 'GET', 19 | contentType: "application/json", 20 | dataType: "json", 21 | success: function (data) { 22 | CommunityAllStore.communityDetails = data; 23 | Dispatcher.publish(CommunityAllStore.communityAllTopic); 24 | }, 25 | error: function (jqXHR, textStatus, errorThrown) { 26 | console.log(errorThrown); 27 | Dispatcher.publish(CommunityAllStore.communityAllErrorTopic); 28 | } 29 | }); 30 | }; 31 | 32 | CommunityAllStore.getAllCommunities = function() { 33 | return CommunityAllStore.communityDetails; 34 | }; 35 | 36 | CommunityAllStore.initialize(); 37 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/dependencies: -------------------------------------------------------------------------------- 1 | 5 2 | CGI 3 | CGI::Ajax 4 | CGI::Carp 5 | CGI::Session 6 | Carp 7 | Class::MOP::Class 8 | Config::General 9 | Cwd 10 | DBI 11 | Data::Dumper 12 | Data::UUID 13 | Data::Validate::Domain 14 | Data::Validate::IP 15 | Date::Manip 16 | DateTime 17 | DateTime::Format::ISO8601 18 | DateTime::TimeZone 19 | Digest::MD5 20 | English 21 | Exporter 22 | Fcntl 23 | File::Basename 24 | File::Copy 25 | File::Path 26 | File::Spec 27 | File::Temp 28 | FindBin 29 | Getopt::Long 30 | HTML::Entities 31 | HTTP::Request 32 | HTTP::Response 33 | Hash::Merge 34 | IO::File 35 | IO::Select 36 | IO::Socket::SSL 37 | IPC::Open3 38 | IPC::Run 39 | JSON 40 | JSON::XS 41 | LWP 42 | LWP::Simple 43 | LWP::UserAgent 44 | Log::Log4perl 45 | Math::Int64 46 | Module::Load 47 | Moose 48 | Mouse 49 | Net::CIDR 50 | Net::DNS 51 | Net::Domain 52 | Net::IP 53 | Net::NTP 54 | Net::Ping 55 | Net::Server 56 | Net::Traceroute 57 | NetAddr::IP 58 | POSIX 59 | Params::Validate 60 | RPC::XML::Client 61 | RPC::XML::Server 62 | RPM2 63 | Regexp::Common 64 | Scalar::Util 65 | Socket 66 | Socket6 67 | Statistics::Descriptive 68 | Storable 69 | Symbol 70 | Sys::Statistics::Linux 71 | Template 72 | Template::Filters 73 | Time::HiRes 74 | Time::Local 75 | URI 76 | URI::Split 77 | XML::LibXML 78 | XML::Simple 79 | XML::Twig 80 | YAML::Syck 81 | base 82 | constant 83 | lib 84 | vars 85 | warnings 86 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/test/test-issue-54.js: -------------------------------------------------------------------------------- 1 | (function( global ){ 2 | "use strict"; 3 | 4 | var PubSub = global.PubSub || require("../src/pubsub"), 5 | TestHelper = global.TestHelper || require("../test/helper"), 6 | assert = buster.assert; 7 | 8 | /** 9 | * This is a test proving that bug 54 has been fixed. 10 | * See https://github.com/mroderick/PubSubJS/issues/54 11 | */ 12 | buster.testCase( "Issue 54, publish method", { 13 | 14 | "should notify all subscribers, even when one is unsubscribed" : function( done ){ 15 | var topic = TestHelper.getUniqueString(), 16 | token1, 17 | token1Unsubscribed = false, 18 | subscriber1 = function(){ 19 | PubSub.unsubscribe(token1); 20 | token1Unsubscribed = true; 21 | }, 22 | spy1 = sinon.spy(subscriber1), 23 | spy2 = this.spy(), 24 | spy3 = this.spy(), 25 | clock = this.useFakeTimers(); 26 | 27 | token1 = PubSub.subscribe( topic, spy1 ); 28 | PubSub.subscribe( topic, spy2 ); 29 | PubSub.subscribe( topic, spy3 ); 30 | 31 | PubSub.publish( topic ); 32 | 33 | clock.tick(1); 34 | 35 | assert( token1Unsubscribed === true ); 36 | assert( spy1.calledOnce ); 37 | assert( spy2.calledOnce ); 38 | assert( spy3.calledOnce ); 39 | 40 | done(); 41 | clock.restore(); 42 | } 43 | }); 44 | }(this)); 45 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit.install: -------------------------------------------------------------------------------- 1 | web-ng/templates usr/lib/perfsonar/web-ng/ 2 | web-ng/root/admin usr/lib/perfsonar/web-ng/root/ 3 | web-ng/root/css usr/lib/perfsonar/web-ng/root/ 4 | web-ng/root/data usr/lib/perfsonar/web-ng/root/ 5 | web-ng/root/favicon.ico usr/lib/perfsonar/web-ng/root/ 6 | web-ng/root/gui usr/lib/perfsonar/web-ng/root/ 7 | web-ng/root/images usr/lib/perfsonar/web-ng/root/ 8 | web-ng/root/js usr/lib/perfsonar/web-ng/root/ 9 | etc/administrative_info etc/perfsonar/toolkit 10 | etc/default_service_configs/jail.local etc/perfsonar/toolkit/default_service_configs/ 11 | etc/perfsonar_sudo etc/sudoers.d 12 | etc/templates/motd.tmpl etc/perfsonar/toolkit/templates/ 13 | etc/apache-perfsonar-security.conf etc/apache2/conf-available/ 14 | init_scripts/perfsonar-configure_nic_parameters etc/init.d/ 15 | init_scripts/perfsonar-generate_motd etc/init.d/ 16 | scripts/apache-toolkit_web_gui.conf etc/apache2/conf-available/ 17 | scripts/add_psadmin_user usr/lib/perfsonar/scripts/ 18 | scripts/add_pssudo_user usr/lib/perfsonar/scripts/ 19 | scripts/configure_apache_security usr/lib/perfsonar/scripts/ 20 | scripts/manage_users usr/lib/perfsonar/scripts/ 21 | scripts/ps-migrate-backup.sh usr/lib/perfsonar/scripts/ 22 | scripts/ps-migrate-restore.sh usr/lib/perfsonar/scripts/ 23 | scripts/remove_home_partition usr/lib/perfsonar/scripts/ 24 | 25 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-security.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for perfsonar-toolkit-security 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-remove' 14 | # * `abort-deconfigure' `in-favour' 15 | # `removing' 16 | # 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | configure) 23 | service fail2ban stop 24 | service firewalld restart 25 | service fail2ban start 26 | 27 | /usr/lib/perfsonar/scripts/configure_firewall install 28 | ;; 29 | 30 | abort-upgrade|abort-remove|abort-deconfigure) 31 | ;; 32 | 33 | *) 34 | echo "postinst called with unknown argument \`$1'" >&2 35 | exit 1 36 | ;; 37 | esac 38 | 39 | # dh_installdeb will replace this with shell code automatically 40 | # generated by other debhelper scripts. 41 | 42 | #DEBHELPER# 43 | 44 | exit 0 45 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit.prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # prerm script for perfsonar-toolkit 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `upgrade' 11 | # * `failed-upgrade' 12 | # * `remove' `in-favour' 13 | # * `deconfigure' `in-favour' 14 | # `removing' 15 | # 16 | # for details, see http://www.debian.org/doc/debian-policy/ or 17 | # the debian-policy package 18 | 19 | 20 | case "$1" in 21 | remove|upgrade|deconfigure) 22 | if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then 23 | . /usr/share/apache2/apache2-maintscript-helper 24 | 25 | apache2_invoke disconf apache-toolkit_web_gui 26 | apache2_invoke disconf apache-perfsonar-security 27 | fi 28 | ;; 29 | 30 | failed-upgrade) 31 | ;; 32 | 33 | *) 34 | echo "prerm called with unknown argument \`$1'" >&2 35 | exit 1 36 | ;; 37 | esac 38 | 39 | # dh_installdeb will replace this with shell code automatically 40 | # generated by other debhelper scripts. 41 | 42 | #DEBHELPER# 43 | 44 | exit 0 45 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/system_environment/testpoint/enable_auto_updates: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Enables automatic updates by default 4 | # 5 | # This script can be given 0, 1 or 2 args: 6 | # $1: installation type (i.e. new or upgrade) 7 | # $2: version upgrading from (if installation type is upgrade) 8 | 9 | # Set arbitrarily high version 99.99 if no version provided 10 | PREV_VERSION=${2:-99.99} 11 | MAJOR=${PREV_VERSION%%\.*} 12 | REST=${PREV_VERSION/${MAJOR}\.} 13 | MINOR=${REST%%\.*} 14 | 15 | # Need to activate if new install or if they were previously running 3.3.2 or older 16 | if [ "$1" == "new" ]; then 17 | echo "Enabling Automatic Updates" 18 | # Make sure download_updates and apply_updates are on in centos 7 19 | if [ -f "/etc/yum/yum-cron.conf" ]; then 20 | sed -i "s/download_updates = .*/download_updates = yes/g" /etc/yum/yum-cron.conf 21 | sed -i "s/apply_updates = .*/apply_updates = yes/g" /etc/yum/yum-cron.conf 22 | systemctl enable --now yum-cron 23 | elif [ -f "/etc/dnf/automatic.conf" ]; then 24 | sed -i "s/download_updates = .*/download_updates = yes/g" /etc/dnf/automatic.conf 25 | sed -i "s/apply_updates = .*/apply_updates = yes/g" /etc/dnf/automatic.conf 26 | systemctl enable --now dnf-automatic.timer 27 | else 28 | echo "Unable to find a recognized automatic updater." 29 | fi 30 | 31 | fi 32 | 33 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/configdaemon.conf: -------------------------------------------------------------------------------- 1 | address localhost 2 | port 9000 3 | firewall_script /usr/lib/perfsonar/scripts/system_environment/configure_firewall 4 | 5 | 6 | 7 | restart 1 8 | start 1 9 | stop 1 10 | 11 | 12 | restart 1 13 | start 1 14 | stop 1 15 | 16 | 17 | restart 1 18 | start 1 19 | stop 1 20 | 21 | 22 | start 1 23 | stop 1 24 | restart 1 25 | 26 | 27 | read 1 28 | write 1 29 | 30 | 31 | read 1 32 | write 1 33 | 34 | 35 | read 1 36 | write 1 37 | 38 | 39 | read 1 40 | write 1 41 | 42 | 43 | read 1 44 | write 1 45 | 46 | 47 | read 1 48 | write 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-config-daemon.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for perfsonar-toolkit-config-daemon 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-remove' 14 | # * `abort-deconfigure' `in-favour' 15 | # `removing' 16 | # 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | configure) 23 | # Set executable bit 24 | chmod +x /usr/lib/perfsonar/bin/configdaemon.pl 25 | 26 | systemctl daemon-reload 27 | service perfsonar-toolkit-config-daemon start 28 | ;; 29 | 30 | abort-upgrade|abort-remove|abort-deconfigure) 31 | ;; 32 | 33 | *) 34 | echo "postinst called with unknown argument \`$1'" >&2 35 | exit 1 36 | ;; 37 | esac 38 | 39 | # dh_installdeb will replace this with shell code automatically 40 | # generated by other debhelper scripts. 41 | 42 | #DEBHELPER# 43 | 44 | exit 0 45 | -------------------------------------------------------------------------------- /.github/workflows/toolkit-workflow.yml: -------------------------------------------------------------------------------- 1 | name: toolkit-workflow 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | BUILD_VARS_JSON: 7 | description: 'Build var json file' 8 | required: true 9 | 10 | jobs: 11 | 12 | prepare-build: 13 | uses: perfsonar/project/.github/workflows/prepare-build.yml@master 14 | with: 15 | BUILD_VARS_JSON: ${{ inputs.BUILD_VARS_JSON }} 16 | 17 | oneshot-scripted-build: 18 | needs: prepare-build 19 | uses: perfsonar/project/.github/workflows/oneshot-scripted-build.yml@master 20 | secrets: 21 | GIT_ACTIONS: ${{ secrets.GIT_ACTIONS }} 22 | with: 23 | BUILD_OS: ${{ needs.prepare-build.outputs.BUILD_OS }} 24 | BUILD_TYPE: ${{ needs.prepare-build.outputs.BUILD_TYPE }} 25 | BUILD_BRANCH: ${{ needs.prepare-build.outputs.BUILD_BRANCH }} 26 | BUILD_VARS_JSON: ${{ needs.prepare-build.outputs.BUILD_VARS_JSON }} 27 | 28 | post-build: 29 | needs: 30 | - prepare-build 31 | - oneshot-scripted-build 32 | uses: perfsonar/project/.github/workflows/post-build.yml@master 33 | secrets: 34 | GIT_ACTIONS: ${{ secrets.GIT_ACTIONS }} 35 | with: 36 | BUILD_OS: ${{ needs.prepare-build.outputs.BUILD_OS }} 37 | BUILD_TYPE: ${{ needs.prepare-build.outputs.BUILD_TYPE }} 38 | BUILD_BRANCH: ${{ needs.prepare-build.outputs.BUILD_BRANCH }} 39 | BUILD_VARS_JSON: ${{ needs.prepare-build.outputs.BUILD_VARS_JSON }} 40 | 41 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/foundation/foundation.alert.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.alert = { 5 | name : 'alert', 6 | 7 | version : '5.5.1', 8 | 9 | settings : { 10 | callback : function () {} 11 | }, 12 | 13 | init : function (scope, method, options) { 14 | this.bindings(method, options); 15 | }, 16 | 17 | events : function () { 18 | var self = this, 19 | S = this.S; 20 | 21 | $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) { 22 | var alertBox = S(this).closest('[' + self.attr_name() + ']'), 23 | settings = alertBox.data(self.attr_name(true) + '-init') || self.settings; 24 | 25 | e.preventDefault(); 26 | if (Modernizr.csstransitions) { 27 | alertBox.addClass('alert-close'); 28 | alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) { 29 | S(this).trigger('close').trigger('close.fndtn.alert').remove(); 30 | settings.callback(); 31 | }); 32 | } else { 33 | alertBox.fadeOut(300, function () { 34 | S(this).trigger('close').trigger('close.fndtn.alert').remove(); 35 | settings.callback(); 36 | }); 37 | } 38 | }); 39 | }, 40 | 41 | reflow : function () {} 42 | }; 43 | }(jQuery, window, window.document)); 44 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pages/DashboardPage.js: -------------------------------------------------------------------------------- 1 | // make sure jquery, Dispatcher, TestStore, TestResultsComponent, 2 | // HostServicesComponent and HostInfoComponent 3 | // HostMetadataStore.js, HostDetailsStore.js, HostHealthStore.js, HostServicesStore.js 4 | // all load before this. 5 | 6 | var DashboardPage = { 7 | dashboardTopics: [], 8 | numTopics: 0 9 | }; 10 | 11 | DashboardPage.initialize = function() { 12 | $('#loading-modal').foundation('reveal', 'open'); 13 | DashboardPage.dashboardTopics = [ 14 | 'store.change.host_details', 15 | //'store.change.host_info', 16 | 'store.change.host_services', 17 | // for now, let's allow the loader to clear even if the tests 18 | // have not yet loaded 19 | //'store.change.tests' 20 | ]; 21 | DashboardPage._setTopics(); 22 | }; 23 | 24 | DashboardPage._setTopics = function() { 25 | for (var i=0; ieasy_init( {level => 'OFF'} ); 11 | 12 | use Test::More tests => 4; 13 | 14 | use Data::Dumper; 15 | 16 | use perfSONAR_PS::NPToolkit::DataService::RegularTesting; 17 | 18 | my $basedir = 't'; 19 | my $regtesting_file = $basedir.'/etc/regulartesting.conf'; 20 | 21 | # read in regulartesting.conf 22 | my $params = {}; 23 | $params->{'load_regular_testing'} = 1; 24 | $params->{'config_file'} = $regtesting_file; 25 | my $service = perfSONAR_PS::NPToolkit::DataService::RegularTesting->new( $params ); 26 | my $results = $service->get_test_configuration(); 27 | isnt( $service->{'regular_testing_conf'}->{'TESTS'}, undef, 'tests found' ); 28 | 29 | #warn "----------\n"; 30 | #warn "SERVICE: \n" . Dumper $service; 31 | #warn "----------\n\n"; 32 | 33 | # delete all the tests 34 | $results = $service->delete_all_tests(); 35 | 36 | #warn "----------\n"; 37 | #warn "RESULTS: \n" . Dumper $results; 38 | #warn "SERVICE: \n" . Dumper $service; 39 | #warn "----------\n\n"; 40 | 41 | # checks 42 | is( $results->{'Return code'}, 0, 'Return code is 0' ); 43 | is( $service->{'regular_testing_conf'}->{'TESTS'}, undef, 'no tests found' ); 44 | is( $results->{'Error message'}, '', 'Return msg is blank' ); 45 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/test/test-bug-9.js: -------------------------------------------------------------------------------- 1 | (function( global ){ 2 | "use strict"; 3 | 4 | var PubSub = global.PubSub || require("../src/pubsub"), 5 | assert = buster.assert; 6 | 7 | /** 8 | * This is a test proving that bug 9 has been fixed. 9 | * See https://github.com/mroderick/PubSubJS/issues/9 10 | */ 11 | buster.testCase( "Bug 9, publish method", { 12 | 13 | "should notify all subscribers in a hierarchy" : function( done ){ 14 | var subscriber1 = this.spy(), 15 | subscriber2 = this.spy(), 16 | subscriber3 = this.spy(), 17 | clock = this.useFakeTimers(); 18 | 19 | PubSub.subscribe( 'a.b.c', subscriber1 ); 20 | PubSub.subscribe( 'a.b', subscriber2 ); 21 | PubSub.subscribe( 'a', subscriber3 ); 22 | 23 | PubSub.publish( 'a.b.c.d' ); 24 | 25 | clock.tick(1); 26 | 27 | assert( subscriber1.calledOnce ); 28 | assert( subscriber2.calledOnce ); 29 | assert( subscriber3.calledOnce ); 30 | 31 | done(); 32 | clock.restore(); 33 | }, 34 | 35 | "should notify individual subscribers, even when there are no subscribers further up" : function( done ){ 36 | 37 | var rootTopic = 'a.b.c', 38 | subscriber = this.spy(), 39 | clock = this.useFakeTimers(); 40 | 41 | PubSub.subscribe(rootTopic, subscriber); 42 | PubSub.publish(rootTopic + '.d'); 43 | 44 | clock.tick(1); 45 | 46 | assert( subscriber.calledOnce ); 47 | 48 | done(); 49 | clock.restore(); 50 | } 51 | }); 52 | }(this)); 53 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/components/PageHeader.js: -------------------------------------------------------------------------------- 1 | var PageHeader = { 2 | details_topic: 'store.change.host_details', 3 | }; 4 | 5 | 6 | PageHeader.initialize = function() { 7 | Dispatcher.subscribe(PageHeader.details_topic, PageHeader._setDetails); 8 | }; 9 | 10 | PageHeader._setDetails = function( topic ) { 11 | var data = HostDetailsStore.getHostDetails(); 12 | var hostNameOrIP = data.external_address.dns_name || data.external_address.ipv4_address || data.external_address.ipv6_address || data.toolkit_name; 13 | var primaryHostName=""; 14 | if(data.external_address.dns_name){ 15 | primaryHostName += data.external_address.dns_name + ' at '; 16 | } 17 | if(data.external_address.ipv4_address){ 18 | primaryHostName += data.external_address.ipv4_address; 19 | } 20 | if(data.external_address.ipv6_address){ 21 | if(data.external_address.ipv4_address){ 22 | primaryHostName += ", "+data.external_address.ipv6_address + ""; 23 | }else{ 24 | primaryHostName += data.external_address.ipv6_address + ""; 25 | } 26 | 27 | } 28 | 29 | if(!primaryHostName){ 30 | primaryHostName = data.toolkit_name; 31 | } 32 | 33 | $("#primary_hostname").html(primaryHostName); 34 | $("#header_hostname").text(" on " + hostNameOrIP); 35 | $(document).prop('title', 'perfSONAR Toolkit | ' + hostNameOrIP); 36 | 37 | }; 38 | 39 | PageHeader.initialize(); 40 | 41 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/stores/NTPConfigStore.js: -------------------------------------------------------------------------------- 1 | // Make sure jquery loads first 2 | // assumes Dispatcher has already been declared (so load that first as well) 3 | 4 | var NTPConfigStore = { 5 | ntpConfig: null, 6 | ntpConfigTopic: 'store.change.ntp_config', 7 | ntpConfigErrorTopic: 'store.ntp_config.save_error', 8 | }; 9 | 10 | NTPConfigStore.initialize = function() { 11 | NTPConfigStore._retrieveNTPConfig(); 12 | }; 13 | 14 | NTPConfigStore._retrieveNTPConfig = function() { 15 | $.ajax({ 16 | url: "services/ntp.cgi?method=get_ntp_config", 17 | type: 'GET', 18 | contentType: "application/json", 19 | dataType: "json", 20 | success: function (data) { 21 | NTPConfigStore.ntpConfig = data; 22 | Dispatcher.publish(NTPConfigStore.ntpConfigTopic); 23 | }, 24 | error: function (jqXHR, textStatus, errorThrown) { 25 | console.log(errorThrown); 26 | Dispatcher.publish( NTPConfigStore.ntpConfigErrorTopic, errorThrown ); 27 | } 28 | }); 29 | }; 30 | 31 | NTPConfigStore.getNTPConfig = function() { 32 | return NTPConfigStore.ntpConfig; 33 | }; 34 | 35 | NTPConfigStore.getNTPSelectedServers = function() { 36 | return NTPConfigStore.ntpConfig.selected_servers; 37 | }; 38 | 39 | NTPConfigStore.getNTPKnownServers = function() { 40 | return NTPConfigStore.ntpConfig.known_servers; 41 | }; 42 | 43 | NTPConfigStore.initialize(); 44 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/Makefile: -------------------------------------------------------------------------------- 1 | PACKAGE=perfsonar-toolkit 2 | ROOTPATH=/usr/lib/perfsonar 3 | CONFIGPATH=/etc/perfsonar/toolkit 4 | PERFSONAR_AUTO_VERSION=5.2.3 5 | PERFSONAR_AUTO_RELNUM=1 6 | VERSION=${PERFSONAR_AUTO_VERSION} 7 | RELEASE=${PERFSONAR_AUTO_RELNUM} 8 | DC_CMD_BASE=docker-compose 9 | DC_CMD=${DC_CMD_BASE} -p ${PACKAGE} 10 | 11 | default: 12 | @echo No need to build the package. Just run \"make install\" 13 | 14 | centos7: 15 | mkdir -p ./artifacts/centos7 16 | ${DC_CMD} -f docker-compose.yml up --build --no-start centos7 17 | docker cp ${PACKAGE}_centos7_1:/root/rpmbuild/SRPMS ./artifacts/centos7/SRPMS 18 | docker cp ${PACKAGE}_centos7_1:/root/rpmbuild/RPMS/noarch ./artifacts/centos7/RPMS 19 | 20 | dist: 21 | rm -rf /tmp/$(PACKAGE)-$(VERSION).$(RELEASE) 22 | mkdir -p /tmp/$(PACKAGE)-$(VERSION).$(RELEASE) 23 | tar ch --exclude=*.git* -T MANIFEST | tar x -C /tmp/$(PACKAGE)-$(VERSION).$(RELEASE) 24 | tar czf $(PACKAGE)-$(VERSION).$(RELEASE).tar.gz -C /tmp $(PACKAGE)-$(VERSION).$(RELEASE) 25 | rm -rf /tmp/$(PACKAGE)-$(VERSION).$(RELEASE) 26 | 27 | install: 28 | mkdir -p ${ROOTPATH} 29 | mkdir -p ${CONFIGPATH} 30 | tar ch --exclude '*.git*' --exclude=*spec --exclude=MANIFEST --exclude=LICENSE --exclude=LICENSE --exclude=Makefile -T MANIFEST | tar x -C ${ROOTPATH} 31 | 32 | test: 33 | PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0)" t/*.t 34 | 35 | cover: 36 | cover -test 37 | 38 | test_jenkins: 39 | mkdir -p tap_output 40 | PERL5OPT=-MDevel::Cover prove t/ --archive tap_output/ 41 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/stores/HostDetailsStore.js: -------------------------------------------------------------------------------- 1 | // Make sure jquery loads first 2 | // assumes Dispatcher has already been declared (so load that first as well) 3 | 4 | var HostDetailsStore = { 5 | hostDetails: null, 6 | detailsTopic: 'store.change.host_details', 7 | }; 8 | 9 | HostDetailsStore.initialize = function() { 10 | HostDetailsStore._retrieveDetails(); 11 | 12 | }; 13 | 14 | HostDetailsStore._retrieveDetails = function() { 15 | $.ajax({ 16 | url: "services/host.cgi?method=get_details", 17 | type: 'GET', 18 | contentType: "application/json", 19 | dataType: "json", 20 | success: function (data) { 21 | HostDetailsStore.hostDetails = data; 22 | Dispatcher.publish(HostDetailsStore.detailsTopic); 23 | }, 24 | error: function (jqXHR, textStatus, errorThrown) { 25 | console.log(errorThrown); 26 | } 27 | }); 28 | }; 29 | 30 | HostDetailsStore.getHostDetails = function() { 31 | return HostDetailsStore.hostDetails; 32 | }; 33 | 34 | HostDetailsStore.getHostInterfaces = function() { 35 | return HostDetailsStore.hostDetails.interfaces; 36 | }; 37 | 38 | HostDetailsStore.getAutoUpdates = function() { 39 | return HostDetailsStore.hostDetails.auto_updates; 40 | }; 41 | 42 | HostDetailsStore.getAllowInternalAddresses = function() { 43 | return HostDetailsStore.hostDetails.allow_internal_addresses; 44 | }; 45 | 46 | HostDetailsStore.initialize(); 47 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/test/helper.js: -------------------------------------------------------------------------------- 1 | (function(root, factory){ 2 | 'use strict'; 3 | 4 | // CommonJS 5 | if (typeof exports === 'object'){ 6 | module.exports = factory(); 7 | 8 | // AMD 9 | } else if (typeof define === 'function' && define.amd){ 10 | define(factory); 11 | // Browser 12 | } else { 13 | root.TestHelper = factory(); 14 | } 15 | }( ( typeof window === 'object' && window ) || this, function(){ 16 | 17 | 'use strict'; 18 | 19 | var TestHelper = {}, 20 | assert = buster.assert; 21 | 22 | // helps us make sure that the order of the tests have no impact on their succes 23 | function getUniqueString(){ 24 | if ( getUniqueString.uid === undefined ){ 25 | getUniqueString.uid = 0; 26 | } 27 | getUniqueString.uid++; 28 | 29 | return "my unique String number " + getUniqueString.uid.toString(); 30 | } 31 | 32 | // makes sure that all tokens in the passed array are different 33 | function assertAllTokensDifferent( tokens ){ 34 | var length = tokens.length, 35 | j, k; 36 | assert( tokens.length > 0 ); 37 | // compare all tokens 38 | for ( j = 0; j < length; j++ ){ 39 | for ( k = j + 1; k < length; k++ ){ 40 | assert( tokens[j] !== tokens[k] ); 41 | } 42 | } 43 | 44 | // make sure we actually tested something 45 | assert.equals( j, length ); 46 | assert.equals( k, length ); 47 | } 48 | 49 | TestHelper.getUniqueString = getUniqueString; 50 | TestHelper.assertAllTokensDifferent = assertAllTokensDifferent; 51 | 52 | return TestHelper; 53 | })); 54 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/etc/apache-perfsonar-security.conf: -------------------------------------------------------------------------------- 1 | #Set SSL Ciphers globally. 2 | #Changes in this file will be overriden on toolkit update 3 | #Override these in ssl.conf VirtualHost if need stricter settings 4 | SSLProtocol ALL -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 5 | 6 | # The cipher list is based on Mozilla's cipher suite correspondence 7 | # table at https://wiki.mozilla.org/Security/Cipher_Suites. 8 | # 9 | # The list can be extracted using this command: 10 | # 11 | # curl -s https://wiki.mozilla.org/Security/Cipher_Suites \ 12 | # | fgrep 'background-color: #9EDB58;' \ 13 | # | sed -e 's/^[^>]\+>\s*//' \ 14 | # | fgrep -- '-' \ 15 | # | tr '\n' ':' \ 16 | # | sed -e 's/:$//' 17 | 18 | # Current as of 2023-06-01 19 | SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 20 | 21 | SSLHonorCipherOrder On 22 | SSLCompression off 23 | SSLSessionTickets off 24 | 25 | #disable HTTP TRACE method 26 | TraceEnable Off 27 | 28 | #disable HTTP OPTIONS method 29 | RewriteEngine On 30 | RewriteCond %{REQUEST_METHOD} ^OPTIONS 31 | RewriteRule .* - [F] 32 | 33 | #disable printing of server tokens 34 | ServerTokens Prod 35 | 36 | ServerSignature Off 37 | 38 | 39 | #display less info as default welcome page 40 | 41 | Options -Indexes 42 | ErrorDocument 403 "Forbidden" 43 | 44 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-systemenv-testpoint.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for perfsonar-toolkit-systemenv 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-remove' 14 | # * `abort-deconfigure' `in-favour' 15 | # `removing' 16 | # 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | configure) 23 | for script in /usr/lib/perfsonar/scripts/system_environment/testpoint/*; do 24 | if [ "$2" ]; then 25 | echo "Running: $script upgrade $2" 26 | $script upgrade $2 || true 27 | else 28 | echo "Running: $script new" 29 | $script new || true 30 | fi 31 | done 32 | ;; 33 | 34 | abort-upgrade|abort-remove|abort-deconfigure) 35 | ;; 36 | 37 | *) 38 | echo "postinst called with unknown argument \`$1'" >&2 39 | exit 1 40 | ;; 41 | esac 42 | 43 | # dh_installdeb will replace this with shell code automatically 44 | # generated by other debhelper scripts. 45 | 46 | #DEBHELPER# 47 | 48 | exit 0 49 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-systemenv.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for perfsonar-toolkit-systemenv 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-remove' 14 | # * `abort-deconfigure' `in-favour' 15 | # `removing' 16 | # 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | configure) 23 | for script in /usr/lib/perfsonar/scripts/system_environment/*; do 24 | [ -d $script ] && continue 25 | 26 | if [ "$2" ]; then 27 | echo "Running: $script upgrade $2" 28 | $script upgrade $2 || true 29 | else 30 | echo "Running: $script new" 31 | $script new || true 32 | fi 33 | done 34 | 35 | service apache2 reload || true 36 | ;; 37 | 38 | abort-upgrade|abort-remove|abort-deconfigure) 39 | ;; 40 | 41 | *) 42 | echo "postinst called with unknown argument \`$1'" >&2 43 | exit 1 44 | ;; 45 | esac 46 | 47 | # dh_installdeb will replace this with shell code automatically 48 | # generated by other debhelper scripts. 49 | 50 | #DEBHELPER# 51 | 52 | exit 0 53 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/Rakefile: -------------------------------------------------------------------------------- 1 | require 'rake' 2 | require 'rake/clean' 3 | 4 | # Creates a task that uses the various template wrappers to make a wrapped 5 | # output file. There is some extra complexity because Dojo and YUI use 6 | # different final locations. 7 | def templated_build(name, opts={}) 8 | short = name.downcase 9 | source = File.join("wrappers", short) 10 | dependencies = ["src/pubsub.js"] + Dir.glob("#{source}/*.tpl.*") 11 | target_js = opts[:location] ? "pubsub.js" : "#{short}.pubsub.js" 12 | 13 | CLEAN.include(opts[:location] ? opts[:location] : target_js) 14 | 15 | desc "Package for #{name}" 16 | task short.to_sym => dependencies do 17 | puts "Packaging for #{name}" 18 | 19 | mkdir_p opts[:location] if opts[:location] 20 | 21 | files = [ 22 | "#{source}/pubsub.js.pre.txt", 23 | 'src/pubsub.js', 24 | "#{source}/pubsub.js.post.txt" 25 | ] 26 | 27 | open("#{opts[:location] || '.'}/#{target_js}", 'w') do |f| 28 | files.each {|file| f << File.read(file) } 29 | end 30 | 31 | puts "Done, see #{opts[:location] || '.'}/#{target_js}" 32 | end 33 | end 34 | 35 | templated_build "jQuery" 36 | # templated_build "MooTools" 37 | # templated_build "Dojo", :location => "dojox/string" 38 | # templated_build "YUI3", :location => "yui3/pubsub" 39 | # templated_build "RequireJS" 40 | # templated_build "qooxdoo" 41 | 42 | task :default do 43 | end 44 | 45 | task :minify do 46 | # npm install uglify-js 47 | mmjs = "pubsub.min.js" 48 | # `echo "/*! Version: 1.0.4-dev */" > #{mmjs}` 49 | `uglifyjs pubsub.js >> #{mmjs}` 50 | puts "Created #{mmjs}" 51 | end 52 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/data/us_states_hash.json: -------------------------------------------------------------------------------- 1 | { 2 | "AL": "Alabama", 3 | "AK": "Alaska", 4 | "AS": "American Samoa", 5 | "AZ": "Arizona", 6 | "AR": "Arkansas", 7 | "CA": "California", 8 | "CO": "Colorado", 9 | "CT": "Connecticut", 10 | "DE": "Delaware", 11 | "DC": "District Of Columbia", 12 | "FM": "Federated States Of Micronesia", 13 | "FL": "Florida", 14 | "GA": "Georgia", 15 | "GU": "Guam", 16 | "HI": "Hawaii", 17 | "ID": "Idaho", 18 | "IL": "Illinois", 19 | "IN": "Indiana", 20 | "IA": "Iowa", 21 | "KS": "Kansas", 22 | "KY": "Kentucky", 23 | "LA": "Louisiana", 24 | "ME": "Maine", 25 | "MH": "Marshall Islands", 26 | "MD": "Maryland", 27 | "MA": "Massachusetts", 28 | "MI": "Michigan", 29 | "MN": "Minnesota", 30 | "MS": "Mississippi", 31 | "MO": "Missouri", 32 | "MT": "Montana", 33 | "NE": "Nebraska", 34 | "NV": "Nevada", 35 | "NH": "New Hampshire", 36 | "NJ": "New Jersey", 37 | "NM": "New Mexico", 38 | "NY": "New York", 39 | "NC": "North Carolina", 40 | "ND": "North Dakota", 41 | "MP": "Northern Mariana Islands", 42 | "OH": "Ohio", 43 | "OK": "Oklahoma", 44 | "OR": "Oregon", 45 | "PW": "Palau", 46 | "PA": "Pennsylvania", 47 | "PR": "Puerto Rico", 48 | "RI": "Rhode Island", 49 | "SC": "South Carolina", 50 | "SD": "South Dakota", 51 | "TN": "Tennessee", 52 | "TX": "Texas", 53 | "UT": "Utah", 54 | "VT": "Vermont", 55 | "VI": "Virgin Islands", 56 | "VA": "Virginia", 57 | "WA": "Washington", 58 | "WV": "West Virginia", 59 | "WI": "Wisconsin", 60 | "WY": "Wyoming" 61 | } -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-archive-utils.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for perfsonar-toolkit-systemenv 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-remove' 14 | # * `abort-deconfigure' `in-favour' 15 | # `removing' 16 | # 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | configure) 23 | # Configure http archiver 24 | if [ -f /etc/perfsonar/logstash/proxy_auth.json ] ; then 25 | AUTH_HEADER=`cat /etc/perfsonar/logstash/proxy_auth.json` 26 | sed -i "s|http://localhost:11283|https://{% scheduled_by_address %}/logstash|g" /etc/perfsonar/psconfig/archives.d/http_logstash.json 27 | sed -i "s|\"content-type\": \"application/json\"|\"content-type\": \"application/json\", ${AUTH_HEADER}|g" /etc/perfsonar/psconfig/archives.d/http_logstash.json 28 | fi 29 | ;; 30 | 31 | abort-upgrade|abort-remove|abort-deconfigure) 32 | ;; 33 | 34 | *) 35 | echo "postinst called with unknown argument \`$1'" >&2 36 | exit 1 37 | ;; 38 | esac 39 | 40 | # dh_installdeb will replace this with shell code automatically 41 | # generated by other debhelper scripts. 42 | 43 | #DEBHELPER# 44 | 45 | exit 0 46 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/templates/components/sidebar.html: -------------------------------------------------------------------------------- 1 | 2 | 27 | 28 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit.postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postrm script for perfsonar-postrm 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `purge' 11 | # * `upgrade' 12 | # * `failed-upgrade' 13 | # * `abort-install' 14 | # * `abort-install' 15 | # * `abort-upgrade' 16 | # * `disappear' 17 | # 18 | # for details, see http://www.debian.org/doc/debian-policy/ or 19 | # the debian-policy package 20 | 21 | 22 | case "$1" in 23 | purge) 24 | # group setup 25 | if getent group pssudo >/dev/null; then 26 | delgroup pssudo 27 | fi 28 | 29 | # directory setup 30 | rm -rf /var/log/perfsonar/web_admin 31 | 32 | rm -rf /var/lib/perfsonar/db_backups/owamp 33 | rm -rf /var/lib/perfsonar/db_backups/traceroute 34 | 35 | rm -rf /var/lib/perfsonar/log_view/owamp 36 | 37 | # Removing ald log_view/ndt directory if present 38 | rm -rf /var/lib/perfsonar/log_view/ndt 39 | 40 | rm -f /etc/perfsonar/toolkit/psadmin.htpasswd 41 | ;; 42 | 43 | remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 44 | ;; 45 | 46 | *) 47 | echo "postrm called with unknown argument \`$1'" >&2 48 | exit 1 49 | ;; 50 | esac 51 | 52 | # dh_installdeb will replace this with shell code automatically 53 | # generated by other debhelper scripts. 54 | 55 | #DEBHELPER# 56 | 57 | exit 0 58 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-systemenv.install: -------------------------------------------------------------------------------- 1 | scripts/system_environment/add_psadmin_pssudo usr/lib/perfsonar/scripts/system_environment/ 2 | scripts/system_environment/add_sbin_path usr/lib/perfsonar/scripts/system_environment/ 3 | scripts/system_environment/add_toolkit_dirs_path usr/lib/perfsonar/scripts/system_environment/ 4 | # ssh already enabled in debian 5 | #scripts/system_environment/configure_fail2ban usr/lib/perfsonar/scripts/system_environment/ 6 | # php already disabled in debian 7 | scripts/system_environment/configure_tests_gui usr/lib/perfsonar/scripts/system_environment/ 8 | #scripts/system_environment/disable_php_advertising usr/lib/perfsonar/scripts/system_environment/ 9 | scripts/system_environment/disable_unwanted_services usr/lib/perfsonar/scripts/system_environment/ 10 | # no zeroconf in debian 11 | #scripts/system_environment/disable_zeroconf usr/lib/perfsonar/scripts/system_environment/ 12 | # redirect works by default in debian 13 | #scripts/system_environment/enable_apache_redirect usr/lib/perfsonar/scripts/system_environment/ 14 | #scripts/system_environment/enable_ntp_restarts usr/lib/perfsonar/scripts/system_environment/ 15 | scripts/system_environment/migrate_admininfo usr/lib/perfsonar/scripts/system_environment/ 16 | # admin upgrade not needed in debian 17 | #scripts/system_environment/upgrade_apache usr/lib/perfsonar/scripts/system_environment/ 18 | scripts/system_environment/upgrade_configdaemon usr/lib/perfsonar/scripts/system_environment/ 19 | scripts/system_environment/upgrade_fix_permissions usr/lib/perfsonar/scripts/system_environment/ 20 | # lsregistrationdaemon.conf file is managed by the ls-registration-daemon package 21 | #scripts/system_environment/upgrade_lsregistration usr/lib/perfsonar/scripts/system_environment/ 22 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-sysctl.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for perfsonar-toolkit-sysctl 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-remove' 14 | # * `abort-deconfigure' `in-favour' 15 | # `removing' 16 | # 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | configure) 23 | # generate config 24 | script=configure_sysctl 25 | if [ "$2" -a -e /etc/sysctl.d/perfsonar-toolkit-sysctl.conf ]; then 26 | echo "Running: $script upgrade $2" 27 | /usr/lib/perfsonar/scripts/$script upgrade $2 28 | else 29 | echo "Running: $script new" 30 | /usr/lib/perfsonar/scripts/$script new 31 | fi 32 | 33 | # load sysctl settings 34 | if [ -x /lib/systemd/systemd-sysctl ]; then 35 | /lib/systemd/systemd-sysctl perfsonar-toolkit-sysctl.conf 36 | elif [ -x /etc/init.d/procps ]; then 37 | invoke-rc.d procps start 38 | fi 39 | ;; 40 | 41 | abort-upgrade|abort-remove|abort-deconfigure) 42 | ;; 43 | 44 | *) 45 | echo "postinst called with unknown argument \`$1'" >&2 46 | exit 1 47 | ;; 48 | esac 49 | 50 | # dh_installdeb will replace this with shell code automatically 51 | # generated by other debhelper scripts. 52 | 53 | #DEBHELPER# 54 | 55 | exit 0 56 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/t/lib/perfSONAR_PS/NPToolkit/UnitTests/Mock.pm: -------------------------------------------------------------------------------- 1 | package perfSONAR_PS::NPToolkit::UnitTests::Mock; 2 | 3 | #use fields qw( ); 4 | 5 | =head1 NAME 6 | perfSONAR_PS::NPToolkit::UnitTests::Mock - Mock functions for unit tests 7 | =head1 DESCRIPTION 8 | This module provides mock functions for unit tests 9 | =cut 10 | 11 | use strict; 12 | use warnings; 13 | 14 | our $VERSION = 3.6; 15 | 16 | use base 'Exporter'; 17 | #use FindBin qw($Bin); 18 | use Log::Log4perl qw(:easy); 19 | use Config::General; 20 | use Params::Validate qw(:all); 21 | use Data::Dumper; 22 | 23 | our @EXPORT_OK = qw( save_file_mock succeed_value array_value ); 24 | 25 | sub succeed_value { 26 | my $success = shift; 27 | return $success; 28 | } 29 | 30 | sub array_value { 31 | my (@value) = @_; 32 | return @value; 33 | } 34 | 35 | # override the saveFile method 36 | # return 0 if successful, -1 if unsuccessful 37 | sub save_file_mock { 38 | my $success = shift; 39 | my $self = shift; 40 | my $parameters = validate( 41 | @_, 42 | { 43 | filename => 1, 44 | content => 1, 45 | } 46 | ); 47 | 48 | return -1 unless $success; 49 | 50 | my $filename = $parameters->{filename}; 51 | my $contents = $parameters->{content}; 52 | 53 | # return an error if filename contains '..' or stars with '/' 54 | # as this means it's attempting to write to a parent directory 55 | if ( $filename =~ m|\.\.| or $filename =~ m|^/| ) { 56 | return (-1, "Error: unit test attempts to write a parent directory"); 57 | } 58 | 59 | my ($status, $res); 60 | 61 | unless (open( FILE, ">:utf8", $filename ) ) { 62 | my $msg = "Couldn't write $filename: $@"; 63 | return -1; 64 | } 65 | 66 | print FILE $contents; 67 | close( FILE ); 68 | 69 | return 0; 70 | } 71 | 72 | 73 | 1; 74 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/unibuild-packaging/deb/perfsonar-toolkit-web-services.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for perfsonar-toolkit 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-remove' 14 | # * `abort-deconfigure' `in-favour' 15 | # `removing' 16 | # 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | configure) 23 | # directory setup 24 | mkdir -p /var/log/perfsonar/web_admin 25 | chown www-data:perfsonar /var/log/perfsonar/web_admin 26 | 27 | # apache setup 28 | if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then 29 | . /usr/share/apache2/apache2-maintscript-helper 30 | 31 | apache2_invoke ensite default-ssl 32 | apache2_invoke enmod cgi reload 33 | apache2_invoke enmod headers reload 34 | apache2_invoke enconf apache-toolkit_web_services 35 | # Only doing a restart once to avoid triggering limits 36 | apache2_invoke enmod rewrite restart 37 | fi 38 | ;; 39 | 40 | abort-upgrade|abort-remove|abort-deconfigure) 41 | ;; 42 | 43 | *) 44 | echo "postinst called with unknown argument \`$1'" >&2 45 | exit 1 46 | ;; 47 | esac 48 | 49 | # dh_installdeb will replace this with shell code automatically 50 | # generated by other debhelper scripts. 51 | 52 | #DEBHELPER# 53 | 54 | exit 0 55 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/test/test-jquery-integration.js: -------------------------------------------------------------------------------- 1 | (function( global ){ 2 | "use strict"; 3 | 4 | var $ = global.jQuery, 5 | PubSub = global.PubSub || require("../src/pubsub"), 6 | TestHelper = global.TestHelper || require("../test/helper"), 7 | assert = buster.assert; 8 | 9 | buster.testCase( "jQuery integration", { 10 | 11 | requiresSupportFor: { "jQuery": global.jQuery !== undefined }, 12 | 13 | "$.pubsub('subscribe') should call subscribe" : function(){ 14 | var topic = TestHelper.getUniqueString(), 15 | spy = this.spy(), 16 | mock = this.mock( PubSub ); 17 | 18 | mock.expects('subscribe').once().withArgs( topic, spy ); 19 | 20 | $.pubsub('subscribe', topic, spy); 21 | 22 | assert( mock.verify() ); 23 | }, 24 | 25 | "$.pubsub('unsubscribe') should call unsubscribe" : function(){ 26 | var subscriber = this.spy(), 27 | mock = this.mock( PubSub ); 28 | 29 | mock.expects( 'unsubscribe' ).once().withArgs( subscriber ); 30 | 31 | $.pubsub( 'unsubscribe', subscriber ); 32 | 33 | assert( mock.verify() ); 34 | }, 35 | 36 | "$.pubsub('publish') should call publish" : function(){ 37 | var topic = TestHelper.getUniqueString(), 38 | data = TestHelper.getUniqueString(), 39 | mock = this.mock( PubSub ); 40 | 41 | mock.expects( 'publish' ).once().withArgs( topic, data ); 42 | 43 | $.pubsub( 'publish', topic, data ); 44 | 45 | assert( mock.verify() ); 46 | }, 47 | 48 | "$.pubsub('publishSync') should call publishSync" : function(){ 49 | var topic = TestHelper.getUniqueString(), 50 | data = TestHelper.getUniqueString(), 51 | mock = this.mock( PubSub ); 52 | 53 | mock.expects( 'publishSync' ).once().withArgs( topic, data ); 54 | 55 | $.pubsub( 'publishSync', topic, data ); 56 | 57 | assert( mock.verify() ); 58 | } 59 | }); 60 | }(this)); 61 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/pubsub/node_modules/pubsub-js/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to PubSubJS 2 | 3 | We love pull requests. Here's a quick guide: 4 | 5 | 1. Fork the repo. 6 | 7 | 2. Run the tests. We only take pull requests with passing tests, and it's great 8 | to know that you have a clean slate 9 | 10 | 3. Add a test for your change. Only refactoring and documentation changes 11 | require no new tests. If you are adding functionality or fixing a bug, we need 12 | a test! 13 | 14 | 4. Make the test pass. 15 | 16 | 5. Push to your fork and submit a pull request. 17 | 18 | 19 | At this point you're waiting on us. We like to at least comment on, if not 20 | accept, pull requests within three business days (and, typically, one business 21 | day). We may suggest some changes or improvements or alternatives. 22 | 23 | * Use JavaScript idioms 24 | * Include tests that fail without your code, and pass with it 25 | * Update the documentation, the surrounding one, examples elsewhere, guides, 26 | whatever is affected by your contribution 27 | 28 | And in case we didn't emphasize it enough: we love tests! 29 | 30 | ## Syntax 31 | 32 | Install [Editor Config](http://editorconfig.org) for your text editor, this will ensure that the correct formatting is applied for each file type. 33 | 34 | ## Development 35 | 36 | There are grunt tasks for helping with linting and testing the codebase. 37 | 38 | ### Test setup 39 | 40 | The tests are implemented using [BusterJS](http://busterjs.org) and the excellent [Sinon.JS](http://cjohansen.no/sinon/). All dependencies can be installed with `npm install` (assuming you already have nodejs installed). 41 | 42 | ### Linting 43 | 44 | ```bash 45 | $ grunt lint 46 | ``` 47 | 48 | ### Testing with PhantomJS 49 | 50 | If you have PhantomJS installed on your system, you can run the Buster tests by running 51 | 52 | ```bash 53 | $ grunt test 54 | ``` 55 | 56 | or by running 57 | ```bash 58 | $ npm test 59 | ``` 60 | -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/scripts/configure_apache_security: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ####################### 4 | # Remove SSL* settings from VirtualHost on install then leave alone on future 5 | # updates. Settings will be in apache-security.conf but if someone wants 6 | # to override those settings then they can do so in ssl.comnf after first install 7 | ####################### 8 | # RedHat 9 | if [ "$1" == "new" ]; then 10 | if [ -f /etc/httpd/conf.d/ssl.conf ]; then 11 | sed -i 's|^SSLProtocol\(.*\)|#SSLProtocol\1|g' /etc/httpd/conf.d/ssl.conf 12 | sed -i 's|^SSLCipherSuite\(.*\)|#SSLCipherSuite\1|g' /etc/httpd/conf.d/ssl.conf 13 | fi 14 | fi 15 | # Debian/Ubuntu 16 | for CONF in /etc/apache2/sites-available/{default-ssl,default-ssl.conf}; do 17 | if [ -f $CONF ]; then 18 | sed -i 's|^\([[:space:]]*\)SSLProtocol|\1#SSLProtocol|g' $CONF 19 | sed -i 's|^\([[:space:]]*\)SSLCipherSuite|\1#SSLCipherSuite|g' $CONF 20 | fi 21 | done 22 | ####################### 23 | # Get rid of default welcome page 24 | ####################### 25 | # RedHat 26 | if [ -f "/etc/httpd/conf.d/welcome.conf" ]; then 27 | mv -f /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak 28 | fi 29 | # Debian/Ubuntu 30 | for CONF in /etc/apache2/sites-available/{default,default-ssl,000-default.conf,default-ssl.conf}; do 31 | if [ -f $CONF ]; then 32 | sed -i 's/DocumentRoot \/var\/www\(\/html\)\?$/DocumentRoot \/var\/www\/perfsonar/' $CONF 33 | fi 34 | done 35 | 36 | ####################### 37 | # Enable mod_rewite for ssl 38 | ####################### 39 | # Debian/Ubuntu 40 | for CONF in /etc/apache2/sites-available/{default,default-ssl,000-default.conf,default-ssl.conf}; do 41 | if [ -f $CONF ]; then 42 | grep -q RewriteEngine $CONF 43 | if [ $? -ne 0 ]; then 44 | sed -i 's/^\([[:space:]]*\)<\/VirtualHost>/\1 RewriteEngine on\n\1 RewriteOptions Inherit\n\1<\/VirtualHost>/' $CONF 45 | fi 46 | fi 47 | done -------------------------------------------------------------------------------- /toolkit/perfsonar-toolkit/web-ng/root/js/datatables_plugin/DataTables-1.10.12/js/dataTables.bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | DataTables Bootstrap 3 integration 3 | ©2011-2015 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes, 6 | {sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,m,j,n){var o=new f.Api(a),s=a.oClasses,k=a.oLanguage.oPaginate,t=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")}; 7 | l=0;for(h=f.length;l",{"class":s.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("",{href:"#", 8 | "aria-controls":a.sTableId,"aria-label":t[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(u){}q(b(h).empty().html('