From a8c00d26535b56eeffd4b3b89a9b56509d1bd042 Mon Sep 17 00:00:00 2001 From: Nick Bebout Date: Fri, 19 Jun 2020 11:10:29 -0500 Subject: [PATCH 01/47] Remove special settings for proxy32 in inventory --- inventory/cloud | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inventory/cloud b/inventory/cloud index 3de08bd4c7..4278ce46bb 100644 --- a/inventory/cloud +++ b/inventory/cloud @@ -21,7 +21,7 @@ iddev.fedorainfracloud.org testdays.fedorainfracloud.org proxy30.fedoraproject.org proxy31.fedoraproject.org -proxy32.fedoraproject.org ansible_ssh_user=fedora ansible_become=yes +proxy32.fedoraproject.org copr-be.aws.fedoraproject.org copr-be-dev.aws.fedoraproject.org copr-dist-git.aws.fedoraproject.org From 9fbc9408a4fbcb18794e41b68f48804400c843bf Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Fri, 19 Jun 2020 12:44:37 -0400 Subject: [PATCH 02/47] add sysadmin-analysis to log01 --- inventory/host_vars/log01.iad2.fedoraproject.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inventory/host_vars/log01.iad2.fedoraproject.org b/inventory/host_vars/log01.iad2.fedoraproject.org index 086b718730..3d55160dda 100644 --- a/inventory/host_vars/log01.iad2.fedoraproject.org +++ b/inventory/host_vars/log01.iad2.fedoraproject.org @@ -20,6 +20,6 @@ lvm_size: 1048576 mem_size: 16384 num_cpus: 16 -fas_client_groups: fi-apprentice,sysadmin-veteran,sysadmin-logs,sysadmin-noc,sysadmin-atomic +fas_client_groups: fi-apprentice,sysadmin-veteran,sysadmin-logs,sysadmin-noc,sysadmin-atomic,sysadmin-analysis #host_backup_targets: ['/var/log'] From c08d6270c4c7def6c6a2eff3031182d205d3b528 Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Fri, 19 Jun 2020 12:50:19 -0400 Subject: [PATCH 03/47] remove packages not needed for data-analysis on log01 --- playbooks/groups/logserver.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/playbooks/groups/logserver.yml b/playbooks/groups/logserver.yml index 84d6098bcd..f2a11b6db7 100644 --- a/playbooks/groups/logserver.yml +++ b/playbooks/groups/logserver.yml @@ -91,10 +91,8 @@ - mod_ssl - rsync - emacs-nox - - emacs-git - git - bc - gnuplot - - htmldoc - mod_auth_gssapi From 44cedc6405a2f56739c3e099520784c854308400 Mon Sep 17 00:00:00 2001 From: Nick Bebout Date: Fri, 19 Jun 2020 11:50:27 -0500 Subject: [PATCH 04/47] This should be iad2 not {{ datacenter }} --- roles/mirrormanager/mirrorlist_proxy/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/mirrormanager/mirrorlist_proxy/tasks/main.yml b/roles/mirrormanager/mirrorlist_proxy/tasks/main.yml index aa4b54e20c..607f0d9348 100644 --- a/roles/mirrormanager/mirrorlist_proxy/tasks/main.yml +++ b/roles/mirrormanager/mirrorlist_proxy/tasks/main.yml @@ -226,7 +226,7 @@ command: "rsync -az --delete-delay --delay-updates --delete /var/lib/mirrormanager/mirrorlist_cache.proto /usr/share/mirrormanager2/country_continent.csv /var/lib/mirrormanager/global_netblocks.txt /var/lib/mirrormanager/i2_netblocks.txt {{ inventory_hostname }}:/srv/mirrorlist/data/mirrorlist1/" become: yes become_user: mirrormanager - delegate_to: "mm-backend01.{{ datacenter }}.fedoraproject.org" + delegate_to: "mm-backend01.iad2.fedoraproject.org" when: env == "production" and not mirrorlist_cache_status.stat.exists tags: - mirrorlist_proxy From 849bcf0514cb526418d59544171d02b2949ccf34 Mon Sep 17 00:00:00 2001 From: Nick Bebout Date: Fri, 19 Jun 2020 12:42:56 -0500 Subject: [PATCH 05/47] Create /srv/web --- roles/httpd/website/tasks/main.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/roles/httpd/website/tasks/main.yml b/roles/httpd/website/tasks/main.yml index 58265fd17b..8c3d9508c2 100644 --- a/roles/httpd/website/tasks/main.yml +++ b/roles/httpd/website/tasks/main.yml @@ -59,6 +59,20 @@ - httpd/website - robots +- name: Create /srv/web + file: > + dest=/srv/web + state=directory + owner=root + group=root + mode=0755 + notify: + - reload proxyhttpd + tags: + - httpd + - httpd/website + - robots + - name: And lastly, the robots.txt file template: > src={{item}} From 152b41541090c2dc319877d338ceb2936c398e8b Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Fri, 19 Jun 2020 15:21:51 -0400 Subject: [PATCH 06/47] allow proxy32 to get to infrastructure --- roles/batcave/files/allows | 1 + roles/httpd/proxy/templates/00-namevirtualhost.conf | 7 +++---- roles/mediawiki/templates/LocalSettings.php.fp.j2 | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/roles/batcave/files/allows b/roles/batcave/files/allows index cc80e03d19..045edf335b 100644 --- a/roles/batcave/files/allows +++ b/roles/batcave/files/allows @@ -156,6 +156,7 @@ require ip 8.43.85.87 # ec2 instances require ip 13.250.126.156 require ip 13.125.120.8 +require ip 18.185.136.17 # # We put this at the end because it fails for hosts with no reverse dns diff --git a/roles/httpd/proxy/templates/00-namevirtualhost.conf b/roles/httpd/proxy/templates/00-namevirtualhost.conf index 50e2139c51..a78af2b7fc 100644 --- a/roles/httpd/proxy/templates/00-namevirtualhost.conf +++ b/roles/httpd/proxy/templates/00-namevirtualhost.conf @@ -88,7 +88,6 @@ NameVirtualHost [2406:da18:39f:a01:a89d:5e25:1aab:8a52]:80 NameVirtualHost [2406:da18:39f:a01:a89d:5e25:1aab:8a52]:443 # proxy31 -NameVirtualHost 13.125.120.8:80 -NameVirtualHost 13.125.120.8:443 -NameVirtualHost [2406:da12:0:c10:92a3:5a6e:221b:f9eb]:80 -NameVirtualHost [2406:da12:0:c10:92a3:5a6e:221b:f9eb]:443 +NameVirtualHost 18.185.136.17:80 +NameVirtualHost 18.185.136.17:443 + diff --git a/roles/mediawiki/templates/LocalSettings.php.fp.j2 b/roles/mediawiki/templates/LocalSettings.php.fp.j2 index 654cb997c5..a33707a862 100644 --- a/roles/mediawiki/templates/LocalSettings.php.fp.j2 +++ b/roles/mediawiki/templates/LocalSettings.php.fp.j2 @@ -398,6 +398,10 @@ $wgSquidServersNoPurge = array( "192.168.1.191", "2406:da12:0:c10:92a3:5a6e:221b:f9eb", + # proxy32 + "18.185.136.17", + "192.168.1.192", + {% endif %} ); # This setting is used to send PURGE requests to varnish on reverse proxies upon page changes From 8a3e99aeffdddfe04c04108d6f5187d98c65eaec Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Thu, 28 May 2020 13:53:37 -0400 Subject: [PATCH 07/47] robosignatory: coreos: only set key in config for staging Upstream robosignatory was changed to auto-detect the key to use for signing for Fedora CoreOS builds in the following PR: https://pagure.io/robosignatory/pull-request/46# Let's switch to only setting the key in the config for the staging environment so that we can start using the auto-detection. Signed-off-by: Dusty Mabe --- roles/robosignatory/templates/robosignatory.toml.j2 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/roles/robosignatory/templates/robosignatory.toml.j2 b/roles/robosignatory/templates/robosignatory.toml.j2 index b5d8e66d8c..05c53d15e5 100644 --- a/roles/robosignatory/templates/robosignatory.toml.j2 +++ b/roles/robosignatory/templates/robosignatory.toml.j2 @@ -504,7 +504,11 @@ handlers = ["console"] [consumer_config.coreos] bucket = "fcos-builds" - key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + {% if env == "staging" %} + # Set key to 'testkey' because in staging we only have one key and + # detecting which key to use based on FCOS version numbers won't work. + key = "testkey" + {% endif %} [consumer_config.coreos.aws] access_key = "{{ fcos_builds_releng_aws_access_id }}" From 157be3d3422492c490bef63fc0bb773b4d26919a Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Fri, 19 Jun 2020 14:41:50 -0700 Subject: [PATCH 08/47] clevis: fix template to handle eth0/eno1 cases Signed-off-by: Kevin Fenzi --- roles/clevis/templates/99-clevis-fix.conf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/roles/clevis/templates/99-clevis-fix.conf b/roles/clevis/templates/99-clevis-fix.conf index c7316fcdf6..e84059cf93 100644 --- a/roles/clevis/templates/99-clevis-fix.conf +++ b/roles/clevis/templates/99-clevis-fix.conf @@ -1,5 +1,11 @@ # DHCP for talking to tang server +{% if br0_ip is defined %} kernel_cmdline="ip={{ br0_ip }}::{{ br0_gw }}:{{ br0_nm }}::{{ br0_dev }}:none:{{ dns }}" +{% elif eth0_ip is defined %} +kernel_cmdline="ip={{ eth0_ip }}::{{ gw }}:{{ nm }}::eth0:none:{{ dns }}" +{% elif eno1_ip is defined %} +kernel_cmdline="ip={{ eno1_ip }}::{{ gw }}:{{ nm }}::eno1:none:{{ dns }}" +{% endif %} # Don't create /etc/sysconfig/network-scripts/ifcfg-* files during boot omit_dracutmodules+="ifcfg" From c502144e62940f276501f0eff8854bee262773b2 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Fri, 19 Jun 2020 14:55:10 -0700 Subject: [PATCH 09/47] clevis: adjust tasks to only run on the interface that exists Signed-off-by: Kevin Fenzi --- roles/clevis/tasks/main.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/roles/clevis/tasks/main.yml b/roles/clevis/tasks/main.yml index 88c34fd0e5..71c97d5709 100644 --- a/roles/clevis/tasks/main.yml +++ b/roles/clevis/tasks/main.yml @@ -15,9 +15,26 @@ tags: - clevis -- name: enable the systemd unit to wipe dracut networking +- name: enable the systemd unit to wipe dracut networking (br0) systemd: name: flush-dracut-network@{{ br0_dev }} enabled: true + when: br0_dev is defined + tags: + - clevis + +- name: enable the systemd unit to wipe dracut networking (eno1) + systemd: + name: flush-dracut-network@eno1 + enabled: true + when: eno1_ip is defined + tags: + - clevis + +- name: enable the systemd unit to wipe dracut networking (eth0) + systemd: + name: flush-dracut-network@eth0 + enabled: true + when: eth0_ip is defined tags: - clevis From 1ed99b4e05532c4e076443e2000c43e29e9382d5 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Fri, 19 Jun 2020 15:05:08 -0700 Subject: [PATCH 10/47] bkernel01: set netmask so clevis role is happy Signed-off-by: Kevin Fenzi --- inventory/host_vars/bkernel01.iad2.fedoraproject.org | 1 + 1 file changed, 1 insertion(+) diff --git a/inventory/host_vars/bkernel01.iad2.fedoraproject.org b/inventory/host_vars/bkernel01.iad2.fedoraproject.org index eb6ee310cd..fc7df1fd6c 100644 --- a/inventory/host_vars/bkernel01.iad2.fedoraproject.org +++ b/inventory/host_vars/bkernel01.iad2.fedoraproject.org @@ -1,4 +1,5 @@ --- +nm: 255.255.255.0 gw: 10.3.169.254 eth0_ip: 10.3.169.29 From 8a6a5840c722d2623840687664d67286eb477918 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Fri, 19 Jun 2020 15:26:14 -0700 Subject: [PATCH 11/47] bkernel01: also define dns so clevis works Signed-off-by: Kevin Fenzi --- inventory/host_vars/bkernel01.iad2.fedoraproject.org | 1 + 1 file changed, 1 insertion(+) diff --git a/inventory/host_vars/bkernel01.iad2.fedoraproject.org b/inventory/host_vars/bkernel01.iad2.fedoraproject.org index fc7df1fd6c..ef384c0fda 100644 --- a/inventory/host_vars/bkernel01.iad2.fedoraproject.org +++ b/inventory/host_vars/bkernel01.iad2.fedoraproject.org @@ -2,6 +2,7 @@ nm: 255.255.255.0 gw: 10.3.169.254 eth0_ip: 10.3.169.29 +dns: 10.3.163.33 datacenter: iad2 resolvconf: "resolv.conf/iad2" From d740976883342ef7eb18fa9490be1fbe9e07602a Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sat, 20 Jun 2020 08:36:01 -0400 Subject: [PATCH 12/47] the platform option causes problems for EL6 and EL7 --- roles/batcave/files/rhel6-sync | 2 +- roles/batcave/files/rhel7-sync | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/batcave/files/rhel6-sync b/roles/batcave/files/rhel6-sync index 649dc0629c..792609b2db 100644 --- a/roles/batcave/files/rhel6-sync +++ b/roles/batcave/files/rhel6-sync @@ -5,7 +5,7 @@ RHEL6CACHEDIR=/var/tmp/reposync-rhel6 cd $RHEL6SYNCDIR -DNFOPTS='--download-metadata -m --setopt=module_platform_id="platform:el6" -n' +DNFOPTS='--download-metadata -m -n' mkdir -p ${RHEL6CACHEDIR} diff --git a/roles/batcave/files/rhel7-sync b/roles/batcave/files/rhel7-sync index 899f5b635a..e04d32da97 100644 --- a/roles/batcave/files/rhel7-sync +++ b/roles/batcave/files/rhel7-sync @@ -5,7 +5,7 @@ SYNCDIR=/var/cache/reposync/ YUMDIR=/var/tmp/reposync-rhel7/ ## Need to download the metadata and the modular data -DNFOPTS='--download-metadata -m --setopt=module_platform_id="platform:el7"' +DNFOPTS='--download-metadata -m ' # s390 isnt working yet ARCHES="ppc64le s390x x86_64" From 9767a916f7ef3416647da390d75cb0a14946927d Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sat, 20 Jun 2020 10:53:41 -0400 Subject: [PATCH 13/47] DHCP rework Take mgmt interfaces from PHX2 and put them in IAD2. This will allow systems to get their proper ips without crowding out the dhcp range. --- .../dhcpd.conf.noc01.iad2.fedoraproject.org | 165 ++++++++++++++++-- .../dhcpd.conf.noc01.phx2.fedoraproject.org | 117 +------------ 2 files changed, 147 insertions(+), 135 deletions(-) diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org index 577d572c66..448d4d6781 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org @@ -595,19 +595,6 @@ host bvmhost-a64-04 { option subnet-mask 255.255.255.0; } -host bvmhost-a64-04-mgmt { - hardware ethernet E8:6A:64:39:19:4F ; - fixed-address 10.3.160.104; - option routers 10.3.160.254; - option subnet-mask 255.255.255.0; -} - -host bhwhost-a64-02-mgmt { - hardware ethernet AA:31:8D:3E:31:6F ; - fixed-address 10.3.160.244; - option routers 10.3.160.254; - option subnet-mask 255.0.0.0; -} host qvmhost-x86-01 { @@ -644,12 +631,6 @@ host openqa01-a64-worker01 { option subnet-mask 255.255.255.0; } -host centos-mgmt01 { - hardware ethernet 4c:d9:8f:bc:5a:ea; - fixed-address 10.3.160.69; - option host-name "centos01-mgmt"; -} - host bvmhost-p09-01 { hardware ethernet ac:1f:6b:59:70:ff; fixed-address 10.3.171.15; @@ -676,3 +657,149 @@ host bvmhost-p08-01 { option subnet-mask 255.255.255.0; # filename "boot/grub2/powerpc-ieee1275/core.elf"; } + + +# +# All MGMT hosts go below here +# + # Dell FX +host dell-fx01-mgmt { + hardware ethernet f4:8e:38:c1:3f:b6; + fixed-address 10.3.160.11; + option host-name "dell-fx01"; +} +host dell-fx01-fc01-mgmt { + hardware ethernet 14:9E:CF:61:9E:60; + fixed-address 10.3.160.12; + option host-name "dell-fx01-fc01"; +} +host dell-fx01-fc02-mgmt { + hardware ethernet 14:9E:CF:61:9F:30; + fixed-address 10.3.160.13; + option host-name "dell-fx01-fc02"; +} +host dell-fx01-fc03-mgmt { + hardware ethernet 14:9E:CF:61:A4:E9; + fixed-address 10.3.160.14; + option host-name "dell-fx01-fc03"; +} +host dell-fx01-fc04-mgmt { + hardware ethernet 14:9E:CF:61:A4:EA; + fixed-address 10.3.160.15; + option host-name "dell-fx01-fc04"; +} +host dell-fx01-fc05-mgmt { + hardware ethernet 14:9E:CF:61:9E:7A; + fixed-address 10.3.160.16; + option host-name "dell-fx01-fc05"; +} +host dell-fx01-fc06-mgmt { + hardware ethernet 14:9E:CF:61:A0:9E; + fixed-address 10.3.160.17; + option host-name "dell-fx01-fc06"; +} +host dell-fx01-fc07-mgmt { + hardware ethernet 14:9E:CF:61:A6:57; + fixed-address 10.3.160.18; + option host-name "dell-fx01-fc07"; +} +host dell-fx01-fc08-mgmt { + hardware ethernet 14:9E:CF:61:A6:58; + fixed-address 10.3.160.19; + option host-name "dell-fx01-08"; +} +host dell-fx02-mgmt { + hardware ethernet f4:8e:38:c1:48:c6; + fixed-address 10.3.160.20; + option host-name "dell-fx02"; +} +host dell-fx02-fc01-mgmt { + hardware ethernet F8:CA:B8:F7:26:E0; + fixed-address 10.3.160.21; + option host-name "dell-fx02-fc01"; +} +host dell-fx02-fc02-mgmt { + hardware ethernet F8:CA:B8:F7:27:B0; + fixed-address 10.3.160.22; + option host-name "dell-fx02-fc02"; +} +host dell-fx02-fc03-mgmt { + hardware ethernet F8:CA:B8:F7:2D:69; + fixed-address 10.3.160.23; + option host-name "dell-fx02-fc03"; +} +host dell-fx02-fc04-mgmt { + hardware ethernet F8:CA:B8:F7:2D:6A; + fixed-address 10.3.160.24; + option host-name "dell-fx02-fc04"; +} +host dell-fx02-fc05-mgmt { + hardware ethernet F8:CA:B8:F7:26:FA; + fixed-address 10.3.160.25; + option host-name "dell-fx02-fc05"; +} +host dell-fx02-fc06-mgmt { + hardware ethernet F8:CA:B8:F7:29:1E; + fixed-address 10.3.160.26; + option host-name "dell-fx02-fc06"; +} +host dell-fx02-fc07-mgmt { + hardware ethernet F8:CA:B8:F7:2E:D7; + fixed-address 10.3.160.27; + option host-name "dell-fx02-fc07"; +} +host dell-fx02-fc08-mgmt { + hardware ethernet F8:CA:B8:F7:2E:D8; + fixed-address 10.3.160.28; + option host-name "dell-fx02-08"; +} + +host bvmhost-p08-03-mgmt { + hardware ethernet 40:F2:E9:A5:47:60; + fixed-address 10.3.160.121; + option host-name "bvmhost-p08-03"; +} + +host bvmhost-p08-04-mgmt { + hardware ethernet 98:BE:94:4B:96:10; + fixed-address 10.3.160.122; + option host-name "bvmhost-p08-04"; +} + +host bvmhost-p08-05-mgmt { + hardware ethernet 98:BE:94:4B:94:C4; + fixed-address 10.3.160.123; + option host-name "bvmhost-p08-05"; +} + +host bvmhost-p09-03-mgmt { + hardware ethernet ac:1f:6b:5c:03:9d; + fixed-address 10.3.160.128; + option host-name "bvmhost-p09-03"; +} +host bvmhost-p09-04-mgmt { + hardware ethernet ac:1f:6b:5c:03:94; + fixed-address 10.3.160.129; + option host-name "bvmhost-p09-04"; +} + + +host bvmhost-a64-04-mgmt { + hardware ethernet E8:6A:64:39:19:4F ; + fixed-address 10.3.160.104; + option routers 10.3.160.254; + option subnet-mask 255.255.255.0; +} + +host bhwhost-a64-02-mgmt { + hardware ethernet AA:31:8D:3E:31:6F ; + fixed-address 10.3.160.244; + option routers 10.3.160.254; + option subnet-mask 255.0.0.0; +} + +host centos-mgmt01 { + hardware ethernet 4c:d9:8f:bc:5a:ea; + fixed-address 10.3.160.69; + option host-name "centos01-mgmt"; +} diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org index 9034a79294..6d737bdb57 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org @@ -942,114 +942,8 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.41; option host-name "bvmhost01-mgmt"; } - # Dell FX - host dell-fx01-mgmt { - hardware ethernet f4:8e:38:c1:3f:b6; - fixed-address 10.5.130.42; - option host-name "dell-fx01"; - } - host dell-fx02-mgmt { - hardware ethernet f4:8e:38:c1:48:c6; - fixed-address 10.5.130.43; - option host-name "dell-fx02"; - } - host dell-fx01-01-mgmt { - hardware ethernet 14:9E:CF:61:9E:60; - fixed-address 10.5.130.44; - option host-name "dell-fx01-01"; - } - host dell-fx01-02-mgmt { - hardware ethernet 14:9E:CF:61:9F:30; - fixed-address 10.5.130.45; - option host-name "dell-fx01-02"; - } - host dell-fx01-03-mgmt { - hardware ethernet 14:9E:CF:61:A4:E9; - fixed-address 10.5.130.46; - option host-name "dell-fx01-03"; - } - host dell-fx01-04-mgmt { - hardware ethernet 14:9E:CF:61:A4:EA; - fixed-address 10.5.130.47; - option host-name "dell-fx01-04"; - } - host dell-fx01-05-mgmt { - hardware ethernet 14:9E:CF:61:9E:7A; - fixed-address 10.5.130.48; - option host-name "dell-fx01-05"; - } - host dell-fx01-06-mgmt { - hardware ethernet 14:9E:CF:61:A0:9E; - fixed-address 10.5.130.49; - option host-name "dell-fx01-06"; - } - host ppc08-01 { - hardware ethernet 40:F2:E9:A5:47:60; - fixed-address 10.5.130.50; - option host-name "ppc08-01"; - } - host ppc08-02 { - hardware ethernet 98:BE:94:4B:96:10; - fixed-address 10.5.130.51; - option host-name "ppc08-02"; - } - host ppc08-03 { - hardware ethernet 98:BE:94:4B:94:C4; - fixed-address 10.5.130.52; - option host-name "ppc08-03"; - } - host dell-fx01-07-mgmt { - hardware ethernet 14:9E:CF:61:A6:57; - fixed-address 10.5.130.54; - option host-name "dell-fx01-07"; - } - host dell-fx01-08-mgmt { - hardware ethernet 14:9E:CF:61:A6:58; - fixed-address 10.5.130.55; - option host-name "dell-fx01-08"; - } - host dell-fx02-01-mgmt { - hardware ethernet F8:CA:B8:F7:26:E0; - fixed-address 10.5.130.56; - option host-name "dell-fx02-01"; - } - host dell-fx02-02-mgmt { - hardware ethernet F8:CA:B8:F7:27:B0; - fixed-address 10.5.130.57; - option host-name "dell-fx02-02"; - } - host dell-fx02-03-mgmt { - hardware ethernet F8:CA:B8:F7:2D:69; - fixed-address 10.5.130.58; - option host-name "dell-fx02-03"; - } - host dell-fx02-04-mgmt { - hardware ethernet F8:CA:B8:F7:2D:6A; - fixed-address 10.5.130.59; - option host-name "dell-fx02-04"; - } - host dell-fx02-05-mgmt { - hardware ethernet F8:CA:B8:F7:26:FA; - fixed-address 10.5.130.60; - option host-name "dell-fx02-05"; - } - host dell-fx02-06-mgmt { - hardware ethernet F8:CA:B8:F7:29:1E; - fixed-address 10.5.130.61; - option host-name "dell-fx02-06"; - } - host dell-fx02-07-mgmt { - hardware ethernet F8:CA:B8:F7:2E:D7; - fixed-address 10.5.130.62; - option host-name "dell-fx02-07"; - } - host dell-fx02-08-mgmt { - hardware ethernet F8:CA:B8:F7:2E:D8; - fixed-address 10.5.130.63; - option host-name "dell-fx02-08"; - } host dell-fxqa01-mgmt { hardware ethernet F4:8E:38:C6:3D:8C; fixed-address 10.5.130.64; @@ -1100,16 +994,7 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.104; option host-name "cavium02"; } - host ppc9-01-mgmt { - hardware ethernet ac:1f:6b:5c:03:9d; - fixed-address 10.5.130.105; - option host-name "ppc9-01"; - } - host ppc9-02-mgmt { - hardware ethernet ac:1f:6b:5c:03:94; - fixed-address 10.5.130.106; - option host-name "ppc9-02"; - } + host kernel03-mgmt { hardware ethernet d0:94:66:7c:b2:dd; fixed-address 10.5.130.107; From e0f1c7c0248ebfde6b32d2b74a72c395b0449364 Mon Sep 17 00:00:00 2001 From: Nils Philippsen Date: Wed, 17 Jun 2020 16:15:12 +0200 Subject: [PATCH 14/47] Pagure: hotfix missing JS library Related to: - https://pagure.io/pagure/issue/4891 - https://pagure.io/pagure/pull-request/4892 Signed-off-by: Nils Philippsen --- .../frontend/files/hotfix/d3/d3.v3.min.js | 5 ++++ roles/pagure/frontend/tasks/main.yml | 29 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 roles/pagure/frontend/files/hotfix/d3/d3.v3.min.js diff --git a/roles/pagure/frontend/files/hotfix/d3/d3.v3.min.js b/roles/pagure/frontend/files/hotfix/d3/d3.v3.min.js new file mode 100644 index 0000000000..166487309a --- /dev/null +++ b/roles/pagure/frontend/files/hotfix/d3/d3.v3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/roles/pagure/frontend/tasks/main.yml b/roles/pagure/frontend/tasks/main.yml index ab2aa4b227..49571edaae 100644 --- a/roles/pagure/frontend/tasks/main.yml +++ b/roles/pagure/frontend/tasks/main.yml @@ -596,3 +596,32 @@ tags: - pagure - letsencrypt + +- name: Hotfix missing JS lib -- find out where the file should be + shell: + cmd: rpm -ql pagure | grep 'pagure/static/vendor$' | head -n 1 + warn: no # package, dnf, yum can't do this + register: pagure_hotfix_vendorlibpath + changed_when: False + failed_when: pagure_hotfix_vendorlibpath.rc != 0 + tags: + - pagure + - hotfix + +- name: Hotfix missing JS lib -- ensure directory exists + file: + path: "{{ pagure_hotfix_vendorlibpath.stdout }}/d3" + state: directory + mode: u+rwx,g+rx,o+rx-w + tags: + - pagure + - hotfix + +- name: Hotfix missing JS lib -- ensure file exists + copy: + force: no # don't overwrite packaged files + src: hotfix/d3/d3.v3.min.js + dest: "{{ pagure_hotfix_vendorlibpath.stdout }}/d3/d3.v3.min.js" + tags: + - pagure + - hotfix From 952aef9959175b97ffb40afb4a5610f8d9af283d Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sat, 20 Jun 2020 13:45:44 -0400 Subject: [PATCH 15/47] put in dhcpd for cavium mgmt ports --- .../files/dhcpd.conf.noc01.iad2.fedoraproject.org | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org index 448d4d6781..67ed714ab4 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org @@ -754,6 +754,18 @@ host dell-fx02-fc08-mgmt { option host-name "dell-fx02-08"; } +host cavium01-mgmt { + hardware ethernet e0:d5:5e:ae:59:8d; + fixed-address 10.3.160.29; + option host-name "cavium01"; +} +host cavium02-mgmt { + hardware ethernet e0:d5:5e:ae:53:e1; + fixed-address 10.3.160.30; + option host-name "cavium02"; +} + + host bvmhost-p08-03-mgmt { hardware ethernet 40:F2:E9:A5:47:60; fixed-address 10.3.160.121; From c374cbe2ef5385a71365cfd332b1c819db3b906f Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sat, 20 Jun 2020 14:02:07 -0400 Subject: [PATCH 16/47] fix up more ips for dhcpd --- .../dhcpd.conf.noc01.iad2.fedoraproject.org | 40 +++++++++++++++++-- .../dhcpd.conf.noc01.phx2.fedoraproject.org | 30 -------------- 2 files changed, 37 insertions(+), 33 deletions(-) diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org index 67ed714ab4..d61d9dc2e8 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org @@ -795,19 +795,53 @@ host bvmhost-p09-04-mgmt { option host-name "bvmhost-p09-04"; } - host bvmhost-a64-04-mgmt { hardware ethernet E8:6A:64:39:19:4F ; fixed-address 10.3.160.104; option routers 10.3.160.254; - option subnet-mask 255.255.255.0; } +host bvmhost-a64-05-mgmt { + hardware ethernet E8:6A:64:39:19:68; + fixed-address 10.3.160.105; + option host-name "bvmhost-aarch64-05"; +} + +host bvmhost-a64-06-mgmt { + hardware ethernet E8:6A:64:39:18:60; + fixed-address 10.3.160.106; + option host-name "bvmhost-aarch64-06"; +} +host bvmhost-a64-07-mgmt { + hardware ethernet E8:6A:64:39:19:35; + fixed-address 10.3.160.107; + option host-name "bvmhost-aarch64-07"; +} +host openqa-a64-02-mgmt { + hardware ethernet E8:6A:64:97:6B:41; + fixed-address 10.3.160.142; + option host-name "openqa-aarch64-01"; +} +host openqa-a64-03-mgmt { + hardware ethernet E8:6A:64:97:6B:7A; + fixed-address 10.3.160.143; + option host-name "openqa-aarch64-03"; +} + + + +host buildvmhost-a64-osbs01-mgmt { + hardware ethernet E8:6A:64:39:18:B3; + fixed-address 10.3.160.120; + option host-name "bvmhost-a64-osbs01-01"; +} + + host bhwhost-a64-02-mgmt { hardware ethernet AA:31:8D:3E:31:6F ; fixed-address 10.3.160.244; option routers 10.3.160.254; - option subnet-mask 255.0.0.0; + option subnet-mask 255.255.255.0; } host centos-mgmt01 { diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org index 6d737bdb57..abf6c4be79 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org @@ -1080,21 +1080,11 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.131; option host-name "buildvmhost-aarch64-11"; } - host buildvmhost-a64-12-mgmt { - hardware ethernet E8:6A:64:39:19:68; - fixed-address 10.5.130.132; - option host-name "buildvmhost-aarch64-12"; - } host buildvmhost-a64-13-mgmt { hardware ethernet E8:6A:64:39:18:95; fixed-address 10.5.130.133; option host-name "buildvmhost-aarch64-13"; } - host buildvmhost-a64-14-mgmt { - hardware ethernet E8:6A:64:39:18:60; - fixed-address 10.5.130.134; - option host-name "buildvmhost-aarch64-14"; - } host buildvmhost-a64-15-mgmt { hardware ethernet E8:6A:64:39:19:69; fixed-address 10.5.130.135; @@ -1105,36 +1095,16 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.136; option host-name "buildvmhost-aarch64-16"; } - host buildvmhost-a64-osbs01-mgmt { - hardware ethernet E8:6A:64:39:18:B3; - fixed-address 10.5.130.137; - option host-name "buildvmhost-a64-osbs01-01"; - } host buildvmhost-a64-17-mgmt { hardware ethernet E8:6A:64:39:18:63; fixed-address 10.5.130.138; option host-name "buildvmhost-aarch64-17"; } - host buildvmhost-a64-18-mgmt { - hardware ethernet E8:6A:64:39:19:35; - fixed-address 10.5.130.139; - option host-name "buildvmhost-aarch64-18"; - } host buildvmhost-a64-19-mgmt { hardware ethernet E8:6A:64:97:6B:E0; fixed-address 10.5.130.140; option host-name "buildvmhost-aarch64-19"; } - host openqa-a64-03-mgmt { - hardware ethernet E8:6A:64:97:6B:7A; - fixed-address 10.5.130.141; - option host-name "openqa-aarch64-03"; - } - host openqa-a64-01-mgmt { - hardware ethernet E8:6A:64:97:6B:41; - fixed-address 10.5.130.142; - option host-name "openqa-aarch64-01"; - } host openqa-a64-02-mgmt { hardware ethernet E8:6A:64:97:6B:49; fixed-address 10.5.130.143; From f8043f6c5a683d085975d7926f23c0782abd3f82 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sat, 20 Jun 2020 11:55:13 -0700 Subject: [PATCH 17/47] pagure01: For some reason workers started looking for db-pagure I have no idea why they are, perhaps this is an upstream default? Signed-off-by: Kevin Fenzi --- roles/hosts/files/pagure01.fedoraproject.org-hosts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/hosts/files/pagure01.fedoraproject.org-hosts b/roles/hosts/files/pagure01.fedoraproject.org-hosts index a96ecf9c68..bef5a55a1f 100644 --- a/roles/hosts/files/pagure01.fedoraproject.org-hosts +++ b/roles/hosts/files/pagure01.fedoraproject.org-hosts @@ -1,3 +1,3 @@ 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 -127.0.0.1 pagure.io +127.0.0.1 pagure.io db-pagure From ded69ad75777b23226706a2d1ab41e1bd348c49f Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sat, 20 Jun 2020 11:55:45 -0700 Subject: [PATCH 18/47] releng: create pungi user in rabbitmq also, clean up toml file some for things we don't need. Signed-off-by: Kevin Fenzi --- playbooks/groups/releng-compose.yml | 4 ++++ .../releng/templates/fedora-messaging.toml.j2 | 19 ------------------- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/playbooks/groups/releng-compose.yml b/playbooks/groups/releng-compose.yml index cd40e1b25c..f9e2f5c99c 100644 --- a/playbooks/groups/releng-compose.yml +++ b/playbooks/groups/releng-compose.yml @@ -119,6 +119,10 @@ when: "'releng_stg' in group_names" - fedmsg/base + + - role: rabbit/user + username: "pungi{{ env_suffix }}" + - role: releng tags: - releng diff --git a/roles/releng/templates/fedora-messaging.toml.j2 b/roles/releng/templates/fedora-messaging.toml.j2 index 0e3854df21..9d936e7781 100644 --- a/roles/releng/templates/fedora-messaging.toml.j2 +++ b/roles/releng/templates/fedora-messaging.toml.j2 @@ -16,22 +16,3 @@ certfile = "/etc/pki/fedora-messaging/rabbitmq-pungi.crt" [client_properties] app = "pungi" - -[qos] -prefetch_size = 0 -prefetch_count = 25 - -[log_config] -version = 1 -disable_existing_loggers = true -[log_config.formatters.simple] -format = "%(asctime)s [%(name)s %(levelname)s] %(message)s" -datefmt = "%Y-%m-%d %H:%M:%S" -[log_config.handlers.console] -class = "logging.StreamHandler" -formatter = "simple" -stream = "ext://sys.stdout" -[log_config.loggers.fedora_messaging] -level = "INFO" -propagate = false -handlers = ["console"] From 911e34e523c078499cf901708402e475e0677ea1 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sat, 20 Jun 2020 12:01:48 -0700 Subject: [PATCH 19/47] README.md: some whitespace change Signed-off-by: Kevin Fenzi --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 488891e039..fb6c12cfd2 100644 --- a/README.md +++ b/README.md @@ -86,3 +86,4 @@ When a playbook or change is checked into ansible you should assume that it could be run at ***ANY TIME***. Always make sure the checked in state is the desired state. Always test changes when they land so they don't surprise you later. + From 78154503fe2170938873199971b99bc2f7a963e4 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sat, 20 Jun 2020 12:24:22 -0700 Subject: [PATCH 20/47] datagrepper: try adding some more threads here to make datagrepper more responsive Signed-off-by: Kevin Fenzi --- roles/datagrepper/templates/datagrepper-app.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/datagrepper/templates/datagrepper-app.conf b/roles/datagrepper/templates/datagrepper-app.conf index 86f3ace6fa..4bc3782680 100644 --- a/roles/datagrepper/templates/datagrepper-app.conf +++ b/roles/datagrepper/templates/datagrepper-app.conf @@ -23,7 +23,7 @@ AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text # Static resources for the datagrepper app. Alias /datagrepper/static/ /usr/lib/python2.7/site-packages/datagrepper/static/ -WSGIDaemonProcess datagrepper user=fedmsg group=fedmsg maximum-requests=50000 display-name=datagrepper processes=20 threads=1 inactivity-timeout=900 +WSGIDaemonProcess datagrepper user=fedmsg group=fedmsg maximum-requests=50000 display-name=datagrepper processes=20 threads=5 inactivity-timeout=900 WSGISocketPrefix run/wsgi WSGIRestrictStdout Off WSGIRestrictSignal Off From a92253601dd77c8b469bb58f43db4d43c3eb27c6 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sat, 20 Jun 2020 12:25:30 -0700 Subject: [PATCH 21/47] openqa: drop openvpn role In phx2 we used a vpn to openqa01 and all the proxies reached it on that. In IAD2 that network is more isolated and cannot connect to the vpn, so we just access it from the IAD2 proxies. If this turns out to be a problem later we can adjust the RHIT firewall, re-enable vpn and re-add it to all the proxies. Signed-off-by: Kevin Fenzi --- playbooks/groups/openqa.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/playbooks/groups/openqa.yml b/playbooks/groups/openqa.yml index a8f8eadf7d..f83e34eff5 100644 --- a/playbooks/groups/openqa.yml +++ b/playbooks/groups/openqa.yml @@ -21,8 +21,6 @@ - { role: fas_client, tags: ['fas_client'] } - { role: collectd/base, tags: ['collectd_base'] } - { role: sudo, tags: ['sudo'] } - - { role: openvpn/client, - when: deployment_type == "prod" and datacenter == 'iad2', tags: ['openvpn_client'] } - apache tasks: From 73f8fe76ad7a89f31f7af8af1c33e54be00d4c5a Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sat, 20 Jun 2020 13:16:09 -0700 Subject: [PATCH 22/47] proxies: drop vpn workaround for registries The iad2 registries should be reachable now via the normal path, so we can drop this workaround. Should make things faster too. Signed-off-by: Kevin Fenzi --- roles/hosts/files/proxy01.iad2.fedoraproject.org-hosts | 3 --- roles/hosts/files/proxy10.iad2.fedoraproject.org-hosts | 3 --- roles/hosts/files/proxy101.iad2.fedoraproject.org-hosts | 3 --- roles/hosts/files/proxy110.iad2.fedoraproject.org-hosts | 3 --- 4 files changed, 12 deletions(-) diff --git a/roles/hosts/files/proxy01.iad2.fedoraproject.org-hosts b/roles/hosts/files/proxy01.iad2.fedoraproject.org-hosts index 4b15accb18..849c10d456 100644 --- a/roles/hosts/files/proxy01.iad2.fedoraproject.org-hosts +++ b/roles/hosts/files/proxy01.iad2.fedoraproject.org-hosts @@ -1,5 +1,2 @@ 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 -192.168.1.93 oci-candidate-registry01 -192.168.1.168 oci-registry01 -192.168.1.169 oci-registry02 diff --git a/roles/hosts/files/proxy10.iad2.fedoraproject.org-hosts b/roles/hosts/files/proxy10.iad2.fedoraproject.org-hosts index 4b15accb18..849c10d456 100644 --- a/roles/hosts/files/proxy10.iad2.fedoraproject.org-hosts +++ b/roles/hosts/files/proxy10.iad2.fedoraproject.org-hosts @@ -1,5 +1,2 @@ 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 -192.168.1.93 oci-candidate-registry01 -192.168.1.168 oci-registry01 -192.168.1.169 oci-registry02 diff --git a/roles/hosts/files/proxy101.iad2.fedoraproject.org-hosts b/roles/hosts/files/proxy101.iad2.fedoraproject.org-hosts index 4b15accb18..849c10d456 100644 --- a/roles/hosts/files/proxy101.iad2.fedoraproject.org-hosts +++ b/roles/hosts/files/proxy101.iad2.fedoraproject.org-hosts @@ -1,5 +1,2 @@ 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 -192.168.1.93 oci-candidate-registry01 -192.168.1.168 oci-registry01 -192.168.1.169 oci-registry02 diff --git a/roles/hosts/files/proxy110.iad2.fedoraproject.org-hosts b/roles/hosts/files/proxy110.iad2.fedoraproject.org-hosts index 4b15accb18..849c10d456 100644 --- a/roles/hosts/files/proxy110.iad2.fedoraproject.org-hosts +++ b/roles/hosts/files/proxy110.iad2.fedoraproject.org-hosts @@ -1,5 +1,2 @@ 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 -192.168.1.93 oci-candidate-registry01 -192.168.1.168 oci-registry01 -192.168.1.169 oci-registry02 From c1cbba10e3c42bf85fbc2cb709d1b351e98e3643 Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sat, 20 Jun 2020 19:25:53 -0400 Subject: [PATCH 23/47] add another emag to the fire --- inventory/builders | 1 + inventory/hardware | 2 ++ inventory/inventory | 1 + 3 files changed, 4 insertions(+) diff --git a/inventory/builders b/inventory/builders index af892998ed..14be9c3a3c 100644 --- a/inventory/builders +++ b/inventory/builders @@ -133,6 +133,7 @@ bvmhost-a64-02.iad2.fedoraproject.org bvmhost-a64-03.iad2.fedoraproject.org bvmhost-a64-04.iad2.fedoraproject.org bvmhost-a64-05.iad2.fedoraproject.org +bvmhost-a64-06.iad2.fedoraproject.org bvmhost-p09-01.iad2.fedoraproject.org bvmhost-p09-02.iad2.fedoraproject.org diff --git a/inventory/hardware b/inventory/hardware index 816cfaa82b..2cf62bce52 100644 --- a/inventory/hardware +++ b/inventory/hardware @@ -109,6 +109,8 @@ bvmhost-a64-01.iad2.fedoraproject.org bvmhost-a64-02.iad2.fedoraproject.org bvmhost-a64-03.iad2.fedoraproject.org bvmhost-a64-04.iad2.fedoraproject.org +bvmhost-a64-05.iad2.fedoraproject.org +bvmhost-a64-06.iad2.fedoraproject.org [hardware:children] diff --git a/inventory/inventory b/inventory/inventory index d5990bb7aa..09fffef3de 100644 --- a/inventory/inventory +++ b/inventory/inventory @@ -1199,6 +1199,7 @@ bvmhost-a64-02.iad2.fedoraproject.org bvmhost-a64-03.iad2.fedoraproject.org bvmhost-a64-04.iad2.fedoraproject.org bvmhost-a64-05.iad2.fedoraproject.org +bvmhost-a64-06.iad2.fedoraproject.org bvmhost-p09-01.iad2.fedoraproject.org bvmhost-p09-02.iad2.fedoraproject.org bvmhost-x86-01.iad2.fedoraproject.org From 7636206d12ee982c5c239c46278168afff5e0283 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 18:25:59 -0500 Subject: [PATCH 24/47] nagios: nuke bastion02.iad2 from here for now Signed-off-by: Rick Elrod --- .../templates/nagios/hostgroups/vpnclients.cfg.j2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 b/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 index d3111e50a8..69c3d3bd01 100644 --- a/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 +++ b/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 @@ -3,6 +3,6 @@ define hostgroup { hostgroup_name vpnclients alias vpnclients - members !bastion02.iad2.fedoraproject.org, {% for host in groups['all']|sort %}{% if ( hostvars[host].vpn == true ) and ( hostvars[host].nagios_Can_Connect == true ) %}{{host}},{% endif %} {% endfor %} - + members {% for host in groups['all']|sort %}{% if ( hostvars[host].vpn == true ) and ( hostvars[host].nagios_Can_Connect == true ) %}{{host}},{% endif %} {% endfor %} +# TODO: Add bastion02.iad2.fedoraproject.org above when it exists. } From 853975da7d7faead74ef698c39a6185611932fa3 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 18:31:29 -0500 Subject: [PATCH 25/47] nagios: nix phx2 mgmt Signed-off-by: Rick Elrod --- .../templates/nagios/hostgroups/all.cfg.j2 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/roles/nagios_server/templates/nagios/hostgroups/all.cfg.j2 b/roles/nagios_server/templates/nagios/hostgroups/all.cfg.j2 index e5bf180ff3..2426eda7ed 100644 --- a/roles/nagios_server/templates/nagios/hostgroups/all.cfg.j2 +++ b/roles/nagios_server/templates/nagios/hostgroups/all.cfg.j2 @@ -44,9 +44,11 @@ define hostgroup{ ## ## Management hardware -define hostgroup { - hostgroup_name phx2_mgmt_systems - alias phx2_mgmt_systems - members {% for host in vars['phx2_management_hosts']|sort %}{{host}}{% if not loop.last %},{% endif %} {% endfor %} +#define hostgroup { +# hostgroup_name phx2_mgmt_systems +# alias phx2_mgmt_systems +# members {% for host in vars['phx2_management_hosts']|sort %}{{host}}{% if not loop.last %},{% endif %} {% endfor %} +# +#} -} +# TODO: Add iad2 mgmt here From 0d098148b0c8d16af0859b7a0f16cb3f07ab67df Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sat, 20 Jun 2020 19:33:18 -0400 Subject: [PATCH 26/47] add default variable files for bvmhost-a64-05 and bvmhost-a64-06 --- .../host_vars/bvmhost-a64-05.iad2.fedoraproject.org | 9 +++++++++ .../host_vars/bvmhost-a64-06.iad2.fedoraproject.org | 9 +++++++++ 2 files changed, 18 insertions(+) create mode 100644 inventory/host_vars/bvmhost-a64-05.iad2.fedoraproject.org create mode 100644 inventory/host_vars/bvmhost-a64-06.iad2.fedoraproject.org diff --git a/inventory/host_vars/bvmhost-a64-05.iad2.fedoraproject.org b/inventory/host_vars/bvmhost-a64-05.iad2.fedoraproject.org new file mode 100644 index 0000000000..66c657b2bc --- /dev/null +++ b/inventory/host_vars/bvmhost-a64-05.iad2.fedoraproject.org @@ -0,0 +1,9 @@ +--- +datacenter: iad2 + +br0_ip: 10.3.170.15 +br0_nm: 255.255.255.0 +br0_gw: 10.3.170.254 +br0_dev: eth1 + +dns: 10.3.163.33 diff --git a/inventory/host_vars/bvmhost-a64-06.iad2.fedoraproject.org b/inventory/host_vars/bvmhost-a64-06.iad2.fedoraproject.org new file mode 100644 index 0000000000..3e259c24da --- /dev/null +++ b/inventory/host_vars/bvmhost-a64-06.iad2.fedoraproject.org @@ -0,0 +1,9 @@ +--- +datacenter: iad2 + +br0_ip: 10.3.170.16 +br0_nm: 255.255.255.0 +br0_gw: 10.3.170.254 +br0_dev: eth1 + +dns: 10.3.163.33 From 110ff0c6482f3f427877e76349ffba5052fef3d6 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 18:39:58 -0500 Subject: [PATCH 27/47] nagios: comment out retrace stuff for now Signed-off-by: Rick Elrod --- roles/nagios_server/files/nagios/services/procs.cfg | 13 +++++++------ roles/nagios_server/files/nagios/services/raid.cfg | 13 +++++++------ roles/nagios_server/files/nagios/services/ssh.cfg | 13 +++++++------ roles/nagios_server/files/nagios/services/swap.cfg | 13 +++++++------ 4 files changed, 28 insertions(+), 24 deletions(-) diff --git a/roles/nagios_server/files/nagios/services/procs.cfg b/roles/nagios_server/files/nagios/services/procs.cfg index 62cb704deb..7b3c7100df 100644 --- a/roles/nagios_server/files/nagios/services/procs.cfg +++ b/roles/nagios_server/files/nagios/services/procs.cfg @@ -34,12 +34,13 @@ define service { use defaulttemplate } -define service { - hostgroup retrace - service_description Total Processes - check_command check_by_nrpe!check_total_procs - use retracetemplate -} +# TODO: uncomment when retrace is moved +#define service { +# hostgroup retrace +# service_description Total Processes +# check_command check_by_nrpe!check_total_procs +# use retracetemplate +#} define service { diff --git a/roles/nagios_server/files/nagios/services/raid.cfg b/roles/nagios_server/files/nagios/services/raid.cfg index 2c2bec03fd..b77e76cde8 100644 --- a/roles/nagios_server/files/nagios/services/raid.cfg +++ b/roles/nagios_server/files/nagios/services/raid.cfg @@ -1,10 +1,11 @@ # Special-case this so it can use retracetemplate. -define service { - hostgroup_name retrace - service_description Check_Raid - check_command check_by_nrpe!check_raid - use retracetemplate -} +# TODO: uncomment when retrace is moved +#define service { +# hostgroup_name retrace +# service_description Check_Raid +# check_command check_by_nrpe!check_raid +# use retracetemplate +#} # Everything else uses this group. define service { diff --git a/roles/nagios_server/files/nagios/services/ssh.cfg b/roles/nagios_server/files/nagios/services/ssh.cfg index 55f70819df..9a86529df5 100644 --- a/roles/nagios_server/files/nagios/services/ssh.cfg +++ b/roles/nagios_server/files/nagios/services/ssh.cfg @@ -28,9 +28,10 @@ define service { # use autoqatemplate #} -define service { - hostgroup_name retrace - service_description SSH-retrace - check_command check_ssh - use retracetemplate -} +# TODO: uncomment once retrace exists again +#define service { +# hostgroup_name retrace +# service_description SSH-retrace +# check_command check_ssh +# use retracetemplate +#} diff --git a/roles/nagios_server/files/nagios/services/swap.cfg b/roles/nagios_server/files/nagios/services/swap.cfg index dab4ff7d9a..6af9f9f8c2 100644 --- a/roles/nagios_server/files/nagios/services/swap.cfg +++ b/roles/nagios_server/files/nagios/services/swap.cfg @@ -5,9 +5,10 @@ define service { use criticaltemplate } -define service { - hostgroup retrace - service_description Swap - check_command check_by_nrpe!check_swap - use retracetemplate -} +# TODO: uncomment once retrace exists again +#define service { +# hostgroup retrace +# service_description Swap +# check_command check_by_nrpe!check_swap +# use retracetemplate +#} From 736c107a211d2bb7bf0d1d4e125af756978099fd Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 18:43:42 -0500 Subject: [PATCH 28/47] nagios: define host for db-fas01.iad2 Signed-off-by: Rick Elrod --- inventory/host_vars/db-fas01.iad2.fedoraproject.org | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/inventory/host_vars/db-fas01.iad2.fedoraproject.org b/inventory/host_vars/db-fas01.iad2.fedoraproject.org index 701e2ab818..1ee2a20a24 100644 --- a/inventory/host_vars/db-fas01.iad2.fedoraproject.org +++ b/inventory/host_vars/db-fas01.iad2.fedoraproject.org @@ -46,13 +46,3 @@ shared_buffers: "2GB" effective_cache_size: "6GB" temp_buffers: "8MB" max_stack_depth: "4MB" - -nagios_Can_Connect: false - -nagios_Check_Services: - mail: false - nrpe: false - sshd: false - swap: false - ping: false - raid: false From ede9ae478aecacbe60e0cc31510bbc35bcf9984d Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sat, 20 Jun 2020 19:50:15 -0400 Subject: [PATCH 29/47] Add in bvmhost-a64-07 --- inventory/builders | 1 + inventory/hardware | 1 + .../host_vars/bvmhost-a64-07.iad2.fedoraproject.org | 9 +++++++++ inventory/inventory | 1 + 4 files changed, 12 insertions(+) create mode 100644 inventory/host_vars/bvmhost-a64-07.iad2.fedoraproject.org diff --git a/inventory/builders b/inventory/builders index 14be9c3a3c..aa0dcbe61d 100644 --- a/inventory/builders +++ b/inventory/builders @@ -134,6 +134,7 @@ bvmhost-a64-03.iad2.fedoraproject.org bvmhost-a64-04.iad2.fedoraproject.org bvmhost-a64-05.iad2.fedoraproject.org bvmhost-a64-06.iad2.fedoraproject.org +bvmhost-a64-07.iad2.fedoraproject.org bvmhost-p09-01.iad2.fedoraproject.org bvmhost-p09-02.iad2.fedoraproject.org diff --git a/inventory/hardware b/inventory/hardware index 2cf62bce52..36c6ddd638 100644 --- a/inventory/hardware +++ b/inventory/hardware @@ -111,6 +111,7 @@ bvmhost-a64-03.iad2.fedoraproject.org bvmhost-a64-04.iad2.fedoraproject.org bvmhost-a64-05.iad2.fedoraproject.org bvmhost-a64-06.iad2.fedoraproject.org +bvmhost-a64-07.iad2.fedoraproject.org [hardware:children] diff --git a/inventory/host_vars/bvmhost-a64-07.iad2.fedoraproject.org b/inventory/host_vars/bvmhost-a64-07.iad2.fedoraproject.org new file mode 100644 index 0000000000..696db70e66 --- /dev/null +++ b/inventory/host_vars/bvmhost-a64-07.iad2.fedoraproject.org @@ -0,0 +1,9 @@ +--- +datacenter: iad2 + +br0_ip: 10.3.170.17 +br0_nm: 255.255.255.0 +br0_gw: 10.3.170.254 +br0_dev: eth1 + +dns: 10.3.163.33 diff --git a/inventory/inventory b/inventory/inventory index 09fffef3de..e4f122ab4f 100644 --- a/inventory/inventory +++ b/inventory/inventory @@ -1200,6 +1200,7 @@ bvmhost-a64-03.iad2.fedoraproject.org bvmhost-a64-04.iad2.fedoraproject.org bvmhost-a64-05.iad2.fedoraproject.org bvmhost-a64-06.iad2.fedoraproject.org +bvmhost-a64-07.iad2.fedoraproject.org bvmhost-p09-01.iad2.fedoraproject.org bvmhost-p09-02.iad2.fedoraproject.org bvmhost-x86-01.iad2.fedoraproject.org From 3a90136aaefba1b2b0748484b3dbf1c193e41fc0 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sat, 20 Jun 2020 17:35:43 -0700 Subject: [PATCH 30/47] inentory: add 12 more arm builders We have 2 of our emags back up, and they can run 3 armv7 and 3 aarch64 builders, so thats 12. Signed-off-by: Kevin Fenzi --- inventory/builders | 12 ++++++++++++ .../host_vars/buildvm-a32-16.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a32-17.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a32-18.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a32-19.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a32-20.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a32-21.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a64-16.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a64-17.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a64-18.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a64-19.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a64-20.iad2.fedoraproject.org | 11 +++++++++++ .../host_vars/buildvm-a64-21.iad2.fedoraproject.org | 11 +++++++++++ 13 files changed, 144 insertions(+) create mode 100644 inventory/host_vars/buildvm-a32-16.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a32-17.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a32-18.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a32-19.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a32-20.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a32-21.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a64-16.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a64-17.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a64-18.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a64-19.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a64-20.iad2.fedoraproject.org create mode 100644 inventory/host_vars/buildvm-a64-21.iad2.fedoraproject.org diff --git a/inventory/builders b/inventory/builders index aa0dcbe61d..1544039fff 100644 --- a/inventory/builders +++ b/inventory/builders @@ -67,6 +67,12 @@ buildvm-a64-12.iad2.fedoraproject.org buildvm-a64-13.iad2.fedoraproject.org buildvm-a64-14.iad2.fedoraproject.org buildvm-a64-15.iad2.fedoraproject.org +buildvm-a64-16.iad2.fedoraproject.org +buildvm-a64-17.iad2.fedoraproject.org +buildvm-a64-18.iad2.fedoraproject.org +buildvm-a64-19.iad2.fedoraproject.org +buildvm-a64-20.iad2.fedoraproject.org +buildvm-a64-21.iad2.fedoraproject.org [buildvm_armv7] buildvm-a32-01.iad2.fedoraproject.org @@ -84,6 +90,12 @@ buildvm-a32-12.iad2.fedoraproject.org buildvm-a32-13.iad2.fedoraproject.org buildvm-a32-14.iad2.fedoraproject.org buildvm-a32-15.iad2.fedoraproject.org +buildvm-a32-16.iad2.fedoraproject.org +buildvm-a32-17.iad2.fedoraproject.org +buildvm-a32-18.iad2.fedoraproject.org +buildvm-a32-19.iad2.fedoraproject.org +buildvm-a32-20.iad2.fedoraproject.org +buildvm-a32-21.iad2.fedoraproject.org [buildvm_s390x] buildvm-s390x-01.s390.fedoraproject.org diff --git a/inventory/host_vars/buildvm-a32-16.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a32-16.iad2.fedoraproject.org new file mode 100644 index 0000000000..7f0de0ea75 --- /dev/null +++ b/inventory/host_vars/buildvm-a32-16.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-06.iad2.fedoraproject.org +eth0_ip: 10.3.170.76 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/armhfp/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-armv7-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_armv7_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a32-17.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a32-17.iad2.fedoraproject.org new file mode 100644 index 0000000000..9ed9bacacc --- /dev/null +++ b/inventory/host_vars/buildvm-a32-17.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-06.iad2.fedoraproject.org +eth0_ip: 10.3.170.77 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/armhfp/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-armv7-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_armv7_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a32-18.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a32-18.iad2.fedoraproject.org new file mode 100644 index 0000000000..5c358fb8e0 --- /dev/null +++ b/inventory/host_vars/buildvm-a32-18.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-06.iad2.fedoraproject.org +eth0_ip: 10.3.170.78 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/armhfp/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-armv7-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_armv7_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a32-19.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a32-19.iad2.fedoraproject.org new file mode 100644 index 0000000000..ac6ccd93dc --- /dev/null +++ b/inventory/host_vars/buildvm-a32-19.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-07.iad2.fedoraproject.org +eth0_ip: 10.3.170.79 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/armhfp/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-armv7-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_armv7_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a32-20.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a32-20.iad2.fedoraproject.org new file mode 100644 index 0000000000..db39372454 --- /dev/null +++ b/inventory/host_vars/buildvm-a32-20.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-07.iad2.fedoraproject.org +eth0_ip: 10.3.170.80 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/armhfp/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-armv7-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_armv7_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a32-21.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a32-21.iad2.fedoraproject.org new file mode 100644 index 0000000000..925cbd47fe --- /dev/null +++ b/inventory/host_vars/buildvm-a32-21.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-07.iad2.fedoraproject.org +eth0_ip: 10.3.170.81 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/armhfp/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-armv7-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_armv7_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a64-16.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a64-16.iad2.fedoraproject.org new file mode 100644 index 0000000000..e97357cd30 --- /dev/null +++ b/inventory/host_vars/buildvm-a64-16.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-06.iad2.fedoraproject.org +eth0_ip: 10.3.170.106 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/aarch64/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-aarch64-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_aarch64_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a64-17.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a64-17.iad2.fedoraproject.org new file mode 100644 index 0000000000..dcf43d1234 --- /dev/null +++ b/inventory/host_vars/buildvm-a64-17.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-06.iad2.fedoraproject.org +eth0_ip: 10.3.170.107 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/aarch64/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-aarch64-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_aarch64_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a64-18.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a64-18.iad2.fedoraproject.org new file mode 100644 index 0000000000..f0d1cfa2ed --- /dev/null +++ b/inventory/host_vars/buildvm-a64-18.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-06.iad2.fedoraproject.org +eth0_ip: 10.3.170.108 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/aarch64/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-aarch64-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_aarch64_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a64-19.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a64-19.iad2.fedoraproject.org new file mode 100644 index 0000000000..712bba858d --- /dev/null +++ b/inventory/host_vars/buildvm-a64-19.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-07.iad2.fedoraproject.org +eth0_ip: 10.3.170.109 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/aarch64/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-aarch64-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_aarch64_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a64-20.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a64-20.iad2.fedoraproject.org new file mode 100644 index 0000000000..9e341a9f1a --- /dev/null +++ b/inventory/host_vars/buildvm-a64-20.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-07.iad2.fedoraproject.org +eth0_ip: 10.3.170.110 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/aarch64/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-aarch64-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_aarch64_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 diff --git a/inventory/host_vars/buildvm-a64-21.iad2.fedoraproject.org b/inventory/host_vars/buildvm-a64-21.iad2.fedoraproject.org new file mode 100644 index 0000000000..d4cb426420 --- /dev/null +++ b/inventory/host_vars/buildvm-a64-21.iad2.fedoraproject.org @@ -0,0 +1,11 @@ +--- +vmhost: bvmhost-a64-07.iad2.fedoraproject.org +eth0_ip: 10.3.170.111 +ks_repo: http://10.3.163.35/pub/fedora/linux/releases/32/Server/aarch64/os/ +ks_url: http://10.3.163.35/repo/rhel/ks/buildvm-fedora-32-aarch64-iad2 +resolvconf: "resolv.conf/iad2" +virt_install_command: "{{ virt_install_command_aarch64_one_nic_unsafe }}" +ipa_server: ipa01.iad2.fedoraproject.org +gw: 10.3.170.254 +dns: 10.3.163.33 +datacenter: iad2 From d990cc884ad383c2af195c1d5fc4f7cdda03dace Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 18:58:01 -0500 Subject: [PATCH 31/47] nagios: move comment out of block Signed-off-by: Rick Elrod --- .../templates/nagios/hostgroups/vpnclients.cfg.j2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 b/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 index 69c3d3bd01..e31260727a 100644 --- a/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 +++ b/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 @@ -4,5 +4,6 @@ define hostgroup { hostgroup_name vpnclients alias vpnclients members {% for host in groups['all']|sort %}{% if ( hostvars[host].vpn == true ) and ( hostvars[host].nagios_Can_Connect == true ) %}{{host}},{% endif %} {% endfor %} -# TODO: Add bastion02.iad2.fedoraproject.org above when it exists. } + +# TODO: Add bastion02.iad2.fedoraproject.org above when it exists. From a9ce430cd65f05a1c08cddde0c4df29ef4c17710 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 19:01:17 -0500 Subject: [PATCH 32/47] nagios: remove ref to fas01 Signed-off-by: Rick Elrod --- .../files/nagios/services/iad2_internal/locking.cfg | 7 ------- 1 file changed, 7 deletions(-) diff --git a/roles/nagios_server/files/nagios/services/iad2_internal/locking.cfg b/roles/nagios_server/files/nagios/services/iad2_internal/locking.cfg index 9e1e317e4a..bde20ccbcf 100644 --- a/roles/nagios_server/files/nagios/services/iad2_internal/locking.cfg +++ b/roles/nagios_server/files/nagios/services/iad2_internal/locking.cfg @@ -4,10 +4,3 @@ define service { check_command check_by_nrpe!check_lock use criticaltemplate } - -define service { - host_name fas01.iad2.fedoraproject.org - service_description Check certificate lock - check_command check_by_nrpe!check_lock_file_age - use defaulttemplate -} From 7b1a407905ce1a05d6e84a160600b5d62c4469ba Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 19:01:36 -0500 Subject: [PATCH 33/47] nagios: remove ref to rawhide-composer Signed-off-by: Rick Elrod --- .../files/nagios/services/iad2_internal/locking.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/nagios_server/files/nagios/services/iad2_internal/locking.cfg b/roles/nagios_server/files/nagios/services/iad2_internal/locking.cfg index bde20ccbcf..6a3cf6cd4d 100644 --- a/roles/nagios_server/files/nagios/services/iad2_internal/locking.cfg +++ b/roles/nagios_server/files/nagios/services/iad2_internal/locking.cfg @@ -1,5 +1,5 @@ define service { - host_name rawhide-composer.iad2.fedoraproject.org, koji01.iad2.fedoraproject.org + host_name koji01.iad2.fedoraproject.org service_description Check NFS File Locks check_command check_by_nrpe!check_lock use criticaltemplate From ea9dca1a56142cb1e4b6786a7f183f77ccc10970 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 19:13:48 -0500 Subject: [PATCH 34/47] nagios: nix packages* for now Signed-off-by: Rick Elrod --- .../nagios/services/iad2_internal/fedmsg.cfg | 55 +++++++++++-------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/roles/nagios_server/files/nagios/services/iad2_internal/fedmsg.cfg b/roles/nagios_server/files/nagios/services/iad2_internal/fedmsg.cfg index 9a877efaed..a5f24caeae 100644 --- a/roles/nagios_server/files/nagios/services/iad2_internal/fedmsg.cfg +++ b/roles/nagios_server/files/nagios/services/iad2_internal/fedmsg.cfg @@ -80,12 +80,14 @@ define service { use defaulttemplate } -define service { - host_name packages03.iad2.fedoraproject.org - service_description Check for fedmsg-hub proc - check_command check_by_nrpe!check_fedmsg_hub_proc - use defaulttemplate -} +# TODO: Uncomment this if it comes back in iad +#define service { +# host_name packages03.iad2.fedoraproject.org +# service_description Check for fedmsg-hub proc +# check_command check_by_nrpe!check_fedmsg_hub_proc +# use defaulttemplate +#} + define service { host_name pdc-backend01.iad2.fedoraproject.org service_description Check for fedmsg-hub proc @@ -310,12 +312,14 @@ define service { use defaulttemplate } -define service { - host_name packages03.iad2.fedoraproject.org - service_description Check fedmsg consumers and producers hub - check_command check_by_nrpe!check_fedmsg_cp_packages_backend - use defaulttemplate -} +# TODO: Uncomment this if it comes back in iad +#define service { +# host_name packages03.iad2.fedoraproject.org +# service_description Check fedmsg consumers and producers hub +# check_command check_by_nrpe!check_fedmsg_cp_packages_backend +# use defaulttemplate +#} + define service { host_name pdc-backend01.iad2.fedoraproject.org service_description Check fedmsg consumers and producers hub @@ -387,12 +391,14 @@ define service { use defaulttemplate } -define service { - host_name packages03.iad2.fedoraproject.org - service_description Check fedmsg-hub consumers exceptions - check_command check_by_nrpe!check_fedmsg_cexceptions_packages_backend - use defaulttemplate -} +# TODO: Uncomment this if it comes back in iad +#define service { +# host_name packages03.iad2.fedoraproject.org +# service_description Check fedmsg-hub consumers exceptions +# check_command check_by_nrpe!check_fedmsg_cexceptions_packages_backend +# use defaulttemplate +#} + define service { host_name pdc-backend01.iad2.fedoraproject.org service_description Check fedmsg-hub consumers exceptions @@ -465,12 +471,13 @@ define service { use defaulttemplate } -define service { - host_name packages03.iad2.fedoraproject.org - service_description Check fedmsg-hub consumers backlog - check_command check_by_nrpe!check_fedmsg_cbacklog_packages_backend - use defaulttemplate -} +# TODO: Uncomment this if it comes back in iad +#define service { +# host_name packages03.iad2.fedoraproject.org +# service_description Check fedmsg-hub consumers backlog +# check_command check_by_nrpe!check_fedmsg_cbacklog_packages_backend +# use defaulttemplate +#} define service { host_name pdc-backend01.iad2.fedoraproject.org From 313b2c29881ee48f0e6d7b6165b17f8f4e7ea544 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 19:13:56 -0500 Subject: [PATCH 35/47] nagios: more retrace refs Signed-off-by: Rick Elrod --- .../nagios/services/iad2_internal/disk.cfg | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/roles/nagios_server/files/nagios/services/iad2_internal/disk.cfg b/roles/nagios_server/files/nagios/services/iad2_internal/disk.cfg index ca69054b8e..691e815e00 100644 --- a/roles/nagios_server/files/nagios/services/iad2_internal/disk.cfg +++ b/roles/nagios_server/files/nagios/services/iad2_internal/disk.cfg @@ -47,19 +47,20 @@ define service { use ppc-secondarytemplate } -define service { - hostgroup_name retrace - service_description Disk space / - check_command check_by_nrpe!check_disk_/ - use retracetemplate -} +# TODO: Uncomment this and the one below when retrace is back in iad2 +#define service { +# hostgroup_name retrace +# service_description Disk space / +# check_command check_by_nrpe!check_disk_/ +# use retracetemplate +#} -define service { - hostgroup_name retrace - service_description Disk Space for huge /srv - check_command check_by_nrpe!check_disk_huge_/srv - use disktemplate -} +#define service { +# hostgroup_name retrace +# service_description Disk Space for huge /srv +# check_command check_by_nrpe!check_disk_huge_/srv +# use disktemplate +#} define service { hostgroup_name people From 9b531316aec89a9bd2caa7713271510f53070800 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 19:16:31 -0500 Subject: [PATCH 36/47] nagios: fix comment Signed-off-by: Rick Elrod --- .../nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 b/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 index e31260727a..c4a83f2baf 100644 --- a/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 +++ b/roles/nagios_server/templates/nagios/hostgroups/vpnclients.cfg.j2 @@ -6,4 +6,4 @@ define hostgroup { members {% for host in groups['all']|sort %}{% if ( hostvars[host].vpn == true ) and ( hostvars[host].nagios_Can_Connect == true ) %}{{host}},{% endif %} {% endfor %} } -# TODO: Add bastion02.iad2.fedoraproject.org above when it exists. +# TODO: Add !bastion02.iad2.fedoraproject.org above when it exists. From f6c5bac836cfe6b024d39482de88e006d16ceeb0 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 19:16:49 -0500 Subject: [PATCH 37/47] nagios: comment out qahardware ref for now Signed-off-by: Rick Elrod --- .../files/nagios/services/iad2_internal/disk.cfg | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/roles/nagios_server/files/nagios/services/iad2_internal/disk.cfg b/roles/nagios_server/files/nagios/services/iad2_internal/disk.cfg index 691e815e00..e1a666ba7c 100644 --- a/roles/nagios_server/files/nagios/services/iad2_internal/disk.cfg +++ b/roles/nagios_server/files/nagios/services/iad2_internal/disk.cfg @@ -12,12 +12,13 @@ define service { use disktemplate } -define service { - hostgroup_name qahardware - service_description Disk Space /srv - check_command check_by_nrpe!check_disk_/srv - use disktemplate -} +# TODO: uncomment when qahardware is back online +#define service { +# hostgroup_name qahardware +# service_description Disk Space /srv +# check_command check_by_nrpe!check_disk_/srv +# use disktemplate +#} define service { host_name log01.iad2.fedoraproject.org From d9a23d993095d41ebcdfb38f3ff7253187d17bf0 Mon Sep 17 00:00:00 2001 From: Rick Elrod Date: Sat, 20 Jun 2020 19:18:10 -0500 Subject: [PATCH 38/47] nagios: nix basset checks for now Signed-off-by: Rick Elrod --- .../nagios/services/iad2_internal/basset.cfg | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/roles/nagios_server/files/nagios/services/iad2_internal/basset.cfg b/roles/nagios_server/files/nagios/services/iad2_internal/basset.cfg index ba0bc9ff28..9028cceed1 100644 --- a/roles/nagios_server/files/nagios/services/iad2_internal/basset.cfg +++ b/roles/nagios_server/files/nagios/services/iad2_internal/basset.cfg @@ -1,27 +1,28 @@ -define service { - hostgroup_name basset - service_description mongo process - check_command check_by_nrpe!check_mongo_proc - use defaulttemplate -} - -define service { - hostgroup_name basset - service_description rabbitmq process - check_command check_by_nrpe!check_rabbitmq_proc - use defaulttemplate -} - -define service { - hostgroup_name basset - service_description basset worker processes - check_command check_by_nrpe!check_worker_proc - use defaulttemplate -} - -define service { - hostgroup_name basset - service_description basset processing queue - check_command check_by_nrpe!check_basset_queue - use defaulttemplate -} +# TODO: uncomment after moving to iad2 +#define service { +# hostgroup_name basset +# service_description mongo process +# check_command check_by_nrpe!check_mongo_proc +# use defaulttemplate +#} +# +#define service { +# hostgroup_name basset +# service_description rabbitmq process +# check_command check_by_nrpe!check_rabbitmq_proc +# use defaulttemplate +#} +# +#define service { +# hostgroup_name basset +# service_description basset worker processes +# check_command check_by_nrpe!check_worker_proc +# use defaulttemplate +#} +# +#define service { +# hostgroup_name basset +# service_description basset processing queue +# check_command check_by_nrpe!check_basset_queue +# use defaulttemplate +#} From 06f1f772b6129512d295b0e66cb46008feeeb613 Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sun, 21 Jun 2020 11:05:25 -0400 Subject: [PATCH 39/47] add bkernel dhcp --- .../dhcpd.conf.noc01.iad2.fedoraproject.org | 16 + .../dhcpd.conf.noc01.phx2.fedoraproject.org | 604 +----------------- 2 files changed, 19 insertions(+), 601 deletions(-) diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org index d61d9dc2e8..552880af51 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org @@ -849,3 +849,19 @@ host centos-mgmt01 { fixed-address 10.3.160.69; option host-name "centos01-mgmt"; } + +host svault02-mgmt { + hardware ethernet D0:94:66:45:87:C5; + fixed-address 10.3.160.133; + option host-name "sign-vault02"; +} +host dell-630-01-mgmt { + hardware ethernet 58:8A:5A:F3:9C:56; + fixed-address 10.3.160.31; + option host-name "bvirthost14"; +} +host bkernel02-mgmt { + hardware ethernet D0:94:66:45:8C:13; + fixed-address 10.3.160.156; + option host-name "bkernel02"; +} diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org index abf6c4be79..d3471876db 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org @@ -1015,11 +1015,6 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.110; option host-name "p8-cloud02"; } - host svault05-mgmt { - hardware ethernet D0:94:66:45:87:C5; - fixed-address 10.5.130.119; - option host-name "sign-vault05"; - } host svault06-mgmt { hardware ethernet D0:94:66:45:A1:66; fixed-address 10.5.130.120; @@ -1035,11 +1030,6 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.122; option host-name "bvirthost13"; } - host bvh14-mgmt { - hardware ethernet 58:8A:5A:F3:9C:56; - fixed-address 10.5.130.123; - option host-name "bvirthost14"; - } host bvh15-mgmt { hardware ethernet 58:8A:5A:F3:A1:CE; fixed-address 10.5.130.124; @@ -1227,11 +1217,6 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.195; option host-name "virthost06"; } - host bkernel03-mgmt { - hardware ethernet D0:94:66:45:8C:13; - fixed-address 10.5.130.198; - option host-name "bkernel03"; - } host bvirthost04-mgmt { hardware ethernet 84:7B:EB:F3:BC:7A; fixed-address 10.5.130.199; @@ -1304,589 +1289,6 @@ subnet 10.5.79.0 netmask 255.255.255.0 { allow booting; allow bootp; - option domain-name "phx2.fedoraproject.org qa.fedoraproject.org fedoraproject.org"; - option domain-name-servers 10.5.126.21, 10.5.126.22; - option routers 10.5.79.254; - option log-servers 10.5.126.29; - - host arm01-builder00-mgmt { - hardware ethernet fc:2f:40:d2:27:6e; - fixed-address 10.5.79.10; - option host-name "arm01-builder00-mgmt"; - next-server 10.5.126.41; - } - host arm01-retrace01-mgmt { - hardware ethernet fc:2f:40:d1:7a:3e; - fixed-address 10.5.79.11; - option host-name "arm01-retrace01-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder02-mgmt { - hardware ethernet fc:2f:40:ea:a7:a2; - fixed-address 10.5.79.12; - option host-name "arm01-builder02-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder03-mgmt { - hardware ethernet fc:2f:40:58:c6:fa; - fixed-address 10.5.79.13; - option host-name "arm01-builder03-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder04-mgmt { - hardware ethernet fc:2f:40:bd:c8:3e; - fixed-address 10.5.79.14; - option host-name "arm01-builder04-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder05-mgmt { - hardware ethernet fc:2f:40:c0:c3:6e; - fixed-address 10.5.79.15; - option host-name "arm01-builder05-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder06-mgmt { - hardware ethernet fc:2f:40:42:e5:5e; - fixed-address 10.5.79.16; - option host-name "arm01-builder06-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder07-mgmt { - hardware ethernet fc:2f:40:49:e0:2a; - fixed-address 10.5.79.17; - option host-name "arm01-builder07-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder08-mgmt { - hardware ethernet fc:2f:40:3c:2a:b6; - fixed-address 10.5.79.18; - option host-name "arm01-builder08-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder09-mgmt { - hardware ethernet fc:2f:40:b3:07:d6; - fixed-address 10.5.79.19; - option host-name "arm01-builder09-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder10-mgmt { - hardware ethernet fc:2f:40:b5:2e:22; - fixed-address 10.5.79.20; - option host-name "arm01-builder10-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder11-mgmt { - hardware ethernet fc:2f:40:ca:1e:ca; - fixed-address 10.5.79.21; - option host-name "arm01-builder11-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder12-mgmt { - hardware ethernet fc:2f:40:a4:6f:ea; - fixed-address 10.5.79.22; - option host-name "arm01-builder12-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder13-mgmt { - hardware ethernet fc:2f:40:5b:e0:2a; - fixed-address 10.5.79.23; - option host-name "arm01-builder13-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder14-mgmt { - hardware ethernet fc:2f:40:5e:ef:a6; - fixed-address 10.5.79.24; - option host-name "arm01-builder14-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder15-mgmt { - hardware ethernet fc:2f:40:dd:cb:b2; - fixed-address 10.5.79.25; - option host-name "arm01-builder15-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder16-mgmt { - hardware ethernet fc:2f:40:21:30:72; - fixed-address 10.5.79.26; - option host-name "arm01-builder16-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder17-mgmt { - hardware ethernet fc:2f:40:b5:7b:86; - fixed-address 10.5.79.27; - option host-name "arm01-builder17-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder18-mgmt { - hardware ethernet fc:2f:40:c9:7f:8e; - fixed-address 10.5.79.28; - option host-name "arm01-builder18-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder19-mgmt { - hardware ethernet fc:2f:40:56:23:be; - fixed-address 10.5.79.29; - option host-name "arm01-builder19-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder20-mgmt { - hardware ethernet fc:2f:40:a7:fa:7e; - fixed-address 10.5.79.30; - option host-name "arm01-builder20-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder21-mgmt { - hardware ethernet fc:2f:40:7b:8e:6e; - fixed-address 10.5.79.31; - option host-name "arm01-builder21-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder22-mgmt { - hardware ethernet fc:2f:40:75:79:fa; - fixed-address 10.5.79.32; - option host-name "arm01-builder22-mgmt"; - next-server 10.5.126.41; - } - host arm01-builder23-mgmt { - hardware ethernet fc:2f:40:79:78:aa; - fixed-address 10.5.79.33; - option host-name "arm01-builder23-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder00-mgmt { - hardware ethernet fc:2f:40:71:53:9a; - fixed-address 10.5.79.40; - option host-name "arm02-builder00-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder01-mgmt { - hardware ethernet fc:2f:40:f4:24:7e; - fixed-address 10.5.79.41; - option host-name "arm02-builder01-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder02-mgmt { - hardware ethernet fc:2f:40:cd:2b:26; - fixed-address 10.5.79.42; - option host-name "arm02-builder02-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder03-mgmt { - hardware ethernet fc:2f:40:a9:d6:92; - fixed-address 10.5.79.43; - option host-name "arm02-builder03-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder04-mgmt { - hardware ethernet fc:2f:40:8a:9e:0e; - fixed-address 10.5.79.44; - option host-name "arm02-builder04-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder05-mgmt { - hardware ethernet fc:2f:40:6e:da:be; - fixed-address 10.5.79.45; - option host-name "arm02-builder05-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder06-mgmt { - hardware ethernet fc:2f:40:aa:0b:f6; - fixed-address 10.5.79.46; - option host-name "arm02-builder06-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder07-mgmt { - hardware ethernet fc:2f:40:db:ee:d2; - fixed-address 10.5.79.47; - option host-name "arm02-builder07-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder08-mgmt { - hardware ethernet fc:2f:40:2b:bd:02; - fixed-address 10.5.79.48; - option host-name "arm02-builder08-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder09-mgmt { - hardware ethernet fc:2f:40:cd:f1:b2; - fixed-address 10.5.79.49; - option host-name "arm02-builder09-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder10-mgmt { - hardware ethernet fc:2f:40:0c:08:e2; - fixed-address 10.5.79.50; - option host-name "arm02-builder10-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder11-mgmt { - hardware ethernet fc:2f:40:90:6d:22; - fixed-address 10.5.79.51; - option host-name "arm02-builder11-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder12-mgmt { - hardware ethernet fc:2f:40:40:d4:16; - fixed-address 10.5.79.52; - option host-name "arm02-builder12-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder13-mgmt { - hardware ethernet fc:2f:40:6b:07:3e; - fixed-address 10.5.79.53; - option host-name "arm02-builder13-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder14-mgmt { - hardware ethernet fc:2f:40:fc:ea:32; - fixed-address 10.5.79.54; - option host-name "arm02-builder14-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder15-mgmt { - hardware ethernet fc:2f:40:1a:26:ca; - fixed-address 10.5.79.55; - option host-name "arm02-builder15-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder16-mgmt { - hardware ethernet fc:2f:40:42:dd:2a; - fixed-address 10.5.79.56; - option host-name "arm02-builder16-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder17-mgmt { - hardware ethernet fc:2f:40:b2:71:d2; - fixed-address 10.5.79.57; - option host-name "arm02-builder17-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder18-mgmt { - hardware ethernet fc:2f:40:37:47:12; - fixed-address 10.5.79.58; - option host-name "arm02-builder18-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder19-mgmt { - hardware ethernet fc:2f:40:27:d6:3e; - fixed-address 10.5.79.59; - option host-name "arm02-builder19-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder20-mgmt { - hardware ethernet fc:2f:40:f2:2e:a6; - fixed-address 10.5.79.60; - option host-name "arm02-builder20-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder21-mgmt { - hardware ethernet fc:2f:40:36:64:6e; - fixed-address 10.5.79.61; - option host-name "arm02-builder21-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder22-mgmt { - hardware ethernet fc:2f:40:92:6f:7a; - fixed-address 10.5.79.62; - option host-name "arm02-builder22-mgmt"; - next-server 10.5.126.41; - } - host arm02-builder23-mgmt { - hardware ethernet fc:2f:40:e0:cf:0e; - fixed-address 10.5.79.63; - option host-name "arm02-builder23-mgmt"; - next-server 10.5.126.41; - } - host arm03-releng00-mgmt { - hardware ethernet fc:2f:40:1b:64:4e; - fixed-address 10.5.79.70; - option host-name "arm03-releng00-mgmt"; - next-server 10.5.126.41; - } - host arm03-releng01-mgmt { - hardware ethernet fc:2f:40:08:d7:e2; - fixed-address 10.5.79.71; - option host-name "arm03-releng01-mgmt"; - next-server 10.5.126.41; - } - host arm03-releng02-mgmt { - hardware ethernet fc:2f:40:a1:f8:36; - fixed-address 10.5.79.72; - option host-name "arm03-releng02-mgmt"; - next-server 10.5.126.41; - } - host arm03-releng03-mgmt { - hardware ethernet fc:2f:40:1b:f6:da; - fixed-address 10.5.79.73; - option host-name "arm03-releng03-mgmt"; - next-server 10.5.126.41; - } - host arm03-qa00-mgmt { - hardware ethernet fc:2f:40:16:c8:3a; - fixed-address 10.5.79.74; - option host-name "arm03-qa00-mgmt"; - next-server 10.5.126.41; - } - host arm03-qa01-mgmt { - hardware ethernet fc:2f:40:9b:1d:da; - fixed-address 10.5.79.75; - option host-name "arm03-qa01-mgmt"; - next-server 10.5.126.41; - } - host arm03-qa02-mgmt { - hardware ethernet fc:2f:40:00:4c:e2; - fixed-address 10.5.79.76; - option host-name "arm03-qa02-mgmt"; - next-server 10.5.126.41; - } - host arm03-qa03-mgmt { - hardware ethernet fc:2f:40:57:cb:b6; - fixed-address 10.5.79.77; - option host-name "arm03-qa03-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder08-mgmt { - hardware ethernet fc:2f:40:12:6a:26; - fixed-address 10.5.79.78; - option host-name "arm03-builder08-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder09-mgmt { - hardware ethernet fc:2f:40:5d:85:8a; - fixed-address 10.5.79.79; - option host-name "arm03-builder09-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder10-mgmt { - hardware ethernet fc:2f:40:a5:5f:42; - fixed-address 10.5.79.80; - option host-name "arm03-builder10-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder11-mgmt { - hardware ethernet fc:2f:40:d2:a1:0e; - fixed-address 10.5.79.81; - option host-name "arm03-builder11-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder12-mgmt { - hardware ethernet fc:2f:40:00:a4:c6; - fixed-address 10.5.79.82; - option host-name "arm03-builder12-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder13-mgmt { - hardware ethernet fc:2f:40:59:27:ba; - fixed-address 10.5.79.83; - option host-name "arm03-builder13-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder14-mgmt { - hardware ethernet fc:2f:40:7b:ab:f6; - fixed-address 10.5.79.84; - option host-name "arm03-builder14-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder15-mgmt { - hardware ethernet fc:2f:40:8a:99:96; - fixed-address 10.5.79.85; - option host-name "arm03-builder15-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder16-mgmt { - hardware ethernet fc:2f:40:ea:ff:16; - fixed-address 10.5.79.86; - option host-name "arm03-builder16-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder17-mgmt { - hardware ethernet fc:2f:40:79:e3:8e; - fixed-address 10.5.79.87; - option host-name "arm03-builder17-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder18-mgmt { - hardware ethernet fc:2f:40:7d:0c:9a; - fixed-address 10.5.79.88; - option host-name "arm03-builder18-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder19-mgmt { - hardware ethernet fc:2f:40:04:29:9a; - fixed-address 10.5.79.89; - option host-name "arm03-builder19-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder20-mgmt { - hardware ethernet fc:2f:40:3c:50:26; - fixed-address 10.5.79.90; - option host-name "arm03-builder20-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder21-mgmt { - hardware ethernet fc:2f:40:cb:4f:66; - fixed-address 10.5.79.91; - option host-name "arm03-builder21-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder22-mgmt { - hardware ethernet fc:2f:40:17:c0:ee; - fixed-address 10.5.79.92; - option host-name "arm03-builder22-mgmt"; - next-server 10.5.126.41; - } - host arm03-builder23-mgmt { - hardware ethernet fc:2f:40:00:47:3e; - fixed-address 10.5.79.93; - option host-name "arm03-builder23-mgmt"; - next-server 10.5.126.41; - } - - host arm04-builder00-mgmt { - hardware ethernet fc:2f:40:7b:48:c6; - fixed-address 10.5.79.100; - option host-name "arm04-builder00-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder01-mgmt { - hardware ethernet fc:2f:40:fc:11:6a; - fixed-address 10.5.79.101; - option host-name "arm04-builder01-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder02-mgmt { - hardware ethernet fc:2f:40:5a:e9:b2; - fixed-address 10.5.79.102; - option host-name "arm04-builder02-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder03-mgmt { - hardware ethernet fc:2f:40:a6:b5:42; - fixed-address 10.5.79.103; - option host-name "arm04-builder03-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder04-mgmt { - hardware ethernet fc:2f:40:5e:e0:96; - fixed-address 10.5.79.104; - option host-name "arm04-builder04-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder05-mgmt { - hardware ethernet fc:2f:40:9d:9e:6a; - fixed-address 10.5.79.105; - option host-name "arm04-builder05-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder06-mgmt { - hardware ethernet fc:2f:40:ac:53:e6; - fixed-address 10.5.79.106; - option host-name "arm04-builder06-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder07-mgmt { - hardware ethernet fc:2f:40:9d:d3:22; - fixed-address 10.5.79.107; - option host-name "arm04-builder07-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder08-mgmt { - hardware ethernet fc:2f:40:97:c9:26; - fixed-address 10.5.79.108; - option host-name "arm04-builder08-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder09-mgmt { - hardware ethernet fc:2f:40:54:35:8a; - fixed-address 10.5.79.109; - option host-name "arm04-builder09-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder10-mgmt { - hardware ethernet fc:2f:40:7c:88:22; - fixed-address 10.5.79.110; - option host-name "arm04-builder10-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder11-mgmt { - hardware ethernet fc:2f:40:73:09:ba; - fixed-address 10.5.79.111; - option host-name "arm04-builder11-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder12-mgmt { - hardware ethernet fc:2f:40:92:70:2e; - fixed-address 10.5.79.112; - option host-name "arm04-builder12-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder13-mgmt { - hardware ethernet fc:2f:40:84:77:a2; - fixed-address 10.5.79.113; - option host-name "arm04-builder13-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder14-mgmt { - hardware ethernet fc:2f:40:e7:53:2e; - fixed-address 10.5.79.114; - option host-name "arm04-builder14-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder15-mgmt { - hardware ethernet fc:2f:40:69:82:56; - fixed-address 10.5.79.115; - option host-name "arm04-builder15-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder16-mgmt { - hardware ethernet fc:2f:40:09:12:fa; - fixed-address 10.5.79.116; - option host-name "arm04-builder16-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder17-mgmt { - hardware ethernet fc:2f:40:9c:4f:36; - fixed-address 10.5.79.117; - option host-name "arm04-builder17-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder18-mgmt { - hardware ethernet fc:2f:40:2c:f4:ae; - fixed-address 10.5.79.118; - option host-name "arm04-builder18-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder19-mgmt { - hardware ethernet fc:2f:40:df:6e:06; - fixed-address 10.5.79.119; - option host-name "arm04-builder19-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder20-mgmt { - hardware ethernet fc:2f:40:61:05:32; - fixed-address 10.5.79.120; - option host-name "arm04-builder20-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder21-mgmt { - hardware ethernet fc:2f:40:7a:96:da; - fixed-address 10.5.79.121; - option host-name "arm04-builder21-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder22-mgmt { - hardware ethernet fc:2f:40:a1:73:be; - fixed-address 10.5.79.122; - option host-name "arm04-builder22-mgmt"; - next-server 10.5.126.41; - } - host arm04-builder23-mgmt { - hardware ethernet fc:2f:40:fd:2f:5e; - fixed-address 10.5.79.123; - option host-name "arm04-builder23-mgmt"; - next-server 10.5.126.41; - } -} # ARM VLAN subnet 10.5.78.0 netmask 255.255.255.0 { @@ -2729,9 +2131,9 @@ shared-network qa { filename "pxelinux.0"; } - host kernel03 { - hardware ethernet d0:94:66:7c:b2:e3; - fixed-address 10.5.131.177; +host kernel03 { + hardware ethernet d0:94:66:7c:b2:e3; + fixed-address 10.5.131.177; option host-name "kernel03"; option ntp-servers 10.5.126.21, 10.5.126.22; next-server 10.5.126.41; From e216facfe4d7d140d8c286e733cbd16b4fc03763 Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sun, 21 Jun 2020 11:53:27 -0400 Subject: [PATCH 40/47] Put in the hosts for dhcpd for hardware --- .../dhcpd.conf.noc01.iad2.fedoraproject.org | 116 +++++++++ .../dhcpd.conf.noc01.phx2.fedoraproject.org | 222 ------------------ 2 files changed, 116 insertions(+), 222 deletions(-) diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org index 552880af51..d91945e769 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org @@ -865,3 +865,119 @@ host bkernel02-mgmt { fixed-address 10.3.160.156; option host-name "bkernel02"; } +host opengear01 { + hardware ethernet 00:13:C6:01:00:85; + fixed-address 10.3.160.31; + option host-name "opengear01-mgmt"; +} +host opengear02 { + hardware ethernet 00:13:C6:01:5C:FF; + fixed-address 10.3.160.32; + option host-name "opengear02-mgmt"; +} +host dell-r6x0-01-mgmt { + hardware ethernet 64:00:6A:C4:8A:BE; + fixed-address 10.3.160.33; + option host-name "vmhost02-stg-mgmt"; +} +host dell-r6x0-02-mgmt { + hardware ethernet 64:00:6A:C1:DC:82; + fixed-address 10.3.160.34; + option host-name "bvmhost01-stg-mgmt"; +} +host dell-r6x0-03-mgmt { + hardware ethernet 64:00:6A:C1:EF:F0; + fixed-address 10.3.160.35; + option host-name "bvmhost01-mgmt"; +} +host dell-r6x0-04-mgmt { + hardware ethernet 84:7b:eb:f3:62:32; + fixed-address 10.3.160.36; + option host-name "virthost06"; +} +host dell-r6x0-05-mgmt { + hardware ethernet 84:7B:EB:F3:BC:7A; + fixed-address 10.3.160.37; + option host-name "bvirthost04"; +} +host dell-r6x0-06-mgmt { + hardware ethernet 10:7D:1A:FF:5A:B6; + fixed-address 10.3.160.38; + option host-name "bvirthost05"; +} +host dell-r6x0-07-mgmt { + hardware ethernet D0:94:66:44:CE:44; + fixed-address 10.3.160.39; + option host-name "vmhost01"; +} +host dell-r6x0-08-mgmt { + hardware ethernet 58:8A:5A:F3:9E:BC ; + fixed-address 10.3.160.40; + option host-name "virthost14"; +} +host dell-r6x0-09-mgmt { + hardware ethernet 58:8A:5A:EE:EF:F0; + fixed-address 10.3.160.41; + option host-name "virthost12"; +} +host dell-r6x0-10-mgmt { + hardware ethernet 74:E6:E2:FD:78:54 ; + fixed-address 10.3.160.42; + option host-name "virthost19"; +} +host dell-r6x0-11-mgmt { + hardware ethernet 74:E6:E2:FD:6A:5A; + fixed-address 10.3.160.43; + option host-name "virthost20"; +} +host dell-r6x0-12-mgmt { + hardware ethernet 74:E6:E2:FD:76:DE; + fixed-address 10.3.160.44; + option host-name "virthost21"; +} +host dell-r6x0-13-mgmt { + hardware ethernet 74:e6:e2:fd:76:ba; + fixed-address 10.3.160.45; + option host-name "virthost22"; +} +host dell-r6x0-14-mgmt { + hardware ethernet 5c:f3:fc:53:db:fd; + fixed-address 10.3.160.46; + option host-name "virthost-comm01-mgmt"; +} +host dell-r6x0-15-mgmt { + hardware ethernet 4c:d9:8f:04:64:5e; + fixed-address 10.3.160.47; + option host-name "vmhost01-mgmt"; +} +host dell-r6x0-16-mgmt { + hardware ethernet 58:8A:5A:EE:F2:0E; + fixed-address 10.3.160.48; + option host-name "vmhost01-stg-mgmt"; +} +host dell-r6x0-17-mgmt { + hardware ethernet 58:8A:5A:EE:F0:02; + fixed-address 10.3.160.49; + option host-name "bvirthost12"; +} +host dell-r6x0-18-mgmt { + hardware ethernet 58:8A:5A:EE:F0:72; + fixed-address 10.3.160.50; + option host-name "bvirthost13"; +} +host dell-r6x0-19-mgmt { + hardware ethernet 58:8A:5A:F3:A1:CE; + fixed-address 10.3.160.51; + option host-name "bvirthost15"; +} +host dell-r6x0-20-mgmt { + hardware ethernet 4c:d9:8f:03:95:28; + fixed-address 10.3.160.52; + option host-name "qa01-mgmt"; +} +host dell-r6x0-21 { + hardware ethernet 4c:d9:8f:04:3d:1c; + fixed-address 10.3.160.53; + option host-name "qa02-mgmt"; +} + diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org index d3471876db..609f1176b8 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.phx2.fedoraproject.org @@ -856,16 +856,6 @@ subnet 10.5.130.0 netmask 255.255.255.0 { option log-servers 10.5.126.29; range 10.5.130.10 10.5.130.19; - host opengear01 { - hardware ethernet 00:13:C6:01:00:85; - fixed-address 10.5.130.20; - option host-name "opengear01-mgmt"; - } - host opengear02 { - hardware ethernet 00:13:C6:01:5C:FF; - fixed-address 10.5.130.21; - option host-name "opengear02-mgmt"; - } host vmhost-iad-09-mgmt { hardware ethernet B8:2A:72:FC:ED:22; @@ -927,74 +917,8 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.37; option host-name "kvm"; } - host vmhost02-stg-mgmt { - hardware ethernet 64:00:6A:C4:8A:BE; - fixed-address 10.5.130.39; - option host-name "vmhost02-stg-mgmt"; - } - host bvmhost01-stg-mgmt { - hardware ethernet 64:00:6A:C1:DC:82; - fixed-address 10.5.130.40; - option host-name "bvmhost01-stg-mgmt"; - } - host bvmhost01-mgmt { - hardware ethernet 64:00:6A:C1:EF:F0; - fixed-address 10.5.130.41; - option host-name "bvmhost01-mgmt"; - } - host dell-fxqa01-mgmt { - hardware ethernet F4:8E:38:C6:3D:8C; - fixed-address 10.5.130.64; - option host-name "dell-fxqa01"; - } - host dell-fxqa01-01-mgmt { - hardware ethernet 48:4D:7E:05:4E:F0; - fixed-address 10.5.130.65; - option host-name "dell-fxqa01-01"; - } - host dell-fxqa01-02-mgmt { - hardware ethernet 48:4D:7E:05:4F:C0; - fixed-address 10.5.130.66; - option host-name "dell-fxqa01-02"; - } - host dell-fxqa01-03-mgmt { - hardware ethernet 48:4D:7E:05:55:79; - fixed-address 10.5.130.67; - option host-name "dell-fxqa01-03"; - } - host vmhost01-stg-mgmt { - hardware ethernet 58:8A:5A:EE:F2:0E; - fixed-address 10.5.130.68; - option host-name "vmhost01-stg-mgmt"; - } - host vmhost-cloud-01 { - hardware ethernet B8:2A:72:FC:76:02; - fixed-address 10.5.130.100; - option host-name "vmhost-cloud01-mgmt"; - } - host vmhost-04 { - hardware ethernet 4c:d9:8f:04:64:5e; - fixed-address 10.5.130.101; - option host-name "vmhost01-mgmt"; - } - host vmhost-05 { - hardware ethernet 4c:d9:8f:04:65:0c; - fixed-address 10.5.130.102; - option host-name "vmhost02-mgmt"; - } - host cavium01-mgmt { - hardware ethernet e0:d5:5e:ae:59:8d; - fixed-address 10.5.130.103; - option host-name "cavium01"; - } - host cavium02-mgmt { - hardware ethernet e0:d5:5e:ae:53:e1; - fixed-address 10.5.130.104; - option host-name "cavium02"; - } - host kernel03-mgmt { hardware ethernet d0:94:66:7c:b2:dd; fixed-address 10.5.130.107; @@ -1020,21 +944,6 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.120; option host-name "sign-vault06"; } - host bvh12-mgmt { - hardware ethernet 58:8A:5A:EE:F0:02; - fixed-address 10.5.130.121; - option host-name "bvirthost12"; - } - host bvh13-mgmt { - hardware ethernet 58:8A:5A:EE:F0:72; - fixed-address 10.5.130.122; - option host-name "bvirthost13"; - } - host bvh15-mgmt { - hardware ethernet 58:8A:5A:F3:A1:CE; - fixed-address 10.5.130.124; - option host-name "bvirthost15"; - } host copr-vmhost01-mgmt { hardware ethernet f4:02:70:d3:11:90; fixed-address 10.5.130.125; @@ -1055,11 +964,6 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.128; option host-name "copr-vmhost02-mgmt"; } - host retrace03-mgmt { - hardware ethernet f4:02:70:fa:79:7e; - fixed-address 10.5.130.129; - option host-name "retrace03-mgmt"; - } host buildvmhost-a64-10-mgmt { hardware ethernet E8:6A:64:39:18:C3; fixed-address 10.5.130.130; @@ -1115,77 +1019,12 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.148; option host-name "buildvmhost-a64-21"; } - host cloudvmhost-a64-01-mgmt { - hardware ethernet E8:6A:64:39:19:62; - fixed-address 10.5.130.149; - option host-name "cloudvmhost-a64-01"; - } - host cloudfx01-mgmt { - hardware ethernet F4:8E:38:C7:54:DC; - fixed-address 10.5.130.150; - option host-name "cloudfx01"; - } - host cloudfx01-01-mgmt { - hardware ethernet 40:5C:FD:A5:7F:C0; - fixed-address 10.5.130.151; - option host-name "cloudfx01-01"; - } - host cloudfx01-02-mgmt { - hardware ethernet 40:5C:FD:A5:80:90; - fixed-address 10.5.130.152; - option host-name "cloudfx01-02"; - } - host cloudfx01-03-mgmt { - hardware ethernet 40:5C:FD:A5:86:49; - fixed-address 10.5.130.153; - option host-name "cloudfx01-03"; - } - host cloudfx01-04-mgmt { - hardware ethernet 40:5C:FD:A5:86:4A; - fixed-address 10.5.130.154; - option host-name "cloudfx01-04"; - } - host cloudfx01-05-mgmt { - hardware ethernet 40:5C:FD:A5:7F:DA; - fixed-address 10.5.130.155; - option host-name "cloudfx01-05"; - } - host cloudfx01-06-mgmt { - hardware ethernet 40:5C:FD:A5:81:FE; - fixed-address 10.5.130.156; - option host-name "cloudfx01-06"; - } - host cloudfx01-07-mgmt { - hardware ethernet 40:5c:fd:a5:87:b7; - fixed-address 10.5.130.157; - option host-name "cloudfx01-07"; - } - host cloudfx01-08-mgmt { - hardware ethernet 40:5C:FD:A5:87:B8; - fixed-address 10.5.130.158; - option host-name "cloudfx01-08"; - } - host vmhost-os03-mgmt { - hardware ethernet f0:1f:af:e2:6d:1f; - fixed-address 10.5.130.159; - option host-name "vmhost-os03"; - } host qa-vmhost01-mgmt { hardware ethernet f4:02:70:cf:c2:ca; fixed-address 10.5.130.175; option host-name "qa-vmhost01-mgmt"; } - host qa01-mgmt { - hardware ethernet 4c:d9:8f:03:95:28; - fixed-address 10.5.130.185; - option host-name "qa01-mgmt"; - } - host qa02-mgmt { - hardware ethernet 4c:d9:8f:04:3d:1c; - fixed-address 10.5.130.186; - option host-name "qa02-mgmt"; - } host qa03-mgmt { hardware ethernet 00:21:5e:ca:c7:65; fixed-address 10.5.130.187; @@ -1212,67 +1051,6 @@ subnet 10.5.130.0 netmask 255.255.255.0 { fixed-address 10.5.130.192; option host-name "qa08-mgmt"; } - host virthost06-mgmt { - hardware ethernet 84:7b:eb:f3:62:32; - fixed-address 10.5.130.195; - option host-name "virthost06"; - } - host bvirthost04-mgmt { - hardware ethernet 84:7B:EB:F3:BC:7A; - fixed-address 10.5.130.199; - option host-name "bvirthost04"; - } - host bvirthost05-mgmt { - hardware ethernet 10:7D:1A:FF:5A:B6; - fixed-address 10.5.130.202; - option host-name "bvirthost05"; - } - host bkernel04-mgmt { - hardware ethernet D0:94:66:45:A7:E8; - fixed-address 10.5.130.203; - option host-name "bkernel04"; - } - host virthost01-mgmt { - hardware ethernet D0:94:66:44:CE:44; - fixed-address 10.5.130.204; - option host-name "vmhost01"; - } - host virthost14-mgmt { - hardware ethernet 58:8A:5A:F3:9E:BC ; - fixed-address 10.5.130.213; - option host-name "virthost14"; - } - host virthost12-mgmt { - hardware ethernet 58:8A:5A:EE:EF:F0; - fixed-address 10.5.130.228; - option host-name "virthost12"; - } - host virthost19-mgmt { - hardware ethernet 74:E6:E2:FD:78:54 ; - fixed-address 10.5.130.238; - option host-name "virthost19"; - } - host virthost20-mgmt { - hardware ethernet 74:E6:E2:FD:6A:5A; - fixed-address 10.5.130.239; - option host-name "virthost20"; - } - host virthost21-mgmt { - hardware ethernet 74:E6:E2:FD:76:DE; - fixed-address 10.5.130.240; - option host-name "virthost21"; - } - host virthost22-mgmt { - hardware ethernet 74:e6:e2:fd:76:ba; - fixed-address 10.5.130.241; - option host-name "virthost22"; - } - host virthost-comm01-mgmt { - hardware ethernet 5c:f3:fc:53:db:fd; - fixed-address 10.5.130.207; - option host-name "virthost-comm01-mgmt"; - } - host temp02-mgmt { hardware ethernet a4:93:4c:aa:e2:37; fixed-address 10.5.130.211; From 41af6c56db8403e1c660f473d497fdce44ec825a Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Sun, 21 Jun 2020 12:02:44 -0400 Subject: [PATCH 41/47] Put kernel02 in it --- .../files/dhcpd.conf.noc01.iad2.fedoraproject.org | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org index d91945e769..97574892ce 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.iad2.fedoraproject.org @@ -860,9 +860,14 @@ host dell-630-01-mgmt { fixed-address 10.3.160.31; option host-name "bvirthost14"; } -host bkernel02-mgmt { +host bkernel01-mgmt { hardware ethernet D0:94:66:45:8C:13; fixed-address 10.3.160.156; + option host-name "bkernel01"; +} +host bkernel02-mgmt { + hardware ethernet D0:94:66:45:8C:0F; + fixed-address 10.3.160.157; option host-name "bkernel02"; } host opengear01 { From d92ff41412d7c46d9e7ff2ac9635000e5419952c Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sun, 21 Jun 2020 09:20:12 -0700 Subject: [PATCH 42/47] postgresql: do NOT put a recovery.conf file on db-koji01 anymore In phx2 we had a warm standby database host (db-koji02), but we no longer have that host in iad2, so we shouldn't try and make db-koji01 handle that. Also, this was just changed mistakenly as it's the warm standby host that should get the recovery.conf file. Signed-off-by: Kevin Fenzi --- roles/postgresql_server/tasks/main.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/roles/postgresql_server/tasks/main.yml b/roles/postgresql_server/tasks/main.yml index bf7de4b278..c5077c002b 100644 --- a/roles/postgresql_server/tasks/main.yml +++ b/roles/postgresql_server/tasks/main.yml @@ -102,15 +102,6 @@ - config - postgresql -- name: postgresql recover.conf template (standby only) - template: dest=/var/lib/pgsql/data/recovery.conf src=recovery.conf - when: inventory_hostname.startswith('db-koji01.iad2') - notify: - - restart postgresql - tags: - - config - - postgresql - - name: Ensure postgres has a place to backup to file: dest=/backups state=directory owner=postgres tags: @@ -203,7 +194,7 @@ copy: > src=datagrepper_sar.py dest=/usr/local/bin/datagrepper_sar.py mode=0700 - when: inventory_hostname.startswith(('db-datanommer02', 'pgbdr01.stg')) + when: inventory_hostname.startswith('db-datanommer01') tags: - postgresql - SAR From 6ee445f4e7faade60cf3148e800d2fbd3291a21e Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sun, 21 Jun 2020 12:02:58 -0700 Subject: [PATCH 43/47] buildvmhost-s390x-01: no serial console here, so don't try and run it. Signed-off-by: Kevin Fenzi --- playbooks/groups/virthost.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbooks/groups/virthost.yml b/playbooks/groups/virthost.yml index 767b9523fd..c1a929c8e0 100644 --- a/playbooks/groups/virthost.yml +++ b/playbooks/groups/virthost.yml @@ -31,7 +31,7 @@ - { role: openvpn/client, when: vpn|bool } - virthost - { role: clevis, when: datacenter == 'iad2'} - - { role: serial-console, when: datacenter == 'iad2'} + - { role: serial-console, when: datacenter == 'iad2' and not inventory_hostname.startswith(('bvirthost', 'buildvmhost-0'))} tasks: - import_tasks: "{{ tasks_path }}/2fa_client.yml" From 5ddfd7e63aadb5254f196797c86f6d5c0ca41149 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Sun, 21 Jun 2020 12:08:59 -0700 Subject: [PATCH 44/47] buildvmhost-s390x-01: fix conditional spacing. Signed-off-by: Kevin Fenzi --- playbooks/groups/virthost.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbooks/groups/virthost.yml b/playbooks/groups/virthost.yml index c1a929c8e0..dede7d6b2d 100644 --- a/playbooks/groups/virthost.yml +++ b/playbooks/groups/virthost.yml @@ -31,7 +31,7 @@ - { role: openvpn/client, when: vpn|bool } - virthost - { role: clevis, when: datacenter == 'iad2'} - - { role: serial-console, when: datacenter == 'iad2' and not inventory_hostname.startswith(('bvirthost', 'buildvmhost-0'))} + - { role: serial-console, when: datacenter == 'iad2' and not inventory_hostname.startswith('buildvmhost-0') } tasks: - import_tasks: "{{ tasks_path }}/2fa_client.yml" From 52267e041f3069c23cc7abe7c092606f1d434470 Mon Sep 17 00:00:00 2001 From: Clement Verna Date: Mon, 22 Jun 2020 08:49:40 +0200 Subject: [PATCH 45/47] bodhi: Deploy version 5.4.0 Signed-off-by: Clement Verna --- inventory/group_vars/os_masters | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inventory/group_vars/os_masters b/inventory/group_vars/os_masters index 38e3cc633a..d74d7f6543 100644 --- a/inventory/group_vars/os_masters +++ b/inventory/group_vars/os_masters @@ -12,5 +12,5 @@ nagios_Check_Services: # Set some bodhi variables here. # Since they are used when running playbooks against the master nodes. # -bodhi_version: 5.2.2-1.fc32.infra +bodhi_version: 5.4.0-1.fc32.infra bodhi_openshift_pods: 2 From 006223fc6f764e5bedf43484cbdfebaa066e8167 Mon Sep 17 00:00:00 2001 From: Clement Verna Date: Mon, 22 Jun 2020 08:55:43 +0200 Subject: [PATCH 46/47] bodhi: remove patches Signed-off-by: Clement Verna --- roles/openshift-apps/bodhi/templates/buildconfig.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/roles/openshift-apps/bodhi/templates/buildconfig.yml b/roles/openshift-apps/bodhi/templates/buildconfig.yml index 25c48c1a5d..4e6f144d34 100644 --- a/roles/openshift-apps/bodhi/templates/buildconfig.yml +++ b/roles/openshift-apps/bodhi/templates/buildconfig.yml @@ -19,14 +19,6 @@ items: # While dnf has a --nodocs, it doesen't have a --docs... RUN sed -i '/nodocs/d' /etc/dnf/dnf.conf RUN dnf install -y bodhi-server-{{bodhi_version}} bodhi-docs-{{bodhi_version}} python3-pyramid_sawing python3-gunicorn - RUN curl -o /usr/lib/python3.8/site-packages/bodhi/server/models.py https://raw.githubusercontent.com/cverna/bodhi/fix_editing_updates/bodhi/server/models.py &&\ - curl -o /usr/lib/python3.8/site-packages/bodhi/server/tasks/__init__.py https://raw.githubusercontent.com/cverna/bodhi/fix_editing_updates/bodhi/server/tasks/__init__.py &&\ - curl -o /usr/lib/python3.8/site-packages/bodhi/server/util.py https://raw.githubusercontent.com/cverna/bodhi/fix_editing_updates/bodhi/server/util.py &&\ - curl -o /usr/lib/python3.8/site-packages/bodhi/server/tasks/updates.py https://raw.githubusercontent.com/cverna/bodhi/fix_editing_updates/bodhi/server/tasks/updates.py &&\ - curl -o /usr/lib/python3.8/site-packages/bodhi/server/tasks/tag_update_builds.py https://raw.githubusercontent.com/cverna/bodhi/fix_editing_updates/bodhi/server/tasks/tag_update_builds.py &&\ - curl -o /usr/lib/python3.8/site-packages/bodhi/server/tasks/handle_side_and_related_tags.py https://raw.githubusercontent.com/cverna/bodhi/fix_editing_updates/bodhi/server/tasks/handle_side_and_related_tags.py &&\ - curl -o /usr/lib/python3.8/site-packages/bodhi/server/tasks/approve_testing.py https://raw.githubusercontent.com/cverna/bodhi/fix_editing_updates/bodhi/server/tasks/approve_testing.py &&\ - curl -o /usr/lib/python3.8/site-packages/bodhi/server/services/updates.py https://raw.githubusercontent.com/cverna/bodhi/fix_editing_updates/bodhi/server/services/updates.py # Set up krb5 RUN rm -f /etc/krb5.conf && \ From d72ce0481b9a6f632ea05e26b72a0b43e385fb33 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Mon, 22 Jun 2020 08:57:45 +0200 Subject: [PATCH 47/47] copr-be: again disable @copr/copr on production builders Because Koji infra tags seem to be working again. --- roles/copr/backend/files/provision/provision_builder_tasks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/copr/backend/files/provision/provision_builder_tasks.yml b/roles/copr/backend/files/provision/provision_builder_tasks.yml index f20d46dc60..397166b95b 100644 --- a/roles/copr/backend/files/provision/provision_builder_tasks.yml +++ b/roles/copr/backend/files/provision/provision_builder_tasks.yml @@ -25,7 +25,7 @@ with_items: - "@copr/copr" when: -# - devel + - devel - prepare_base_image is not defined - name: clean dnf cache