From: julien zhang Date: Tue, 11 Jul 2017 14:30:27 +0000 (+0000) Subject: Merge "Adding Labels" X-Git-Tag: 6.0.0~108 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=7cbe4e7447280d39fdb5a56b3d9a0fea437b5b15;hp=8efc9ff6b10f6909cebf9d71195f0c0740726dac;p=pharos.git Merge "Adding Labels" --- diff --git a/config/pod1.yaml b/config/pod1.yaml index 26bc51d4..af5ada46 100644 --- a/config/pod1.yaml +++ b/config/pod1.yaml @@ -1,3 +1,4 @@ +--- ### POD descriptor file ### details: @@ -11,48 +12,66 @@ details: jumphost: name: pod1-jump node: - type: {baremetal|virtual} # can be virtual or baremetal + # type can be virtual or baremetal + type: {baremetal|virtual} vendor: supermicro model: S2600JF arch: {x86_64|aarch64} cpus: 2 - cpu_cflags: {broadwell|hasewell|etc} # add values based on CFLAGS in GCC - cores: 10 # physical cores, not including hyper-threads + # add values based on CFLAGS in GCC + cpu_cflags: {broadwell|hasewell|etc} + # physical cores, not including hyper-threads + cores: 10 memory: 32G - disks: # disk list - - name: {disk#number} # first disk - disk_capacity: {M|MB|G|GB|T|TB} # volume - disk_type: {hdd|ssd|cdrom|tape} # several disk types possible - disk_interface: {sata|sas|ssd|nvme} # several interface types possible - disk_rotation: {5400|7200|10000|15000} # define rotation speed of disk - - name: 'disk2' # second disk + # disk list + disks: + # first disk + - name: {disk#number} + # volume + disk_capacity: {M|MB|G|GB|T|TB} + # several disk types possible + disk_type: {hdd|ssd|cdrom|tape} + # several interface types possible + disk_interface: {sata|sas|ssd|nvme} + # define rotation speed of disk + disk_rotation: {5400|7200|10000|15000} + # second disk + - name: 'disk2' disk_capacity: 2048G disk_type: hdd disk_interface: sas disk_rotation: 15000 - os: ubuntu-14.04 #operation system installed + # operation system installed + os: ubuntu-14.04 remote_para: &remoteparas - type: {ipmi|amt} # hardware manggement tool - - ipmi: # for impi, there maybe a list versions - - 1.0 - - 2.0 + # hardware manggement tool + type: {ipmi|amt} + versions: + - 1.0 + - 2.0 user: root pass: root remote_mangement: <<: *remoteparas address: 10.4.7.3/24 mac_address: "10:23:45:67:89:AC" - interfaces: # physical interface list - - nic: {nic#number} # first interface - address: 192.168.100.1 # ip address of nic + # physical interface list + interfaces: + # first interface + - nic: {nic#number} + # ip address of nic + address: 192.168.100.1 mac_address: "10:23:45:67:89:AC" - vlan: {native|1-4095} # vlan tag, may have multiple tags - - nic: 'nic2' # second interface + # vlan tag, may have multiple tags + vlan: {native|1-4095} + # second interface + - nic: 'nic2' address: 10.20.0.1/24 mac_address: "10:23:45:67:89:5B" nodes: - name: pod1-node1 - node: &nodeparas # for nodes in the same pod may have the same configuration + # for nodes in the same pod may have the same configuration + node: &nodeparas type: baremetal vendor: supermicro model: S2600JF @@ -61,7 +80,8 @@ nodes: cpu_cflags: hasewell cores: 12 memory: 128G - disks: &disks # for nodes in the same pod may have the same configuration + # for nodes in the same pod may have the same configuration + disks: &disks - name: 'disk1' disk_capacity: 4906G disk_type: hdd @@ -106,7 +126,8 @@ nodes: vlan: 204 - name: pod1-node2 node: *nodeparas - disks: *disks # disks are same as pod1-node1 + # disks are same as pod1-node1 + disks: *disks remote_mangement: <<: *remoteparas address: 10.4.7.8/24 @@ -133,4 +154,3 @@ nodes: speed: 10gb features: 'dpdk|sriov' mac_address: "00:1b:21:22:f8:b5" - diff --git a/docs/labs/ool/pod1_inventory.yaml b/docs/labs/ool/pod1_inventory.yaml index 4f46b956..528eb098 100644 --- a/docs/labs/ool/pod1_inventory.yaml +++ b/docs/labs/ool/pod1_inventory.yaml @@ -1,37 +1,38 @@ +--- nodes: - name: node-9 tags: control arch: "x86_64" mac_address: "90:1b:0e:6b:e8:a8" power: - type: ipmi - address: n/a - user: n/a - pass: n/a + type: ipmi + address: n/a + user: n/a + pass: n/a - name: node-10 tags: control arch: "x86_64" mac_address: "90:1b:0e:6b:e3:00" power: - type: ipmi - address: n/a - user: n/a - pass: n/a + type: ipmi + address: n/a + user: n/a + pass: n/a - name: node-11 tags: control arch: "x86_64" mac_address: "90:1b:0e:6b:e5:b4" power: - type: ipmi - address: n/a - user: n/a - pass: n/a + type: ipmi + address: n/a + user: n/a + pass: n/a - name: node-12 tags: compute arch: "x86_64" mac_address: "90:1b:0e:6b:e2:bc" power: - type: ipmi - address: n/a - user: n/a - pass: n/a + type: ipmi + address: n/a + user: n/a + pass: n/a diff --git a/docs/labs/orange-lannion-lab/index.rst b/docs/labs/orange-lannion-lab/index.rst index 0a8b1c9a..eeb25916 100644 --- a/docs/labs/orange-lannion-lab/index.rst +++ b/docs/labs/orange-lannion-lab/index.rst @@ -200,12 +200,12 @@ The Orange OPNFV testlab is free to use for the OPNFV community. To access the Testlab, please contact bertrand.lelamer AT orange.com with the following details: - * Name - * Email - * Designation - * Organization - * Purpose of using the lab - * SSH public key +* Name +* Email +* Designation +* Organization +* Purpose of using the lab +* SSH public key diff --git a/docs/labs/orange-paris-lab/orange_paris_lab_description.rst b/docs/labs/orange-paris-lab/orange_paris_lab_description.rst index c59ec2ad..5a257316 100644 --- a/docs/labs/orange-paris-lab/orange_paris_lab_description.rst +++ b/docs/labs/orange-paris-lab/orange_paris_lab_description.rst @@ -45,9 +45,9 @@ A VPN is used to provide access to the Orange Paris Testlab. To access the Testlab, please contact Auboin Cyril (cyril.auboin@orange.com) with the following details: * Name - * Organization - * Purpose of using the labs - * Dates start / end +* Organization +* Purpose of using the labs +* Dates start / end Processing the request can take 3-4 business days. diff --git a/docs/labs/orange-paris-lab/orange_paris_pod1_description.rst b/docs/labs/orange-paris-lab/orange_paris_pod1_description.rst index 65dea329..75dcfdd5 100644 --- a/docs/labs/orange-paris-lab/orange_paris_pod1_description.rst +++ b/docs/labs/orange-paris-lab/orange_paris_pod1_description.rst @@ -56,49 +56,49 @@ Server Specifications **Controller Node** -+------------+---------+-----------+---------------+--------------+----------+-----------+---------------------+------------------------+------------------+-------+ -| | | | | | | Local | Lights-out network | 1GbE: NIC#/IP | 10GbE: NIC#/IP | | -| Hostname | Vendor | Model | Serial Number | CPUs | Memory | storage | (IPMI): IP/MAC, U/P | MAC/VLAN/Network | MAC/VLAN/Network | Notes | -+------------+---------+-----------+---------------+--------------+----------+-----------+---------------------+------------------------+------------------+-------+ -| pod1-ctrl1 | HP | Proliant | CZJ40901PT | Intel Xeon | 16GB | 300GB SAS | | IF0: 9C:B6:54:95:E4:74 | | | -| | | DL 360e | | E5-2430 v2.2 | | 300GB SAS | | Admin | | | -| | | Gen8 | | 2,5Ghz | | | | IF1: 9C:B6:54:95:E4:75 | | | -| | | | | 24 core | | | | 18: Public | | | -| | | | | | | | | 1500: Storage | | | -| | | | | | | | | 17: Management | | | -| | | | | | | | | 1502: Private | | | -+------------+---------+-----------+---------------+--------------+----------+-----------+---------------------+------------------------+------------------+-------+ ++------------+---------+-----------+---------------+---------------+--------+-----------+---------------------+------------------------+------------------+-------+ +| | | | | | | Local | Lights-out network | 1GbE: NIC#/IP | 10GbE: NIC#/IP | | +| Hostname | Vendor | Model | Serial Number | CPUs | Memory | storage | (IPMI): IP/MAC, U/P | MAC/VLAN/Network | MAC/VLAN/Network | Notes | ++------------+---------+-----------+---------------+---------------+--------+-----------+---------------------+------------------------+------------------+-------+ +| pod1-ctrl1 | HP | Proliant | CZJ40901PT | Intel Xeon | 16GB | 300GB SAS | | IF0: 9C:B6:54:95:E4:74 | | | +| | | DL 360e | | E5-2430 v2.2 | | 300GB SAS | | Admin | | | +| | | Gen8 | | 2,5Ghz | | | | IF1: 9C:B6:54:95:E4:75 | | | +| | | | | 24 core | | | | 18: Public | | | +| | | | | | | | | 1500: Storage | | | +| | | | | | | | | 17: Management | | | +| | | | | | | | | 1502: Private | | | ++------------+---------+-----------+---------------+---------------+--------+-----------+---------------------+------------------------+------------------+-------+ **Compute Nodes** -+------------+---------+-----------+---------------+--------------+-----------+------------+---------------------+------------------------+------------------+-------+ -| | | | | | | Local | Lights-out network | 1GbE: NIC#/IP | 10GbE: NIC#/IP | | -| Hostname | Vendor | Model | Serial Number | CPUs | Memory | storage | (IPMI): IP/MAC, U/P | MAC/VLAN/Network | MAC/VLAN/Network | Notes | -+------------+---------+-----------+---------------+--------------+-----------+------------+---------------------+------------------------+------------------+-------+ -| pod1-node1 | DELL | R730 | 8F3J642 | Intel Xeon | 128GB | 250GB SATA | | IF0: EC:F4:BB:CB:62:9C | | | -| | | | | E5-2603 v3 | (8x16GB) | 480GB SSD | | Admin | | | -| | | | | 1,6Ghz | 1600Mhz | 480GB SSD | | IF1: EC:F4:BB:CB:62:9A | | | -| | | | | 12 core | | | | 18: Public | | | -| | | | | | | | | 1500: Storage | | | -| | | | | | | | | 17: Management | | | -| | | | | | | | | 1502: Private | | | -+------------+---------+-----------+---------------+--------------+-----------+------------+---------------------+------------------------+------------------+-------+ -| pod1-node2 | HP | Proliant | CZJ40901PS | Intel Xeon | 16GB | 300GB SAS | | IF0: 9C:B6:54:95:D4:F0 | | | -| | | DL 360e | | E5-2430 v2.2 | | 300GB SAS | | Admin | | | -| | | Gen8 | | 2,5Ghz | | | | IF1: 9C:B6:54:95:D4:F1 | | | -| | | | | 24 core | | | | 18: Public | | | -| | | | | | | | | 1500: Storage | | | -| | | | | | | | | 17: Management | | | -| | | | | | | | | 1502: Private | | | -+------------+---------+-----------+---------------+--------------+-----------+------------+---------------------+------------------------+------------------+-------+ -| pod1-node3 | DELL | R730 | FG3J642 | Intel Xeon | 128GB | 256GB SATA | | IF0: EC:F4:BB:CB:62:E4 | | | -| | | | | E5-2603 v3 | (8x16GB) | 480GB SSD | | Admin | | | -| | | | | 1,6Ghz | 1600Mhz | 480GB SSD | | IF1: EC:F4:BB:CB:62:E2 | | | -| | | | | 12 core | | | | 18: Public | | | -| | | | | | | | | 1500: Storage | | | -| | | | | | | | | 17: Management | | | -| | | | | | | | | 1502: Private | | | -+------------+---------+-----------+---------------+--------------+-----------+------------+---------------------+------------------------+------------------+-------+ ++------------+---------+-----------+---------------+---------------+----------+------------+---------------------+------------------------+------------------+-------+ +| | | | | | | Local | Lights-out network | 1GbE: NIC#/IP | 10GbE: NIC#/IP | | +| Hostname | Vendor | Model | Serial Number | CPUs | Memory | storage | (IPMI): IP/MAC, U/P | MAC/VLAN/Network | MAC/VLAN/Network | Notes | ++------------+---------+-----------+---------------+---------------+----------+------------+---------------------+------------------------+------------------+-------+ +| pod1-node1 | DELL | R730 | 8F3J642 | Intel Xeon | 128GB | 250GB SATA | | IF0: EC:F4:BB:CB:62:9C | | | +| | | | | E5-2603 v3 | (8x16GB) | 480GB SSD | | Admin | | | +| | | | | 1,6Ghz | 1600Mhz | 480GB SSD | | IF1: EC:F4:BB:CB:62:9A | | | +| | | | | 12 core | | | | 18: Public | | | +| | | | | | | | | 1500: Storage | | | +| | | | | | | | | 17: Management | | | +| | | | | | | | | 1502: Private | | | ++------------+---------+-----------+---------------+---------------+----------+------------+---------------------+------------------------+------------------+-------+ +| pod1-node2 | HP | Proliant | CZJ40901PS | Intel Xeon | 16GB | 300GB SAS | | IF0: 9C:B6:54:95:D4:F0 | | | +| | | DL 360e | | E5-2430 v2.2 | | 300GB SAS | | Admin | | | +| | | Gen8 | | 2,5Ghz | | | | IF1: 9C:B6:54:95:D4:F1 | | | +| | | | | 24 core | | | | 18: Public | | | +| | | | | | | | | 1500: Storage | | | +| | | | | | | | | 17: Management | | | +| | | | | | | | | 1502: Private | | | ++------------+---------+-----------+---------------+---------------+----------+------------+---------------------+------------------------+------------------+-------+ +| pod1-node3 | DELL | R730 | FG3J642 | Intel Xeon | 128GB | 256GB SATA | | IF0: EC:F4:BB:CB:62:E4 | | | +| | | | | E5-2603 v3 | (8x16GB) | 480GB SSD | | Admin | | | +| | | | | 1,6Ghz | 1600Mhz | 480GB SSD | | IF1: EC:F4:BB:CB:62:E2 | | | +| | | | | 12 core | | | | 18: Public | | | +| | | | | | | | | 1500: Storage | | | +| | | | | | | | | 17: Management | | | +| | | | | | | | | 1502: Private | | | ++------------+---------+-----------+---------------+---------------+----------+------------+---------------------+------------------------+------------------+-------+ Users ----- diff --git a/docs/labs/zte-sh-lab/pod-1.yaml b/docs/labs/zte-sh-lab/pod-1.yaml index 747461a6..b8bee5d8 100644 --- a/docs/labs/zte-sh-lab/pod-1.yaml +++ b/docs/labs/zte-sh-lab/pod-1.yaml @@ -1,3 +1,4 @@ +--- ############################################################################## ## Copyright (c) 2015 ZTE Corp. and others. ## @@ -9,47 +10,47 @@ nodes: - name: node1 - tags: control #optional param, other valid value "compute" + tags: control # optional param, other valid value "compute" arch: "x86_64" - mac_address: "74:4A:A4:00:CF:DC" #pxe boot interface mac + mac_address: "74:4A:A4:00:CF:DC" # pxe boot interface mac power: - type: ipmi - address: 192.168.1.101 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.101 + user: zteroot + pass: superuser - name: node2 tags: control arch: "x86_64" mac_address: "74:4A:A4:00:CE:CE" power: - type: ipmi - address: 192.168.1.102 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.102 + user: zteroot + pass: superuser - name: node3 tags: control arch: "x86_64" mac_address: "74:4A:A4:00:CF:58" power: - type: ipmi - address: 192.168.1.103 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.103 + user: zteroot + pass: superuser - name: node4 tags: compute arch: "x86_64" mac_address: "74:4A:A4:00:49:84" power: - type: ipmi - address: 192.168.1.104 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.104 + user: zteroot + pass: superuser - name: node5 tags: compute arch: "x86_64" mac_address: "74:4A:A4:00:CE:C2" power: - type: ipmi - address: 192.168.1.105 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.105 + user: zteroot + pass: superuser diff --git a/docs/labs/zte-sh-lab/pod-2.yaml b/docs/labs/zte-sh-lab/pod-2.yaml index 55d478fd..c56b53db 100644 --- a/docs/labs/zte-sh-lab/pod-2.yaml +++ b/docs/labs/zte-sh-lab/pod-2.yaml @@ -1,3 +1,4 @@ +--- ############################################################################## ## Copyright (c) 2015 ZTE Corp. and others. ## @@ -9,47 +10,47 @@ nodes: - name: node1 - tags: control #optional param, other valid value "compute" + tags: control # optional param, other valid value "compute" arch: "x86_64" - mac_address: "74:4A:A4:00:CD:72" #pxe boot interface mac + mac_address: "74:4A:A4:00:CD:72" # pxe boot interface mac power: - type: ipmi - address: 192.168.1.106 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.106 + user: zteroot + pass: superuser - name: node2 tags: control arch: "x86_64" mac_address: "74:4A:A4:00:CA:CC" power: - type: ipmi - address: 192.168.1.107 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.107 + user: zteroot + pass: superuser - name: node3 tags: control arch: "x86_64" mac_address: "74:4A:A4:00:CD:12" power: - type: ipmi - address: 192.168.1.108 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.108 + user: zteroot + pass: superuser - name: node4 tags: compute arch: "x86_64" mac_address: "74:4A:A4:00:CF:40" power: - type: ipmi - address: 192.168.1.109 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.109 + user: zteroot + pass: superuser - name: node5 tags: compute arch: "x86_64" mac_address: "74:4A:A4:00:CE:D4" power: - type: ipmi - address: 192.168.1.110 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.110 + user: zteroot + pass: superuser diff --git a/docs/labs/zte-sh-lab/pod-3.yaml b/docs/labs/zte-sh-lab/pod-3.yaml index e3557fc2..409be27e 100644 --- a/docs/labs/zte-sh-lab/pod-3.yaml +++ b/docs/labs/zte-sh-lab/pod-3.yaml @@ -1,3 +1,4 @@ +--- ############################################################################## ## Copyright (c) 2015 ZTE Corp. and others. ## @@ -13,44 +14,43 @@ nodes: arch: "x86_64" mac_address: "74:4a:a4:00:0b:85" power: - type: ipmi - address: 192.168.1.32 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.32 + user: zteroot + pass: superuser - name: node2 tags: control arch: "x86_64" mac_address: "74:4a:a4:00:5c:5d" power: - type: ipmi - address: 192.168.1.33 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.33 + user: zteroot + pass: superuser - name: node3 tags: control arch: "x86_64" mac_address: "74:4a:a4:00:5c:35" power: - type: ipmi - address: 192.168.1.34 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.34 + user: zteroot + pass: superuser - name: node4 tags: compute arch: "x86_64" mac_address: "74:4a:a4:00:5c:69" power: - type: ipmi - address: 192.168.1.35 - user: zteroot - pass: superuser + type: ipmi + address: 192.168.1.35 + user: zteroot + pass: superuser - name: node5 tags: compute arch: "x86_64" mac_address: "74:4a:a4:00:5c:6d" power: - type: ipmi - address: 192.168.1.36 - user: zteroot - pass: superuser - + type: ipmi + address: 192.168.1.36 + user: zteroot + pass: superuser diff --git a/tools/pharos-dashboard/config.env.sample b/tools/pharos-dashboard/config.env.sample index 892faac4..060841c2 100644 --- a/tools/pharos-dashboard/config.env.sample +++ b/tools/pharos-dashboard/config.env.sample @@ -1,3 +1,5 @@ +DASHBOARD_URL=http://labs.opnfv.org + # SECURITY WARNING: don't run with debug turned on in production! DEBUG=False diff --git a/tools/pharos-dashboard/docker-compose.yml b/tools/pharos-dashboard/docker-compose.yml index d2d672ae..16b8c0fd 100644 --- a/tools/pharos-dashboard/docker-compose.yml +++ b/tools/pharos-dashboard/docker-compose.yml @@ -1,3 +1,4 @@ +--- ############################################################################## # Copyright (c) 2016 Max Breitenfeldt and others. # @@ -27,7 +28,9 @@ services: restart: always build: ./web/ container_name: dg01 - command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py collectstatic --no-input && gunicorn pharos_dashboard.wsgi -b 0.0.0.0:8000" + # yamllint disable rule:line-length + command: bash -c "python manage.py migrate && python manage.py collectstatic --no-input && gunicorn pharos_dashboard.wsgi -b 0.0.0.0:8000" + # yamllint enable rule:line-length depends_on: - postgres links: @@ -46,8 +49,8 @@ services: container_name: ps01 env_file: config.env volumes: - - ./config/postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - - /var/lib/pharos_dashboard/postgresql:/var/lib/postgresql + - ./config/postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d + - /var/lib/pharos_dashboard/postgresql:/var/lib/postgresql rabbitmq: restart: always @@ -55,16 +58,17 @@ services: container_name: rm01 env_file: config.env ports: - - "5672:5672" - + - "5672:5672" + worker: restart: always build: ./worker/ + # yamllint disable rule:line-length command: bash -c "celery -A pharos_dashboard worker -l info -B --schedule=~/celerybeat-schedule" + # yamllint enable rule:line-length env_file: config.env links: - postgres - rabbitmq volumes: - ./:/pharos_dashboard - diff --git a/tools/pharos-dashboard/rabbitmq/init.sh b/tools/pharos-dashboard/rabbitmq/init.sh index f8ac0890..9d04dd11 100755 --- a/tools/pharos-dashboard/rabbitmq/init.sh +++ b/tools/pharos-dashboard/rabbitmq/init.sh @@ -1,7 +1,7 @@ #!/bin/sh # Create Rabbitmq user -( sleep 20 ; \ +( sleep 10 ; \ rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASSWORD 2>/dev/null ; \ rabbitmqctl set_user_tags $RABBITMQ_USER administrator ; \ rabbitmqctl set_permissions -p / $RABBITMQ_USER ".*" ".*" ".*" ; \ diff --git a/tools/pharos-dashboard/src/dashboard/admin.py b/tools/pharos-dashboard/src/dashboard/admin.py index 56ac1693..0bfdef8f 100644 --- a/tools/pharos-dashboard/src/dashboard/admin.py +++ b/tools/pharos-dashboard/src/dashboard/admin.py @@ -12,6 +12,9 @@ from django.contrib import admin from dashboard.models import * +admin.site.site_header = "Pharos Dashboard Administration" +admin.site.site_title = "Pharos Dashboard" + admin.site.register(Resource) admin.site.register(Server) admin.site.register(ResourceStatus) diff --git a/tools/pharos-dashboard/src/dashboard/migrations/0002_auto_20170505_0815.py b/tools/pharos-dashboard/src/dashboard/migrations/0002_auto_20170505_0815.py new file mode 100644 index 00000000..4285b887 --- /dev/null +++ b/tools/pharos-dashboard/src/dashboard/migrations/0002_auto_20170505_0815.py @@ -0,0 +1,42 @@ +############################################################################## +# Copyright (c) 2016 Max Breitenfeldt and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + + +# -*- coding: utf-8 -*- +# Generated by Django 1.10 on 2017-05-05 08:15 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('dashboard', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='resource', + name='dev_pod', + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name='resource', + name='owner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_lab_owner', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='resource', + name='slave', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='jenkins.JenkinsSlave'), + ), + ] diff --git a/tools/pharos-dashboard/src/dashboard/models.py b/tools/pharos-dashboard/src/dashboard/models.py index 4f3ac95c..3de7db3d 100644 --- a/tools/pharos-dashboard/src/dashboard/models.py +++ b/tools/pharos-dashboard/src/dashboard/models.py @@ -22,9 +22,10 @@ class Resource(models.Model): name = models.CharField(max_length=100, unique=True) description = models.CharField(max_length=300, blank=True, null=True) url = models.CharField(max_length=100, blank=True, null=True) - owner = models.ForeignKey(User, related_name='user_lab_owner', null=True) + owner = models.ForeignKey(User, related_name='user_lab_owner', null=True, blank=True) vpn_users = models.ManyToManyField(User, related_name='user_vpn_users', blank=True) - slave = models.ForeignKey(JenkinsSlave, on_delete=models.DO_NOTHING, null=True) + slave = models.ForeignKey(JenkinsSlave, on_delete=models.DO_NOTHING, null=True, blank=True) + dev_pod = models.BooleanField(default=False) def get_booking_utilization(self, weeks): """ diff --git a/tools/pharos-dashboard/src/dashboard/views.py b/tools/pharos-dashboard/src/dashboard/views.py index 1848844b..62a9f830 100644 --- a/tools/pharos-dashboard/src/dashboard/views.py +++ b/tools/pharos-dashboard/src/dashboard/views.py @@ -45,7 +45,7 @@ class DevelopmentPodsView(TemplateView): template_name = "dashboard/dev_pods.html" def get_context_data(self, **kwargs): - resources = Resource.objects.filter(slave__dev_pod=True, slave__active=True) + resources = Resource.objects.filter(dev_pod=True) bookings = Booking.objects.filter(start__lte=timezone.now()) bookings = bookings.filter(end__gt=timezone.now()) @@ -76,11 +76,9 @@ class ResourceView(TemplateView): def get_context_data(self, **kwargs): resource = get_object_or_404(Resource, id=self.kwargs['resource_id']) - utilization = resource.slave.get_utilization(timedelta(days=7)) bookings = Booking.objects.filter(resource=resource, end__gt=timezone.now()) context = super(ResourceView, self).get_context_data(**kwargs) - context.update({'title': str(resource), 'resource': resource, 'utilization': utilization, - 'bookings': bookings}) + context.update({'title': str(resource), 'resource': resource, 'bookings': bookings}) return context diff --git a/tools/pharos-dashboard/src/notification/tasks.py b/tools/pharos-dashboard/src/notification/tasks.py index e2b34ca9..7f737625 100644 --- a/tools/pharos-dashboard/src/notification/tasks.py +++ b/tools/pharos-dashboard/src/notification/tasks.py @@ -27,7 +27,7 @@ from dashboard_notification.notification import Notification, Message @shared_task def send_booking_notifications(): - with Notification(dashboard_url=settings.RABBITMQ_URL) as messaging: + with Notification(dashboard_url=settings.RABBITMQ_URL, user=settings.RABBITMQ_USER, password=settings.RABBITMQ_PASSWORD) as messaging: now = timezone.now() notifications = BookingNotification.objects.filter(submitted=False, submit_time__gt=now - timedelta(minutes=1), diff --git a/tools/pharos-dashboard/src/pharos_dashboard/settings.py b/tools/pharos-dashboard/src/pharos_dashboard/settings.py index 084f8786..546b174e 100644 --- a/tools/pharos-dashboard/src/pharos_dashboard/settings.py +++ b/tools/pharos-dashboard/src/pharos_dashboard/settings.py @@ -5,7 +5,7 @@ from datetime import timedelta BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = False +DEBUG = True # Application definition @@ -157,13 +157,16 @@ OAUTH_REQUEST_TOKEN_URL = JIRA_URL + '/plugins/servlet/oauth/request-token' OAUTH_ACCESS_TOKEN_URL = JIRA_URL + '/plugins/servlet/oauth/access-token' OAUTH_AUTHORIZE_URL = JIRA_URL + '/plugins/servlet/oauth/authorize' -OAUTH_CALLBACK_URL = JIRA_URL + '/accounts/authenticated' +OAUTH_CALLBACK_URL = os.environ['DASHBOARD_URL'] + '/accounts/authenticated' # Celery Settings CELERY_TIMEZONE = 'UTC' RABBITMQ_URL = 'rabbitmq' -BROKER_URL = 'amqp://guest:guest@rabbitmq:5672//' +RABBITMQ_USER = os.environ['RABBITMQ_USER'] +RABBITMQ_PASSWORD = os.environ['RABBITMQ_PASSWORD'] + +BROKER_URL = 'amqp://' + RABBITMQ_USER + ':' + RABBITMQ_PASSWORD + '@rabbitmq:5672//' CELERYBEAT_SCHEDULE = { 'sync-jenkins': { diff --git a/tools/pharos-dashboard/src/templates/base.html b/tools/pharos-dashboard/src/templates/base.html index 2ce22a3a..4d8530ad 100644 --- a/tools/pharos-dashboard/src/templates/base.html +++ b/tools/pharos-dashboard/src/templates/base.html @@ -15,7 +15,7 @@ + src="http://artifacts.opnfv.org/apex/review/14099/installation-instructions/_static/opnfv-logo.png"> Pharos Dashboard @@ -108,4 +108,4 @@ -{% endblock basecontent %} \ No newline at end of file +{% endblock basecontent %} diff --git a/tools/pharos-validator/src/validation_tool/doc/config.yaml b/tools/pharos-validator/src/validation_tool/doc/config.yaml index 6b3a6d0a..f2146ff9 100644 --- a/tools/pharos-validator/src/validation_tool/doc/config.yaml +++ b/tools/pharos-validator/src/validation_tool/doc/config.yaml @@ -1,9 +1,10 @@ +--- ################### # Program arguments ################### # # Define path of output file -output: "yaml" # Values are ("yaml", ) +output: "yaml" # Values are ("yaml", ) ################# # Server settings @@ -33,6 +34,4 @@ logfile: "/tmp/runtime_logs.txt" # Path to test logs test_log: "/tmp/results.yaml" # Path to dhcpd configuration file -#dhcpdfile: "/etc/dhcp/dhcpd.conf" dhcpdfile: "/etc/dhcp/dhcpd.conf" - diff --git a/tools/pharos-validator/src/validation_tool/doc/example/config.yaml b/tools/pharos-validator/src/validation_tool/doc/example/config.yaml index 6b3a6d0a..f2146ff9 100644 --- a/tools/pharos-validator/src/validation_tool/doc/example/config.yaml +++ b/tools/pharos-validator/src/validation_tool/doc/example/config.yaml @@ -1,9 +1,10 @@ +--- ################### # Program arguments ################### # # Define path of output file -output: "yaml" # Values are ("yaml", ) +output: "yaml" # Values are ("yaml", ) ################# # Server settings @@ -33,6 +34,4 @@ logfile: "/tmp/runtime_logs.txt" # Path to test logs test_log: "/tmp/results.yaml" # Path to dhcpd configuration file -#dhcpdfile: "/etc/dhcp/dhcpd.conf" dhcpdfile: "/etc/dhcp/dhcpd.conf" - diff --git a/tools/pharos-validator/src/validation_tool/doc/example/inventory.yaml b/tools/pharos-validator/src/validation_tool/doc/example/inventory.yaml index d0f50838..2ba768ab 100644 --- a/tools/pharos-validator/src/validation_tool/doc/example/inventory.yaml +++ b/tools/pharos-validator/src/validation_tool/doc/example/inventory.yaml @@ -1,37 +1,38 @@ +--- nodes: - - name: node0 - tags: control #optional param, other valid value "compute" + - name: node0 + tags: control # optional param, other valid value "compute" arch: "x86_64" - mac_address: "de:ad:be:ef:11:11" #pxe boot interface mac - cpus: 2 #required only for virtual deployments - memory: 2048 #required only for virtual deployments - disk: 40 #required only for virtual deployments + mac_address: "de:ad:be:ef:11:11" # pxe boot interface mac + cpus: 2 # required only for virtual deployments + memory: 2048 # required only for virtual deployments + disk: 40 # required only for virtual deployments power: - type: ipmi - address: 10.4.7.2 - user: root - pass: root + type: ipmi + address: 10.4.7.2 + user: root + pass: root - name: node1 - tags: control #optional param, other valid value "compute" + tags: control # optional param, other valid value "compute" arch: "x86_64" - mac_address: "de:ad:be:ef:22:22" #pxe boot interface mac - cpus: 2 #required only for virtual deployments - memory: 2048 #required only for virtual deployments - disk: 40 #required only for virtual deployments + mac_address: "de:ad:be:ef:22:22" # pxe boot interface mac + cpus: 2 # required only for virtual deployments + memory: 2048 # required only for virtual deployments + disk: 40 # required only for virtual deployments power: - type: ipmi - address: 10.4.7.3 - user: root - pass: root + type: ipmi + address: 10.4.7.3 + user: root + pass: root - name: node2 - tags: control #optional param, other valid value "compute" + tags: control # optional param, other valid value "compute" arch: "x86_64" - mac_address: "de:ad:be:ef:33:33" #pxe boot interface mac - cpus: 2 #required only for virtual deployments - memory: 2048 #required only for virtual deployments - disk: 40 #required only for virtual deployments + mac_address: "de:ad:be:ef:33:33" # pxe boot interface mac + cpus: 2 # required only for virtual deployments + memory: 2048 # required only for virtual deployments + disk: 40 # required only for virtual deployments power: - type: ipmi - address: 10.4.7.4 - user: root - pass: root + type: ipmi + address: 10.4.7.4 + user: root + pass: root diff --git a/tools/pharos-validator/src/validation_tool/doc/example/network.yaml b/tools/pharos-validator/src/validation_tool/doc/example/network.yaml index 34329cc4..91c1be91 100644 --- a/tools/pharos-validator/src/validation_tool/doc/example/network.yaml +++ b/tools/pharos-validator/src/validation_tool/doc/example/network.yaml @@ -1,3 +1,4 @@ +--- # This configuration file defines Network Environment for a # Baremetal Deployment of OPNFV. It contains default values # for 5 following networks: @@ -30,16 +31,14 @@ # # "api" is an optional network for splitting out OpenStack service API # communication. This should be used for IPv6 deployments. - -network-config-metadata: #Meta data for the network configuration + +network-config-metadata: # Meta data for the network configuration title: LF-POD-1 Network config # version: 0.1 # created: Mon Dec 28 2015 # comment: None # - # - - # - # + +# yamllint disable rule:line-length networks: # Network configurations admin: # Admin configuration (pxe and jumpstart), enabled: true @@ -48,11 +47,11 @@ networks: # Network configurations nic_type: interface # Indicates if this VM will be bridged to an interface, or to a bond members: - em1 # Member Interface to bridge to for installer VM (use multiple values for bond) - vlan: 29 # VLAN tag to use for this network on Installer VM, native means none - ip: 10.10.25.100 # IP to assign to Installer VM on this network + vlan: 29 # VLAN tag to use for this network on Installer VM, native means none + ip: 10.10.25.100 # IP to assign to Installer VM on this network usable_ip_range: 10.10.25.0,10.10.25.100 # Usable ip range, if empty entire range is usable, ex. 192.168.1.10,192.168.1.20 - gateway: 192.0.2.1 # Gateway (only needed when public_network is disabled) - cidr: 10.10.25.0/24 # Subnet in CIDR format 192.168.1.0/24 + gateway: 192.0.2.1 # Gateway (only needed when public_network is disabled) + cidr: 10.10.25.0/24 # Subnet in CIDR format 192.168.1.0/24 dhcp_range: 10.10.25.50,10.10.25.99 # DHCP range for the admin network, if empty it will be automatically provisioned dns-domain: opnfvlf.org # Admin network dns domain dns-search: opnfvlf.org # Admin network dns-search domain @@ -74,16 +73,16 @@ networks: # Network configurations members: - eth1 - eth2 - # + tenant: # Tenant network configuration enabled: true cidr: 11.0.0.0/24 # Subnet in CIDR format 192.168.1.0/24 vlan: 10 # VLAN tag to use for Overcloud hosts on this network mtu: 64000 # Tenant network MTU - overlay_id_range: 2,65535 # Tenant network Overlay segmentation ID range: - # VNI, VLAN-ID, etc. - segmentation_type: vxlan # Tenant network segmentation type: - # vlan, vxlan, gre + overlay_id_range: 2,65535 # Tenant network Overlay segmentation ID range: VNI, VLAN-ID, etc. + + segmentation_type: vxlan # Tenant network segmentation type:vlan, vxlan, gre + nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) phys_type: interface # Physical interface type (interface or bond) @@ -95,7 +94,7 @@ networks: # Network configurations vlan: 10 members: - eth1 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" - # + external: # Can contain 1 or more external networks - public: # "public" network will be the network the installer VM attaches to enabled: true @@ -108,11 +107,11 @@ networks: # Network configurations ip: 192.168.37.12 # IP to assign to Installer VM on this network cidr: 192.168.37.0/24 gateway: 192.168.37.1 - floating_ip_range: 192.168.37.200,192.168.37.220 #Range to allocate to floating IPs for the public network with Neutron - usable_ip_range: 192.168.37.10,192.168.37.199 #Usable IP range on the public network, usually this is a shared subnet + floating_ip_range: 192.168.37.200,192.168.37.220 # Range to allocate to floating IPs for the public network with Neutron + usable_ip_range: 192.168.37.10,192.168.37.199 # Usable IP range on the public network, usually this is a shared subnet dns_nameservers: # External dns servers - - 8.8.8.8 # - - 8.8.4.4 # + - 8.8.8.8 # + - 8.8.4.4 # ntp: # External upstream NTP servers - 0.se.pool.ntp.org # - 1.se.pool.ntp.org # @@ -131,20 +130,20 @@ networks: # Network configurations members: - eth1 external_overlay: # External network to be created in OpenStack by Services tenant - name: Public_internet - type: flat - gateway: 192.168.37.1 + name: Public_internet + type: flat + gateway: 192.168.37.1 - private_cloud: # another external network enabled: false vlan: 101 mtu: 64000 cidr: 192.168.38.0/24 gateway: 192.168.38.1 - floating_ip_range: 192.168.38.200,192.168.38.220 #Range to allocate to floating IPs for the public network with Neutron - usable_ip_range: 192.168.38.10,192.168.38.199 #Usable IP range on the public network, usually this is a shared subnet + floating_ip_range: 192.168.38.200,192.168.38.220 # Range to allocate to floating IPs for the public network with Neutron + usable_ip_range: 192.168.38.10,192.168.38.199 # Usable IP range on the public network, usually this is a shared subnet dns_nameservers: # External dns servers - - 8.8.8.8 # - - 8.8.4.4 # + - 8.8.8.8 # + - 8.8.4.4 # ntp: # External upstream NTP servers - 0.se.pool.ntp.org # - 1.se.pool.ntp.org # @@ -163,11 +162,11 @@ networks: # Network configurations members: - eth1 external_overlay: # External network to be created in OpenStack by Services tenant - name: private_cloud - type: vlan - segmentation_id: 101 - gateway: 192.168.38.1 - # + name: private_cloud + type: vlan + segmentation_id: 101 + gateway: 192.168.38.1 + storage: # Storage network configuration enabled: true cidr: 12.0.0.0/24 # Subnet in CIDR format @@ -186,7 +185,7 @@ networks: # Network configurations members: - eth3 - eth4 - # + api: # API network configuration enabled: false cidr: fd00:fd00:fd00:4000::/64 # Subnet in CIDR format @@ -205,3 +204,4 @@ networks: # Network configurations members: - eth3 - eth4 +# yamllint enable rule:line-length diff --git a/tools/pharos-validator/src/validation_tool/doc/inventory.yaml b/tools/pharos-validator/src/validation_tool/doc/inventory.yaml index d0f50838..2ba768ab 100644 --- a/tools/pharos-validator/src/validation_tool/doc/inventory.yaml +++ b/tools/pharos-validator/src/validation_tool/doc/inventory.yaml @@ -1,37 +1,38 @@ +--- nodes: - - name: node0 - tags: control #optional param, other valid value "compute" + - name: node0 + tags: control # optional param, other valid value "compute" arch: "x86_64" - mac_address: "de:ad:be:ef:11:11" #pxe boot interface mac - cpus: 2 #required only for virtual deployments - memory: 2048 #required only for virtual deployments - disk: 40 #required only for virtual deployments + mac_address: "de:ad:be:ef:11:11" # pxe boot interface mac + cpus: 2 # required only for virtual deployments + memory: 2048 # required only for virtual deployments + disk: 40 # required only for virtual deployments power: - type: ipmi - address: 10.4.7.2 - user: root - pass: root + type: ipmi + address: 10.4.7.2 + user: root + pass: root - name: node1 - tags: control #optional param, other valid value "compute" + tags: control # optional param, other valid value "compute" arch: "x86_64" - mac_address: "de:ad:be:ef:22:22" #pxe boot interface mac - cpus: 2 #required only for virtual deployments - memory: 2048 #required only for virtual deployments - disk: 40 #required only for virtual deployments + mac_address: "de:ad:be:ef:22:22" # pxe boot interface mac + cpus: 2 # required only for virtual deployments + memory: 2048 # required only for virtual deployments + disk: 40 # required only for virtual deployments power: - type: ipmi - address: 10.4.7.3 - user: root - pass: root + type: ipmi + address: 10.4.7.3 + user: root + pass: root - name: node2 - tags: control #optional param, other valid value "compute" + tags: control # optional param, other valid value "compute" arch: "x86_64" - mac_address: "de:ad:be:ef:33:33" #pxe boot interface mac - cpus: 2 #required only for virtual deployments - memory: 2048 #required only for virtual deployments - disk: 40 #required only for virtual deployments + mac_address: "de:ad:be:ef:33:33" # pxe boot interface mac + cpus: 2 # required only for virtual deployments + memory: 2048 # required only for virtual deployments + disk: 40 # required only for virtual deployments power: - type: ipmi - address: 10.4.7.4 - user: root - pass: root + type: ipmi + address: 10.4.7.4 + user: root + pass: root diff --git a/tools/pharos-validator/src/validation_tool/doc/network.yaml b/tools/pharos-validator/src/validation_tool/doc/network.yaml index 33d95605..705e8486 100644 --- a/tools/pharos-validator/src/validation_tool/doc/network.yaml +++ b/tools/pharos-validator/src/validation_tool/doc/network.yaml @@ -1,3 +1,4 @@ +--- # This configuration file defines Network Environment for a # Baremetal Deployment of OPNFV. It contains default values # for 5 following networks: @@ -30,16 +31,15 @@ # # "api" is an optional network for splitting out OpenStack service API # communication. This should be used for IPv6 deployments. - -network-config-metadata: #Meta data for the network configuration + +# yamllint disable rule:line-length +network-config-metadata: # Meta data for the network configuration title: LF-POD-1 Network config # version: 0.1 # created: Mon Dec 28 2015 # comment: None # - # - - # - # + + networks: # Network configurations admin: # Admin configuration (pxe and jumpstart), enabled: true @@ -74,16 +74,16 @@ networks: # Network configurations members: - eth1 - eth2 - # + tenant: # Tenant network configuration enabled: true cidr: 11.0.0.0/24 # Subnet in CIDR format 192.168.1.0/24 vlan: 10 # VLAN tag to use for Overcloud hosts on this network mtu: 64000 # Tenant network MTU - overlay_id_range: 2,65535 # Tenant network Overlay segmentation ID range: - # VNI, VLAN-ID, etc. - segmentation_type: vxlan # Tenant network segmentation type: - # vlan, vxlan, gre + overlay_id_range: 2,65535 # Tenant network Overlay segmentation ID range: VNI, VLAN-ID, etc. + + segmentation_type: vxlan # Tenant network segmentation type: vlan, vxlan, gre + nic_mapping: # Mapping of network configuration for Overcloud Nodes compute: # Mapping for compute profile (nodes that will be used as Compute nodes) phys_type: interface # Physical interface type (interface or bond) @@ -95,7 +95,7 @@ networks: # Network configurations vlan: 10 members: - eth1 # Note, for Apex you may also use the logical nic name (found by nic order), such as "nic1" - # + external: # Can contain 1 or more external networks - public: # "public" network will be the network the installer VM attaches to enabled: true @@ -108,11 +108,11 @@ networks: # Network configurations ip: 192.168.37.12 # IP to assign to Installer VM on this network cidr: 192.168.37.0/24 gateway: 192.168.37.1 - floating_ip_range: 192.168.37.200,192.168.37.220 #Range to allocate to floating IPs for the public network with Neutron - usable_ip_range: 192.168.37.10,192.168.37.199 #Usable IP range on the public network, usually this is a shared subnet + floating_ip_range: 192.168.37.200,192.168.37.220 # Range to allocate to floating IPs for the public network with Neutron + usable_ip_range: 192.168.37.10,192.168.37.199 # Usable IP range on the public network, usually this is a shared subnet dns_nameservers: # External dns servers - - 8.8.8.8 # - - 8.8.4.4 # + - 8.8.8.8 # + - 8.8.4.4 # ntp: # External upstream NTP servers - 0.se.pool.ntp.org # - 1.se.pool.ntp.org # @@ -131,20 +131,20 @@ networks: # Network configurations members: - eth1 external_overlay: # External network to be created in OpenStack by Services tenant - name: Public_internet - type: flat - gateway: 192.168.37.1 + name: Public_internet + type: flat + gateway: 192.168.37.1 - private_cloud: # another external network enabled: false vlan: 101 mtu: 64000 cidr: 192.168.38.0/24 gateway: 192.168.38.1 - floating_ip_range: 192.168.38.200,192.168.38.220 #Range to allocate to floating IPs for the public network with Neutron - usable_ip_range: 192.168.38.10,192.168.38.199 #Usable IP range on the public network, usually this is a shared subnet + floating_ip_range: 192.168.38.200,192.168.38.220 # Range to allocate to floating IPs for the public network with Neutron + usable_ip_range: 192.168.38.10,192.168.38.199 # Usable IP range on the public network, usually this is a shared subnet dns_nameservers: # External dns servers - - 8.8.8.8 # - - 8.8.4.4 # + - 8.8.8.8 # + - 8.8.4.4 # ntp: # External upstream NTP servers - 0.se.pool.ntp.org # - 1.se.pool.ntp.org # @@ -163,11 +163,11 @@ networks: # Network configurations members: - eth1 external_overlay: # External network to be created in OpenStack by Services tenant - name: private_cloud - type: vlan - segmentation_id: 101 - gateway: 192.168.38.1 - # + name: private_cloud + type: vlan + segmentation_id: 101 + gateway: 192.168.38.1 + storage: # Storage network configuration enabled: true cidr: 12.0.0.0/24 # Subnet in CIDR format @@ -186,7 +186,7 @@ networks: # Network configurations members: - eth3 - eth4 - # + api: # API network configuration enabled: false cidr: fd00:fd00:fd00:4000::/64 # Subnet in CIDR format @@ -205,17 +205,17 @@ networks: # Network configurations members: - eth3 - eth4 - + # JOID specific settings joid: - + # Compass specific settings compass: - + # Apex specific settings apex: networks: admin: - introspection_range: 192.0.2.100,192.0.2.120 #Range used for introspection phase (examining nodes) + introspection_range: 192.0.2.100,192.0.2.120 # Range used for introspection phase (examining nodes) # Fuel specific settings fuel: