Merge branch 'master' into f/centos8

Change-Id: I68ff5ebde3231c8d0a932a398b8d30980ae8e9f0
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
This commit is contained in:
Shuicheng Lin 2020-03-31 13:28:48 +08:00
commit 04b49dd093
240 changed files with 3551 additions and 12423 deletions

View File

@ -9,11 +9,16 @@
- openstack-tox-linters
- stx-distcloud-tox-pep8
- stx-distcloud-tox-py27
- stx-distcloud-tox-pylint
gate:
jobs:
- openstack-tox-linters
- stx-distcloud-tox-pep8
- stx-distcloud-tox-py27
- stx-distcloud-tox-pylint
post:
jobs:
- stx-distcloud-upload-git-mirror
- job:
name: stx-distcloud-tox-py27
@ -28,6 +33,19 @@
tox_envlist: py27
tox_extra_args: -c distributedcloud/tox.ini
- job:
name: stx-distcloud-tox-pylint
parent: tox
description: Run pylint for distcloud
required-projects:
- starlingx/fault
- starlingx/nfv
- starlingx/update
- starlingx/config
vars:
tox_envlist: pylint
tox_extra_args: -c distributedcloud/tox.ini
- job:
name: stx-distcloud-tox-pep8
parent: tox
@ -40,3 +58,95 @@
vars:
tox_envlist: pep8
tox_extra_args: -c distributedcloud/tox.ini
- job:
name: stx-distcloud-upload-git-mirror
parent: upload-git-mirror
description: >
Mirrors opendev.org/starlingx/distcloud to
github.com/starlingx/distcloud
vars:
git_mirror_repository: starlingx/distcloud
secrets:
- name: git_mirror_credentials
secret: stx-distcloud-github-secret
pass-to-parent: true
- secret:
name: stx-distcloud-github-secret
data:
user: git
host: github.com
# yamllint disable-line rule:line-length
host_key: github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
ssh_key: !encrypted/pkcs1-oaep
- a9r7pFt0s4Qpu3O0f2Jj4AsAMn+6odQS1GuC4DiZyeAFAIIkWqmD4/c0uoN6scBguOxA1
PTlVpDTcXQzbpfbrHZOFs1zEvrWxODIBAqERniuEkwx0DDwjm6OstU4hPrR5Ouw52peM2
vwqZH+wyTkxI+5YwGaU/UvAcRyPTo+assMwcRVqoUP5XlpZJsTYFesttOBRlWSSEyUifa
8AGMweWhoDp9dCr93IA32at1kHfr1jEYybnGL8nVK536fZgleSlGBMa36fqL+dqVFPoSs
u/20MqnRZYnTcJjYncxLk2ysS19ssAPYY7/SrwKDJfKKKKSNkltgIyZGuyu+p3A4OFCze
xDpcQwTPzePnWhNrFu8xiaGyMD51kXeVfUcWeMyKAT8E1RtmtRGGtANUf1FEIQbUGQXea
Qdzjb1vTInLvOVn3OACRrLpY2hNlcvxPbkf6FrLTzbawHJ8FrRzT+U7vwoKSGMCxtWKAy
u+S1uXVDFGJSRKRRARwFLP46k9EWNZuXdIikTW1BYFdkEoYjbSb/ILhDRq3zXXReyaE9j
sZzNiz4pLQECUme6UFMGUM4yT6mPHyotrRtn47xT4TEiDGAHqYrPvo2FPCETqZ0Un6Nev
s5rs9FYH93hnhLD9vMFip7Iz3Riz2eAYTm+i7m/uqleNQxF2c9/3Q537IagUJE=
- Xnchs9+RpmEXS+kq5p3RgIyjRhobZFBINqm5J6TDeTquTIbABsewu5+to9j8dnVG6/VaK
pChdNAyFd+xrLYCKbbCcErvLDMutZG65v3AWaQf/H3AsJrt0Q9JuGWF/8hTZw0Z6ZQfLg
nsloG2QPdVzqdds02f65aP/5NECycDo+2vFL0UDtqV6Jipa4BbU20M1pMd6RBiOyF7/ks
46y8rmvrme93pJYxOdCsjhufaRSpt3bWzfLfe/LJZ3UR14sPM/EJ5vdHX651RNNtU15t3
RuM8TR/8xAgsmvwR5ZLuhWJ0k08qSkHU+FtdS8MvFnLdGciA2dTVOzA50WcpkYV+/di/R
u2gZxKLQU29KbRnGvRDGZxj/mrh8RRqZSIRSSiKXd1hDQScdTSemktYHvbWX4nvLMg5J4
x+eX0pI3GqwQsnLPs4fM1oCZqlF7vj5pSMkqraCrA/gqPc/fKcMtwXAELppM38gCWd6bX
Nhla0gdFnFMLBMaQbwH1N/9HjWzkjFTwZnxLKGq+FZK2tiLG4fDq8lc2JItxn3p6dX/Wv
zT6nkYW/G9YMXjxBr1rnoNtQ2S1BHxI5gOapYXAm2C5mnJ85b94NNpO/m1HafLncbEzBi
faF9SsFqgmo9tL+73IAn5bSH/tQCYiML3v/6N0Jy/DpeR56SHhblReJcsZpU50=
- BOE/D7GKYv7KKRuIwhf3Fv/4YAUPgzE5s0cSWhsUIvJ2ER2sCrmn0lyKE+Js1V+H+rYGf
1bHT5w41CgkMsIQ1ve1hI7ZZAnzsH9CZh5cnTHj8Hby5bJWQSw/5UIo+EDRz5rTBc2w+g
3VGfx9r6VtNMs6+xRfP3aJoThab9zvUnv3uMY7H7Pok2VLTvrADBvM85X7Maxw4RFvfBZ
2ejypKLE42n0GrSdyfMdJQ6iGNA9kuz9IqHI4xLmIzaFJoRiO81yLvhMR3QY6yGl+p/wM
ePRz791xsqpfHjzhWXxfBYY6QJkLPs01I/9hUuuumjDvTtp6cwXkc/SxNm9fUchVD1btW
SsIXjJsnXnEA/e0NFiBV8dFSfNk9ehX3jVdjgD3XeNM30MaVlGRt1sGBIFMnT0TEWUVx6
wx9gzrI8Ja2mGdgvgSDW4ADs2PcFJcv/ytTJTlsxcNnfCM7f4uqfWM8KWCSL3B766JNWb
b3Y54C5LlGi8HDQ0MoucCpKcS8612BXM+K+ayeC84eR6DsU1mXW4rb4Qp8lTYfIroGhyl
subZD6H2E8RqC6wdoFv9OaIzVRmppQ+KR7nbKGXkPFhOdAFlIeLblkWUjEtc6ky0U9d1d
O4QhlpCzqYq9eWF/Uoa2zs1A6HOIVUJJyNMExvlm+I4V8hx5ysviR/eBrA0byo=
- TLHF5tMTaMXrQ1CDfpLfDjV7MBmoPIhHJwrsAED3bldL5sTj+owDcXNvoyXg0yNACTKx0
EmfYM2+S1dKzm2NywOE57mKob6aVucr10pM3F6ebIseKk4VVM6YTw/LCUIShgzgigSdT3
xUwHbQeKVm6gmo0io0iyE8FaQwpMS6T6AvOVonwxSg9UEyriE5Owx6KLlJQoivHDTtM2R
xm7FRKpIV7O2P3LKzlM+9Kzt+jy7dPeKvuyAThiGdcq0pg+gvMUxvie8P1HArJowQjFsW
Co1aDXUpJJx8cENtYBFobUB2TOdxjvZLr7rjD3xpiZ8F2ktNEeNi+hu5vIiax/3yhNKl+
yFlS4kwqEZJLhjpuFkOnzYQM/QaaHemyQewI8uypeb7JXwCJUAZZeKc5tk7k8fEbkyxQF
ymjiyfl5phfKFHt6HCNHbfm/05AEDsaxfJo9AruiBVj7FX7l7SGMnAt/UYVjXr8RRPjjG
SnJOiMzpE9baHTI6aQSiDiBwdu9ZGhPSiVVVW66qxmf8qvBwFgGNb2ePWyanG6goN8avG
LzPiYM+Q6nP9QSUsDIIJPxG4m7WnQTlGSok+rg+itkr9PMCMjwBhy4RxLzUbXLVWIW1Y+
8Hyt3wrtKz6icrjoFOaaP5UDs3RLXK3Mi7ga7V/ayVBU9GzCAqsZLbbH4Nk6bc=
- dw80kQJ7q7NlRq3R6xaRp9WZZTdTFczoqppeAhzGMXHe8PAu7MIcMdRCZhX13WCs5nvMY
dAfkZD16BW8+cY97drAzqS23iUZUt7vHAz+Ep6r5iShYadMLXjKssLWKdPNxNUa1Wy8ZP
wDiF6pYG8PeiHFYr7H5VL+q9bz2c4N/2Z1P1XG3BnyfEF82Np4OFwrEGTRMFj8ta7ElzN
t3yfxesAUcy8iC6rnqXh/Qslwa6zUEW1LgnJe6azGnoaUUM8Az77luVYnDrMGNdrfnwlT
OOQA+PDW7kBBizPiUtaEuRCm5slYElhxvfzyfXExY0Kad49k/aFnibAmw/uOVDFD8wmP2
aqnY6EqraLVfOMAyV3awt+y93inWBTK6Xwub+oeTyWI9JKvoYDOJnvNg/rK600lo+9Stt
09yuRVw7RLCRsy4NG1kcA7AKbEhhsLH8qFzx8MR3QR6eO9BsuEi2xd++nP8zGNLmdFGdQ
z3JZnlG5NG3m5hQOp8yDaX8xEzLD2Zhz2VyMft7GcwOZBP3wmkaI42ymYUOltlS16jhcL
GY1alc1N+TGq1dhfi8b/5lQh/UHnBiEtW7S6A1zp7VFo8518UwFOcrD2e7lS3Y1lwsi+n
fgIvEiaqaKwwka7qo71pLUHIPxzu+g+QTJ5YYE1D8wdGxhDXsC513Y+NsbygVI=
- veMhYFLDgVDUOQfUnEkJUKoY1yZmA/SBZA7t4xCtZNhM8bOCmgHFqfxYG0VnWRan04c5i
j3XZdmrSW7aTZjurbAAxyPcpKVMe2wOSMPjgm7sR3ntmrvPm2Y2s6L8Tl2i/DSx8Iussc
nLf6D6rzWwVJeDzKuHEgmShyjdN1qFbnPGtJEylABFOjhM214qOb/h6xl908chDoCvOPX
xcbheduYij4s7qlku8ZG2QP4ynfPig0S8bjOVgRVGjyEaMawU1snMCy02AejJ9o6PpBlr
A0qLFAx17f3h9v6fA8W2zcBip3rc9dRt0rzD0pWTLQgz5xxmpOMTZrxoeuB7dUHtWglBh
aVPn4hs3HWHlONKKjgcWTeo70pXcrcEJMppo2M8kGPbOSXw3gXzPeDfWMCf+/S2krHWeI
YenzCecLvAXY1n0qkYZhEv+ekSFM3h6rtJMr9H3sTYnhGNLjMVCC7t6Jj2O69sXxCCNFp
I7bx+/aNGHOjptLm30IYvOOhUaciRIERgYuKLbPEHl2ifZ3FFjIdZQoofnFLixYF0CAF7
qSHnxl2w21dYKESie6yReS6nlA/iohO/LI4Hc27RpSWoasIIADR6Bfne5azeM4UfGEptr
EQBBHCTCXXSfmlpjqv7ei8ezH37zHI5ik5cEWegsBBlXsyfxhJ7J+tkub843nw=
- czl5bmC+Y2ZK+i+D0vkYZ903keZ75f/RQ+OSM266fFGEdPY1cJHI9HVTeIEdQoHQ3iQ57
l9rzDJkbNt7JR4opSONfy/+v9SGSgHoFQJ+/X9FqRAXWUzp73iL/CSNbTHZohbYJM1Xc1
rHYdRR6g5qSlL7Gn7WMJzoiZJBsayebz2SEc6DFXyPJZYjkAtGV/MzL4M273a1+xik6te
qmHhkfgB8XDiExEQGZEyh4H5vfFH741joJt1PQf9DK4Jd/K7lTKFFscsPNmKCGfIyrrwK
AVfGMFNWWabTfKn97xaHhbT+5iqgg5oDIHxTq18h3k96JNI+H0LkdMsYj303ufLqAm215
7+11av0E4y/6syExYngamQSCW+VjAmR2+yvMldifbfUU7FwpiMldFsNsL6Gv62G+OMzrj
RA9ZbEKIH5+oINI+h17cqPp3DkuFCTQfOqW0q5sWTsdxrA0AUJhETFwHP9QUj0FZTE/0k
K20P1bajEDeXALGNBvJiOMAXV//ufOlSrPaMMb0z4zvJal0q41hBoVZ6owD+xN70N3xDU
4/ktdNRZ4Imqmmp4FKpgcIwYBfM94BJAqOuRhWsze9ZrvAOVsu8zgRawPl2zWzN5X3DUS
KDCd2h/DrF2r/7J5lPBSsP9T6c4dY7Ru76JXrEHdwwpLI/ps0qOrCwZ9DZbFmg=

View File

@ -261,7 +261,7 @@ serviceUnavailable (503)
}
******************************************************
Shows detailed information about a specific subcloud
Shows information about a specific subcloud
******************************************************
.. rest_method:: GET /v1.0/subclouds/{subcloud}
@ -350,6 +350,98 @@ internalServerError (500), serviceUnavailable (503)
This operation does not accept a request body.
******************************************************
Shows additional information about a specific subcloud
******************************************************
.. rest_method:: GET /v1.0/subclouds/{subcloud}/detail
**Normal response codes**
200
**Error response codes**
itemNotFound (404), badRequest (400), unauthorized (401), forbidden
(403), badMethod (405), HTTPUnprocessableEntity (422),
internalServerError (500), serviceUnavailable (503)
**Request parameters**
.. csv-table::
:header: "Parameter", "Style", "Type", "Description"
:widths: 20, 20, 20, 60
"subcloud", "URI", "xsd:string", "The subcloud reference, name or id."
**Response parameters**
.. csv-table::
:header: "Parameter", "Style", "Type", "Description"
:widths: 20, 20, 20, 60
"id (Optional)", "plain", "xsd:int", "The unique identifier for this object."
"created_at (Optional)", "plain", "xsd:dateTime", "The time when the object was created."
"updated_at (Optional)", "plain", "xsd:dateTime", "The time when the object was last updated."
"name (Optional)", "plain", "xsd:string", "The name provisioned for the subcloud."
"management (Optional)", "plain", "xsd:string", "Management state of the subcloud."
"availability (Optional)", "plain", "xsd:string", "Availability status of the subcloud."
"management-subnet (Optional)", "plain", "xsd:string", "Management subnet for subcloud in CIDR format."
"management-start-ip (Optional)", "plain", "xsd:string", "Start of management IP address range for subcloud."
"management-end-ip (Optional)", "plain", "xsd:string", "End of management IP address range for subcloud."
"systemcontroller-gateway-ip (Optional)", "plain", "xsd:string", "Systemcontroller gateway IP Address."
"endpoint_sync_status (Optional)", "plain", "xsd:list", "The list of endpoint sync statuses."
"platform_sync_status (Optional)", "plain", "xsd:string", "The platform sync status of the subcloud."
"volume_sync_status (Optional)", "plain", "xsd:string", "The volume sync status of the subcloud."
"compute_sync_status (Optional)", "plain", "xsd:string", "The compute sync status of the subcloud."
"network_sync_status (Optional)", "plain", "xsd:string", "The network sync status of the subcloud."
"patching_sync_status (Optional)", "plain", "xsd:string", "The patching sync status of the subcloud."
"oam_floating_ip (Optional)", "plain", "xsd:string", "OAM Floating IP of the subcloud."
::
{
"description": "test subcloud",
"management-start-ip": "192.168.204.50",
"created-at": "2018-02-25 19:06:35.208505",
"updated-at": "2018-02-25 21:35:59.771779",
"software-version": "18.01",
"management-state": "unmanaged",
"availability-status": "offline",
"management-subnet": "192.168.204.0/24",
"systemcontroller-gateway-ip": "192.168.204.101",
"location": "ottawa",
"endpoint_sync_status": [
{
"sync_status": "in-sync",
"endpoint_type": "compute"
},
{
"sync_status": "in-sync",
"endpoint_type": "network"
},
{
"sync_status": "in-sync",
"endpoint_type": "patching"
},
{
"sync_status": "in-sync",
"endpoint_type": "platform"
},
{
"sync_status": "in-sync",
"endpoint_type": "volume"
}
],
"management-gateway-ip": "192.168.204.1",
"management-end-ip": "192.168.204.100",
"id": 1,
"name": "subcloud6",
"oam_floating_ip" "10.10.10.12"
}
This operation does not accept a request body.
******************************
Modifies a specific subcloud
******************************
@ -449,65 +541,6 @@ Deletes a specific subcloud
This operation does not accept a request body.
****************************************************
Generates the configuration of a specific subcloud
****************************************************
.. rest_method:: POST /v1.0/subclouds/{subcloud}/config
**Normal response codes**
200
**Error response codes**
badRequest (400), unauthorized (401), forbidden (403), badMethod (405),
HTTPUnprocessableEntity (422), internalServerError (500),
serviceUnavailable (503)
**Request parameters**
.. csv-table::
:header: "Parameter", "Style", "Type", "Description"
:widths: 20, 20, 20, 60
"subcloud", "URI", "xsd:string", "The subcloud reference, name or id."
"pxe-subnet (Optional)", "plain", "xsd:string", "PXE boot boot subnet for subcloud in CIDR format."
"management-vlan (Optional)", "plain", "xsd:string", "VLAN for subcloud management network."
"management-interface-port (Optional)", "plain", "xsd:string", "Subcloud management interface port."
"management-interface-mtu (Optional)", "plain", "xsd:string", "Subcloud management interface mtu."
"oam-subnet (Optional)", "plain", "xsd:string", "OAM subnet for subcloud in CIDR format."
"oam-gateway-ip (Optional)", "plain", "xsd:string", "OAM gateway IP for subcloud."
"oam-floating-ip (Optional)", "plain", "xsd:string", "OAM floating IP address for subcloud."
"oam-unit-0-ip (Optional)", "plain", "xsd:string", "OAM unit 0 IP address for subcloud."
"oam-unit-1-ip (Optional)", "plain", "xsd:string", "OAM unit 1 IP address for subcloud."
"oam-interface-port (Optional)", "plain", "xsd:string", "Subcloud OAM interface port."
"oam-interface-mtu (Optional)", "plain", "xsd:string", "Subcloud OAM interface mtu."
"system-mode (Optional)", "plain", "xsd:string", "System mode, ``simplex, duplex, or duplex-direct``."
::
{
"oam-gateway-ip": "10.10.20.1",
"oam-interface-mtu": "1500",
"oam-subnet": "10.10.20.0/24",
"management-interface-port": "enp0s3",
"system-mode": "duplex",
"management-interface-mtu": "1500",
"oam-unit-1-ip": "10.10.20.4",
"oam-interface-port": "enp0s8",
"management-vlan": "10",
"pxe-subnet": "192.168.205.0/24",
"oam-unit-0-ip": "10.10.20.3",
"oam-floating-ip": "10.10.20.2"
}
::
{
"config": "[SYSTEM]\nSYSTEM_MODE=duplex\n[REGION2_PXEBOOT_NETWORK]\nPXEBOOT_CIDR = 192.168.205.0/24\n[MGMT_NETWORK]\nVLAN = 10\nCIDR = 192.168.204.0/24\nGATEWAY = 192.168.204.1\nIP_START_ADDRESS = 192.168.204.50\nIP_END_ADDRESS = 192.168.204.100\nDYNAMIC_ALLOCATION = Y\nLOGICAL_INTERFACE = LOGICAL_INTERFACE_1\n[LOGICAL_INTERFACE_1]\nLAG_INTERFACE = N\nINTERFACE_MTU = 1500\nINTERFACE_PORTS = enp0s3\n[OAM_NETWORK]\nCIDR = 10.10.20.0/24\nGATEWAY = 10.10.20.1\nIP_FLOATING_ADDRESS = 10.10.20.2\nIP_UNIT_0_ADDRESS = 10.10.20.3\nIP_UNIT_1_ADDRESS = 10.10.20.4\nLOGICAL_INTERFACE = LOGICAL_INTERFACE_2\n[LOGICAL_INTERFACE_2]\nLAG_INTERFACE = N\nINTERFACE_MTU = 1500\nINTERFACE_PORTS = enp0s8\n[SHARED_SERVICES]\nSYSTEM_CONTROLLER_SUBNET = 192.168.204.0/24\nSYSTEM_CONTROLLER_FLOATING_ADDRESS = 192.168.204.2\nREGION_NAME = RegionOne\nADMIN_PROJECT_NAME = admin\nADMIN_USER_NAME = admin\nADMIN_PASSWORD = Li69nux*\nKEYSTONE_ADMINURL = http://192.168.204.2:5000/v3\nKEYSTONE_SERVICE_NAME = keystone\nKEYSTONE_SERVICE_TYPE = identity\nGLANCE_SERVICE_NAME = glance\nGLANCE_SERVICE_TYPE = image\nGLANCE_CACHED = True\n[REGION_2_SERVICES]\nREGION_NAME = subcloud6\n[VERSION]\nRELEASE = 18.01\n"
}
----------------
Subcloud Alarms
----------------

View File

@ -1,4 +1,5 @@
# distributedcloud
distributedcloud-dccommon
distributedcloud-dcmanager
distributedcloud-dcorch
distributedcloud-dcdbsync

View File

@ -6,6 +6,7 @@ test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1}
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1}
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60}
PYTHON=$(echo ${PYTHON:-python} | sed 's/--source distributedcloud//g')
${PYTHON} -m subunit.run discover -s dccommon $LISTOPT $IDOPTION
${PYTHON} -m subunit.run discover -s dcmanager $LISTOPT $IDOPTION
${PYTHON} -m subunit.run discover -s dcorch $LISTOPT $IDOPTION
test_id_option=--load-list $IDFILE

View File

@ -1,4 +1,4 @@
SRC_DIR="."
COPY_LIST="$FILES_BASE/*"
TIS_PATCH_VER=0
TIS_PATCH_VER=1

View File

@ -43,7 +43,7 @@ BuildRequires: python3-keyring
BuildRequires: python3-keystonemiddleware
BuildRequires: python3-keystoneauth1
BuildRequires: python3-netaddr
BuildRequires: python3-oslo-concurrency
BuildRequires: python3-oslo-concurrency >= 3.29.1
BuildRequires: python3-oslo-config
BuildRequires: python3-oslo-context
BuildRequires: python3-oslo-db
@ -69,6 +69,13 @@ BuildRequires: python3-babel
%description
Distributed Cloud provides configuration and management of distributed clouds
# DC Common
%package dccommon
Summary: DC common module
%description dccommon
Distributed Cloud Common Module
# DC Manager
%package dcmanager
Summary: DC Manager
@ -162,6 +169,12 @@ install -p -D -m 640 %{_builddir}/%{pypi_name}-%{version}%{_sysconfdir}/dcdbsync
# install ansible overrides dir
install -d -m 600 ${RPM_BUILD_ROOT}/opt/dc/ansible
%files dccommon
%license LICENSE
%{python3_sitelib}/dccommon*
%{python3_sitelib}/distributedcloud-*.egg-info
%exclude %{python3_sitelib}/dccommon/tests
%files dcmanager
%license LICENSE
%{python3_sitelib}/dcmanager*

View File

@ -0,0 +1,176 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

View File

@ -1,16 +1,25 @@
# Copyright (c) 2018 Wind River Inc.
# -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
import pbr.version
def upgrade(migrate_engine):
pass
__version__ = pbr.version.VersionInfo('distributedcloud').version_string()

View File

@ -0,0 +1,38 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
SECONDS_IN_HOUR = 3600
KS_ENDPOINT_ADMIN = "admin"
KS_ENDPOINT_INTERNAL = "internal"
KS_ENDPOINT_DEFAULT = KS_ENDPOINT_INTERNAL
ENDPOINT_TYPE_IDENTITY_OS = "identity_openstack"
# openstack endpoint types
ENDPOINT_TYPES_LIST_OS = [ENDPOINT_TYPE_IDENTITY_OS]
# distributed Cloud constants
CLOUD_0 = "RegionOne"
VIRTUAL_MASTER_CLOUD = "SystemController"
SW_UPDATE_DEFAULT_TITLE = "all clouds default"
USER_HEADER_VALUE = "distcloud"
USER_HEADER = {'User-Header': USER_HEADER_VALUE}

View File

@ -9,7 +9,13 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
"""
Base class for all drivers.
"""

View File

@ -10,16 +10,22 @@
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2018 Wind River Systems, Inc.
#
# Copyright (c) 2018-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
from oslo_log import log
import fmclient
from dcorch.common import exceptions
from dcorch.drivers import base
from dccommon import consts as dccommon_consts
from dccommon.drivers import base
from dccommon import exceptions
LOG = log.getLogger(__name__)
API_VERSION = '1'
@ -28,7 +34,8 @@ API_VERSION = '1'
class FmClient(base.DriverBase):
"""Fault Management driver."""
def __init__(self, region, session, endpoint_type):
def __init__(self, region, session,
endpoint_type=dccommon_consts.KS_ENDPOINT_DEFAULT):
self.region_name = region
try:
self.fm = fmclient.Client(API_VERSION,
@ -46,8 +53,7 @@ class FmClient(base.DriverBase):
LOG.info("get_alarm_summary region %s" %
self.region_name)
alarms = self.fm.alarm.summary()
return alarms
except Exception as e:
LOG.error("get_alarm_summary exception=%s" % e)
pass
return {}
LOG.error("get_alarm_summary exception={}".format(e))
raise e
return alarms

View File

@ -12,14 +12,20 @@
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
from keystoneauth1 import exceptions as keystone_exceptions
from keystoneclient.v3.contrib import endpoint_filter
from oslo_utils import importutils
from dcorch.common.endpoint_cache import EndpointCache
from dcorch.common import exceptions
from dcorch.drivers import base
from dccommon.drivers import base
from dccommon.endpoint_cache import EndpointCache
from dccommon import exceptions
# Ensure keystonemiddleware options are imported
importutils.import_module('keystonemiddleware.auth_token')

View File

@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
@ -23,7 +23,7 @@ from oslo_log import log
import requests
from requests_toolbelt import MultipartEncoder
from dcmanager.drivers import base
from dccommon.drivers import base
LOG = log.getLogger(__name__)

View File

@ -0,0 +1,222 @@
# Copyright 2017-2020 Wind River Inc
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""
OpenStack Driver
"""
import collections
import random
from oslo_concurrency import lockutils
from oslo_log import log
from oslo_utils import timeutils
from dccommon import consts
from dccommon.drivers.openstack.fm import FmClient
from dccommon.drivers.openstack.keystone_v3 import KeystoneClient
from dccommon.drivers.openstack.sysinv_v1 import SysinvClient
from dccommon import exceptions
# Gap, in seconds, to determine whether the given token is about to expire
# These values are used to randomize the token early renewal duration and
# to distribute the new keystone creation to different audit cycles
STALE_TOKEN_DURATION_MIN = 40
STALE_TOKEN_DURATION_MAX = 120
STALE_TOKEN_DURATION_STEP = 20
KEYSTONE_CLIENT_NAME = 'keystone'
SYSINV_CLIENT_NAME = 'sysinv'
FM_CLIENT_NAME = 'fm'
LOG = log.getLogger(__name__)
LOCK_NAME = 'dc-openstackdriver-platform'
SUPPORTED_REGION_CLIENTS = [
SYSINV_CLIENT_NAME,
FM_CLIENT_NAME
]
# region client type and class mappings
region_client_class_map = {
SYSINV_CLIENT_NAME: SysinvClient,
FM_CLIENT_NAME: FmClient,
}
class OpenStackDriver(object):
os_clients_dict = collections.defaultdict(dict)
_identity_tokens = {}
def __init__(self, region_name=consts.CLOUD_0, thread_name='dcorch',
auth_url=None, region_clients=SUPPORTED_REGION_CLIENTS):
# Check if objects are cached and try to use those
self.region_name = region_name
self.keystone_client = None
self.sysinv_client = None
self.fm_client = None
if region_clients:
# check if the requested clients are in the supported client list
result = all(c in SUPPORTED_REGION_CLIENTS for c in region_clients)
if not result:
message = ("Requested clients are not supported: %s" %
' '.join(region_clients))
LOG.error(message)
raise exceptions.InvalidInputError
self.get_cached_keystone_client(region_name)
if self.keystone_client is None:
LOG.info("get new keystone client for subcloud %s", region_name)
try:
self.keystone_client = KeystoneClient(region_name, auth_url)
OpenStackDriver.update_region_clients(region_name,
KEYSTONE_CLIENT_NAME,
self.keystone_client)
except Exception as exception:
LOG.error('keystone_client region %s error: %s' %
(region_name, exception.message))
raise exception
if region_clients:
self.get_cached_region_clients_for_thread(region_name,
thread_name,
region_clients)
for client_name in region_clients:
client_obj_name = client_name + '_client'
if getattr(self, client_obj_name) is None:
# Create new client object and cache it
try:
client_object = region_client_class_map[client_name](
region_name, self.keystone_client.session)
setattr(self, client_obj_name, client_object)
OpenStackDriver.update_region_clients(region_name,
client_name,
client_object,
thread_name)
except Exception as exception:
LOG.error('Region %s client %s thread %s error: %s' %
(region_name, client_name, thread_name,
exception.message))
raise exception
@lockutils.synchronized(LOCK_NAME)
def get_cached_keystone_client(self, region_name):
if ((region_name in OpenStackDriver.os_clients_dict) and
(KEYSTONE_CLIENT_NAME in
OpenStackDriver.os_clients_dict[region_name]) and
self._is_token_valid(region_name)):
self.keystone_client = (OpenStackDriver.os_clients_dict
[region_name][KEYSTONE_CLIENT_NAME])
@lockutils.synchronized(LOCK_NAME)
def get_cached_region_clients_for_thread(self, region_name, thread_name,
clients):
if ((region_name in OpenStackDriver.os_clients_dict) and
(thread_name in OpenStackDriver.os_clients_dict[
region_name])):
for client in clients:
if client in (OpenStackDriver.os_clients_dict[region_name]
[thread_name]):
LOG.debug('Using cached OS %s client objects %s %s' %
(client, region_name, thread_name))
client_obj = (OpenStackDriver.os_clients_dict[region_name]
[thread_name][client])
setattr(self, client + '_client', client_obj)
else:
OpenStackDriver.os_clients_dict[region_name][thread_name] = {}
@classmethod
@lockutils.synchronized(LOCK_NAME)
def update_region_clients(cls, region_name, client_name, client_object,
thread_name=None):
if thread_name is not None:
cls.os_clients_dict[region_name][thread_name][client_name] = \
client_object
else:
cls.os_clients_dict[region_name][client_name] = client_object
@classmethod
@lockutils.synchronized(LOCK_NAME)
def delete_region_clients(cls, region_name, clear_token=False):
LOG.warn("delete_region_clients=%s, clear_token=%s" %
(region_name, clear_token))
if region_name in cls.os_clients_dict:
del cls.os_clients_dict[region_name]
if clear_token:
cls._identity_tokens[region_name] = None
@classmethod
@lockutils.synchronized(LOCK_NAME)
def delete_region_clients_for_thread(cls, region_name, thread_name):
LOG.debug("delete_region_clients=%s, thread_name=%s" %
(region_name, thread_name))
if (region_name in cls.os_clients_dict and
thread_name in cls.os_clients_dict[region_name]):
del cls.os_clients_dict[region_name][thread_name]
def _is_token_valid(self, region_name):
try:
keystone = \
OpenStackDriver.os_clients_dict[region_name]['keystone'].\
keystone_client
if (not OpenStackDriver._identity_tokens
or region_name not in OpenStackDriver._identity_tokens
or not OpenStackDriver._identity_tokens[region_name]):
OpenStackDriver._identity_tokens[region_name] = \
keystone.tokens.validate(keystone.session.get_token(),
include_catalog=False)
LOG.info("Token for subcloud %s expires_at=%s" %
(region_name,
OpenStackDriver._identity_tokens[region_name]
['expires_at']))
else:
token = keystone.tokens.validate(
OpenStackDriver._identity_tokens[region_name],
include_catalog=False)
if token != OpenStackDriver._identity_tokens[region_name]:
LOG.debug("%s: updating token %s to %s" %
(region_name,
OpenStackDriver._identity_tokens[region_name],
token))
OpenStackDriver._identity_tokens[region_name] = token
except Exception as exception:
LOG.info('_is_token_valid handle: %s', exception.message)
# Reset the cached dictionary
OpenStackDriver.os_clients_dict[region_name] = \
collections.defaultdict(dict)
OpenStackDriver._identity_tokens[region_name] = None
return False
expiry_time = timeutils.normalize_time(timeutils.parse_isotime(
self._identity_tokens[region_name]['expires_at']))
duration = random.randrange(STALE_TOKEN_DURATION_MIN,
STALE_TOKEN_DURATION_MAX,
STALE_TOKEN_DURATION_STEP)
if timeutils.is_soon(expiry_time, duration):
LOG.info("The cached keystone token for subcloud %s "
"will expire soon %s" %
(region_name,
OpenStackDriver._identity_tokens[region_name]
['expires_at']))
# Reset the cached dictionary
OpenStackDriver.os_clients_dict[region_name] = \
collections.defaultdict(dict)
OpenStackDriver._identity_tokens[region_name] = None
return False
else:
return True

View File

@ -1,3 +1,5 @@
# Copyright 2016 Ericsson AB
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
@ -9,11 +11,16 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
import hashlib
import six
from cgtsclient import client as cgts_client
from cgtsclient.exc import HTTPConflict
from cgtsclient.exc import HTTPNotFound
from cgtsclient.v1.icommunity import CREATION_ATTRIBUTES \
@ -21,14 +28,14 @@ from cgtsclient.v1.icommunity import CREATION_ATTRIBUTES \
from cgtsclient.v1.itrapdest import CREATION_ATTRIBUTES \
as SNMP_TRAPDEST_CREATION_ATTRIBUTES
from oslo_log import log
from sysinv.common import constants as sysinv_constants
from dcorch.common import consts
from dcorch.common import exceptions
from dcorch.drivers import base
from dccommon.drivers import base
from dccommon import exceptions
LOG = log.getLogger(__name__)
API_VERSION = '1'
@ -50,47 +57,141 @@ def make_sysinv_patch(update_dict):
class SysinvClient(base.DriverBase):
"""Sysinv V1 driver."""
# TODO(John): This could go into cgtsclient/v1/remotelogging.py
REMOTELOGGING_PATCH_ATTRS = ['ip_address', 'enabled', 'transport', 'port',
'action']
def __init__(self, region_name, session):
self._expired = False
self.api_version = API_VERSION
self.region_name = region_name
self.session = session
self.client = self.update_client(
self.api_version, self.region_name, self.session)
def update_client(self, api_version, region_name, session):
def __init__(self, region, session):
try:
endpoint = self.session.get_endpoint(
service_type=consts.ENDPOINT_TYPE_PLATFORM,
interface=consts.KS_ENDPOINT_INTERNAL,
region_name=region_name)
# TOX cannot import cgts_client and all the dependencies therefore
# the client is being lazy loaded since TOX doesn't actually
# require the cgtsclient module.
from cgtsclient import client
# The sysinv client doesn't support a session, so we need to
# get an endpoint and token.
endpoint = session.get_endpoint(service_type='platform',
region_name=region,
interface='internal')
token = session.get_token()
client = cgts_client.Client(
api_version,
username=session.auth._username,
password=session.auth._password,
tenant_name=session.auth._project_name,
auth_url=session.auth.auth_url,
endpoint=endpoint,
token=token)
self.sysinv_client = client.Client(API_VERSION,
endpoint=endpoint,
token=token)
self.region_name = region
except exceptions.ServiceUnavailable:
raise
self._expired = False
def get_controller_hosts(self):
"""Get a list of controller hosts."""
return self.sysinv_client.ihost.list_personality(
sysinv_constants.CONTROLLER)
return client
def get_management_interface(self, hostname):
"""Get the management interface for a host."""
interfaces = self.sysinv_client.iinterface.list(hostname)
for interface in interfaces:
interface_networks = self.sysinv_client.interface_network.\
list_by_interface(interface.uuid)
for if_net in interface_networks:
if if_net.network_type == sysinv_constants.NETWORK_TYPE_MGMT:
return interface
# This can happen if the host is still being installed and has not
# yet created its management interface.
LOG.warning("Management interface on host %s not found" % hostname)
return None
def get_management_address_pool(self):
"""Get the management address pool for a host."""
networks = self.sysinv_client.network.list()
for network in networks:
if network.type == sysinv_constants.NETWORK_TYPE_MGMT:
address_pool_uuid = network.pool_uuid
break
else:
LOG.error("Management address pool not found")
raise exceptions.InternalError()
return self.sysinv_client.address_pool.get(address_pool_uuid)
def get_oam_addresses(self):
"""Get the oam address pool for a host."""
iextoam_object = self.sysinv_client.iextoam.list()
if iextoam_object is not None and len(iextoam_object) != 0:
return iextoam_object[0]
else:
LOG.error("OAM address not found")
raise exceptions.OAMAddressesNotFound()
def create_route(self, interface_uuid, network, prefix, gateway, metric):
"""Create a static route on an interface."""
LOG.info("Creating route: interface: %s dest: %s/%s "
"gateway: %s metric %s" % (interface_uuid, network,
prefix, gateway, metric))
self.sysinv_client.route.create(interface_uuid=interface_uuid,
network=network,
prefix=prefix,
gateway=gateway,
metric=metric)
def delete_route(self, interface_uuid, network, prefix, gateway, metric):
"""Delete a static route."""
# Get the routes for this interface
routes = self.sysinv_client.route.list_by_interface(interface_uuid)
for route in routes:
if (route.network == network and route.prefix == prefix and
route.gateway == gateway and route.metric == metric):
LOG.info("Deleting route: interface: %s dest: %s/%s "
"gateway: %s metric %s" % (interface_uuid, network,
prefix, gateway, metric))
self.sysinv_client.route.delete(route.uuid)
return
LOG.warning("Route not found: interface: %s dest: %s/%s gateway: %s "
"metric %s" % (interface_uuid, network, prefix, gateway,
metric))
def get_service_groups(self):
"""Get a list of service groups."""
return self.sysinv_client.sm_servicegroup.list()
def get_loads(self):
"""Get a list of loads."""
return self.sysinv_client.load.list()
def get_applications(self):
"""Get a list of containerized applications"""
# Get a list of containerized applications the system knows of
return self.sysinv_client.app.list()
def get_system(self):
"""Get the system."""
systems = self.sysinv_client.isystem.list()
return systems[0]
def get_service_parameters(self, name, value):
"""Get service parameters for a given name."""
opts = []
opt = dict()
opt['field'] = name
opt['value'] = value
opt['op'] = 'eq'
opt['type'] = ''
opts.append(opt)
parameters = self.sysinv_client.service_parameter.list(q=opts)
return parameters
def get_registry_image_tags(self, image_name):
"""Get the image tags for an image from the local registry"""
image_tags = self.sysinv_client.registry_image.tags(image_name)
return image_tags
def get_dns(self):
"""Get the dns nameservers for this region
:return: dns
"""
idnss = self.client.idns.list()
idnss = self.sysinv_client.idns.list()
if not idnss:
LOG.info("dns is None for region: %s" % self.region_name)
return None
@ -120,14 +221,14 @@ class SysinvClient(base.DriverBase):
'action': 'apply'})
LOG.info("region={} dns update uuid={} patch={}".format(
self.region_name, idns.uuid, patch))
idns = self.client.idns.update(idns.uuid, patch)
idns = self.sysinv_client.idns.update(idns.uuid, patch)
else:
LOG.info("update_dns no changes, skip dns region={} "
"update uuid={} nameservers={}".format(
self.region_name, idns.uuid, nameservers))
except Exception as e:
LOG.error("update_dns exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
raise e
return idns
@ -136,7 +237,7 @@ class SysinvClient(base.DriverBase):
:return: itrapdests list of itrapdest
"""
itrapdests = self.client.itrapdest.list()
itrapdests = self.sysinv_client.itrapdest.list()
return itrapdests
def snmp_trapdest_create(self, trapdest_dict):
@ -158,7 +259,8 @@ class SysinvClient(base.DriverBase):
"trapdest_create_dict={}".format(
self.region_name, trapdest_create_dict))
try:
itrapdest = self.client.itrapdest.create(**trapdest_create_dict)
itrapdest = self.sysinv_client.itrapdest.create(
**trapdest_create_dict)
except HTTPConflict:
LOG.info("snmp_trapdest_create exists region={}"
"trapdest_dict={}".format(
@ -174,7 +276,7 @@ class SysinvClient(base.DriverBase):
break
except Exception as e:
LOG.error("snmp_trapdest_create exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
raise e
return itrapdest
@ -186,22 +288,22 @@ class SysinvClient(base.DriverBase):
try:
LOG.info("snmp_trapdest_delete region {} ip_address: {}".format(
self.region_name, trapdest_ip_address))
self.client.itrapdest.delete(trapdest_ip_address)
self.sysinv_client.itrapdest.delete(trapdest_ip_address)
except HTTPNotFound:
LOG.info("snmp_trapdest_delete NotFound %s for region: {}".format(
LOG.info("snmp_trapdest_delete NotFound {} for region: {}".format(
trapdest_ip_address, self.region_name))
raise exceptions.TrapDestNotFound(region_name=self.region_name,
ip_address=trapdest_ip_address)
except Exception as e:
LOG.error("snmp_trapdest_delete exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
raise e
def snmp_community_list(self):
"""Get the community list for this region
:return: icommunitys list of icommunity
"""
icommunitys = self.client.icommunity.list()
icommunitys = self.sysinv_client.icommunity.list()
return icommunitys
def snmp_community_create(self, community_dict):
@ -222,7 +324,8 @@ class SysinvClient(base.DriverBase):
"community_create_dict={}".format(
self.region_name, community_create_dict))
try:
icommunity = self.client.icommunity.create(**community_create_dict)
icommunity = self.sysinv_client.icommunity.create(
**community_create_dict)
except HTTPConflict:
LOG.info("snmp_community_create exists region={}"
"community_dict={}".format(
@ -238,7 +341,7 @@ class SysinvClient(base.DriverBase):
break
except Exception as e:
LOG.error("snmp_community_create exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
raise e
return icommunity
@ -250,106 +353,15 @@ class SysinvClient(base.DriverBase):
try:
LOG.info("snmp_community_delete region {} community: {}".format(
self.region_name, community))
self.client.icommunity.delete(community)
self.sysinv_client.icommunity.delete(community)
except HTTPNotFound:
LOG.info("snmp_community_delete NotFound %s for region: {}".format(
LOG.info("snmp_community_delete NotFound {} for region: {}".format(
community, self.region_name))
raise exceptions.CommunityNotFound(region_name=self.region_name,
community=community)
except Exception as e:
LOG.error("snmp_community_delete exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
def get_remotelogging(self):
"""Get the remotelogging for this region
:return: remotelogging
"""
try:
remoteloggings = self.client.remotelogging.list()
remotelogging = remoteloggings[0]
except Exception as e:
LOG.error("get_remotelogging exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
if not remotelogging:
LOG.info("remotelogging is None for region: %s" % self.region_name)
else:
LOG.debug("get_remotelogging uuid=%s ip_address=%s" %
(remotelogging.uuid, remotelogging.ip_address))
return remotelogging
def create_remote_logging_patch_from_dict(self, values):
patch = {}
action_found = False
for k, v in values.items():
if k in self.REMOTELOGGING_PATCH_ATTRS:
if k == 'action':
action_found = True
elif k == 'enabled' and not isinstance(v, six.string_types):
# api requires a string for enabled
if not v:
patch[k] = 'false'
else:
patch[k] = 'true'
elif k == 'ip_address' and not v:
# api requires a non None/empty value
continue
else:
patch[k] = v
if not action_found:
patch['action'] = 'apply'
patch = make_sysinv_patch(patch)
LOG.debug("create_remote_logging_patch_from_dict=%s" % patch)
return patch
@staticmethod
def ip_address_in_patch(patch):
for p in patch:
if p['path'] == '/ip_address':
if p['value']:
return True
LOG.info("No valid ip_address_in_patch: %s" % patch)
return False
def update_remotelogging(self, values):
"""Update the remotelogging values for this region
:param: values dictionary or payload
:return: remotelogging
"""
try:
remotelogging = self.get_remotelogging()
if not remotelogging:
LOG.warn("remotelogging not found %s" % self.region_name)
return remotelogging
if isinstance(values, dict):
patch = self.create_remote_logging_patch_from_dict(values)
else:
patch = values
if (not self.ip_address_in_patch(patch) and
not remotelogging.ip_address):
# This region does not have an ip_address set yet
LOG.info("region={} remotelogging ip_address not set "
"uuid={} patch={}. Skip patch operation.".format(
self.region_name, remotelogging.uuid, patch))
return remotelogging
LOG.info("region={} remotelogging update uuid={} patch={}".format(
self.region_name, remotelogging.uuid, patch))
remotelogging = self.client.remotelogging.update(
remotelogging.uuid, patch)
except Exception as e:
LOG.error("update_remotelogging exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
return remotelogging
raise e
def get_certificates(self):
"""Get the certificates for this region
@ -358,11 +370,11 @@ class SysinvClient(base.DriverBase):
"""
try:
certificates = self.client.certificate.list()
certificates = self.sysinv_client.certificate.list()
except Exception as e:
LOG.error("get_certificates region={} "
"exception={}".format(self.region_name, e))
raise exceptions.SyncRequestFailedRetry()
raise e
if not certificates:
LOG.info("No certificates in region: {}".format(
@ -443,10 +455,10 @@ class SysinvClient(base.DriverBase):
(signature.startswith(sysinv_constants.CERT_MODE_SSL) or
(signature.startswith(sysinv_constants.CERT_MODE_TPM)))):
# ensure https is enabled
isystem = self.client.isystem.list()[0]
isystem = self.sysinv_client.isystem.list()[0]
https_enabled = isystem.capabilities.get('https_enabled', False)
if not https_enabled:
isystem = self.client.isystem.update(
isystem = self.sysinv_client.isystem.update(
isystem.uuid,
[{"path": "/https_enabled",
"value": "true",
@ -455,23 +467,39 @@ class SysinvClient(base.DriverBase):
self.region_name, isystem.uuid))
try:
icertificate = self.client.certificate.certificate_install(
icertificate = self.sysinv_client.certificate.certificate_install(
certificate, data)
LOG.info("update_certificate region={} signature={}".format(
self.region_name,
signature))
except Exception as e:
LOG.error("update_certificate exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
raise e
return icertificate
def delete_certificate(self, certificate):
"""Delete the certificate for this region
:param: a CA certificate to delete
"""
try:
LOG.info(" delete_certificate region {} certificate: {}".format(
self.region_name, certificate.signature))
self.sysinv_client.certificate.certificate_uninstall(
certificate.uuid)
except HTTPNotFound:
LOG.info("delete_certificate NotFound {} for region: {}".format(
certificate.signature, self.region_name))
raise exceptions.CertificateNotFound(
region_name=self.region_name, signature=certificate.signature)
def get_user(self):
"""Get the user password info for this region
:return: iuser
"""
iusers = self.client.iuser.list()
iusers = self.sysinv_client.iuser.list()
if not iusers:
LOG.info("user is None for region: %s" % self.region_name)
return None
@ -504,14 +532,14 @@ class SysinvClient(base.DriverBase):
})
LOG.info("region={} user update uuid={} patch={}".format(
self.region_name, iuser.uuid, patch))
iuser = self.client.iuser.update(iuser.uuid, patch)
iuser = self.sysinv_client.iuser.update(iuser.uuid, patch)
else:
LOG.info("update_user no changes, skip user region={} "
"update uuid={} passwd_hash={}".format(
self.region_name, iuser.uuid, passwd_hash))
except Exception as e:
LOG.error("update_user exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
raise e
return iuser
@ -529,10 +557,10 @@ class SysinvClient(base.DriverBase):
LOG.info("post_fernet_repo driver region={} "
"fernet_repo_list={}".format(self.region_name, key_list))
try:
self.client.fernet.create(key_list)
self.sysinv_client.fernet.create(key_list)
except Exception as e:
LOG.error("post_fernet_repo exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
raise e
def put_fernet_repo(self, key_list):
"""Update the fernet keys for this region
@ -543,10 +571,10 @@ class SysinvClient(base.DriverBase):
LOG.info("put_fernet_repo driver region={} "
"fernet_repo_list={}".format(self.region_name, key_list))
try:
self.client.fernet.put(key_list)
self.sysinv_client.fernet.put(key_list)
except Exception as e:
LOG.error("put_fernet_repo exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
raise e
def get_fernet_keys(self):
"""Retrieve the fernet keys for this region
@ -555,9 +583,9 @@ class SysinvClient(base.DriverBase):
"""
try:
keys = self.client.fernet.list()
keys = self.sysinv_client.fernet.list()
except Exception as e:
LOG.error("get_fernet_keys exception={}".format(e))
raise exceptions.SyncRequestFailedRetry()
raise e
return keys

View File

@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
@ -23,9 +23,10 @@ from oslo_log import log
from nfv_client.openstack import sw_update
from dcmanager.common import consts
from dcmanager.common import exceptions
from dcmanager.drivers import base
from dccommon import consts
from dccommon.drivers import base
from dccommon import exceptions
LOG = log.getLogger(__name__)

View File

@ -12,8 +12,16 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2018-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
import collections
import threading
from keystoneauth1 import loading
from keystoneauth1 import session
@ -23,12 +31,16 @@ from keystoneclient.v3 import client as keystone_client
from oslo_config import cfg
from oslo_log import log as logging
from dcorch.common import consts
from dccommon import consts
LOG = logging.getLogger(__name__)
class EndpointCache(object):
plugin_loader = None
plugin_lock = threading.Lock()
def __init__(self, region_name=None, auth_url=None):
self.endpoint_map = collections.defaultdict(dict)
self.admin_session = None
@ -46,10 +58,12 @@ class EndpointCache(object):
self._update_endpoints()
def _initialize_keystone_client(self, region_name=None, auth_url=None):
loader = loading.get_plugin_loader(
cfg.CONF.keystone_authtoken.auth_type)
with EndpointCache.plugin_lock:
if EndpointCache.plugin_loader is None:
EndpointCache.plugin_loader = loading.get_plugin_loader(
cfg.CONF.keystone_authtoken.auth_type)
auth = loader.load_from_options(
auth = EndpointCache.plugin_loader.load_from_options(
auth_url=self.external_auth_url,
username=cfg.CONF.cache.admin_username,
user_domain_name=cfg.CONF.cache.admin_user_domain_name,
@ -83,11 +97,10 @@ class EndpointCache(object):
except IndexError:
LOG.error("Cannot find identity auth_url for %s", region_name)
raise
sc_loader = loading.get_plugin_loader(
cfg.CONF.keystone_authtoken.auth_type)
# We assume that the Admin user names and passwords are the same
# on this subcloud since this is an audited resource
sc_auth = sc_loader.load_from_options(
sc_auth = EndpointCache.plugin_loader.load_from_options(
auth_url=sc_auth_url,
username=cfg.CONF.cache.admin_username,
user_domain_name=cfg.CONF.cache.admin_user_domain_name,

View File

@ -0,0 +1,105 @@
# Copyright 2015 Huawei Technologies Co., Ltd.
# Copyright 2015 Ericsson AB.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2020 Wind River Systems, Inc.
#
"""
DC Orchestrator base exception handling.
"""
import six
from oslo_utils import encodeutils
from oslo_utils import excutils
from dcorch.common.i18n import _
class DCCommonException(Exception):
"""Base Commond Driver Exception.
To correctly use this class, inherit from it and define
a 'message' property. That message will get printf'd
with the keyword arguments provided to the constructor.
"""
message = _("An unknown exception occurred.")
def __init__(self, **kwargs):
try:
super(DCCommonException, self).__init__(self.message % kwargs)
self.msg = self.message % kwargs
except Exception:
with excutils.save_and_reraise_exception() as ctxt:
if not self.use_fatal_exceptions():
ctxt.reraise = False
# at least get the core message out if something happened
super(DCCommonException, self).__init__(self.message)
if six.PY2:
def __unicode__(self):
return encodeutils.exception_to_unicode(self.msg)
def use_fatal_exceptions(self):
return False
class NotFound(DCCommonException):
pass
class Conflict(DCCommonException):
pass
class ServiceUnavailable(DCCommonException):
message = _("The service is unavailable")
class InvalidInputError(DCCommonException):
message = _("An invalid value was provided")
class InternalError(DCCommonException):
message = _("Error when performing operation")
class OAMAddressesNotFound(NotFound):
message = _("OAM Addresses Not Found")
class TrapDestAlreadyExists(Conflict):
message = _("TrapDest in region=%(region_name)s ip_address=%(ip_address)s "
"community=%(community)s already exists")
class TrapDestNotFound(NotFound):
message = _("Trapdest in region=%(region_name)s with ip_address "
"%(ip_address)s not found")
class CommunityAlreadyExists(Conflict):
message = _("Community %(community)s in region=%(region_name)s "
"already exists")
class CommunityNotFound(NotFound):
message = _("Community %(community)s not found in region=%(region_name)s")
class CertificateNotFound(NotFound):
message = _("Certificate in region=%(region_name)s with signature "
"%(signature)s not found")

View File

@ -0,0 +1,44 @@
# Copyright (c) 2015 Ericsson AB
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
from dccommon.tests import utils
from oslotest import base
KEYSTONE_ENDPOINT_0 = [
"9785cc7f99b6469ba6fe89bd8d5b9072", "NULL", "admin",
"7d48ddb964034eb588e557b976d11cdf", "http://[fd01:1::2]:9292", "{}", True,
"SystemController"
]
ROUTE_0 = [
"2018-04-11 17:01:49.654734", "NULL", "NULL", 1,
"3a07ca95-d6fe-48cb-9393-b949f800b552", 6,
"fd01:2::", 64, "fd01:1::1", 1, 9
]
class DCCommonTestCase(base.BaseTestCase):
"""Test case base class for all unit tests."""
def setUp(self):
super(DCCommonTestCase, self).setUp()
self.ctx = utils.dummy_context()

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
@ -19,10 +19,9 @@
import mock
from dcmanager.tests import base
from dcmanager.tests import utils
from dcorch.drivers.openstack import keystone_v3
from dccommon.drivers.openstack import keystone_v3
from dccommon.tests import base
from dccommon.tests import utils
FAKE_SERVICE = [
'endpoint_volume',
@ -50,7 +49,7 @@ class FakeEndpoint(object):
self.region = region
class TestKeystoneClient(base.DCManagerTestCase):
class TestKeystoneClient(base.DCCommonTestCase):
def setUp(self):
super(TestKeystoneClient, self).setUp()
self.ctx = utils.dummy_context()

View File

@ -0,0 +1,45 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
import mock
from dccommon.drivers.openstack import sdk_platform as sdk
from dccommon import exceptions
from dccommon.tests import base
class TestOpenStackDriver(base.DCCommonTestCase):
@mock.patch.object(sdk, 'KeystoneClient')
@mock.patch.object(sdk.OpenStackDriver, '_is_token_valid')
def test_init(self, mock_keystone_client, mock_is_token_valid):
region_name = 'subcloud1'
os_client = sdk.OpenStackDriver(region_name, region_clients=None)
self.assertIsNotNone(os_client)
new_keystone_client = os_client.keystone_client
self.assertIsNotNone(new_keystone_client)
mock_is_token_valid(region_name).return_value = True
cached_keystone_client = sdk.OpenStackDriver(
region_name, region_clients=None).keystone_client
self.assertEqual(new_keystone_client, cached_keystone_client)
self.assertRaises(exceptions.InvalidInputError,
sdk.OpenStackDriver,
region_name, region_clients=['fake_client'])

View File

@ -10,7 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
@ -19,13 +19,10 @@
import mock
from dccommon.drivers.openstack import sysinv_v1
from dccommon.tests import base
from dccommon.tests import utils
from dcmanager.common import consts
from dcmanager.drivers.openstack import sysinv_v1
from dcmanager.tests import base
from dcmanager.tests import utils
from ddt import ddt
from ddt import file_data
class FakeInterface(object):
@ -60,8 +57,7 @@ class FakeRoute(object):
self.metric = data['metric']
@ddt
class TestSysinvClient(base.DCManagerTestCase):
class TestSysinvClient(base.DCCommonTestCase):
def setUp(self):
super(TestSysinvClient, self).setUp()
self.ctx = utils.dummy_context()
@ -110,10 +106,9 @@ class TestSysinvClient(base.DCManagerTestCase):
management_pool = sysinv_client.get_management_address_pool()
self.assertEqual(pool, management_pool)
@file_data(utils.get_data_filepath('sysinv', 'routes'))
@mock.patch.object(sysinv_v1.SysinvClient, '__init__')
def test_create_route(self, value, mock_sysinvclient_init):
fake_route = utils.create_route_dict(value)
def test_create_route(self, mock_sysinvclient_init):
fake_route = utils.create_route_dict(base.ROUTE_0)
mock_sysinvclient_init.return_value = None
sysinv_client = sysinv_v1.SysinvClient(consts.DEFAULT_REGION_NAME,
None)
@ -129,8 +124,6 @@ class TestSysinvClient(base.DCManagerTestCase):
network=fake_route['network'], prefix=fake_route['prefix'],
gateway=fake_route['gateway'], metric=fake_route['metric'])
@file_data(utils.get_data_filepath('sysinv', 'routes'))
@mock.patch.object(sysinv_v1.SysinvClient, '__init__')
def test_delete_route(self, value, mock_sysinvclient_init):
# fake_route = utils.create_route_dict(value)
def test_delete_route(self, mock_sysinvclient_init):
mock_sysinvclient_init.return_value = None

View File

@ -13,7 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
@ -22,13 +22,11 @@
from mock import patch
from dcmanager.tests import base
from dcmanager.tests import utils
from oslo_config import cfg
from ddt import ddt
from ddt import file_data
from dcorch.common import endpoint_cache
from dccommon import endpoint_cache
from dccommon.tests import base
from dccommon.tests import utils
FAKE_REGION = 'fake_region'
FAKE_SERVICE = 'fake_service'
@ -44,16 +42,18 @@ FAKE_CINDER_URL_2 = 'fake_url_cinder_2'
FAKE_NEUTRON_URL_1 = 'fake_url_neutron_1'
@ddt
class EndpointCacheTest(base.DCManagerTestCase):
class EndpointCacheTest(base.DCCommonTestCase):
def setUp(self):
super(EndpointCacheTest, self).setUp()
auth_uri_opts = [
cfg.StrOpt('auth_uri',
default="fake_auth_uri")]
cfg.CONF.register_opts(auth_uri_opts, 'cache')
@file_data(utils.get_data_filepath('keystone', 'endpoint'))
@patch.object(endpoint_cache.EndpointCache, '_initialize_keystone_client')
@patch.object(endpoint_cache.EndpointCache, '_get_endpoint_from_keystone')
def test_get_endpoint(self, value, mock_method, mock_init):
endpoint_dict = utils.create_endpoint_dict(value)
def test_get_endpoint(self, mock_method, mock_init):
endpoint_dict = utils.create_endpoint_dict(base.KEYSTONE_ENDPOINT_0)
mock_method.return_value = {endpoint_dict['region_id']: {
endpoint_dict['service_id']: endpoint_dict['url']}}
mock_init.return_value = None
@ -62,11 +62,10 @@ class EndpointCacheTest(base.DCManagerTestCase):
endpoint_dict['service_id']),
endpoint_dict['url'])
@file_data(utils.get_data_filepath('keystone', 'endpoint'))
@patch.object(endpoint_cache.EndpointCache, '_initialize_keystone_client')
@patch.object(endpoint_cache.EndpointCache, '_get_endpoint_from_keystone')
def test_get_endpoint_not_found(self, value, mock_method, mock_init):
endpoint_dict = utils.create_endpoint_dict(value)
def test_get_endpoint_not_found(self, mock_method, mock_init):
endpoint_dict = utils.create_endpoint_dict(base.KEYSTONE_ENDPOINT_0)
mock_method.return_value = {endpoint_dict['region_id']: {
endpoint_dict['service_id']: endpoint_dict['url']}}
mock_init.return_value = None
@ -76,11 +75,10 @@ class EndpointCacheTest(base.DCManagerTestCase):
self.assertEqual(cache.get_endpoint(endpoint_dict['region_id'],
'another_fake_service'), '')
@file_data(utils.get_data_filepath('keystone', 'endpoint'))
@patch.object(endpoint_cache.EndpointCache, '_initialize_keystone_client')
@patch.object(endpoint_cache.EndpointCache, '_get_endpoint_from_keystone')
def test_get_endpoint_retry(self, value, mock_method, mock_init):
endpoint_dict = utils.create_endpoint_dict(value)
def test_get_endpoint_retry(self, mock_method, mock_init):
endpoint_dict = utils.create_endpoint_dict(base.KEYSTONE_ENDPOINT_0)
mock_init.return_value = None
cache = endpoint_cache.EndpointCache()
mock_method.return_value = {'another_region': {
@ -89,11 +87,10 @@ class EndpointCacheTest(base.DCManagerTestCase):
endpoint_dict['service_id']),
'another_fake_url')
@file_data(utils.get_data_filepath('keystone', 'endpoint'))
@patch.object(endpoint_cache.EndpointCache, '_initialize_keystone_client')
@patch.object(endpoint_cache.EndpointCache, '_get_endpoint_from_keystone')
def test_update_endpoint(self, value, mock_method, mock_init):
endpoint_dict = utils.create_endpoint_dict(value)
def test_update_endpoint(self, mock_method, mock_init):
endpoint_dict = utils.create_endpoint_dict(base.KEYSTONE_ENDPOINT_0)
mock_method.return_value = {endpoint_dict['region_id']: {
endpoint_dict['service_id']: endpoint_dict['url']}}
mock_init.return_value = None

View File

@ -0,0 +1,59 @@
# Copyright (c) 2015 Ericsson AB
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
from oslo_context import context
def create_route_dict(data_list):
return {'created-at': data_list[0],
'updated-at': data_list[1],
'deleted-at': data_list[2],
'id': data_list[3],
'uuid': data_list[4],
'family': data_list[5],
'network': data_list[6],
'prefix': data_list[7],
'gateway': data_list[8],
'metric': data_list[9],
'interface-id': data_list[10]}
def create_endpoint_dict(data_list):
return {'id': data_list[0],
'legacy_endpoint_id': data_list[1],
'interface': data_list[2],
'service_id': data_list[3],
'url': data_list[4],
'extra': data_list[5],
'enabled': data_list[6],
'region_id': data_list[7]}
def dummy_context(user='test_username', tenant='test_project_id',
region_name=None):
return context.RequestContext.from_dict({
'auth_token': 'abcd1234',
'user': user,
'project': tenant,
'is_admin': True,
'region_name': region_name
})

View File

@ -81,7 +81,7 @@ class HTTPClient(object):
raise exceptions.ConnectFailure(msg)
except requests.exceptions.RequestException as e:
msg = 'Unexpected exception for %s: %s' % (url, e)
raise exceptions.UnknownConnectionError(msg, e)
raise exceptions.UnknownConnectionError(msg)
@log_request
def post(self, url, body, headers=None):
@ -99,7 +99,7 @@ class HTTPClient(object):
raise exceptions.ConnectFailure(msg)
except requests.exceptions.RequestException as e:
msg = 'Unexpected exception for %s: %s' % (url, e)
raise exceptions.UnknownConnectionError(msg, e)
raise exceptions.UnknownConnectionError(msg)
@log_request
def put(self, url, body, headers=None):
@ -117,7 +117,7 @@ class HTTPClient(object):
raise exceptions.ConnectFailure(msg)
except requests.exceptions.RequestException as e:
msg = 'Unexpected exception for %s: %s' % (url, e)
raise exceptions.UnknownConnectionError(msg, e)
raise exceptions.UnknownConnectionError(msg)
@log_request
def patch(self, url, body, headers=None):
@ -135,7 +135,7 @@ class HTTPClient(object):
raise exceptions.ConnectFailure(msg)
except requests.exceptions.RequestException as e:
msg = 'Unexpected exception for %s: %s' % (url, e)
raise exceptions.UnknownConnectionError(msg, e)
raise exceptions.UnknownConnectionError(msg)
@log_request
def delete(self, url, headers=None):
@ -153,7 +153,7 @@ class HTTPClient(object):
raise exceptions.ConnectFailure(msg)
except requests.exceptions.RequestException as e:
msg = 'Unexpected exception for %s: %s' % (url, e)
raise exceptions.UnknownConnectionError(msg, e)
raise exceptions.UnknownConnectionError(msg)
def _get_request_options(self, method, headers):
headers = self._update_headers(headers)

View File

@ -36,17 +36,21 @@ from controllerconfig.common.exceptions import ValidateFail
from controllerconfig.utils import validate_address_str
from controllerconfig.utils import validate_network_str
from dcorch.drivers.openstack.keystone_v3 import KeystoneClient
from dccommon.drivers.openstack.keystone_v3 import KeystoneClient
from dccommon.drivers.openstack.sysinv_v1 import SysinvClient
from dccommon import exceptions as dccommon_exceptions
from keystoneauth1 import exceptions as keystone_exceptions
from dcmanager.api.controllers import restcomm
from dcmanager.common import consts
from dcmanager.common import exceptions
from dcmanager.common.i18n import _
from dcmanager.common import install_consts
from dcmanager.common import utils
from dcmanager.db import api as db_api
from dcmanager.drivers.openstack.sysinv_v1 import SysinvClient
from dcmanager.rpc import client as rpc_client
from dcmanager.rpc import client as rpc_client
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
@ -55,6 +59,8 @@ SYSTEM_MODE_DUPLEX = "duplex"
SYSTEM_MODE_SIMPLEX = "simplex"
SYSTEM_MODE_DUPLEX_DIRECT = "duplex-direct"
LOCK_NAME = 'SubcloudsController'
class SubcloudsController(object):
VERSION_ALIASES = {
@ -262,7 +268,7 @@ class SubcloudsController(object):
if 'nexthop_gateway' in install_values:
try:
gateway_ip = IPAddress(install_values['nexthop_gateway'])
except AddrFormatError:
except AddrFormatError as e:
LOG.exception(e)
pecan.abort(400, _("nexthop_gateway address invalid: %s") % e)
if gateway_ip.version != ip_version:
@ -330,8 +336,37 @@ class SubcloudsController(object):
sysinv_client = SysinvClient(consts.DEFAULT_REGION_NAME, session)
return sysinv_client.get_management_address_pool()
@staticmethod
def get_ks_client(region_name=None):
"""This will get a new keystone client (and new token)"""
try:
return KeystoneClient(region_name)
except Exception:
LOG.warn('Failure initializing KeystoneClient '
'for region %s' % region_name)
raise
def _get_oam_addresses(self, context, subcloud_name):
"""Get the subclouds oam addresses"""
# First need to retrieve the Subcloud's Keystone session
try:
sc_ks_client = self.get_ks_client(subcloud_name)
sysinv_client = SysinvClient(subcloud_name,
sc_ks_client.session)
return sysinv_client.get_oam_addresses()
except (keystone_exceptions.EndpointNotFound, IndexError) as e:
message = ("Identity endpoint for subcloud: %s not found. %s" %
(subcloud_name, e))
LOG.error(message)
except dccommon_exceptions.OAMAddressesNotFound:
message = ("OAM addresses for subcloud: %s not found." %
(subcloud_name))
LOG.error(message)
return None
@index.when(method='GET', template='json')
def get(self, subcloud_ref=None):
def get(self, subcloud_ref=None, detail=None):
"""Get details about subcloud.
:param subcloud_ref: ID or name of subcloud
@ -434,8 +469,20 @@ class SubcloudsController(object):
subcloud_status_list}
subcloud_dict.update(endpoint_sync_dict)
if detail is not None:
oam_addresses = self._get_oam_addresses(context,
subcloud_ref)
if oam_addresses is not None:
oam_floating_ip = oam_addresses.oam_floating_ip
else:
oam_floating_ip = "unavailable"
floating_ip_dict = {"oam_floating_ip":
oam_floating_ip}
subcloud_dict.update(floating_ip_dict)
return subcloud_dict
@utils.synchronized(LOCK_NAME)
@index.when(method='POST', template='json')
def post(self, subcloud_ref=None):
"""Create and deploy a new subcloud.
@ -525,6 +572,7 @@ class SubcloudsController(object):
else:
pecan.abort(400, _('Invalid request'))
@utils.synchronized(LOCK_NAME)
@index.when(method='PATCH', template='json')
def patch(self, subcloud_ref=None):
"""Update a subcloud.
@ -585,6 +633,7 @@ class SubcloudsController(object):
LOG.exception(e)
pecan.abort(500, _('Unable to update subcloud'))
@utils.synchronized(LOCK_NAME)
@index.when(method='delete', template='json')
def delete(self, subcloud_ref):
"""Delete a subcloud.

View File

@ -27,6 +27,7 @@ import pecan
from pecan import expose
from pecan import request
from dccommon import consts as dccommon_consts
from dcmanager.api.controllers import restcomm
from dcmanager.common import consts
from dcmanager.common import exceptions
@ -128,7 +129,7 @@ class SwUpdateOptionsController(object):
if subcloud_ref == consts.DEFAULT_REGION_NAME:
# update default options
subcloud_name = consts.SW_UPDATE_DEFAULT_TITLE
subcloud_name = dccommon_consts.SW_UPDATE_DEFAULT_TITLE
if db_api.sw_update_opts_default_get(context):
# entry already in db, update it.

View File

@ -87,8 +87,6 @@ STRATEGY_STATE_COMPLETE = "complete"
STRATEGY_STATE_ABORTED = "aborted"
STRATEGY_STATE_FAILED = "failed"
SW_UPDATE_DEFAULT_TITLE = "all clouds default"
# Subcloud deploy status states
DEPLOY_STATE_NONE = 'not-deployed'
DEPLOY_STATE_PRE_INSTALL = 'pre-install'

View File

@ -13,20 +13,34 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
import grp
import itertools
import os
import pwd
import six.moves
import tsconfig.tsconfig as tsc
from dcmanager.common import consts
from oslo_concurrency import lockutils
from oslo_config import cfg
from oslo_log import log as logging
from dccommon import consts as dccommon_consts
from dccommon.drivers.openstack import vim
from dcmanager.common import exceptions
from dcmanager.db import api as db_api
from dcmanager.drivers.openstack import vim
from dcorch.common import consts as dcorch_consts
LOG = logging.getLogger(__name__)
DC_MANAGER_USERNAME = "root"
DC_MANAGER_GRPNAME = "root"
def get_import_path(cls):
@ -43,9 +57,9 @@ def get_batch_projects(batch_size, project_list, fillvalue=None):
def validate_quota_limits(payload):
for resource in payload:
# Check valid resource name
if resource not in itertools.chain(consts.CINDER_QUOTA_FIELDS,
consts.NOVA_QUOTA_FIELDS,
consts.NEUTRON_QUOTA_FIELDS):
if resource not in itertools.chain(dcorch_consts.CINDER_QUOTA_FIELDS,
dcorch_consts.NOVA_QUOTA_FIELDS,
dcorch_consts.NEUTRON_QUOTA_FIELDS):
raise exceptions.InvalidInputError
# Check valid quota limit value in case for put/post
if isinstance(payload, dict) and (not isinstance(
@ -89,4 +103,46 @@ def get_sw_update_opts(context,
subcloud_id=subcloud_id)
return db_api.sw_update_opts_w_name_db_model_to_dict(
sw_update_opts_ref, consts.SW_UPDATE_DEFAULT_TITLE)
sw_update_opts_ref, dccommon_consts.SW_UPDATE_DEFAULT_TITLE)
def ensure_lock_path():
# Determine the oslo_concurrency lock path:
# 1) First, from the oslo_concurrency section of the config
# a) If not set via an option default or config file, oslo_concurrency
# sets it to the OSLO_LOCK_PATH env variable
# 2) Then if not set, set it to a specific directory under
# tsc.VOLATILE_PATH
if cfg.CONF.oslo_concurrency.lock_path:
lock_path = cfg.CONF.oslo_concurrency.lock_path
else:
lock_path = os.path.join(tsc.VOLATILE_PATH, "dcmanager")
if not os.path.isdir(lock_path):
try:
uid = pwd.getpwnam(DC_MANAGER_USERNAME).pw_uid
gid = grp.getgrnam(DC_MANAGER_GRPNAME).gr_gid
os.makedirs(lock_path)
os.chown(lock_path, uid, gid)
LOG.info("Created directory=%s" % lock_path)
except OSError as e:
LOG.exception("makedir %s OSError=%s encountered" %
(lock_path, e))
return None
return lock_path
def synchronized(name, external=True, fair=False):
if external:
prefix = 'DCManager-'
lock_path = ensure_lock_path()
else:
prefix = None
lock_path = None
return lockutils.synchronized(name, lock_file_prefix=prefix,
external=external, lock_path=lock_path,
semaphores=None, delay=0.01, fair=fair)

View File

@ -13,14 +13,14 @@
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
from dcmanager.drivers.openstack import vim
from dccommon.drivers.openstack import vim
import sqlalchemy

View File

@ -1,167 +0,0 @@
# Copyright 2016 Ericsson AB
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
from oslo_log import log
from sysinv.common import constants as sysinv_constants
# from dcmanager.common import consts
from dcmanager.common import exceptions
from dcmanager.drivers import base
LOG = log.getLogger(__name__)
API_VERSION = '1'
class SysinvClient(base.DriverBase):
"""Sysinv V1 driver."""
def __init__(self, region, session):
try:
# TOX cannot import cgts_client and all the dependencies therefore
# the client is being lazy loaded since TOX doesn't actually
# require the cgtsclient module.
from cgtsclient import client
# The sysinv client doesn't support a session, so we need to
# get an endpoint and token.
endpoint = session.get_endpoint(service_type='platform',
region_name=region,
interface='internal')
token = session.get_token()
self.sysinv_client = client.Client(API_VERSION,
endpoint=endpoint,
token=token)
except exceptions.ServiceUnavailable:
raise
def get_controller_hosts(self):
"""Get a list of controller hosts."""
return self.sysinv_client.ihost.list_personality(
sysinv_constants.CONTROLLER)
def get_management_interface(self, hostname):
"""Get the management interface for a host."""
interfaces = self.sysinv_client.iinterface.list(hostname)
for interface in interfaces:
interface_networks = self.sysinv_client.interface_network.\
list_by_interface(interface.uuid)
for if_net in interface_networks:
if if_net.network_type == sysinv_constants.NETWORK_TYPE_MGMT:
return interface
# This can happen if the host is still being installed and has not
# yet created its management interface.
LOG.warning("Management interface on host %s not found" % hostname)
return None
def get_management_address_pool(self):
"""Get the management address pool for a host."""
networks = self.sysinv_client.network.list()
for network in networks:
if network.type == sysinv_constants.NETWORK_TYPE_MGMT:
address_pool_uuid = network.pool_uuid
break
else:
LOG.error("Management address pool not found")
raise exceptions.InternalError()
return self.sysinv_client.address_pool.get(address_pool_uuid)
def get_oam_address_pool(self):
"""Get the oam address pool for a host."""
networks = self.sysinv_client.network.list()
for network in networks:
if network.type == sysinv_constants.NETWORK_TYPE_OAM:
address_pool_uuid = network.pool_uuid
break
else:
LOG.error("OAM address pool not found")
raise exceptions.InternalError()
return self.sysinv_client.address_pool.get(address_pool_uuid)
def create_route(self, interface_uuid, network, prefix, gateway, metric):
"""Create a static route on an interface."""
LOG.info("Creating route: interface: %s dest: %s/%s "
"gateway: %s metric %s" % (interface_uuid, network,
prefix, gateway, metric))
self.sysinv_client.route.create(interface_uuid=interface_uuid,
network=network,
prefix=prefix,
gateway=gateway,
metric=metric)
def delete_route(self, interface_uuid, network, prefix, gateway, metric):
"""Delete a static route."""
# Get the routes for this interface
routes = self.sysinv_client.route.list_by_interface(interface_uuid)
for route in routes:
if (route.network == network and route.prefix == prefix and
route.gateway == gateway and route.metric == metric):
LOG.info("Deleting route: interface: %s dest: %s/%s "
"gateway: %s metric %s" % (interface_uuid, network,
prefix, gateway, metric))
self.sysinv_client.route.delete(route.uuid)
return
LOG.warning("Route not found: interface: %s dest: %s/%s gateway: %s "
"metric %s" % (interface_uuid, network, prefix, gateway,
metric))
def get_service_groups(self):
"""Get a list of service groups."""
return self.sysinv_client.sm_servicegroup.list()
def get_loads(self):
"""Get a list of loads."""
return self.sysinv_client.load.list()
def get_applications(self):
"""Get a list of containerized applications"""
# Get a list of containerized applications the system knows of
return self.sysinv_client.app.list()
def get_system(self):
"""Get the system."""
systems = self.sysinv_client.isystem.list()
return systems[0]
def get_service_parameters(self, name, value):
"""Get service parameters for a given name."""
opts = []
opt = dict()
opt['field'] = name
opt['value'] = value
opt['op'] = 'eq'
opt['type'] = ''
opts.append(opt)
parameters = self.sysinv_client.service_parameter.list(q=opts)
return parameters
def get_registry_image_tags(self, image_name):
"""Get the image tags for an image from the local registry"""
image_tags = self.sysinv_client.registry_image.tags(image_name)
return image_tags

View File

@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
@ -24,8 +24,12 @@ from keystoneauth1 import exceptions as keystone_exceptions
from oslo_config import cfg
from oslo_log import log as logging
from dccommon.drivers.openstack import patching_v1
from dccommon.drivers.openstack.patching_v1 import PatchingClient
from dccommon.drivers.openstack.sdk_platform import OpenStackDriver
from dccommon.drivers.openstack.sysinv_v1 import SysinvClient
from dcorch.common import consts as dcorch_consts
from dcorch.drivers.openstack.keystone_v3 import KeystoneClient
from dcmanager.common import consts
from dcmanager.common import context
@ -33,10 +37,6 @@ from dcmanager.common.i18n import _
from dcmanager.common import manager
from dcmanager.db import api as db_api
from dcmanager.drivers.openstack import patching_v1
from dcmanager.drivers.openstack.patching_v1 import PatchingClient
from dcmanager.drivers.openstack.sysinv_v1 import SysinvClient
LOG = logging.getLogger(__name__)
@ -105,7 +105,9 @@ class PatchAuditManager(manager.Manager):
LOG.info('Triggered patch audit.')
try:
ks_client = KeystoneClient()
m_os_ks_client = OpenStackDriver(
region_name=consts.DEFAULT_REGION_NAME,
region_clients=None).keystone_client
except Exception:
LOG.warn('Failure initializing KeystoneClient, exiting audit.')
return
@ -113,7 +115,7 @@ class PatchAuditManager(manager.Manager):
# First query RegionOne to determine what patches should be applied
# to the system.
patching_client = PatchingClient(
consts.DEFAULT_REGION_NAME, ks_client.session)
consts.DEFAULT_REGION_NAME, m_os_ks_client.session)
regionone_patches = patching_client.query()
LOG.debug("regionone_patches: %s" % regionone_patches)
@ -142,23 +144,29 @@ class PatchAuditManager(manager.Manager):
continue
try:
sc_ks_client = KeystoneClient(subcloud.name)
except (keystone_exceptions.EndpointNotFound, IndexError) as e:
LOG.warn("Identity endpoint for online subcloud %s not found."
" %s" % (subcloud.name, e))
sc_os_client = OpenStackDriver(region_name=subcloud.name,
region_clients=None)
except (keystone_exceptions.EndpointNotFound,
keystone_exceptions.ConnectFailure,
keystone_exceptions.ConnectTimeout,
IndexError):
# Since it takes some time to detect that a subcloud has gone
# offline, these errors are expected from time to time.
LOG.info("Identity endpoint for online subcloud %s not found."
% subcloud.name)
continue
try:
patching_client = PatchingClient(subcloud.name,
sc_ks_client.session)
patching_client = PatchingClient(
subcloud.name, sc_os_client.keystone_client.session)
except keystone_exceptions.EndpointNotFound:
LOG.warn("Patching endpoint for online subcloud %s not found."
% subcloud.name)
continue
try:
sysinv_client = SysinvClient(subcloud.name,
sc_ks_client.session)
sysinv_client = SysinvClient(
subcloud.name, sc_os_client.keystone_client.session)
except keystone_exceptions.EndpointNotFound:
LOG.warn("Sysinv endpoint for online subcloud %s not found."
% subcloud.name)

View File

@ -21,14 +21,16 @@
#
from keystoneauth1 import exceptions as keystone_exceptions
from oslo_config import cfg
from oslo_log import log as logging
from fm_api import constants as fm_const
from fm_api import fm_api
from sysinv.common import constants as sysinv_constants
from dcorch.common import consts as dcorch_consts
from dcorch.drivers.openstack.keystone_v3 import KeystoneClient
from dccommon import consts as dccommon_consts
from dccommon.drivers.openstack.sdk_platform import OpenStackDriver
from dccommon.drivers.openstack.sysinv_v1 import SysinvClient
from dcorch.rpc import client as dcorch_rpc_client
from dcmanager.common import consts
@ -37,11 +39,16 @@ from dcmanager.common import exceptions
from dcmanager.common.i18n import _
from dcmanager.common import manager
from dcmanager.db import api as db_api
from dcmanager.drivers.openstack.sysinv_v1 import SysinvClient
from dcmanager.manager import scheduler
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
# We will update the state of each subcloud in the dcorch about once per hour.
# Calculate how many iterations that will be.
SUBCLOUD_STATE_UPDATE_ITERATIONS = \
dccommon_consts.SECONDS_IN_HOUR / CONF.scheduler.subcloud_audit_interval
class SubcloudAuditManager(manager.Manager):
"""Manages tasks related to audits."""
@ -60,6 +67,8 @@ class SubcloudAuditManager(manager.Manager):
thread_pool_size=100)
# Track workers created for each subcloud.
self.subcloud_workers = dict()
# Number of audits since last subcloud state update
self.audit_count = 0
def periodic_subcloud_audit(self):
"""Audit availability of subclouds."""
@ -76,11 +85,19 @@ class SubcloudAuditManager(manager.Manager):
# We will be running in our own green thread here.
LOG.info('Triggered subcloud audit.')
self.audit_count += 1
# Determine whether to trigger a state update to each subcloud
if self.audit_count >= SUBCLOUD_STATE_UPDATE_ITERATIONS:
update_subcloud_state = True
else:
update_subcloud_state = False
# Determine whether OpenStack is installed in central cloud
ks_client = KeystoneClient()
os_client = OpenStackDriver(region_name=consts.DEFAULT_REGION_NAME,
region_clients=None)
sysinv_client = SysinvClient(consts.DEFAULT_REGION_NAME,
ks_client.session)
os_client.keystone_client.session)
# This could be optimized in the future by attempting to get just the
# one application. However, sysinv currently treats this as a failure
# if the application is not installed and generates warning logs, so it
@ -106,6 +123,7 @@ class SubcloudAuditManager(manager.Manager):
self.subcloud_workers[subcloud.name] = \
self.thread_group_manager.start(self._audit_subcloud,
subcloud.name,
update_subcloud_state,
openstack_installed)
# Wait for all greenthreads to complete
@ -117,7 +135,8 @@ class SubcloudAuditManager(manager.Manager):
self.subcloud_workers = dict()
LOG.info('All subcloud audits have completed.')
def _audit_subcloud(self, subcloud_name, audit_openstack):
def _audit_subcloud(self, subcloud_name, update_subcloud_state,
audit_openstack):
"""Audit a single subcloud."""
# Retrieve the subcloud
@ -145,9 +164,10 @@ class SubcloudAuditManager(manager.Manager):
avail_to_set = consts.AVAILABILITY_OFFLINE
try:
ks_client = KeystoneClient(subcloud_name)
os_client = OpenStackDriver(region_name=subcloud_name,
region_clients=None)
sysinv_client = SysinvClient(subcloud_name,
ks_client.session)
os_client.keystone_client.session)
except (keystone_exceptions.EndpointNotFound,
keystone_exceptions.ConnectFailure,
keystone_exceptions.ConnectTimeout,
@ -322,6 +342,16 @@ class SubcloudAuditManager(manager.Manager):
'audit_fail_count update: %s' % subcloud_name)
return
elif update_subcloud_state:
# Nothing has changed, but we want to send a state update for this
# subcloud as an audit. Get the most up-to-date data.
subcloud = db_api.subcloud_get_by_name(self.context, subcloud_name)
self.dcorch_rpc_client. \
update_subcloud_states(self.context,
subcloud_name,
subcloud.management_state,
subcloud.availability_status)
if audit_openstack and sysinv_client:
# get a list of installed apps in the subcloud
try:
@ -345,6 +375,8 @@ class SubcloudAuditManager(manager.Manager):
dco_update_func = None
if openstack_installed_current and not openstack_installed:
dcm_update_func = db_api.subcloud_status_create
# TODO(andy.ning): This RPC will block for the duration of the
# initial sync. It needs to be made non-blocking.
dco_update_func = self.dcorch_rpc_client.\
add_subcloud_sync_endpoint_type
elif not openstack_installed_current and openstack_installed:
@ -353,7 +385,7 @@ class SubcloudAuditManager(manager.Manager):
remove_subcloud_sync_endpoint_type
if dcm_update_func and dco_update_func:
endpoint_type_list = dcorch_consts.ENDPOINT_TYPES_LIST_OS
endpoint_type_list = dccommon_consts.ENDPOINT_TYPES_LIST_OS
try:
# Notify dcorch to add/remove sync endpoint type list
dco_update_func(self.context, subcloud_name,

View File

@ -30,11 +30,11 @@ from six.moves.urllib import error as urllib_error
from six.moves.urllib import parse
from six.moves.urllib import request
from dccommon.drivers.openstack.keystone_v3 import KeystoneClient
from dccommon.drivers.openstack.sysinv_v1 import SysinvClient
from dcmanager.common import consts
from dcmanager.common import exceptions
from dcmanager.common import install_consts
from dcmanager.drivers.openstack.sysinv_v1 import SysinvClient
from dcorch.drivers.openstack.keystone_v3 import KeystoneClient
from oslo_log import log as logging
@ -45,11 +45,11 @@ RVMC_NAME_PREFIX = 'rvmc'
RVMC_IMAGE_NAME = 'docker.io/starlingx/rvmc'
SUBCLOUD_ISO_PATH = '/opt/platform/iso'
SUBCLOUD_ISO_DOWNLOAD_PATH = '/www/pages/iso'
UPDATE_ISO_COMMAND = '/usr/local/bin/update-iso.sh'
GEN_ISO_COMMAND = '/usr/local/bin/gen-bootloader-iso.sh'
NETWORK_SCRIPTS = '/etc/sysconfig/network-scripts'
NETWORK_INTERFACE_PREFIX = 'ifcfg'
NETWORK_ROUTE_PREFIX = 'route'
LOCAL_REGISTRY_PREFIX = 'registry.local:9001/'
OPTIONAL_INSTALL_VALUES = [
'nexthop_gateway',
@ -58,14 +58,20 @@ OPTIONAL_INSTALL_VALUES = [
'console_type',
'bootstrap_vlan',
'rootfs_device',
'boot_device'
'boot_device',
'no_check_certificate'
]
UPDATE_ISO_OPTIONS = {
'install_type': '-d',
'console_type': '-p',
'rootfs_device': '-p',
'boot_device': '-p'
GEN_ISO_OPTIONS = {
'bootstrap_interface': '--boot-interface',
'bootstrap_address': '--boot-ip',
'bootstrap_address_prefix': '--boot-netmask',
'nexthop_gateway': "--boot-gateway",
'install_type': '--default-boot',
'rootfs_device': '--param',
'boot_device': '--param',
'bootstrap_vlan': '--param',
'no_check_certificate': '--param'
}
BMC_OPTIONS = {
@ -85,7 +91,8 @@ class SubcloudInstall(object):
self.sysinv_client = SysinvClient(consts.DEFAULT_REGION_NAME, session)
self.name = subcloud_name
self.input_iso = None
self.output_iso = None
self.www_root = None
self.https_enabled = None
@staticmethod
def config_device(ks_cfg, interface, vlan=False):
@ -134,26 +141,35 @@ class SubcloudInstall(object):
ks_cfg.write(route_args)
ks_cfg.write("EOF\n\n")
def get_oam_address(self):
oam_pool = self.sysinv_client.get_oam_address_pool()
@staticmethod
def format_address(ip_address):
try:
oam_address = netaddr.IPAddress(oam_pool.floating_address)
if oam_address.version == 6:
return "[%s]" % oam_address
address = netaddr.IPAddress(ip_address)
if address.version == 6:
return "[%s]" % address
else:
return str(oam_address)
except netaddr.AddrFormatError:
return oam_pool.floating_address
return str(address)
except netaddr.AddrFormatError as e:
LOG.error("Failed to format the address: %s", ip_address)
raise e
def get_oam_address(self):
oam_addresses = self.sysinv_client.get_oam_addresses()
return self.format_address(oam_addresses.oam_floating_ip)
def get_https_enabled(self):
if self.https_enabled is None:
system = self.sysinv_client.get_system()
self.https_enabled = system.capabilities.get('https_enabled',
False)
return self.https_enabled
def get_image_base_url(self):
system = self.sysinv_client.get_system()
# get the protocol
https_enabled = system.capabilities.get('https_enabled', False)
protocol = 'https' if https_enabled else 'http'
protocol = 'https' if self.get_https_enabled() else 'http'
# get the configured http or https port
value = 'https_port' if https_enabled else 'http_port'
value = 'https_port' if self.get_https_enabled() else 'http_port'
http_parameters = self.sysinv_client.get_service_parameters('name',
value)
port = getattr(http_parameters[0], 'value')
@ -163,7 +179,7 @@ class SubcloudInstall(object):
def get_image_tag(self, image_name):
tags = self.sysinv_client.get_registry_image_tags(image_name)
if not tags:
msg = ("Error: Image % not found in the local registry." %
msg = ("Error: Image %s not found in the local registry." %
image_name)
LOG.error(msg)
raise exceptions.NotFound()
@ -184,8 +200,8 @@ class SubcloudInstall(object):
def create_install_override_file(self, override_path, payload):
LOG.debug("create install override file")
rvmc_image = RVMC_IMAGE_NAME + ':' + self.get_image_tag(
RVMC_IMAGE_NAME)
rvmc_image = LOCAL_REGISTRY_PREFIX + RVMC_IMAGE_NAME + ':' +\
self.get_image_tag(RVMC_IMAGE_NAME)
install_override_file = os.path.join(override_path,
'install_values.yml')
rvmc_name = "%s-%s" % (RVMC_NAME_PREFIX, self.name)
@ -253,10 +269,10 @@ class SubcloudInstall(object):
raise e
def update_iso(self, override_path, values):
output_iso_dir = os.path.join(SUBCLOUD_ISO_PATH,
str(values['software_version']))
if not os.path.isdir(output_iso_dir):
os.mkdir(output_iso_dir, 0o755)
self.www_root = os.path.join(SUBCLOUD_ISO_PATH,
str(values['software_version']))
if not os.path.isdir(self.www_root):
os.mkdir(self.www_root, 0o755)
try:
if parse.urlparse(values['image']).scheme:
@ -283,33 +299,54 @@ class SubcloudInstall(object):
resource=self.name,
msg=msg)
output_iso_file = os.path.join(output_iso_dir,
self.name + 'bootimage.iso')
if os.path.exists(output_iso_file):
os.remove(output_iso_file)
update_iso_cmd = [
UPDATE_ISO_COMMAND,
"-i", self.input_iso,
"-o", output_iso_file
GEN_ISO_COMMAND,
"--input", self.input_iso,
"--www-root", self.www_root,
"--id", self.name,
"--boot-hostname", self.name,
"--timeout", BOOT_MENU_TIMEOUT,
]
for k in UPDATE_ISO_OPTIONS.keys():
for k in GEN_ISO_OPTIONS.keys():
if k in values:
if k == 'install_type':
update_iso_cmd += [UPDATE_ISO_OPTIONS[k],
str(values[k])]
else:
update_iso_cmd += [UPDATE_ISO_OPTIONS[k],
if k == 'bootstrap_address' or k == 'nexthop_gateway':
update_iso_cmd += [GEN_ISO_OPTIONS[k],
self.format_address(values[k])]
elif (k == 'no_check_certificate' and str(values[k]) == 'True'
and self.get_https_enabled()):
update_iso_cmd += [GEN_ISO_OPTIONS[k],
'inst.noverifyssl=True']
elif k == 'rootfs_device' or k == 'boot_device':
update_iso_cmd += [GEN_ISO_OPTIONS[k],
(k + '=' + values[k])]
elif k == 'bootstrap_vlan':
vlan_inteface = "%s.%s:%s" % \
(values['bootstrap_interface'],
values['bootstrap_vlan'],
values['bootstrap_interface'])
update_iso_cmd += [GEN_ISO_OPTIONS[k],
('vlan' + '=' + vlan_inteface)]
elif k == 'bootstrap_interface' and 'bootstrap_vlan' in values:
boot_interface = "%s.%s" % (values['bootstrap_interface'],
values['bootstrap_vlan'])
update_iso_cmd += [GEN_ISO_OPTIONS[k], boot_interface]
else:
update_iso_cmd += [GEN_ISO_OPTIONS[k],
str(values[k])]
# create ks-addon.cfg
addon_cfg = os.path.join(override_path, 'ks-addon.cfg')
self.create_ks_conf_file(addon_cfg, values)
update_iso_cmd += ['-t', BOOT_MENU_TIMEOUT]
update_iso_cmd += ['-a', addon_cfg]
update_iso_cmd += ['--addon', addon_cfg]
str_cmd = ' '.join(update_iso_cmd)
# get the base URL
base_url = os.path.join(self.get_image_base_url(), 'iso',
str(values['software_version']))
update_iso_cmd += ['--base-url', base_url]
str_cmd = ' '.join(x for x in update_iso_cmd)
LOG.debug("update_iso_cmd:(%s)", str_cmd)
try:
with open(os.devnull, "w") as fnull:
@ -318,22 +355,33 @@ class SubcloudInstall(object):
except subprocess.CalledProcessError:
msg = "Failed to update iso %s, " % str(update_iso_cmd)
raise Exception(msg)
return output_iso_file
def cleanup(self):
if (self.input_iso is not None and
os.path.exists(self.input_iso)):
os.remove(self.input_iso)
if (self.output_iso is not None and
os.path.exists(self.output_iso)):
os.remove(self.output_iso)
if (self.www_root is not None and
os.path.isdir(self.www_root)):
cleanup_cmd = [
GEN_ISO_COMMAND,
"--id", self.name,
"--www-root", self.www_root,
"--delete"
]
try:
with open(os.devnull, "w") as fnull:
subprocess.check_call(cleanup_cmd, stdout=fnull,
stderr=fnull)
except subprocess.CalledProcessError:
LOG.error("Failed to delete boot files.")
def prep(self, override_path, payload):
"""Update the iso image and create the config files for the subcloud"""
LOG.info("Prepare for %s remote install" % (self.name))
iso_values = {}
for k in install_consts.MANDATORY_INSTALL_VALUES:
if k in UPDATE_ISO_OPTIONS.keys():
if k in GEN_ISO_OPTIONS.keys():
iso_values[k] = payload.get(k)
if k not in BMC_OPTIONS:
iso_values[k] = payload.get(k)
@ -347,7 +395,7 @@ class SubcloudInstall(object):
os.mkdir(override_path, 0o755)
# update the default iso image based on the install values
self.output_iso = self.update_iso(override_path, iso_values)
self.update_iso(override_path, iso_values)
software_version = str(payload['software_version'])
# remove the iso values from the payload
@ -357,8 +405,8 @@ class SubcloudInstall(object):
# get the boot image url for bmc
payload['image'] = os.path.join(self.get_image_base_url(), 'iso',
software_version,
os.path.basename(self.output_iso))
software_version, 'nodes',
self.name, 'bootimage.iso')
# encode the bmc_password
encoded_password = base64.b64encode(
payload['bmc_password'].encode("utf-8"))

View File

@ -35,8 +35,10 @@ from oslo_messaging import RemoteError
from tsconfig.tsconfig import CONFIG_PATH
from tsconfig.tsconfig import SW_VERSION
from dccommon.drivers.openstack.keystone_v3 import KeystoneClient
from dccommon.drivers.openstack.sysinv_v1 import SysinvClient
from dcorch.common import consts as dcorch_consts
from dcorch.drivers.openstack.keystone_v3 import KeystoneClient
from dcorch.rpc import client as dcorch_rpc_client
from dcmanager.common import consts
@ -44,8 +46,8 @@ from dcmanager.common import context
from dcmanager.common import exceptions
from dcmanager.common.i18n import _
from dcmanager.common import manager
from dcmanager.common import utils
from dcmanager.db import api as db_api
from dcmanager.drivers.openstack.sysinv_v1 import SysinvClient
from dcmanager.manager.subcloud_install import SubcloudInstall
from fm_api import constants as fm_const
@ -59,7 +61,7 @@ ADDN_HOSTS_DC = 'dnsmasq.addn_hosts_dc'
# Subcloud configuration paths
ANSIBLE_OVERRIDES_PATH = '/opt/dc/ansible'
ANSIBLE_SUBCLOUD_INVENTORY_FILE = 'subclouds.yml'
INVENTORY_FILE_POSTFIX = '_inventory.yml'
ANSIBLE_SUBCLOUD_PLAYBOOK = \
'/usr/share/ansible/stx-ansible/playbooks/bootstrap.yml'
ANSIBLE_SUBCLOUD_INSTALL_PLAYBOOK = \
@ -77,6 +79,23 @@ USERS_TO_REPLICATE = [
SERVICES_USER = 'services'
def sync_update_subcloud_endpoint_status(func):
"""Synchronized lock decorator for _update_subcloud_endpoint_status. """
def _get_lock_and_call(*args, **kwargs):
"""Get a single fair lock per subcloud based on subcloud name. """
# subcloud name is the 3rd argument to
# _update_subcloud_endpoint_status()
@utils.synchronized(args[2], external=False, fair=True)
def _call_func(*args, **kwargs):
return func(*args, **kwargs)
return _call_func(*args, **kwargs)
return _get_lock_and_call
class SubcloudManager(manager.Manager):
"""Manages tasks related to subclouds."""
@ -97,7 +116,7 @@ class SubcloudManager(manager.Manager):
:param payload: subcloud configuration
"""
LOG.info("Adding subcloud %s." % payload['name'])
dcorch_populated = False
try:
subcloud = db_api.subcloud_get_by_name(context, payload['name'])
except exceptions.SubcloudNameNotFound:
@ -135,6 +154,11 @@ class SubcloudManager(manager.Manager):
endpoint)
try:
# Ansible inventory filename for the specified subcloud
ansible_subcloud_inventory_file = os.path.join(
ANSIBLE_OVERRIDES_PATH,
subcloud.name + INVENTORY_FILE_POSTFIX)
# Create a new route to this subcloud on the management interface
# on both controllers.
m_ks_client = KeystoneClient()
@ -202,6 +226,7 @@ class SubcloudManager(manager.Manager):
# Inform orchestrator that subcloud has been added
self.dcorch_rpc_client.add_subcloud(
context, subcloud.name, subcloud.software_version)
dcorch_populated = True
# Regenerate the addn_hosts_dc file
self._create_addn_hosts_dc(context)
@ -241,10 +266,13 @@ class SubcloudManager(manager.Manager):
payload['users'][user] = \
str(keyring.get_password(user, SERVICES_USER))
# Update the ansible inventory with the new subcloud
self._update_subcloud_inventory(payload)
# Create the ansible inventory for the new subcloud
self._create_subcloud_inventory(payload,
ansible_subcloud_inventory_file)
# Write this subclouds overrides to file
# NOTE: This file should not be deleted if subcloud add fails
# as it is used for debugging
self._write_subcloud_ansible_config(context, payload)
if "deploy_playbook" in payload:
@ -254,8 +282,7 @@ class SubcloudManager(manager.Manager):
if "install_values" in payload:
install_command = [
"ansible-playbook", ANSIBLE_SUBCLOUD_INSTALL_PLAYBOOK,
"-i", ANSIBLE_OVERRIDES_PATH + '/' +
ANSIBLE_SUBCLOUD_INVENTORY_FILE,
"-i", ansible_subcloud_inventory_file,
"--limit", subcloud.name,
"-e", "@%s" % ANSIBLE_OVERRIDES_PATH + "/" +
payload['name'] + '/' + "install_values.yml"
@ -263,8 +290,7 @@ class SubcloudManager(manager.Manager):
apply_command = [
"ansible-playbook", ANSIBLE_SUBCLOUD_PLAYBOOK, "-i",
ANSIBLE_OVERRIDES_PATH + '/' +
ANSIBLE_SUBCLOUD_INVENTORY_FILE,
ansible_subcloud_inventory_file,
"--limit", subcloud.name
]
@ -282,8 +308,7 @@ class SubcloudManager(manager.Manager):
"-e", "@%s" % ANSIBLE_OVERRIDES_PATH + "/" +
payload['name'] + "_deploy_values.yml",
"-i",
ANSIBLE_OVERRIDES_PATH + '/' +
ANSIBLE_SUBCLOUD_INVENTORY_FILE,
ansible_subcloud_inventory_file,
"--limit", subcloud.name
]
@ -299,8 +324,10 @@ class SubcloudManager(manager.Manager):
LOG.exception(e)
# If we failed to create the subcloud, clean up anything we may
# have done.
self._delete_subcloud_routes(context, subcloud)
db_api.subcloud_destroy(context, subcloud.id)
self._remove_subcloud_details(context,
subcloud,
ansible_subcloud_inventory_file,
dcorch_populated)
raise e
@staticmethod
@ -429,31 +456,35 @@ class SubcloudManager(manager.Manager):
# restart dnsmasq so it can re-read our addn_hosts file.
os.system("pkill -HUP dnsmasq")
def _update_subcloud_inventory(self, new_subcloud):
"""Update the inventory file for usage with the specified subcloud"""
def _create_subcloud_inventory(self,
subcloud,
inventory_file):
"""Create the inventory file for the specified subcloud"""
inventory_file = os.path.join(ANSIBLE_OVERRIDES_PATH,
ANSIBLE_SUBCLOUD_INVENTORY_FILE)
exists = False
# Delete the file if it already exists
if os.path.isfile(inventory_file):
exists = True
with open(inventory_file, 'a') as f_out_inventory:
if not exists:
f_out_inventory.write(
'---\n'
'all:\n'
' vars:\n'
' ansible_ssh_user: sysadmin\n'
' hosts:\n',
)
os.remove(inventory_file)
with open(inventory_file, 'w') as f_out_inventory:
f_out_inventory.write(
' ' + new_subcloud['name'] + ':\n'
'---\n'
'all:\n'
' vars:\n'
' ansible_ssh_user: sysadmin\n'
' hosts:\n'
' ' + subcloud['name'] + ':\n'
' ansible_host: ' +
new_subcloud['bootstrap-address'] + '\n'
subcloud['bootstrap-address'] + '\n'
)
def _delete_subcloud_inventory(self,
inventory_file):
"""Delete the inventory file for the specified subcloud"""
# Delete the file if it exists
if os.path.isfile(inventory_file):
os.remove(inventory_file)
def _write_subcloud_ansible_config(self, context, payload):
"""Create the override file for usage with the specified subcloud"""
@ -469,9 +500,9 @@ class SubcloudManager(manager.Manager):
mgmt_floating_ip = mgmt_pool.floating_address
mgmt_subnet = "%s/%d" % (mgmt_pool.network, mgmt_pool.prefix)
oam_pool = sysinv_client.get_oam_address_pool()
oam_floating_ip = oam_pool.floating_address
oam_subnet = "%s/%d" % (oam_pool.network, oam_pool.prefix)
oam_addresses = sysinv_client.get_oam_addresses()
oam_floating_ip = oam_addresses.oam_floating_ip
oam_subnet = oam_addresses.oam_subnet
with open(overrides_file, 'w') as f_out_overrides_file:
f_out_overrides_file.write(
@ -507,14 +538,12 @@ class SubcloudManager(manager.Manager):
"""Delete the routes to this subcloud"""
keystone_client = KeystoneClient()
# Delete subcloud's identity endpoints
keystone_client.delete_endpoints(subcloud.name)
session = keystone_client.endpoint_cache.get_session_from_token(
context.auth_token, context.project)
# Delete the route to this subcloud on the management interface on
# both controllers.
management_subnet = netaddr.IPNetwork(subcloud.management_subnet)
session = keystone_client.endpoint_cache.get_session_from_token(
context.auth_token, context.project)
sysinv_client = SysinvClient(consts.DEFAULT_REGION_NAME, session)
controllers = sysinv_client.get_controller_hosts()
for controller in controllers:
@ -529,6 +558,45 @@ class SubcloudManager(manager.Manager):
subcloud.systemcontroller_gateway_ip)),
1)
def _remove_subcloud_details(self, context,
subcloud,
ansible_subcloud_inventory_file,
dcorch_populated=True):
"""Remove subcloud details from database and inform orchestrators"""
# Inform orchestrators that subcloud has been deleted
if dcorch_populated:
try:
self.dcorch_rpc_client.del_subcloud(context, subcloud.name)
except RemoteError as e:
if "SubcloudNotFound" in e:
pass
# We only delete subcloud endpoints, region and user information
# in the Central Region. The subcloud is already unmanaged and powered
# down so is not accessible. Therefore set up a session with the
# Central Region Keystone ONLY.
keystone_client = KeystoneClient()
# Delete keystone endpoints for subcloud
keystone_client.delete_endpoints(subcloud.name)
keystone_client.delete_region(subcloud.name)
# Delete the routes to this subcloud
self._delete_subcloud_routes(context, subcloud)
# Remove the subcloud from the database
try:
db_api.subcloud_destroy(context, subcloud.id)
except Exception as e:
LOG.exception(e)
raise e
# Delete the ansible inventory for the new subcloud
self._delete_subcloud_inventory(ansible_subcloud_inventory_file)
# Regenerate the addn_hosts_dc file
self._create_addn_hosts_dc(context)
def delete_subcloud(self, context, subcloud_id):
"""Delete subcloud and notify orchestrators.
@ -548,32 +616,14 @@ class SubcloudManager(manager.Manager):
consts.AVAILABILITY_ONLINE:
raise exceptions.SubcloudNotOffline()
# Inform orchestrators that subcloud has been deleted
try:
self.dcorch_rpc_client.del_subcloud(context, subcloud.name)
except RemoteError as e:
if "SubcloudNotFound" in e:
pass
# Ansible inventory filename for the specified subcloud
ansible_subcloud_inventory_file = os.path.join(
ANSIBLE_OVERRIDES_PATH,
subcloud.name + INVENTORY_FILE_POSTFIX)
# We only delete subcloud endpoints, region and user information
# in the Central Region. The subcloud is already unmanaged and powered
# down so is not accessible. Therefore set up a session with the
# Central Region Keystone ONLY.
keystone_client = KeystoneClient()
# Delete keystone endpoints for subcloud
keystone_client.delete_endpoints(subcloud.name)
keystone_client.delete_region(subcloud.name)
# Delete the routes to this subcloud
self._delete_subcloud_routes(context, subcloud)
# Remove the subcloud from the database
try:
db_api.subcloud_destroy(context, subcloud_id)
except Exception as e:
LOG.exception(e)
raise e
self._remove_subcloud_details(context,
subcloud,
ansible_subcloud_inventory_file)
# Clear the offline fault associated with this subcloud as we
# are deleting it. Note that endpoint out-of-sync alarms should
@ -594,9 +644,6 @@ class SubcloudManager(manager.Manager):
"subcloud %s" % subcloud.name)
LOG.exception(e)
# Regenerate the addn_hosts_dc file
self._create_addn_hosts_dc(context)
def update_subcloud(self, context, subcloud_id, management_state=None,
description=None, location=None):
"""Update subcloud and notify orchestrators.
@ -680,15 +727,16 @@ class SubcloudManager(manager.Manager):
return db_api.subcloud_db_model_to_dict(subcloud)
def _update_endpoint_status_for_subcloud(self, context, subcloud_id,
endpoint_type, sync_status,
alarmable):
"""Update subcloud endpoint status
def _update_online_managed_subcloud(self, context, subcloud_id,
endpoint_type, sync_status,
alarmable):
"""Update online/managed subcloud endpoint status
:param context: request context object
:param subcloud_id: id of subcloud to update
:param endpoint_type: endpoint type to update
:param sync_status: sync status to set
:param alarmable: controls raising an alarm if applicable
"""
subcloud_status_list = []
@ -828,6 +876,57 @@ class SubcloudManager(manager.Manager):
else:
LOG.error("Subcloud not found:%s" % subcloud_id)
@sync_update_subcloud_endpoint_status
def _update_subcloud_endpoint_status(
self, context,
subcloud_name,
endpoint_type=None,
sync_status=consts.SYNC_STATUS_OUT_OF_SYNC,
alarmable=True):
"""Update subcloud endpoint status
:param context: request context object
:param subcloud_name: name of subcloud to update
:param endpoint_type: endpoint type to update
:param sync_status: sync status to set
:param alarmable: controls raising an alarm if applicable
"""
if not subcloud_name:
raise exceptions.BadRequest(
resource='subcloud',
msg='Subcloud name not provided')
try:
subcloud = db_api.subcloud_get_by_name(context, subcloud_name)
except Exception as e:
LOG.exception(e)
raise e
# Only allow updating the sync status if managed and online.
# This means if a subcloud is going offline or unmanaged, then
# the sync status update must be done first.
if (((subcloud.availability_status ==
consts.AVAILABILITY_ONLINE)
and (subcloud.management_state ==
consts.MANAGEMENT_MANAGED))
or (sync_status != consts.SYNC_STATUS_IN_SYNC)):
# update a single subcloud
try:
self._update_online_managed_subcloud(context,
subcloud.id,
endpoint_type,
sync_status,
alarmable)
except Exception as e:
LOG.exception(e)
raise e
else:
LOG.info("Ignoring unmanaged/offline subcloud sync_status "
"update for subcloud:%s endpoint:%s sync:%s" %
(subcloud_name, endpoint_type, sync_status))
def update_subcloud_endpoint_status(
self, context,
subcloud_name=None,
@ -840,61 +939,15 @@ class SubcloudManager(manager.Manager):
:param subcloud_name: name of subcloud to update
:param endpoint_type: endpoint type to update
:param sync_status: sync status to set
:param alarmable: controls raising an alarm if applicable
"""
subcloud = None
if subcloud_name:
try:
subcloud = db_api.subcloud_get_by_name(context, subcloud_name)
except Exception as e:
LOG.exception(e)
raise e
# Only allow updating the sync status if managed and online.
# This means if a subcloud is going offline or unmanaged, then
# the sync status update must be done first.
if (((subcloud.availability_status ==
consts.AVAILABILITY_ONLINE)
and (subcloud.management_state ==
consts.MANAGEMENT_MANAGED))
or (sync_status != consts.SYNC_STATUS_IN_SYNC)):
# update a single subcloud
try:
self._update_endpoint_status_for_subcloud(context,
subcloud.id,
endpoint_type,
sync_status,
alarmable)
except Exception as e:
LOG.exception(e)
raise e
else:
LOG.info("Ignoring unmanaged/offline subcloud sync_status "
"update for subcloud:%s endpoint:%s sync:%s" %
(subcloud_name, endpoint_type, sync_status))
self._update_subcloud_endpoint_status(
context, subcloud_name, endpoint_type, sync_status, alarmable)
else:
# update all subclouds
for subcloud in db_api.subcloud_get_all(context):
if (((subcloud.availability_status ==
consts.AVAILABILITY_ONLINE)
and (subcloud.management_state ==
consts.MANAGEMENT_MANAGED))
or (sync_status != consts.SYNC_STATUS_IN_SYNC)):
try:
self._update_endpoint_status_for_subcloud(
context,
subcloud.id,
endpoint_type,
sync_status,
alarmable)
except Exception as e:
LOG.exception(e)
raise e
else:
LOG.info("Ignoring unmanaged/offline subcloud sync_status "
"update for subcloud:%s endpoint:%s sync:%s" %
(subcloud.name, endpoint_type, sync_status))
self._update_subcloud_endpoint_status(
context, subcloud.name, endpoint_type, sync_status,
alarmable)

View File

@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Copyright (c) 2017 Wind River Systems, Inc.
# Copyright (c) 2017-2020 Wind River Systems, Inc.
#
# The right to copy, distribute, modify, or otherwise make use
# of this software may be licensed only pursuant to the terms
@ -28,8 +28,12 @@ import time
from keystoneauth1 import exceptions as keystone_exceptions
from oslo_log import log as logging
from dccommon.drivers.openstack import patching_v1
from dccommon.drivers.openstack.patching_v1 import PatchingClient
from dccommon.drivers.openstack.sdk_platform import OpenStackDriver
from dccommon.drivers.openstack.sysinv_v1 import SysinvClient
from dccommon.drivers.openstack import vim
from dcorch.common import consts as dcorch_consts
from dcorch.drivers.openstack.keystone_v3 import KeystoneClient
from dcmanager.common import consts
from dcmanager.common import context
@ -38,10 +42,6 @@ from dcmanager.common.i18n import _
from dcmanager.common import manager
from dcmanager.common import utils
from dcmanager.db import api as db_api
from dcmanager.drivers.openstack import patching_v1
from dcmanager.drivers.openstack.patching_v1 import PatchingClient
from dcmanager.drivers.openstack.sysinv_v1 import SysinvClient
from dcmanager.drivers.openstack import vim
from dcmanager.manager.patch_audit_manager import PatchAuditManager
from dcmanager.manager import scheduler
@ -310,7 +310,8 @@ class PatchOrchThread(threading.Thread):
# Used to protect strategy when an atomic read/update is required.
self.strategy_lock = threading.Lock()
# Keeps track of greenthreads we create to do work.
self.thread_group_manager = scheduler.ThreadGroupManager()
self.thread_group_manager = scheduler.ThreadGroupManager(
thread_pool_size=100)
# Track worker created for each subcloud.
self.subcloud_workers = dict()
@ -328,10 +329,13 @@ class PatchOrchThread(threading.Thread):
LOG.info("PatchOrchThread Stopped")
@staticmethod
def get_ks_client(region_name=None):
"""This will get a new keystone client (and new token)"""
def get_ks_client(region_name=consts.DEFAULT_REGION_NAME):
"""This will get a cached keystone client (and token)"""
try:
return KeystoneClient(region_name)
os_client = OpenStackDriver(
region_name=region_name,
region_clients=None)
return os_client.keystone_client
except Exception:
LOG.warn('Failure initializing KeystoneClient')
raise
@ -1078,7 +1082,7 @@ class PatchOrchThread(threading.Thread):
try:
ks_client = self.get_ks_client(region)
except (keystone_exceptions.EndpointNotFound, IndexError) as e:
except (keystone_exceptions.EndpointNotFound, IndexError):
message = ("Identity endpoint for subcloud: %s not found." %
region)
LOG.error(message)

View File

@ -39,6 +39,14 @@ get_engine = api.get_engine
from sqlalchemy.engine import Engine
from sqlalchemy import event
SUBCLOUD_SAMPLE_DATA_0 = [
6, "subcloud-4", "demo subcloud", "Ottawa-Lab-Aisle_3-Rack_C",
"20.01", "managed", "online", "fd01:3::0/64", "fd01:3::1",
"fd01:3::2", "fd01:3::f", "fd01:1::1", 0, "NULL", "NULL",
"2018-05-15 14:45:12.508708", "2018-05-24 10:48:18.090931",
"NULL", 0, "10.10.10.0/24", "10.10.10.1", "10.10.10.12", "testpass"
]
@event.listens_for(Engine, "connect")
def set_sqlite_pragma(dbapi_connection, connection_record):

View File

@ -1,3 +0,0 @@
{
"migrate_version_0": ["dcmanager", "/usr/lib/python2.7/site-packages/dcmanager/db/sqlalchemy/migrate_repo", 1]
}

View File

@ -1,6 +0,0 @@
{
"strategy_steps_0": [63, 7, 3, "complete", "", "2018-05-18 00:00:14.073539", "2018-05-18 00:03:05.38425", "NULL", "NULL", "2018-05-17 23:50:59.230807", "2018-05-18 00:03:05.389346", "NULL", 0],
"strategy_steps_1": [60, "NULL", 1, "complete", "", "2018-05-17 23:51:13.588264", "2018-05-17 23:54:53.791109", "NULL", "NULL", "2018-05-17 23:50:59.223942", "2018-05-17 23:54:53.796026", "NULL", 0],
"strategy_steps_2": [62, 6, 2, "complete", "", "2018-05-17 23:55:03.805419", "2018-05-17 23:59:05.153763", "NULL", "NULL", "2018-05-17 23:50:59.228584", "2018-05-17 23:59:05.159172", "NULL", 0],
"strategy_steps_3": [61, 1, 2, "complete", "", "2018-05-17 23:55:03.798957", "2018-05-18 00:00:05.185775", "NULL", "NULL", "2018-05-17 23:50:59.226117", "2018-05-18 00:00:05.191001", "NULL", 0]
}

View File

@ -1,17 +0,0 @@
{
"subcloud_status_0": [32, 7, "volume", "in-sync", "NULL", "NULL", "2018-05-15 14:45:48.96137", "2018-05-18 18:20:39.773185", "NULL", 0],
"subcloud_status_1": [34, 7, "network", "in-sync", "NULL", "NULL", "2018-05-15 14:45:48.965798", "2018-05-18 18:20:40.20996", "NULL", 0],
"subcloud_status_2": [33, 7, "compute", "in-sync", "NULL", "NULL", "2018-05-15 14:45:48.96369", "2018-05-18 18:20:40.647117", "NULL", 0],
"subcloud_status_3": [31, 7, "platform", "in-sync", "NULL", "NULL", "2018-05-15 14:45:48.959", "2018-05-18 18:20:40.647643", "NULL", 0],
"subcloud_status_4": [27, 6, "volume", "in-sync", "NULL", "NULL", "2018-05-15 14:45:12.516212", "2018-05-18 18:20:53.848545", "NULL", 0],
"subcloud_status_5": [29, 6, "network", "in-sync", "NULL", "NULL", "2018-05-15 14:45:12.520688", "2018-05-18 18:20:54.318122", "NULL", 0],
"subcloud_status_6": [26, 6, "platform", "in-sync", "NULL", "NULL", "2018-05-15 14:45:12.512624", "2018-05-18 18:20:54.800959", "NULL", 0],
"subcloud_status_7": [28, 6, "compute", "in-sync", "NULL", "NULL", "2018-05-15 14:45:12.518589", "2018-05-18 18:20:54.801511", "NULL", 0],
"subcloud_status_8": [35, 7, "patching", "in-sync", "NULL", "NULL", "2018-05-15 14:45:48.968028", "2018-05-18 18:24:52.93953", "NULL", 0],
"subcloud_status_9": [30, 6, "patching", "in-sync", "NULL", "NULL", "2018-05-15 14:45:12.522906", "2018-05-18 18:24:53.403192", "NULL", 0],
"subcloud_status_10": [2, 1, "volume", "in-sync", "NULL", "NULL", "2018-04-11 17:01:48.55157", "2018-05-24 00:17:37.344778", "NULL", 0],
"subcloud_status_11": [4, 1, "network", "in-sync", "NULL", "NULL", "2018-04-11 17:01:48.555564", "2018-05-24 00:17:37.799951", "NULL", 0],
"subcloud_status_12": [1, 1, "platform", "in-sync", "NULL", "NULL", "2018-04-11 17:01:48.548357", "2018-05-24 00:17:38.353609", "NULL", 0],
"subcloud_status_13": [3, 1, "compute", "in-sync", "NULL", "NULL", "2018-04-11 17:01:48.553623", "2018-05-24 00:17:38.354505", "NULL", 0],
"subcloud_status_14": [5, 1, "patching", "in-sync", "NULL", "NULL", "2018-04-11 17:01:48.557433", "2018-05-24 00:17:42.564325", "NULL", 0]
}

View File

@ -1,5 +0,0 @@
{
"subclouds_0": [6, "subcloud-4", "wcp85 subcloud", "Ottawa-PheonixLab-Aisle_3-Rack_C", "18.03", "managed", "online", "fd01:3::0/64", "fd01:3::1", "fd01:3::2", "fd01:3::f", "fd01:1::1", 0, "NULL", "NULL", "2018-05-15 14:45:12.508708", "2018-05-24 10:48:18.090931", "NULL", 0, "10.10.10.0/24", "10.10.10.1", "10.10.10.12", "testpass"],
"subclouds_1": [1, "subcloud-1", "wcp80 subcloud", "Ottawa-PheonixLab-Aisle_3-Rack_B", "18.03", "managed", "online", "fd01:2::0/64", "fd01:2::1", "fd01:2::2", "fd01:2::f", "fd01:1::1", 0, "NULL", "NULL", "2018-04-11 17:01:48.54467", "2018-05-24 00:17:34.74161", "NULL", 0, "10.10.10.0/24", "10.10.10.1", "10.10.10.12", "testpass"],
"subclouds_2": [7, "subcloud-5", "wcp87 subcloud", "Ottawa-PheonixLab-Aisle_4-Rack_B", "18.03", "managed", "online", "fd01:4::0/64", "fd01:4::1", "fd01:4::2", "fd01:4::f", "fd01:1::1", 0, "NULL", "NULL", "2018-05-15 14:45:48.95625", "2018-05-24 10:48:17.907767", "NULL", 0, "10.10.10.0/24", "10.10.10.1", "10.10.10.12", "testpass"]
}

View File

@ -1,3 +0,0 @@
{
"sw_update_opts_default_0": [1, "NULL", "parallel", "parallel", 2, "stop-start", "relaxed", "NULL", "NULL", "NULL", "2018-05-16 13:41:44.330145", "NULL", 0]
}

View File

@ -1,3 +0,0 @@
{
"sw_update_strategy_0": [21, "patch", "parallel", 2, true, "complete", "NULL", "NULL", "2018-05-17 23:50:59.221342", "2018-05-18 00:03:14.24641", "NULL", 0]
}

View File

@ -1,30 +0,0 @@
{
"assignment_0": ["UserProject", "500b2ba0791e44a780d4dad3c5a1ff31", "8803689162424f60a71e4642e9dc2b9e", "59fa225368524bf6974f76a25050143b", false],
"assignment_1": ["UserProject", "81eed996f2a346a3b5282fe2a881db9b", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_2": ["UserProject", "4abaa160c36846328a482217de0112af", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_3": ["UserProject", "c5d07e41f78747949fbc1de84168a44f", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_4": ["UserProject", "63dd0fb409264a43b7dbfe9582b8023d", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_5": ["UserProject", "6cf3cfc5d26f458daf66802d8e8a2e2a", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_6": ["UserProject", "a757fb8d624b46b4b10eea1b4d2ca0d2", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_7": ["UserProject", "8ff17967605a4240b8a6c15ed4bf10f1", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_8": ["UserProject", "500b2ba0791e44a780d4dad3c5a1ff31", "8803689162424f60a71e4642e9dc2b9e", "9fe2ff9ee4384b1894a90878d3e92bab", false],
"assignment_9": ["UserProject", "500b2ba0791e44a780d4dad3c5a1ff31", "8803689162424f60a71e4642e9dc2b9e", "ef2e357b0d4d4bcaaa6ae303c7d58d7e", false],
"assignment_10": ["UserProject", "04facea7432848c9bfdf3780bb51612e", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_11": ["UserProject", "04facea7432848c9bfdf3780bb51612e", "8803689162424f60a71e4642e9dc2b9e", "59fa225368524bf6974f76a25050143b", false],
"assignment_12": ["UserProject", "c455073c30044db8908630595699d874", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_13": ["UserProject", "c455073c30044db8908630595699d874", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "1f62f45b748b4c5db66f97c715ecf1ae", false],
"assignment_14": ["UserDomain", "f94aa82e49dd4aaa8bf1c80fee109234", "2423d6c7853145a798e6491ca9de6e2b", "59fa225368524bf6974f76a25050143b", false],
"assignment_15": ["UserProject", "146482c0aba84e35a5c1a507cff9db3d", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_16": ["UserProject", "118a09e72d6a4194af383285cb7e579a", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_17": ["UserProject", "692bd0a53c414d6dbbd0ba4d6fdb3c49", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_18": ["UserProject", "5f4d401253a74cc8ab507957b9cafb29", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_19": ["UserProject", "f1cc67bbf0d84c89a1df3067b538e1b8", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_20": ["UserProject", "4a2c1f4c8ae942b19e388576e93d1ced", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_21": ["UserProject", "d1399977957645e4a1e26c1b7b1e6d35", "9008c3fc102040cd8149b5c0d8aa06a3", "9fe2ff9ee4384b1894a90878d3e92bab", false],
"assignment_22": ["UserProject", "500b2ba0791e44a780d4dad3c5a1ff31", "9008c3fc102040cd8149b5c0d8aa06a3", "9fe2ff9ee4384b1894a90878d3e92bab", false],
"assignment_23": ["UserProject", "5ad8271fc6bc432ab80685945bc5b346", "6ecc44a6b24e4c398dc749f1386b2ced", "9fe2ff9ee4384b1894a90878d3e92bab", false],
"assignment_24": ["UserProject", "500b2ba0791e44a780d4dad3c5a1ff31", "6ecc44a6b24e4c398dc749f1386b2ced", "9fe2ff9ee4384b1894a90878d3e92bab", false],
"assignment_25": ["UserProject", "73403639b14c40e6b288c0e2cd3707bc", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_26": ["UserProject", "872e8c1b48c640c59189cf1587bd4e41", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false],
"assignment_27": ["UserProject", "f85b8eca57a441838cfe5a39d33230b5", "f3b78df9bbd74d6b8bbf8c5f08427ca7", "59fa225368524bf6974f76a25050143b", false]
}

View File

@ -1,185 +0,0 @@
{
"endpoint_0": ["9785cc7f99b6469ba6fe89bd8d5b9072", "NULL", "admin", "7d48ddb964034eb588e557b976d11cdf", "http://[fd01:1::2]:9292", "{}", true, "SystemController"],
"endpoint_1": ["2b627b437d3c4412aa0581cf1b0fc8cb", "NULL", "internal", "7d48ddb964034eb588e557b976d11cdf", "http://[fd01:1::2]:9292", "{}", true, "SystemController"],
"endpoint_2": ["171c04c06ec4436daec6604a2ded6e9a", "NULL", "public", "7d48ddb964034eb588e557b976d11cdf", "http://128.224.151.162:9292", "{}", true, "SystemController"],
"endpoint_3": ["1645bfec421c4d88898bea1284dc8d89", "NULL", "admin", "c4ae85afaf7b465190d927e11da3eb38", "http://[fd01:1::2]:28774/v2.1/%(tenant_id)s", "{}", true, "SystemController"],
"endpoint_4": ["f93ed1fdabb04b7f913da53218a242e1", "NULL", "internal", "c4ae85afaf7b465190d927e11da3eb38", "http://[fd01:1::2]:28774/v2.1/%(tenant_id)s", "{}", true, "SystemController"],
"endpoint_5": ["fa55665905be43d3b47472b580726690", "NULL", "public", "c4ae85afaf7b465190d927e11da3eb38", "http://128.224.151.162:28774/v2.1/%(tenant_id)s", "{}", true, "SystemController"],
"endpoint_6": ["15b0341250be443287cf4c333bec7ca8", "NULL", "admin", "9754bb0a6cba4ae4b62c1a4e825964a5", "http://[fd01:1::2]:8119/v1.0", "{}", true, "SystemController"],
"endpoint_7": ["70ede9a42a8a48f68be78622b9ca8aa7", "NULL", "internal", "9754bb0a6cba4ae4b62c1a4e825964a5", "http://[fd01:1::2]:8119/v1.0", "{}", true, "SystemController"],
"endpoint_8": ["42f9c95f20f84bfd9c05f5417eeea7ba", "NULL", "public", "9754bb0a6cba4ae4b62c1a4e825964a5", "http://128.224.151.162:8119/v1.0", "{}", true, "SystemController"],
"endpoint_9": ["45be189e3e1448ab92930534a950d5a2", "NULL", "admin", "6cfd11045b1e4c0badcb56f18428ab5b", "http://[fd01:1::2]:29696/", "{}", true, "SystemController"],
"endpoint_10": ["4d29f266e3524fd28070ae89d9bcc218", "NULL", "internal", "6cfd11045b1e4c0badcb56f18428ab5b", "http://[fd01:1::2]:29696/", "{}", true, "SystemController"],
"endpoint_11": ["a78b26ecbba74db1802293fcfacd584a", "NULL", "public", "6cfd11045b1e4c0badcb56f18428ab5b", "http://128.224.151.162:29696/", "{}", true, "SystemController"],
"endpoint_12": ["7a42e40aac4040708fd23b571c650026", "NULL", "admin", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:1::2]:25491/", "{}", true, "SystemController"],
"endpoint_13": ["62844e21e90a42278026bca686192401", "NULL", "internal", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:1::2]:25491/", "{}", true, "SystemController"],
"endpoint_14": ["7b6dd7d0bb504919952c162bd74bb1ae", "NULL", "public", "c3677835d8024fa894929ea67b1e9fa0", "http://128.224.151.162:25491/", "{}", true, "SystemController"],
"endpoint_15": ["c89c795cff5c45c7adc3b321943351ef", "NULL", "admin", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:1::2]:5491", "{}", true, "RegionOne"],
"endpoint_16": ["4971b138f1e04b94aed46af88489fa53", "NULL", "internal", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:1::2]:5491", "{}", true, "RegionOne"],
"endpoint_17": ["21aa3f2577f0402190f9a8758fdb2620", "NULL", "public", "c3677835d8024fa894929ea67b1e9fa0", "http://128.224.151.162:15491", "{}", true, "RegionOne"],
"endpoint_18": ["bd7d26e0755d498ebf4c846448936983", "NULL", "admin", "aa803a6f0ab84b68ad13a759b1b29525", "http://[fd01:1::2]:4545", "{}", true, "RegionOne"],
"endpoint_19": ["993f49cf95754c93884fc8eac180eda8", "NULL", "internal", "aa803a6f0ab84b68ad13a759b1b29525", "http://[fd01:1::2]:4545", "{}", true, "RegionOne"],
"endpoint_20": ["2821d84aec434123b039f3d7ab3fbaca", "NULL", "public", "aa803a6f0ab84b68ad13a759b1b29525", "http://128.224.151.162:4545", "{}", true, "RegionOne"],
"endpoint_21": ["8d8e469fd83f4608b025338c8e67e7e1", "NULL", "admin", "86328b93a3c84d63a1be7f7368138bdf", "http://[fd01:1::2]:8777", "{}", true, "RegionOne"],
"endpoint_22": ["2bf8cd48dfee4d339bfba53abccd20b4", "NULL", "internal", "86328b93a3c84d63a1be7f7368138bdf", "http://[fd01:1::2]:8777", "{}", true, "RegionOne"],
"endpoint_23": ["8cdf5229f64c46deb9ebe86d0aa88776", "NULL", "public", "86328b93a3c84d63a1be7f7368138bdf", "http://128.224.151.162:8777", "{}", true, "RegionOne"],
"endpoint_24": ["704878ca10f24d63a33b44139549f6e9", "NULL", "admin", "5fa3efb666204693a0d0ab05fb03140c", "http://[fd01:1::2]:5000/v3", "{}", true, "SystemController"],
"endpoint_25": ["736c4e7c5aa84384944c3907f1c1a6ae", "NULL", "internal", "5fa3efb666204693a0d0ab05fb03140c", "http://[fd01:1::2]:5000/v3", "{}", true, "SystemController"],
"endpoint_26": ["a4537dcfeefe4adeaf37cd100833ec12", "NULL", "public", "5fa3efb666204693a0d0ab05fb03140c", "http://128.224.151.162:5000/v3", "{}", true, "SystemController"],
"endpoint_27": ["8627ce33d93c4b769e295b83a7dc100b", "NULL", "admin", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:1::2]:6385/v1", "{}", true, "RegionOne"],
"endpoint_28": ["8c11b80a30464d7791f4825d9ad14fca", "NULL", "internal", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:1::2]:6385/v1", "{}", true, "RegionOne"],
"endpoint_29": ["3330af049c0547c1a400b8ce7a6f73f3", "NULL", "public", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://128.224.151.162:6385/v1", "{}", true, "RegionOne"],
"endpoint_30": ["89cb5c408a2a43979a22728abe3b7256", "NULL", "admin", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:1::2]:26385/v1", "{}", true, "SystemController"],
"endpoint_31": ["0fdceccb9c6c476594a22b37fa717007", "NULL", "internal", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:1::2]:26385/v1", "{}", true, "SystemController"],
"endpoint_32": ["5705066ec86c49f0b30f46677824f4a8", "NULL", "public", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://128.224.151.162:26385/v1", "{}", true, "SystemController"],
"endpoint_33": ["f0f5128e02654c33a6f438533b77ff86", "NULL", "admin", "c5834d3740504a69bf427385319b51a0", "http://[fd01:1::2]:28776/v3/%(tenant_id)s", "{}", true, "SystemController"],
"endpoint_34": ["66c462a7643046aab31d4afe6058200c", "NULL", "internal", "c5834d3740504a69bf427385319b51a0", "http://[fd01:1::2]:28776/v3/%(tenant_id)s", "{}", true, "SystemController"],
"endpoint_35": ["853aab978d8b41a78c381292f55c71f2", "NULL", "public", "c5834d3740504a69bf427385319b51a0", "http://128.224.151.162:28776/v3/%(tenant_id)s", "{}", true, "SystemController"],
"endpoint_36": ["d194fdcc00ea444887ca0666955a929f", "NULL", "admin", "8a5873d1ee914ccbae3c070d578d0d0d", "http://[fd01:1::2]:28776/v2/%(tenant_id)s", "{}", true, "SystemController"],
"endpoint_37": ["7492375879c34231949d75eef5fa7c5b", "NULL", "internal", "8a5873d1ee914ccbae3c070d578d0d0d", "http://[fd01:1::2]:28776/v2/%(tenant_id)s", "{}", true, "SystemController"],
"endpoint_38": ["3be8d1d22d44456c9a48c71bacc77ac9", "NULL", "public", "8a5873d1ee914ccbae3c070d578d0d0d", "http://128.224.151.162:28776/v2/%(tenant_id)s", "{}", true, "SystemController"],
"endpoint_39": ["baabaa1754d14732bcaca91acc6ac7bc", "NULL", "admin", "a15edc66a6394e18bda9f9256e7b470c", "http://[fd01:2::2]:8042", "{}", true, "subcloud-1"],
"endpoint_40": ["bb0598302d7644a8b9af8a39006e9dea", "NULL", "internal", "a15edc66a6394e18bda9f9256e7b470c", "http://[fd01:2::2]:8042", "{}", true, "subcloud-1"],
"endpoint_41": ["388ec02223e5470bbc5b12c0078f1d0e", "NULL", "public", "a15edc66a6394e18bda9f9256e7b470c", "http://128.224.150.18:8042", "{}", true, "subcloud-1"],
"endpoint_42": ["02c9dcf0a5074324b2f0c310bedac5fe", "NULL", "admin", "995cc229e9af44ec81c1c76073f4c733", "http://[fd01:2::2]:8778", "{}", true, "subcloud-1"],
"endpoint_43": ["ee61c87ae43d499a8937bcdf4b02da69", "NULL", "internal", "995cc229e9af44ec81c1c76073f4c733", "http://[fd01:2::2]:8778", "{}", true, "subcloud-1"],
"endpoint_44": ["9f8d2d7164624b0ebf7e6d95118d8657", "NULL", "public", "995cc229e9af44ec81c1c76073f4c733", "http://128.224.150.18:8778", "{}", true, "subcloud-1"],
"endpoint_45": ["bd0005e60acf47a6890f0867f683b209", "NULL", "admin", "ea41162395844d30af3e59efa3e6323e", "http://[fd01:2::2]:8000/v1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_46": ["d4ef0e1fdb2f4fa885c8c8a6b878340e", "NULL", "internal", "ea41162395844d30af3e59efa3e6323e", "http://[fd01:2::2]:8000/v1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_47": ["b9e4375f8b64466ca7b8c11f3bfcd335", "NULL", "public", "ea41162395844d30af3e59efa3e6323e", "http://128.224.150.18:8000/v1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_48": ["fb7b4a9155c64e75801ba11955798fb5", "NULL", "admin", "6cfd11045b1e4c0badcb56f18428ab5b", "http://[fd01:2::2]:9696", "{}", true, "subcloud-1"],
"endpoint_49": ["773a9d739bbd4a03ba401c46225e412d", "NULL", "internal", "6cfd11045b1e4c0badcb56f18428ab5b", "http://[fd01:2::2]:9696", "{}", true, "subcloud-1"],
"endpoint_50": ["680c06a7db8e4457bb5d8b62810f98f5", "NULL", "public", "6cfd11045b1e4c0badcb56f18428ab5b", "http://128.224.150.18:9696", "{}", true, "subcloud-1"],
"endpoint_51": ["e07a8bbabd5343fa877de9c2425f662e", "NULL", "admin", "86328b93a3c84d63a1be7f7368138bdf", "http://[fd01:2::2]:8777", "{}", true, "subcloud-1"],
"endpoint_52": ["c7182c60c44c40c2945bbe3e288c2ff6", "NULL", "internal", "86328b93a3c84d63a1be7f7368138bdf", "http://[fd01:2::2]:8777", "{}", true, "subcloud-1"],
"endpoint_53": ["9bc906a5fcb84b96ba7f196b01119077", "NULL", "public", "86328b93a3c84d63a1be7f7368138bdf", "http://128.224.150.18:8777", "{}", true, "subcloud-1"],
"endpoint_54": ["40efcf0cf1934896ac204fff9599181f", "NULL", "admin", "d6f2ef7609f44c9aa0b40b15f9f93139", "http://[fd01:2::2]:8977", "{}", true, "subcloud-1"],
"endpoint_55": ["3c56e9f939aa4f48b48e0bd63a7e0e2d", "NULL", "admin", "aa803a6f0ab84b68ad13a759b1b29525", "http://[fd01:2::2]:4545", "{}", true, "subcloud-1"],
"endpoint_56": ["e0dc056cf41d48ada2a5128ff6d13c80", "NULL", "admin", "a15edc66a6394e18bda9f9256e7b470c", "http://[fd01:3::2]:8042", "{}", true, "subcloud-4"],
"endpoint_57": ["9c3669ebb2864fe49b00555a4cb720bf", "NULL", "admin", "995cc229e9af44ec81c1c76073f4c733", "http://[fd01:3::2]:8778", "{}", true, "subcloud-4"],
"endpoint_58": ["43d53656ac8e46e7875237e202e99896", "NULL", "public", "995cc229e9af44ec81c1c76073f4c733", "http://128.224.150.224:8778", "{}", true, "subcloud-4"],
"endpoint_59": ["1b6649177bbf4793ae70e09badeaf1fa", "NULL", "internal", "ea41162395844d30af3e59efa3e6323e", "http://[fd01:3::2]:8000/v1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_60": ["19a92fce510743f9939a9a22299fc6ff", "NULL", "public", "6cfd11045b1e4c0badcb56f18428ab5b", "http://128.224.150.224:9696", "{}", true, "subcloud-4"],
"endpoint_61": ["f802be7e04a64c768150f0416e113fe1", "NULL", "admin", "aa803a6f0ab84b68ad13a759b1b29525", "http://[fd01:3::2]:4545", "{}", true, "subcloud-4"],
"endpoint_62": ["513e4e6a0e4840dd8de65742a1b0634d", "NULL", "internal", "aa803a6f0ab84b68ad13a759b1b29525", "http://[fd01:3::2]:4545", "{}", true, "subcloud-4"],
"endpoint_63": ["c17d425b28aa4589a42abf0c3ae89865", "NULL", "internal", "86328b93a3c84d63a1be7f7368138bdf", "http://[fd01:3::2]:8777", "{}", true, "subcloud-4"],
"endpoint_64": ["71b408d04b984a958090054093c6330a", "NULL", "public", "5fa3efb666204693a0d0ab05fb03140c", "http://128.224.151.162:5000/v3", "{}", true, "subcloud-4"],
"endpoint_65": ["549e1bd55f2e4218b5f2a03bc9859bf6", "NULL", "public", "d6f2ef7609f44c9aa0b40b15f9f93139", "http://128.224.150.224:8977", "{}", true, "subcloud-4"],
"endpoint_66": ["89606a1804a54f17ae67659d481fde20", "NULL", "internal", "7d48ddb964034eb588e557b976d11cdf", "http://[fd01:3::2]:9292", "{}", true, "subcloud-4"],
"endpoint_67": ["ecae4ccc0af242a98d978ff527e7e81b", "NULL", "admin", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:3::2]:6385/v1", "{}", true, "subcloud-4"],
"endpoint_68": ["9b503e8a198f4221a716568dfe0a497f", "NULL", "public", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://128.224.150.224:6385/v1", "{}", true, "subcloud-4"],
"endpoint_69": ["f2209d54eb064311aeacb96a853e5867", "NULL", "public", "7d48ddb964034eb588e557b976d11cdf", "http://128.224.151.66:9292", "{}", true, "subcloud-5"],
"endpoint_70": ["8c761aabddf7450c95fcee0dd5f38bee", "NULL", "public", "995cc229e9af44ec81c1c76073f4c733", "http://128.224.151.66:8778", "{}", true, "subcloud-5"],
"endpoint_71": ["8c0e3189cf5e49f09dc3566321603e85", "NULL", "public", "ea41162395844d30af3e59efa3e6323e", "http://128.224.151.66:8000/v1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_72": ["71575d7116ae4510b9115476a21bbb1b", "NULL", "admin", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:4::2]:5491", "{}", true, "subcloud-5"],
"endpoint_73": ["73972411365647f2be7b7f6b4d302759", "NULL", "admin", "c4ae85afaf7b465190d927e11da3eb38", "http://[fd01:4::2]:8774/v2.1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_74": ["52643da5712d4555a953d9f03b2bf332", "NULL", "admin", "aa803a6f0ab84b68ad13a759b1b29525", "http://[fd01:4::2]:4545", "{}", true, "subcloud-5"],
"endpoint_75": ["a51e43d1eb9b47c980c45efd8bac4c87", "NULL", "admin", "6cfd11045b1e4c0badcb56f18428ab5b", "http://[fd01:4::2]:9696", "{}", true, "subcloud-5"],
"endpoint_76": ["56ef199db23c43ecae7d94cc7222c854", "NULL", "internal", "6cfd11045b1e4c0badcb56f18428ab5b", "http://[fd01:4::2]:9696", "{}", true, "subcloud-5"],
"endpoint_77": ["ed96c299010b48eaa8eddee5cbf9df5e", "NULL", "public", "6cfd11045b1e4c0badcb56f18428ab5b", "http://128.224.151.66:9696", "{}", true, "subcloud-5"],
"endpoint_78": ["9fdb807e84124790b8c3ece35d15a0ef", "NULL", "public", "5fa3efb666204693a0d0ab05fb03140c", "http://128.224.151.162:5000/v3", "{}", true, "subcloud-5"],
"endpoint_79": ["ffa6c1cd10a94194a02e36a4937c343c", "NULL", "public", "d6f2ef7609f44c9aa0b40b15f9f93139", "http://128.224.151.66:8977", "{}", true, "subcloud-5"],
"endpoint_80": ["699aa011ead14997ac6f56d83ed95a8c", "NULL", "admin", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:4::2]:6385/v1", "{}", true, "subcloud-5"],
"endpoint_81": ["24418e1fb27c4bd19138bd60ff84339b", "NULL", "internal", "c5834d3740504a69bf427385319b51a0", "http://[fd01:4::2]:8776/v3/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_82": ["f839413f6073428999df122e5e39c5a9", "NULL", "internal", "8a5873d1ee914ccbae3c070d578d0d0d", "http://[fd01:4::2]:8776/v2/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_83": ["6730c5f0390a4e66b24d87db41d0a0f6", "NULL", "public", "567f8aafa7844256b03e86655fa2bd3e", "http://128.224.151.66:8776/v1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_84": ["22c6413d42234c0a98e91ed342bf7db7", "NULL", "internal", "c5834d3740504a69bf427385319b51a0", "http://[fd01:3::2]:8776/v3/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_85": ["98a5b15ccb424826922f5c919c5690a8", "NULL", "admin", "8a5873d1ee914ccbae3c070d578d0d0d", "http://[fd01:3::2]:8776/v2/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_86": ["da110ac1f03c4b9e817463225a4b2b83", "NULL", "public", "8a5873d1ee914ccbae3c070d578d0d0d", "http://128.224.150.224:8776/v2/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_87": ["f5167f307d1f4adc84e29d59b3fcbf7b", "NULL", "public", "567f8aafa7844256b03e86655fa2bd3e", "http://128.224.150.224:8776/v1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_88": ["b9aebe07a0e64367931946c584657186", "NULL", "admin", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:2::2]:5491", "{}", true, "subcloud-1"],
"endpoint_89": ["1b58cd57070740809875fb0ea84d1ed4", "NULL", "internal", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:2::2]:5491", "{}", true, "subcloud-1"],
"endpoint_90": ["127083b5a58641778f84bd63378f14a3", "NULL", "public", "c3677835d8024fa894929ea67b1e9fa0", "http://128.224.150.18:15491", "{}", true, "subcloud-1"],
"endpoint_91": ["9849dbabbdd9472598b3c8001f42dd3f", "NULL", "admin", "5fa3efb666204693a0d0ab05fb03140c", "http://[fd01:1::2]:5000/v3", "{}", true, "subcloud-1"],
"endpoint_92": ["9b8814b1121a44948ca007a27982ee55", "NULL", "internal", "5fa3efb666204693a0d0ab05fb03140c", "http://[fd01:1::2]:5000/v3", "{}", true, "subcloud-1"],
"endpoint_93": ["f456d7f703e242139355140c0617c619", "NULL", "public", "5fa3efb666204693a0d0ab05fb03140c", "http://128.224.151.162:5000/v3", "{}", true, "subcloud-1"],
"endpoint_94": ["b2041b71fc2244dba94dea647dd35b7e", "NULL", "internal", "d6f2ef7609f44c9aa0b40b15f9f93139", "http://[fd01:2::2]:8977", "{}", true, "subcloud-1"],
"endpoint_95": ["29efd6682e1d435d807e991075bcf125", "NULL", "public", "d6f2ef7609f44c9aa0b40b15f9f93139", "http://128.224.150.18:8977", "{}", true, "subcloud-1"],
"endpoint_96": ["05731150463b47699ab8fef01b81d464", "NULL", "internal", "aa803a6f0ab84b68ad13a759b1b29525", "http://[fd01:2::2]:4545", "{}", true, "subcloud-1"],
"endpoint_97": ["5d347c0e475d40d385024705bb78c0d5", "NULL", "public", "aa803a6f0ab84b68ad13a759b1b29525", "http://128.224.150.18:4545", "{}", true, "subcloud-1"],
"endpoint_98": ["39dd7a4d128549e3ab1d65d04b2bd862", "NULL", "admin", "0efe25ad76f244e1bca9f6975cfe8b83", "http://[fd01:2::2]:8004/v1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_99": ["497de517819045df9ca739bc3e121c89", "NULL", "internal", "0efe25ad76f244e1bca9f6975cfe8b83", "http://[fd01:2::2]:8004/v1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_100": ["b772d9d3df6c446e8c0de2611c5627aa", "NULL", "public", "0efe25ad76f244e1bca9f6975cfe8b83", "http://128.224.150.18:8004/v1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_101": ["7c27d2a668244dd8b35573df61cde0a0", "NULL", "admin", "7d48ddb964034eb588e557b976d11cdf", "http://[fd01:2::2]:9292", "{}", true, "subcloud-1"],
"endpoint_102": ["c006181bd2c34abca079453ddc862b78", "NULL", "internal", "7d48ddb964034eb588e557b976d11cdf", "http://[fd01:2::2]:9292", "{}", true, "subcloud-1"],
"endpoint_103": ["e884ae6f48fc4d2498e8735e1de545aa", "NULL", "public", "7d48ddb964034eb588e557b976d11cdf", "http://128.224.150.18:9292", "{}", true, "subcloud-1"],
"endpoint_104": ["2e5e16ddea9b43c4a6be55c7c57e762c", "NULL", "admin", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:2::2]:6385/v1", "{}", true, "subcloud-1"],
"endpoint_105": ["e9820b3b3abe48f98548d4bc113bc905", "NULL", "internal", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:2::2]:6385/v1", "{}", true, "subcloud-1"],
"endpoint_106": ["1506e9230fc948b2b267eec824bd97ae", "NULL", "public", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://128.224.150.18:6385/v1", "{}", true, "subcloud-1"],
"endpoint_107": ["6a5596c56479437a9c2fd2a78fe54d22", "NULL", "admin", "c4ae85afaf7b465190d927e11da3eb38", "http://[fd01:2::2]:8774/v2.1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_108": ["af690a3d102b484fb5cf760ad143689a", "NULL", "internal", "c4ae85afaf7b465190d927e11da3eb38", "http://[fd01:2::2]:8774/v2.1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_109": ["97ed35a6b02c46cfbeaddf20e6a1bd48", "NULL", "public", "c4ae85afaf7b465190d927e11da3eb38", "http://128.224.150.18:8774/v2.1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_110": ["3e74d939f3684f6892640c5d6e6406d1", "NULL", "internal", "a15edc66a6394e18bda9f9256e7b470c", "http://[fd01:3::2]:8042", "{}", true, "subcloud-4"],
"endpoint_111": ["41b54ad4c80d45449f507db76083fb80", "NULL", "internal", "995cc229e9af44ec81c1c76073f4c733", "http://[fd01:3::2]:8778", "{}", true, "subcloud-4"],
"endpoint_112": ["0390cb283a53403e9545651a60bf348e", "NULL", "public", "ea41162395844d30af3e59efa3e6323e", "http://128.224.150.224:8000/v1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_113": ["7c3fabf70c174ea4a4fe6a0c4712e6bf", "NULL", "admin", "6cfd11045b1e4c0badcb56f18428ab5b", "http://[fd01:3::2]:9696", "{}", true, "subcloud-4"],
"endpoint_114": ["0a338aef7a8b404aa0867e5a0205dc58", "NULL", "admin", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:3::2]:5491", "{}", true, "subcloud-4"],
"endpoint_115": ["09dde1c9499e4ba198a44c18e74f0a09", "NULL", "public", "aa803a6f0ab84b68ad13a759b1b29525", "http://128.224.150.224:4545", "{}", true, "subcloud-4"],
"endpoint_116": ["56a76e94e60c4fd899a773001b272e47", "NULL", "public", "86328b93a3c84d63a1be7f7368138bdf", "http://128.224.150.224:8777", "{}", true, "subcloud-4"],
"endpoint_117": ["2a7cd8d550d94b90b93a15739fb5f79a", "NULL", "admin", "5fa3efb666204693a0d0ab05fb03140c", "http://[fd01:1::2]:5000/v3", "{}", true, "subcloud-4"],
"endpoint_118": ["4dc1caf31cff44ccb8585fe4f200a32c", "NULL", "admin", "d6f2ef7609f44c9aa0b40b15f9f93139", "http://[fd01:3::2]:8977", "{}", true, "subcloud-4"],
"endpoint_119": ["3fdab757ab134146bbd68c4521af397b", "NULL", "admin", "0efe25ad76f244e1bca9f6975cfe8b83", "http://[fd01:3::2]:8004/v1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_120": ["17846cae6aaa41e6be9f26f30adcb6d7", "NULL", "internal", "0efe25ad76f244e1bca9f6975cfe8b83", "http://[fd01:3::2]:8004/v1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_121": ["e67b03ac766f49059729a99a2754defa", "NULL", "public", "7d48ddb964034eb588e557b976d11cdf", "http://128.224.150.224:9292", "{}", true, "subcloud-4"],
"endpoint_122": ["81b25e9b817a46fd9654b1f478a9b5ce", "NULL", "internal", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:3::2]:6385/v1", "{}", true, "subcloud-4"],
"endpoint_123": ["3cde2d8d8b5748f1966f06548cf65ec9", "NULL", "admin", "7d48ddb964034eb588e557b976d11cdf", "http://[fd01:4::2]:9292", "{}", true, "subcloud-5"],
"endpoint_124": ["3e817212004241988cb0731f2f79ef76", "NULL", "admin", "995cc229e9af44ec81c1c76073f4c733", "http://[fd01:4::2]:8778", "{}", true, "subcloud-5"],
"endpoint_125": ["1ed1542248fc483fbc7ce26ca60ac00b", "NULL", "admin", "ea41162395844d30af3e59efa3e6323e", "http://[fd01:4::2]:8000/v1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_126": ["4136388469804921a749485b44ebc90b", "NULL", "admin", "a15edc66a6394e18bda9f9256e7b470c", "http://[fd01:4::2]:8042", "{}", true, "subcloud-5"],
"endpoint_127": ["745d8b18ddae4353992dc123bf79ca66", "NULL", "internal", "a15edc66a6394e18bda9f9256e7b470c", "http://[fd01:4::2]:8042", "{}", true, "subcloud-5"],
"endpoint_128": ["38d157631f04457d8a9e1e1a55e8879b", "NULL", "internal", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:4::2]:5491", "{}", true, "subcloud-5"],
"endpoint_129": ["b58d3551b31042dc8f1eeab3db053b36", "NULL", "internal", "c4ae85afaf7b465190d927e11da3eb38", "http://[fd01:4::2]:8774/v2.1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_130": ["b27ddfa5a6c940c180730d70c02b448e", "NULL", "internal", "aa803a6f0ab84b68ad13a759b1b29525", "http://[fd01:4::2]:4545", "{}", true, "subcloud-5"],
"endpoint_131": ["4d69300126184d108511e4d9a1ae829c", "NULL", "admin", "5fa3efb666204693a0d0ab05fb03140c", "http://[fd01:1::2]:5000/v3", "{}", true, "subcloud-5"],
"endpoint_132": ["03e1eb2e1f6a4041a3bd721c25bca9cd", "NULL", "admin", "d6f2ef7609f44c9aa0b40b15f9f93139", "http://[fd01:4::2]:8977", "{}", true, "subcloud-5"],
"endpoint_133": ["ba748586c1e74328a95d240566abd5da", "NULL", "admin", "86328b93a3c84d63a1be7f7368138bdf", "http://[fd01:4::2]:8777", "{}", true, "subcloud-5"],
"endpoint_134": ["f1c694830a79479fb6efa8bc20af509d", "NULL", "internal", "86328b93a3c84d63a1be7f7368138bdf", "http://[fd01:4::2]:8777", "{}", true, "subcloud-5"],
"endpoint_135": ["83fda4af04c9475ba8906e4d1e25fc20", "NULL", "public", "86328b93a3c84d63a1be7f7368138bdf", "http://128.224.151.66:8777", "{}", true, "subcloud-5"],
"endpoint_136": ["b649a5f6c14b4f9db37d416b9044ac73", "NULL", "internal", "0efe25ad76f244e1bca9f6975cfe8b83", "http://[fd01:4::2]:8004/v1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_137": ["46c653ca16294222be50ee0c6a530943", "NULL", "public", "0efe25ad76f244e1bca9f6975cfe8b83", "http://128.224.151.66:8004/v1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_138": ["22c5a12627d54fb49d6ea7ae28efc60d", "NULL", "public", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://128.224.151.66:6385/v1", "{}", true, "subcloud-5"],
"endpoint_139": ["8170c8c7bd1f42f285b6eceb9a024134", "NULL", "public", "c5834d3740504a69bf427385319b51a0", "http://128.224.151.66:8776/v3/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_140": ["41f38595b5f249b7ad9cc6fdf24d1f7c", "NULL", "admin", "567f8aafa7844256b03e86655fa2bd3e", "http://[fd01:4::2]:8776/v1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_141": ["adaa3140e68f4ea4a7e377a5a5b640bc", "NULL", "admin", "c5834d3740504a69bf427385319b51a0", "http://[fd01:3::2]:8776/v3/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_142": ["33b40962242e4afdb3ef6787af04e5a3", "NULL", "public", "c5834d3740504a69bf427385319b51a0", "http://128.224.150.224:8776/v3/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_143": ["744d6951d82e47dc9fc48763d1b18d60", "NULL", "internal", "8a5873d1ee914ccbae3c070d578d0d0d", "http://[fd01:3::2]:8776/v2/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_144": ["1dd34422beca4c2bb027d6e11a40b2c4", "NULL", "admin", "567f8aafa7844256b03e86655fa2bd3e", "http://[fd01:3::2]:8776/v1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_145": ["fcf6a770edc2486aa11e4b119e5de873", "NULL", "internal", "567f8aafa7844256b03e86655fa2bd3e", "http://[fd01:3::2]:8776/v1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_146": ["ef47b072365f475a8a56eeff153264ce", "NULL", "admin", "c5834d3740504a69bf427385319b51a0", "http://[fd01:2::2]:8776/v3/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_147": ["b461104aa21049aca0a71f8d4ee862e3", "NULL", "internal", "c5834d3740504a69bf427385319b51a0", "http://[fd01:2::2]:8776/v3/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_148": ["67f79a87a6954f489dd9789e844e5998", "NULL", "public", "c5834d3740504a69bf427385319b51a0", "http://128.224.150.18:8776/v3/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_149": ["72264b75ad9e46578d882d9d96301188", "NULL", "admin", "567f8aafa7844256b03e86655fa2bd3e", "http://[fd01:2::2]:8776/v1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_150": ["be6af8a2b8a5469b9dc8f2db2e2fc787", "NULL", "internal", "567f8aafa7844256b03e86655fa2bd3e", "http://[fd01:2::2]:8776/v1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_151": ["fa360cf6f5684c34be7c3ab5998b3a2c", "NULL", "public", "567f8aafa7844256b03e86655fa2bd3e", "http://128.224.150.18:8776/v1/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_152": ["37b87d149089406f81dba376f5309357", "NULL", "admin", "8a5873d1ee914ccbae3c070d578d0d0d", "http://[fd01:2::2]:8776/v2/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_153": ["19e9a38d9db34ce1ba8953300bc32e65", "NULL", "internal", "8a5873d1ee914ccbae3c070d578d0d0d", "http://[fd01:2::2]:8776/v2/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_154": ["b9fa7c1bc44f495e9ff6dda810b841a1", "NULL", "public", "8a5873d1ee914ccbae3c070d578d0d0d", "http://128.224.150.18:8776/v2/%(tenant_id)s", "{}", true, "subcloud-1"],
"endpoint_155": ["0a32ffd450814d7599d95b9d006cd42c", "NULL", "public", "a15edc66a6394e18bda9f9256e7b470c", "http://128.224.150.224:8042", "{}", true, "subcloud-4"],
"endpoint_156": ["d652da20f7834c53b8bdcd0e9e6e2fb4", "NULL", "admin", "ea41162395844d30af3e59efa3e6323e", "http://[fd01:3::2]:8000/v1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_157": ["c6667081743646efbfe6e0ab888b3eb2", "NULL", "internal", "6cfd11045b1e4c0badcb56f18428ab5b", "http://[fd01:3::2]:9696", "{}", true, "subcloud-4"],
"endpoint_158": ["edaeb34e5038485786df22d7f6360036", "NULL", "internal", "c3677835d8024fa894929ea67b1e9fa0", "http://[fd01:3::2]:5491", "{}", true, "subcloud-4"],
"endpoint_159": ["31e0293920404baf94390a6652c9ebff", "NULL", "public", "c3677835d8024fa894929ea67b1e9fa0", "http://128.224.150.224:15491", "{}", true, "subcloud-4"],
"endpoint_160": ["1cbf691bc9c84e3f9f6cc79246660bf7", "NULL", "admin", "86328b93a3c84d63a1be7f7368138bdf", "http://[fd01:3::2]:8777", "{}", true, "subcloud-4"],
"endpoint_161": ["ba7c54b0b7ac4cfdb558665fdd731c28", "NULL", "internal", "5fa3efb666204693a0d0ab05fb03140c", "http://[fd01:1::2]:5000/v3", "{}", true, "subcloud-4"],
"endpoint_162": ["e6f1e6f998674d13b6b8fa6a843e49f9", "NULL", "internal", "d6f2ef7609f44c9aa0b40b15f9f93139", "http://[fd01:3::2]:8977", "{}", true, "subcloud-4"],
"endpoint_163": ["1f3a25620c2b4e74b0348733a190fff1", "NULL", "public", "0efe25ad76f244e1bca9f6975cfe8b83", "http://128.224.150.224:8004/v1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_164": ["1daa3c5f75184962868ddd72d1b62529", "NULL", "admin", "7d48ddb964034eb588e557b976d11cdf", "http://[fd01:3::2]:9292", "{}", true, "subcloud-4"],
"endpoint_165": ["be6a2850cec44595b38eb6940baab1a6", "NULL", "admin", "c4ae85afaf7b465190d927e11da3eb38", "http://[fd01:3::2]:8774/v2.1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_166": ["39c119210e864123b8b6c845be341074", "NULL", "internal", "c4ae85afaf7b465190d927e11da3eb38", "http://[fd01:3::2]:8774/v2.1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_167": ["8f5980c8301146368c7be4f2a2e41cac", "NULL", "public", "c4ae85afaf7b465190d927e11da3eb38", "http://128.224.150.224:8774/v2.1/%(tenant_id)s", "{}", true, "subcloud-4"],
"endpoint_168": ["9953dc666ff24502b03cfb69c408f442", "NULL", "internal", "7d48ddb964034eb588e557b976d11cdf", "http://[fd01:4::2]:9292", "{}", true, "subcloud-5"],
"endpoint_169": ["368c49d56241450188857d2e7cd757d3", "NULL", "internal", "995cc229e9af44ec81c1c76073f4c733", "http://[fd01:4::2]:8778", "{}", true, "subcloud-5"],
"endpoint_170": ["33f33be90a1442839aef4f50afca45f9", "NULL", "internal", "ea41162395844d30af3e59efa3e6323e", "http://[fd01:4::2]:8000/v1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_171": ["523fe3578d634f17a81e04cb0e3c48c0", "NULL", "public", "a15edc66a6394e18bda9f9256e7b470c", "http://128.224.151.66:8042", "{}", true, "subcloud-5"],
"endpoint_172": ["e2d534e4e8804d0ebdb175e1f38f1cf2", "NULL", "public", "c3677835d8024fa894929ea67b1e9fa0", "http://128.224.151.66:15491", "{}", true, "subcloud-5"],
"endpoint_173": ["dc4cc20db20e4a08be988012f3b53efa", "NULL", "public", "c4ae85afaf7b465190d927e11da3eb38", "http://128.224.151.66:8774/v2.1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_174": ["135d036dc1804366873f238f193d0ee4", "NULL", "public", "aa803a6f0ab84b68ad13a759b1b29525", "http://128.224.151.66:4545", "{}", true, "subcloud-5"],
"endpoint_175": ["dbcf6bf6bcdf409ba2333370415fbd38", "NULL", "internal", "5fa3efb666204693a0d0ab05fb03140c", "http://[fd01:1::2]:5000/v3", "{}", true, "subcloud-5"],
"endpoint_176": ["a6a2033b69a34a04bb5a1d944c764401", "NULL", "internal", "d6f2ef7609f44c9aa0b40b15f9f93139", "http://[fd01:4::2]:8977", "{}", true, "subcloud-5"],
"endpoint_177": ["efb480b1d3374e0c97e688c1d5946d4d", "NULL", "admin", "0efe25ad76f244e1bca9f6975cfe8b83", "http://[fd01:4::2]:8004/v1/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_178": ["d526cf9c4c1c48be8d9770e8e261de07", "NULL", "internal", "b3dd49c87dfd40d08d19d2895d2bc9c6", "http://[fd01:4::2]:6385/v1", "{}", true, "subcloud-5"],
"endpoint_179": ["4881245fbcb5474ba807b60b1cab4c7f", "NULL", "admin", "c5834d3740504a69bf427385319b51a0", "http://[fd01:4::2]:8776/v3/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_180": ["e27f671897e54872876470d1880a1ca3", "NULL", "admin", "8a5873d1ee914ccbae3c070d578d0d0d", "http://[fd01:4::2]:8776/v2/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_181": ["3530851c3c7444d981ac145e3f6545d7", "NULL", "public", "8a5873d1ee914ccbae3c070d578d0d0d", "http://128.224.151.66:8776/v2/%(tenant_id)s", "{}", true, "subcloud-5"],
"endpoint_182": ["9157998f1a8a4d54ba679b31ac3eac0c", "NULL", "internal", "567f8aafa7844256b03e86655fa2bd3e", "http://[fd01:4::2]:8776/v1/%(tenant_id)s", "{}", true, "subcloud-5"]
}

View File

@ -1,24 +0,0 @@
{
"local_user_0": [3, "8ff17967605a4240b8a6c15ed4bf10f1", "default", "panko", 0, "NULL"],
"local_user_1": [4, "c5d07e41f78747949fbc1de84168a44f", "default", "dcorch", 0, "NULL"],
"local_user_2": [5, "5f4d401253a74cc8ab507957b9cafb29", "default", "neutron", 0, "NULL"],
"local_user_3": [6, "4abaa160c36846328a482217de0112af", "default", "heat", 0, "NULL"],
"local_user_4": [7, "692bd0a53c414d6dbbd0ba4d6fdb3c49", "default", "vim", 0, "NULL"],
"local_user_5": [8, "6cf3cfc5d26f458daf66802d8e8a2e2a", "default", "aodh", 0, "NULL"],
"local_user_6": [11, "a757fb8d624b46b4b10eea1b4d2ca0d2", "default", "glance", 0, "NULL"],
"local_user_7": [12, "118a09e72d6a4194af383285cb7e579a", "default", "placement", 0, "NULL"],
"local_user_8": [13, "f1cc67bbf0d84c89a1df3067b538e1b8", "default", "patching", 0, "NULL"],
"local_user_9": [14, "f94aa82e49dd4aaa8bf1c80fee109234", "2423d6c7853145a798e6491ca9de6e2b", "heat_admin", 0, "NULL"],
"local_user_10": [15, "04facea7432848c9bfdf3780bb51612e", "default", "dcmanager", 0, "NULL"],
"local_user_11": [16, "c455073c30044db8908630595699d874", "default", "ceilometer", 0, "NULL"],
"local_user_12": [17, "4a2c1f4c8ae942b19e388576e93d1ced", "default", "cinder", 0, "NULL"],
"local_user_13": [18, "d1399977957645e4a1e26c1b7b1e6d35", "default", "tenant1", 0, "NULL"],
"local_user_14": [19, "5ad8271fc6bc432ab80685945bc5b346", "default", "tenant2", 0, "NULL"],
"local_user_15": [20, "73403639b14c40e6b288c0e2cd3707bc", "default", "cindersubcloud-1", 0, "NULL"],
"local_user_16": [9, "146482c0aba84e35a5c1a507cff9db3d", "default", "nova", 0, "NULL"],
"local_user_17": [10, "63dd0fb409264a43b7dbfe9582b8023d", "default", "mtce", 0, "NULL"],
"local_user_18": [2, "81eed996f2a346a3b5282fe2a881db9b", "default", "sysinv", 0, "NULL"],
"local_user_19": [23, "872e8c1b48c640c59189cf1587bd4e41", "default", "cindersubcloud-5", 0, "NULL"],
"local_user_20": [24, "f85b8eca57a441838cfe5a39d33230b5", "default", "cindersubcloud-4", 0, "NULL"],
"local_user_21": [1, "500b2ba0791e44a780d4dad3c5a1ff31", "default", "admin", 0, "NULL"]
}

View File

@ -1,6 +0,0 @@
{
"migrate_version_0": ["keystone_expand", "/usr/lib/python2.7/site-packages/keystone/common/sql/expand_repo", 24],
"migrate_version_1": ["keystone_data_migrate", "/usr/lib/python2.7/site-packages/keystone/common/sql/data_migration_repo", 24],
"migrate_version_2": ["keystone", "/usr/lib/python2.7/site-packages/keystone/common/sql/migrate_repo", 109],
"migrate_version_3": ["keystone_contract", "/usr/lib/python2.7/site-packages/keystone/common/sql/contract_repo", 24]
}

View File

@ -1,24 +0,0 @@
{
"password_0": [1, 1, "NULL", "NULL", false, "$2b$12$fVKV1.pFz76EgkTePPtzEuMYbTS8CbsVghxDhX7f7liZx8RlW0Y6O", 1523460727481605, "NULL", "2018-04-11 15:32:07.481605"],
"password_1": [2, 2, "NULL", "NULL", false, "$2b$12$SlX.b0AgnYn4nZtJ3jmvWeCpSQiY21QjdlpjvkMwyUjH8zYJzLBHe", 1523460750612369, "NULL", "2018-04-11 15:32:30.612369"],
"password_2": [3, 3, "NULL", "NULL", false, "$2b$12$xOE0UlHJSzLiqeupbP/BvOTKxptmAAXylD0IlcbecOpeQ9w3L8o9K", 1523461139214437, "NULL", "2018-04-11 15:38:59.214437"],
"password_3": [4, 4, "NULL", "NULL", false, "$2b$12$XraXnRCsEobDqxvZI10YwOCN2qFdVx4YyVsnAggUk6JOpZIA1ILRC", 1523461146035371, "NULL", "2018-04-11 15:39:06.035371"],
"password_4": [5, 5, "NULL", "NULL", false, "$2b$12$hm9rPyEF4MGzGhVN6MZEZOV20HNAEYdd/X5tE/eTMBUdf2ojGozym", 1523461151305674, "NULL", "2018-04-11 15:39:11.305674"],
"password_5": [6, 6, "NULL", "NULL", false, "$2b$12$uRXa5txGlCkP3K8k2evESOKE0OCvN0E1lmtDEffUo4GN4M3/moDhG", 1523461154969656, "NULL", "2018-04-11 15:39:14.969656"],
"password_6": [7, 7, "NULL", "NULL", false, "$2b$12$UDWh3bOprZkcicTvX74ekO7Z2sA9i578bvJWR3u3JKxx./R4zfAZm", 1523461159304616, "NULL", "2018-04-11 15:39:19.304616"],
"password_7": [8, 8, "NULL", "NULL", false, "$2b$12$aaxz0tFwmstJa28TC6CBAubmJImu7CpnOf6IL5Ay69xrmhjntK7U6", 1523461167384976, "NULL", "2018-04-11 15:39:27.384976"],
"password_8": [9, 9, "NULL", "NULL", false, "$2b$12$P8NNMYOhoASdrH9otXOSpuSdRmumCxmaUw86sQBr4uMBU0QZgrVB6", 1523461170949886, "NULL", "2018-04-11 15:39:30.949886"],
"password_9": [10, 10, "NULL", "NULL", false, "$2b$12$G5oIKiC7dArW21ALaT.vyuHoUl2frQdBrNH9oX1JGiC/IVK4/x5d2", 1523461176191435, "NULL", "2018-04-11 15:39:36.191435"],
"password_10": [11, 11, "NULL", "NULL", false, "$2b$12$c7khbuXewToyssTnkBI.sOSP1evojjJVadd8aVPjRdSaKBXhOu5XO", 1523461179586188, "NULL", "2018-04-11 15:39:39.586188"],
"password_11": [12, 12, "NULL", "NULL", false, "$2b$12$YiAwkChCYKqog31cjk9hReGyoSf.LBk2pp4ca/ujTMUZnS5Bi06oS", 1523461183306664, "NULL", "2018-04-11 15:39:43.306664"],
"password_12": [13, 13, "NULL", "NULL", false, "$2b$12$6R5Wc3uuF270K.Kz0Qhdze20dzWHUx/YNYCT4CBIZtq70T4eTKo2.", 1523461186923901, "NULL", "2018-04-11 15:39:46.923901"],
"password_13": [14, 14, "NULL", "NULL", false, "$2b$12$c069e0ysfrkXryUc7Y7FV.V0mIV1AuAebtTPt6HG51etBI8JYiLK2", 1523461239110598, "NULL", "2018-04-11 15:40:39.110598"],
"password_14": [15, 15, "NULL", "NULL", false, "$2b$12$PhXg966X3UpaW6nUHKjAseGgIq2WFEiwxqsg0AQl1fZB0XRyF3q1G", 1523461266343289, "NULL", "2018-04-11 15:41:06.343289"],
"password_15": [16, 16, "NULL", "NULL", false, "$2b$12$HEbgdNZ.XAueAUE.yQVRV.RePFvWXi3kzuE5nzuQ/cR4ecNdq5GuK", 1523461278526719, "NULL", "2018-04-11 15:41:18.526719"],
"password_16": [17, 17, "NULL", "NULL", false, "$2b$12$ta3TKTGmLRRSb0LvENvFpOdkyvf24h.XDYuE4zJCavb/z5ERh6GcK", 1523462230091266, "NULL", "2018-04-11 15:57:10.091266"],
"password_17": [18, 18, "NULL", "NULL", false, "$2b$12$IlICOy5XIrgXKB/LrpYH8OxhhumP6TIX7CoNET3jXEloQdcvLgig2", 1523462315972021, "NULL", "2018-04-11 15:58:35.972021"],
"password_18": [19, 19, "NULL", "NULL", false, "$2b$12$Tzx42wm1w1hauLkUqypJuu84yTsfWtm9XrsZFLNlpoizX/b6MLQHO", 1523462331773330, "NULL", "2018-04-11 15:58:51.77333"],
"password_19": [20, 20, "NULL", "NULL", false, "$2b$12$lFM1kQaZ3wQyuOcsUYnbqeEgRmQsYFsabjMJLPWm3EgZCnHAO0fXC", 1523469345119409, "NULL", "2018-04-11 17:55:45.119409"],
"password_20": [23, 23, "NULL", "NULL", false, "$2b$12$IpkrfjrFTVclpDV9qC4Twuct8aFZUFEPEEr/6tznmFr/U8lc42k1m", 1526397706723260, "NULL", "2018-05-15 15:21:46.72326"],
"password_21": [24, 24, "NULL", "NULL", false, "$2b$12$809wlBp0xowtrgpFiwGNp.gVrJ8uvdQNN43zQGbexRm82Mb5AJriq", 1526399747870689, "NULL", "2018-05-15 15:55:47.870689"]
}

View File

@ -1,9 +0,0 @@
{
"project_0": ["<<keystone.domain.root>>", "<<keystone.domain.root>>", "{}", "", false, "<<keystone.domain.root>>", "NULL", true],
"project_1": ["default", "Default", "{}", "The default domain", true, "<<keystone.domain.root>>", "NULL", true],
"project_2": ["8803689162424f60a71e4642e9dc2b9e", "admin", "{}", "admin tenant", true, "default", "default", false],
"project_3": ["f3b78df9bbd74d6b8bbf8c5f08427ca7", "services", "{}", "Tenant for the openstack services", true, "default", "default", false],
"project_4": ["2423d6c7853145a798e6491ca9de6e2b", "heat", "{}", "", true, "<<keystone.domain.root>>", "NULL", true],
"project_5": ["9008c3fc102040cd8149b5c0d8aa06a3", "tenant1", "{}", "tenant1", true, "default", "default", false],
"project_6": ["6ecc44a6b24e4c398dc749f1386b2ced", "tenant2", "{}", "tenant2", true, "default", "default", false]
}

View File

@ -1,7 +0,0 @@
{
"region_0": ["SystemController", "", "NULL", "{}"],
"region_1": ["RegionOne", "", "NULL", "{}"],
"region_2": ["subcloud-1", "", "NULL", "{}"],
"region_3": ["subcloud-4", "", "NULL", "{}"],
"region_4": ["subcloud-5", "", "NULL", "{}"]
}

View File

@ -1,3 +0,0 @@
{
"revocation_event_0": [7, "NULL", "NULL", "8c5414c673634a8ebb837a897cb73a54", "NULL", "NULL", "NULL", "NULL", "2018-05-21 13:48:50", "NULL", "2018-05-21 13:48:50", "NULL", "NULL"]
}

View File

@ -1,7 +0,0 @@
{
"role_0": ["59fa225368524bf6974f76a25050143b", "admin", "{}", "<<null>>"],
"role_1": ["9fe2ff9ee4384b1894a90878d3e92bab", "_member_", "{}", "<<null>>"],
"role_2": ["1f62f45b748b4c5db66f97c715ecf1ae", "ResellerAdmin", "{}", "<<null>>"],
"role_3": ["d6bd09cf50334c5b9b1fe4cdeedfbdc4", "heat_stack_user", "{}", "<<null>>"],
"role_4": ["ef2e357b0d4d4bcaaa6ae303c7d58d7e", "heat_stack_owner", "{}", "<<null>>"]
}

View File

@ -1,20 +0,0 @@
{
"service_0": ["5fa3efb666204693a0d0ab05fb03140c", "identity", true, "{"description": "OpenStack Identity Service", "name": "keystone"}"],
"service_1": ["b3dd49c87dfd40d08d19d2895d2bc9c6", "platform", true, "{"description": "SysInvService", "name": "sysinv"}"],
"service_2": ["9754bb0a6cba4ae4b62c1a4e825964a5", "dcmanager", true, "{"description": "DCManagerService", "name": "dcmanager"}"],
"service_3": ["c931b77a92bc4208909d9205d85391a0", "dcorch", true, "{"description": "DcOrchService", "name": "dcorch"}"],
"service_4": ["7d48ddb964034eb588e557b976d11cdf", "image", true, "{"description": "OpenStack Image Service", "name": "glance"}"],
"service_5": ["a15edc66a6394e18bda9f9256e7b470c", "alarming", true, "{"description": "OpenStack Alarming Service", "name": "aodh"}"],
"service_6": ["995cc229e9af44ec81c1c76073f4c733", "placement", true, "{"description": "Openstack Placement Service", "name": "placement"}"],
"service_7": ["c4ae85afaf7b465190d927e11da3eb38", "compute", true, "{"description": "Openstack Compute Service", "name": "nova"}"],
"service_8": ["ea41162395844d30af3e59efa3e6323e", "cloudformation", true, "{"description": "Openstack Cloudformation Service", "name": "heat-cfn"}"],
"service_9": ["6cfd11045b1e4c0badcb56f18428ab5b", "network", true, "{"description": "Neutron Networking Service", "name": "neutron"}"],
"service_10": ["c3677835d8024fa894929ea67b1e9fa0", "patching", true, "{"description": "Patching Service", "name": "patching"}"],
"service_11": ["86328b93a3c84d63a1be7f7368138bdf", "metering", true, "{"description": "Openstack Metering Service", "name": "ceilometer"}"],
"service_12": ["aa803a6f0ab84b68ad13a759b1b29525", "nfv", true, "{"description": "Virtual Infrastructure Manager", "name": "vim"}"],
"service_13": ["d6f2ef7609f44c9aa0b40b15f9f93139", "event", true, "{"description": "OpenStack Event Service", "name": "panko"}"],
"service_14": ["0efe25ad76f244e1bca9f6975cfe8b83", "orchestration", true, "{"description": "Openstack Orchestration Service", "name": "heat"}"],
"service_15": ["c5834d3740504a69bf427385319b51a0", "volumev3", true, "{"description": "Cinder Service v3", "name": "cinderv3"}"],
"service_16": ["8a5873d1ee914ccbae3c070d578d0d0d", "volumev2", true, "{"description": "Cinder Service v2", "name": "cinderv2"}"],
"service_17": ["567f8aafa7844256b03e86655fa2bd3e", "volume", true, "{"description": "Cinder Service", "name": "cinder"}"]
}

View File

@ -1,6 +0,0 @@
{
"strategy_steps_0": [id, subcloud_id, stage, state, details, started_at, finished_at, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"strategy_steps_1": [id, subcloud_id, stage, state, details, started_at, finished_at, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"strategy_steps_2": [id, subcloud_id, stage, state, details, started_at, finished_at, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"strategy_steps_3": [id, subcloud_id, stage, state, details, started_at, finished_at, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted]
}

View File

@ -1,17 +0,0 @@
{
"subcloud_status_0": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_1": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_2": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_3": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_4": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_5": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_6": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_7": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_8": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_9": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_10": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_11": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_12": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_13": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subcloud_status_14": [id, subcloud_id, endpoint_type, sync_status, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted]
}

View File

@ -1,5 +0,0 @@
{
"subclouds_0": [id, name, description, location, software_version, management_state, availability_status, management_subnet, management_gateway_ip, management_start_ip, management_end_ip, systemcontroller_gateway_ip, audit_fail_count, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subclouds_1": [id, name, description, location, software_version, management_state, availability_status, management_subnet, management_gateway_ip, management_start_ip, management_end_ip, systemcontroller_gateway_ip, audit_fail_count, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted],
"subclouds_2": [id, name, description, location, software_version, management_state, availability_status, management_subnet, management_gateway_ip, management_start_ip, management_end_ip, systemcontroller_gateway_ip, audit_fail_count, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted]
}

View File

@ -1,3 +0,0 @@
{
"sw_update_opts_default_0": [id, subcloud_id, storage_apply_type, compute_apply_type, max_parallel_computes, default_instance_action, alarm_restriction_type, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted]
}

View File

@ -1,3 +0,0 @@
{
"sw_update_strategy_0": [id, type, subcloud_apply_type, max_parallel_subclouds, stop_on_failure, state, reserved_1, reserved_2, created_at, updated_at, deleted_at, deleted]
}

View File

@ -1,6 +0,0 @@
{
"trust_0": ["8955b2c1a40749b49f2bf21cc4b0acb4", "500b2ba0791e44a780d4dad3c5a1ff31", "4abaa160c36846328a482217de0112af", "9008c3fc102040cd8149b5c0d8aa06a3", true, "2018-04-12 17:24:22.199655", "NULL", "NULL", "{"redelegation_count": 0, "roles": [{"id": "9fe2ff9ee4384b1894a90878d3e92bab"}]}"],
"trust_1": ["6562be68284e4cc6a8832714569e180b", "500b2ba0791e44a780d4dad3c5a1ff31", "4abaa160c36846328a482217de0112af", "9008c3fc102040cd8149b5c0d8aa06a3", true, "2018-04-12 19:03:55.461547", "NULL", "NULL", "{"redelegation_count": 0, "roles": [{"id": "9fe2ff9ee4384b1894a90878d3e92bab"}]}"],
"trust_2": ["e6c80f658ebb4ace9020c31865c0245b", "500b2ba0791e44a780d4dad3c5a1ff31", "4abaa160c36846328a482217de0112af", "9008c3fc102040cd8149b5c0d8aa06a3", true, "2018-04-12 19:15:48.126469", "NULL", "NULL", "{"redelegation_count": 0, "roles": [{"id": "9fe2ff9ee4384b1894a90878d3e92bab"}]}"],
"trust_3": ["0e67dc152a514c15827da1dbeb4c84cf", "500b2ba0791e44a780d4dad3c5a1ff31", "4abaa160c36846328a482217de0112af", "9008c3fc102040cd8149b5c0d8aa06a3", true, "2018-04-13 19:26:04.180508", "NULL", "NULL", "{"redelegation_count": 0, "roles": [{"id": "9fe2ff9ee4384b1894a90878d3e92bab"}]}"]
}

View File

@ -1,6 +0,0 @@
{
"trust_role_0": ["8955b2c1a40749b49f2bf21cc4b0acb4", "9fe2ff9ee4384b1894a90878d3e92bab"],
"trust_role_1": ["6562be68284e4cc6a8832714569e180b", "9fe2ff9ee4384b1894a90878d3e92bab"],
"trust_role_2": ["e6c80f658ebb4ace9020c31865c0245b", "9fe2ff9ee4384b1894a90878d3e92bab"],
"trust_role_3": ["0e67dc152a514c15827da1dbeb4c84cf", "9fe2ff9ee4384b1894a90878d3e92bab"]
}

View File

@ -1,24 +0,0 @@
{
"user_0": ["500b2ba0791e44a780d4dad3c5a1ff31", "{"email": "admin@localhost"}", true, "NULL", "2018-04-11 15:32:07.73006", "NULL", "default"],
"user_1": ["81eed996f2a346a3b5282fe2a881db9b", "{"email": "sysinv@localhost"}", true, "NULL", "2018-04-11 15:32:30.858964", "NULL", "default"],
"user_2": ["8ff17967605a4240b8a6c15ed4bf10f1", "{"email": "panko@localhost"}", true, "NULL", "2018-04-11 15:38:59.440114", "NULL", "default"],
"user_3": ["c5d07e41f78747949fbc1de84168a44f", "{"email": "dcorch@localhost"}", true, "NULL", "2018-04-11 15:39:06.280769", "NULL", "default"],
"user_4": ["5f4d401253a74cc8ab507957b9cafb29", "{"email": "neutron@localhost"}", true, "NULL", "2018-04-11 15:39:11.531363", "NULL", "default"],
"user_5": ["4abaa160c36846328a482217de0112af", "{"email": "heat@localhost"}", true, "NULL", "2018-04-11 15:39:15.194125", "NULL", "default"],
"user_6": ["692bd0a53c414d6dbbd0ba4d6fdb3c49", "{"email": "vim@localhost"}", true, "NULL", "2018-04-11 15:39:19.530182", "NULL", "default"],
"user_7": ["6cf3cfc5d26f458daf66802d8e8a2e2a", "{"email": "aodh@localhost"}", true, "NULL", "2018-04-11 15:39:27.610475", "NULL", "default"],
"user_8": ["146482c0aba84e35a5c1a507cff9db3d", "{"email": "nova@localhost"}", true, "NULL", "2018-04-11 15:39:31.174625", "NULL", "default"],
"user_9": ["63dd0fb409264a43b7dbfe9582b8023d", "{}", true, "NULL", "2018-04-11 15:39:36.417284", "NULL", "default"],
"user_10": ["a757fb8d624b46b4b10eea1b4d2ca0d2", "{"email": "glance@localhost"}", true, "NULL", "2018-04-11 15:39:39.812304", "NULL", "default"],
"user_11": ["118a09e72d6a4194af383285cb7e579a", "{"email": "placement@localhost"}", true, "NULL", "2018-04-11 15:39:43.532389", "NULL", "default"],
"user_12": ["f1cc67bbf0d84c89a1df3067b538e1b8", "{"email": "patching@localhost"}", true, "NULL", "2018-04-11 15:39:47.161565", "NULL", "default"],
"user_13": ["f94aa82e49dd4aaa8bf1c80fee109234", "{"email": "heat_admin@localhost"}", true, "NULL", "2018-04-11 15:40:39.336097", "NULL", "2423d6c7853145a798e6491ca9de6e2b"],
"user_14": ["04facea7432848c9bfdf3780bb51612e", "{"email": "dcmanager@localhost"}", true, "NULL", "2018-04-11 15:41:06.569371", "NULL", "default"],
"user_15": ["c455073c30044db8908630595699d874", "{"email": "ceilometer@localhost"}", true, "NULL", "2018-04-11 15:41:18.751809", "NULL", "default"],
"user_16": ["4a2c1f4c8ae942b19e388576e93d1ced", "{"email": "cinder@localhost"}", true, "NULL", "2018-04-11 15:57:10.340431", "NULL", "default"],
"user_17": ["d1399977957645e4a1e26c1b7b1e6d35", "{"email": "tenant1@noreply.com"}", true, "9008c3fc102040cd8149b5c0d8aa06a3", "2018-04-11 15:58:36.244453", "NULL", "default"],
"user_18": ["5ad8271fc6bc432ab80685945bc5b346", "{"email": "tenant2@noreply.com"}", true, "6ecc44a6b24e4c398dc749f1386b2ced", "2018-04-11 15:58:52.037904", "NULL", "default"],
"user_19": ["73403639b14c40e6b288c0e2cd3707bc", "{"email": "cinder@localhost"}", true, "NULL", "2018-04-11 17:55:45.379834", "NULL", "default"],
"user_20": ["872e8c1b48c640c59189cf1587bd4e41", "{"email": "cinder@localhost"}", true, "NULL", "2018-05-15 15:21:47.01523", "NULL", "default"],
"user_21": ["f85b8eca57a441838cfe5a39d33230b5", "{"email": "cinder@localhost"}", true, "NULL", "2018-05-15 15:55:48.164975", "NULL", "default"]
}

View File

@ -1,6 +0,0 @@
{
"subclouds_0": [6, "subcloud-4", "wcp85 subcloud", "Ottawa-PheonixLab-Aisle_3-Rack_C", "18.03", "managed", "online", "fd01:3::0/64", "fd01:3::1", "fd01:3::2", "fd01:3::f", "fd01:1::1", 0, "NULL", "NULL", "2018-05-15 14:45:12.508708", "2018-05-24 10:48:18.090931", "NULL", 0],
"subclouds_1": [1, "subcloud-1", "wcp80 subcloud", "Ottawa-PheonixLab-Aisle_3-Rack_B", "18.03", "managed", "online", "fd01:2::0/64", "fd01:2::1", "fd01:2::2", "fd01:2::f", "fd01:1::1", 0, "NULL", "NULL", "2018-04-11 17:01:48.54467", "2018-05-24 00:17:34.74161", "NULL", 0],
"subclouds_2": [7, "subcloud-5", "wcp87 subcloud", "Ottawa-PheonixLab-Aisle_4-Rack_B", "18.03", "managed", "online", "fd01:4::0/64", "fd01:4::1", "fd01:4::2", "fd01:4::f", "fd01:1::1", 0, "NULL", "NULL", "2018-05-15 14:45:48.95625", "2018-05-24 10:48:17.907767", "NULL", 0],
"subclouds_3": [8, "subcloud-6", "wcp89 subcloud", "Ottawa-PheonixLab-Aisle_4-Rack_B", "18.03", "managed", "online", "fd01:5::0/64", "fd01:5::1", "fd01:5::2", "fd01:5::f", "fd01:1::1", 0, "NULL", "NULL", "2018-05-15 14:45:48.95625", "2018-05-24 10:48:17.907767", "NULL", 0]
}

View File

@ -1,8 +0,0 @@
{
"address_modes_0": ["2018-04-11 15:34:01.158775", "NULL", "NULL", 1, "bad688d9-2a15-4b8d-90c1-3bf31001e27f", 4, "disabled", 9, "NULL"],
"address_modes_1": ["2018-04-11 15:34:01.174414", "NULL", "NULL", 2, "cd3a3530-0c38-44f6-85d2-48726abb03f1", 6, "static", 9, "NULL"],
"address_modes_2": ["2018-04-11 15:34:02.105151", "NULL", "NULL", 3, "36e85759-90fb-4e42-9a1b-6895cd5dddb0", 4, "static", 1, "NULL"],
"address_modes_3": ["2018-04-11 15:34:02.122732", "NULL", "NULL", 4, "48ece145-341d-4e9c-abe5-db0188d4661c", 6, "disabled", 1, "NULL"],
"address_modes_4": ["2018-04-11 17:36:11.215411", "NULL", "NULL", 5, "4dc77b93-eb41-4345-b5be-f116961dade7", 4, "static", 10, "NULL"],
"address_modes_5": ["2018-04-11 17:36:11.235055", "NULL", "NULL", 6, "7af4c2a6-e52d-48d6-b020-3c1b4a578ed0", 6, "disabled", 10, "NULL"]
}

View File

@ -1,6 +0,0 @@
{
"address_pool_ranges_0": ["2018-04-11 15:32:43.393776", "NULL", "NULL", 1, "47b19f92-6055-4cf8-84cc-bb51a3f3474e", "fd01:1::2", "fd01:1::ffff:ffff:ffff:fffe", 1],
"address_pool_ranges_1": ["2018-04-11 15:32:43.624239", "NULL", "NULL", 2, "b5847dfe-d645-47d1-a89a-3153dbb4740f", "192.168.202.2", "192.168.202.254", 2],
"address_pool_ranges_2": ["2018-04-11 15:32:43.831987", "NULL", "NULL", 3, "a485084a-4c9d-45fa-ab6d-f94e64de1065", "128.224.150.1", "128.224.151.254", 3],
"address_pool_ranges_3": ["2018-04-11 15:32:44.015227", "NULL", "NULL", 4, "ebfb885a-cc27-49e9-abd4-df333050cfd2", "ff05::14:1:1:1", "ff05::14:1:1:e", 4]
}

View File

@ -1,6 +0,0 @@
{
"address_pools_0": ["2018-04-11 15:32:43.392811", "2018-04-11 15:32:43.603851", "NULL", 1, "0adb1258-a669-481b-b0ff-0460f5eae9a6", "management", 6, "fd01:1::", 64, "random", 2, 3, 1, "NULL"],
"address_pools_1": ["2018-04-11 15:32:43.623812", "2018-04-11 15:32:43.750238", "NULL", 2, "f06cc319-1feb-4c8f-bae4-a8e62c037906", "pxeboot", 4, "192.168.202.0", 24, "random", 7, 8, 6, "NULL"],
"address_pools_2": ["2018-04-11 15:32:43.831516", "NULL", "NULL", 3, "47474b9c-bd25-4bec-a555-d570362a7401", "oam", 4, "128.224.150.0", 23, "random", 10, 11, 9, 12],
"address_pools_3": ["2018-04-11 15:32:44.014775", "NULL", "NULL", 4, "4badaca3-a355-4238-96b5-b60ca158aefa", "multicast-subnet", 6, "ff05::14:1:1:0", 124, "random", "NULL", "NULL", "NULL", "NULL"]
}

View File

@ -1,19 +0,0 @@
{
"addresses_0": ["2018-04-11 15:32:43.459592", "NULL", "NULL", 1, "5e770169-7267-497a-8096-de7442b5f296", "controller-mgmt", 6, "fd01:1::2", 64, true, "NULL", 1],
"addresses_1": ["2018-04-11 15:32:43.550478", "NULL", "NULL", 4, "d78f8a8a-bee1-4fba-a647-61726fd23db7", "controller-platform-nfs-mgmt", 6, "fd01:1::5", 64, true, "NULL", 1],
"addresses_2": ["2018-04-11 15:32:43.581086", "NULL", "NULL", 5, "de5ce7c3-122d-4aa3-8fb6-7a5b1b4a4660", "controller-nfs-mgmt", 6, "fd01:1::6", 64, true, "NULL", 1],
"addresses_3": ["2018-04-11 15:32:43.679669", "NULL", "NULL", 6, "4dda7f9f-f887-49a9-b239-fd16614c0c0b", "controller-pxeboot", 4, "192.168.202.2", 24, false, "NULL", 2],
"addresses_4": ["2018-04-11 15:32:43.776518", "2018-04-11 15:32:43.922704", "NULL", 9, "adfda1b4-e749-4b13-b9b9-7dda161db0a3", "controller-oam", 4, "128.224.151.162", 23, false, "NULL", 3],
"addresses_5": ["2018-04-11 15:32:43.822936", "2018-04-11 15:32:43.971363", "NULL", 12, "292511e2-0c7c-49a3-909c-344b18829314", "controller-gateway-oam", 4, "128.224.150.1", 23, false, "NULL", 3],
"addresses_6": ["2018-04-11 15:32:44.072076", "NULL", "NULL", 13, "f1015901-3576-45c4-9771-5da10dc2c3e2", "sm-mgmt-ip-multicast", 6, "ff05::14:1:1:1", 124, true, "NULL", 4],
"addresses_7": ["2018-04-11 15:32:44.096159", "NULL", "NULL", 14, "3bd6dac6-09d0-461e-ad1d-b1fb564278f9", "mtce-mgmt-ip-multicast", 6, "ff05::14:1:1:2", 124, true, "NULL", 4],
"addresses_8": ["2018-04-11 15:32:44.186736", "NULL", "NULL", 15, "3456cd83-4738-4ce2-a3ba-b29ed760211b", "patch-controller-mgmt-ip-multicast", 6, "ff05::14:1:1:3", 124, true, "NULL", 4],
"addresses_9": ["2018-04-11 15:32:44.213172", "NULL", "NULL", 16, "44955509-385d-4509-bb96-4f88a485b186", "patch-agent-mgmt-ip-multicast", 6, "ff05::14:1:1:4", 124, true, "NULL", 4],
"addresses_10": ["2018-04-11 15:32:43.704382", "2018-04-11 15:34:00.669646", "NULL", 7, "81bdd77e-bc12-476a-bd98-ff04d2cd87ab", "controller-0-pxeboot", 4, "192.168.202.3", 24, false, 7, 2],
"addresses_11": ["2018-04-11 15:32:43.791295", "2018-04-11 15:34:02.259728", "NULL", 10, "a1b36413-bdaf-44d0-b752-351f4747be93", "controller-0-oam", 4, "128.224.151.151", 23, false, 1, 3],
"addresses_12": ["2018-04-11 15:55:23.796705", "NULL", "NULL", 17, "f67a6c74-151c-4ff1-88c0-73b5aab7e72f", "controller-cinder-mgmt", 6, "fd01:1::8d49:c435:b42a:da39", 64, true, "NULL", 1],
"addresses_13": ["2018-04-11 15:32:43.727568", "2018-04-11 17:11:15.46512", "NULL", 8, "b8b5f623-6674-403e-aaf2-5a5bc19b3381", "controller-1-pxeboot", 4, "192.168.202.4", 24, false, 16, 2],
"addresses_14": ["2018-04-11 15:32:43.808005", "2018-04-11 17:36:11.389025", "NULL", 11, "69175db0-a076-4a35-b404-bbc70ad1dd1a", "controller-1-oam", 4, "128.224.151.153", 23, false, 10, 3],
"addresses_15": ["2018-04-11 15:32:43.489891", "2018-05-16 21:05:58.221018", "NULL", 2, "0416495f-3365-47e0-a170-8302d9e3f798", "controller-0-mgmt", 6, "fd01:1::3", 64, true, 9, 1],
"addresses_16": ["2018-04-11 15:32:43.519008", "2018-05-16 21:40:04.126776", "NULL", 3, "48cf3651-9481-4838-bd4e-1750e803aea1", "controller-1-mgmt", 6, "fd01:1::4", 64, true, 17, 1]
}

View File

@ -1,3 +0,0 @@
{
"clusters_0": ["2018-04-11 15:44:36.511721", "NULL", "NULL", 1, "6d7b7ce6-ae85-4fdb-bbde-6d87485cca23", "NULL", "ceph", "ceph_cluster", "NULL", 1]
}

View File

@ -1,9 +0,0 @@
{
"controller_fs_0": ["2018-04-11 15:32:44.637566", "2018-04-11 15:52:38.575025", "NULL", 1, "4783db43-a115-4dae-b0a4-fed50bd0cf9e", 1, "available", "backup", 50, "backup-lv", false],
"controller_fs_1": ["2018-04-11 15:32:44.648109", "2018-04-11 15:52:38.582984", "NULL", 2, "1ee5441a-4043-4e1d-a9af-82a9648311bb", 1, "available", "cgcs", 10, "cgcs-lv", true],
"controller_fs_2": ["2018-04-11 15:32:44.655808", "2018-04-11 15:52:38.590304", "NULL", 3, "a2de7f25-add1-4350-ad4b-0113432dfeeb", 1, "available", "database", 20, "pgsql-lv", true],
"controller_fs_3": ["2018-04-11 15:32:44.661658", "2018-04-11 15:52:38.597692", "NULL", 4, "502fcfb0-4bcf-491e-92ef-31c090015d27", 1, "available", "scratch", 8, "scratch-lv", false],
"controller_fs_4": ["2018-04-11 15:32:44.6679", "2018-04-11 15:52:38.604568", "NULL", 5, "fa7c1fdb-09ef-49fa-9d77-d1be4a565b0a", 1, "available", "img-conversions", 20, "img-conversions-lv", false],
"controller_fs_5": ["2018-04-11 15:32:44.673848", "2018-04-11 15:52:38.61143", "NULL", 6, "6bc6afad-06c2-4c3d-97e8-5bc4b4d44e94", 1, "available", "extension", 1, "extension-lv", true],
"controller_fs_6": ["2018-04-11 15:32:44.680109", "2018-04-11 15:52:38.61858", "NULL", 7, "9691abe5-6450-4fdb-8cad-c5fb9cf4da27", 1, "available", "patch-vault", 8, "patch-vault-lv", true]
}

View File

@ -1,3 +0,0 @@
{
"drbdconfig_0": ["2018-04-11 15:32:39.945607", "NULL", "NULL", 1, "0d474006-2fa0-4871-bb02-51f31879312b", 40, 1, 0.200000000000000011, 1]
}

View File

@ -1,18 +0,0 @@
{
"ethernet_interfaces_0": ["NULL", "NULL", "NULL", 1, "a4:bf:01:01:b6:ae", 1500, "NULL", "NULL"],
"ethernet_interfaces_1": ["NULL", "NULL", "NULL", 2, "a4:bf:01:01:b6:af", 1500, "NULL", "NULL"],
"ethernet_interfaces_2": ["NULL", "NULL", "NULL", 3, "3c:fd:fe:9f:6f:08", 1500, "NULL", "NULL"],
"ethernet_interfaces_3": ["NULL", "NULL", "NULL", 4, "3c:fd:fe:9f:6f:09", 1500, "NULL", "NULL"],
"ethernet_interfaces_4": ["NULL", "NULL", "NULL", 5, "3c:fd:fe:9f:6f:0a", 1500, "NULL", "NULL"],
"ethernet_interfaces_5": ["NULL", "NULL", "NULL", 6, "3c:fd:fe:9f:6f:0b", 1500, "NULL", "NULL"],
"ethernet_interfaces_6": ["NULL", "NULL", "NULL", 7, "90:e2:ba:b0:df:d0", 9216, "NULL", "NULL"],
"ethernet_interfaces_7": ["NULL", "NULL", "NULL", 8, "90:e2:ba:b0:df:d1", 1500, "NULL", "NULL"],
"ethernet_interfaces_8": ["NULL", "NULL", "NULL", 10, "a4:bf:01:01:66:ca", 1500, "NULL", "NULL"],
"ethernet_interfaces_9": ["NULL", "NULL", "NULL", 11, "a4:bf:01:01:66:cb", 1500, "NULL", "NULL"],
"ethernet_interfaces_10": ["NULL", "NULL", "NULL", 12, "3c:fd:fe:9f:74:c8", 1500, "NULL", "NULL"],
"ethernet_interfaces_11": ["NULL", "NULL", "NULL", 13, "3c:fd:fe:9f:74:c9", 1500, "NULL", "NULL"],
"ethernet_interfaces_12": ["NULL", "NULL", "NULL", 14, "3c:fd:fe:9f:74:ca", 1500, "NULL", "NULL"],
"ethernet_interfaces_13": ["NULL", "NULL", "NULL", 15, "3c:fd:fe:9f:74:cb", 1500, "NULL", "NULL"],
"ethernet_interfaces_14": ["NULL", "NULL", "NULL", 16, "90:e2:ba:b0:e9:f4", 9216, "NULL", "NULL"],
"ethernet_interfaces_15": ["NULL", "NULL", "NULL", 18, "90:e2:ba:b0:e9:f5", 1500, "NULL", "NULL"]
}

View File

@ -1,18 +0,0 @@
{
"ethernet_ports_0": ["NULL", "NULL", "NULL", 2, "a4:bf:01:01:b6:af", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_1": ["NULL", "NULL", "NULL", 3, "3c:fd:fe:9f:6f:08", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_2": ["NULL", "NULL", "NULL", 4, "3c:fd:fe:9f:6f:09", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_3": ["NULL", "NULL", "NULL", 5, "3c:fd:fe:9f:6f:0a", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_4": ["NULL", "NULL", "NULL", 6, "3c:fd:fe:9f:6f:0b", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_5": ["NULL", "NULL", "NULL", 8, "90:e2:ba:b0:df:d1", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_6": ["NULL", "NULL", "NULL", 10, "a4:bf:01:01:66:cb", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_7": ["NULL", "NULL", "NULL", 11, "3c:fd:fe:9f:74:c8", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_8": ["NULL", "NULL", "NULL", 12, "3c:fd:fe:9f:74:c9", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_9": ["NULL", "NULL", "NULL", 13, "3c:fd:fe:9f:74:ca", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_10": ["NULL", "NULL", "NULL", 14, "3c:fd:fe:9f:74:cb", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_11": ["NULL", "NULL", "NULL", 16, "90:e2:ba:b0:e9:f5", 1500, "NULL", "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_12": ["NULL", "NULL", "NULL", 9, "a4:bf:01:01:66:ca", 1500, 1000, "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_13": ["NULL", "NULL", "NULL", 15, "90:e2:ba:b0:e9:f4", 1500, 10000, "0", "NULL", "NULL", "True", "NULL"],
"ethernet_ports_14": ["NULL", "NULL", "NULL", 1, "a4:bf:01:01:b6:ae", 1500, 1000, "0", "NULL", "NULL", "NULL", "NULL"],
"ethernet_ports_15": ["NULL", "NULL", "NULL", 7, "90:e2:ba:b0:df:d0", 1500, 10000, "0", "NULL", "NULL", "True", "NULL"]
}

View File

@ -1,92 +0,0 @@
{
"event_suppression_0": ["2018-04-11 15:44:32.411013", "NULL", "NULL", 1, "f2b22955-dc71-4ad3-aff8-d11dbab7c4dd", "200.007", "{""major"": "Host is degraded due to a ""major"" out-of-tolerance reading from the ""<sensorname>"" sensor", ""critical"": "Host is degraded due to a ""critical"" out-of-tolerance reading from the ""<sensorname>"" sensor", ""minor"": "Host is reporting a ""minor"" ...", "unsuppressed", false, "none"],
"event_suppression_1": ["2018-04-11 15:44:32.43499", "NULL", "NULL", 2, "6ced0ed1-fa46-4cbb-8339-ef5058918429", "400.003", "License key is not installed; a valid license key is required for operation.],
"event_suppression_2": ["2018-04-11 15:44:32.438485", "NULL", "NULL", 3, "595e1a35-d1ad-406d-941b-3bbd8b50d768", "700.005", "Instance <instance_name> owned by <tenant_name> is rebooting on host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_3": ["2018-04-11 15:44:32.440863", "NULL", "NULL", 4, "a5c19884-9e6e-42c4-a3b9-fdd8d3d0431d", "800.101", "Storage Alarm Condition:],
"event_suppression_4": ["2018-04-11 15:44:32.4445", "NULL", "NULL", 5, "a3a22349-6ac3-414b-9e6c-e343024033b4", "900.002", "Obsolete patch in system.", "unsuppressed", false, "warning"],
"event_suppression_5": ["2018-04-11 15:44:32.447356", "NULL", "NULL", 6, "75885e4c-a0fb-4742-a507-0d0cedb8b99e", "100.101", "Platform CPU threshold exceeded; threshold x%, actual y% .],
"event_suppression_6": ["2018-04-11 15:44:32.450028", "NULL", "NULL", 7, "28c837af-094a-4302-85ea-ff54cedd7b00", "100.102", "VSwitch CPU threshold exceeded; threshold x%, actual y% .],
"event_suppression_7": ["2018-04-11 15:44:32.453621", "NULL", "NULL", 8, "951687b9-4596-44d8-8cea-3a82c0113c37", "100.103", "Memory threshold exceeded; threshold x%, actual y% .],
"event_suppression_8": ["2018-04-11 15:44:32.455968", "NULL", "NULL", 9, "ec1de68d-3e71-4270-ae93-e182c5cf9d8e", "100.104", "host=<hostname>.filesystem=<mount-dir>],
"event_suppression_9": ["2018-04-11 15:44:32.458326", "NULL", "NULL", 10, "23a19251-8614-48d9-8c22-4aa4f68fa207", "100.106", """OAM"" Port failed.", "unsuppressed", false, "warning"],
"event_suppression_10": ["2018-04-11 15:44:32.460868", "NULL", "NULL", 11, "be8315da-7cc5-4865-937d-01b464644265", "100.107", """OAM"" Interface degraded.],
"event_suppression_11": ["2018-04-11 15:44:32.464405", "NULL", "NULL", 12, "949cea6d-d780-408a-9fe9-adc17ebdc018", "100.108", """MGMT"" Port failed.", "unsuppressed", false, "warning"],
"event_suppression_12": ["2018-04-11 15:44:32.466828", "NULL", "NULL", 13, "1bfdd175-8059-49e9-ae99-53d503b37863", "100.109", """MGMT"" Interface degraded.],
"event_suppression_13": ["2018-04-11 15:44:32.46902", "NULL", "NULL", 14, "4b3d56ee-6057-472b-a068-14c9faa39b13", "100.110", """INFRA"" Port failed.", "unsuppressed", false, "warning"],
"event_suppression_14": ["2018-04-11 15:44:32.471247", "NULL", "NULL", 15, "21307216-8d9d-4cc8-b100-3136bd52ce93", "100.111", """INFRA"" Interface degraded.],
"event_suppression_15": ["2018-04-11 15:44:32.474824", "NULL", "NULL", 16, "6708ca12-58f6-4392-8ec9-e217a6834e42", "100.112", """DATA-VRS"" Port down.", "unsuppressed", false, "none"],
"event_suppression_16": ["2018-04-11 15:44:32.478837", "NULL", "NULL", 17, "bf2ab172-aa6a-45f1-ae2f-bb0408178626", "100.113", """DATA-VRS"" Interface degraded.],
"event_suppression_17": ["2018-04-11 15:44:32.484603", "NULL", "NULL", 19, "c98852d7-1f5e-4a2b-b326-2e8141ea0ebd", "100.115", "VSwitch Memory Usage, processor <processor> threshold exceeded; threshold x%, actual y% .", "unsuppressed", false, "none"],
"event_suppression_18": ["2018-04-11 15:44:32.487322", "NULL", "NULL", 20, "b5fa53ff-484a-4de5-9f98-36088edbcc95", "100.116", "Cinder LVM Thinpool Usage threshold exceeded; threshold x%, actual y% .", "unsuppressed", false, "none"],
"event_suppression_19": ["2018-04-11 15:44:32.490273", "NULL", "NULL", 21, "35984c2a-5d0e-46dc-be0b-53f0148dbfe9", "100.117", "Nova LVM Thinpool Usage threshold exceeded; threshold x%, actual y% .", "unsuppressed", false, "major"],
"event_suppression_20": ["2018-04-11 15:44:32.493255", "NULL", "NULL", 22, "2318fcdb-a324-4421-b5ca-43db8313b5da", "100.118", "Controller cannot establish connection with remote logging server.", "unsuppressed", false, "none"],
"event_suppression_21": ["2018-04-11 15:44:32.497279", "NULL", "NULL", 23, "2b625133-2dff-4647-9c62-04c815d418ce", "200.001", "<hostname> was administratively locked to take it out-of-service.", "unsuppressed", false, "warning"],
"event_suppression_22": ["2018-04-11 15:44:32.499831", "NULL", "NULL", 24, "cb9c1f90-3824-40c0-b906-786725b60cc0", "200.004", "<hostname> experienced a service-affecting failure.],
"event_suppression_23": ["2018-04-11 15:44:32.503633", "NULL", "NULL", 25, "4f79881c-7b9b-436b-9dd5-4ecb2b5eb5a9", "200.005", "Degrade:],
"event_suppression_24": ["2018-04-11 15:44:32.506405", "NULL", "NULL", 26, "e055964e-4289-4d2d-9541-132a58995028", "200.006", "Main Process Monitor Daemon Failure (major):],
"event_suppression_25": ["2018-04-11 15:44:32.509942", "NULL", "NULL", 27, "ed4210e2-b59a-4758-b8e1-6c8cba441b3b", "200.009", "Degrade:],
"event_suppression_26": ["2018-04-11 15:44:32.513938", "NULL", "NULL", 28, "467ccc81-b65f-4bf2-b72e-33f520998353", "200.010", "<hostname> access to board management module has failed.", "unsuppressed", false, "none"],
"event_suppression_27": ["2018-04-11 15:44:32.517946", "NULL", "NULL", 29, "5a89ad11-5805-4773-ab42-33f902f74e8f", "200.011", "<hostname> experienced a configuration failure during initialization. Host is being re-configured by Reboot.", "unsuppressed", false, "warning"],
"event_suppression_28": ["2018-04-11 15:44:32.520274", "NULL", "NULL", 30, "a0947c3b-3ec7-4328-887d-fd21b4252c61", "200.012", "<hostname> controller function has in-service failure while compute services remain healthy.", "unsuppressed", false, "warning"],
"event_suppression_29": ["2018-04-11 15:44:32.522833", "NULL", "NULL", 31, "98e0557b-a3d8-4205-b1af-20c46620cd0e", "200.013", "<hostname> compute service of the only available controller is not poperational. Auto-recovery is disabled. Deggrading host instead.", "unsuppressed", false, "warning"],
"event_suppression_30": ["2018-04-11 15:44:32.526752", "NULL", "NULL", 32, "3ac593b7-ea29-4579-b394-371fd3599c5f", "200.014", "The Hardware Monitor was unable to load, configure and monitor one or more hardware sensors.", "unsuppressed", false, "none"],
"event_suppression_31": ["2018-04-11 15:44:32.529867", "NULL", "NULL", 33, "8038cb01-a27a-4181-8eba-7d80a7ec047d", "200.015", "Unable to read one or more sensor groups from this host""s board management controller", "unsuppressed", false, "none"],
"event_suppression_32": ["2018-04-11 15:44:32.532185", "NULL", "NULL", 34, "5bfe121b-70ea-4af8-9aa6-7e05744418e8", "210.001", "System Backup in progress.", "unsuppressed", false, "warning"],
"event_suppression_33": ["2018-04-11 15:44:32.535752", "NULL", "NULL", 35, "77fb2910-1005-4ee9-aa46-bc9432ae9da6", "250.001", "<hostname> Configuration is out-of-date.", "unsuppressed", false, "warning"],
"event_suppression_34": ["2018-04-11 15:44:32.538161", "NULL", "NULL", 36, "dc15da60-1588-44eb-84f0-3f1c35a7ad34", "250.002", "<hostname> Ceph cache tiering configuration is out-of-date.", "unsuppressed", false, "warning"],
"event_suppression_35": ["2018-04-11 15:44:32.541135", "NULL", "NULL", 37, "bf2179f5-92a3-40a7-b75a-a28be7c4055f", "270.001", "Host <host_name> compute services failure[, reason = <reason_text>]", "unsuppressed", false, "warning"],
"event_suppression_36": ["2018-04-11 15:44:32.544931", "NULL", "NULL", 38, "d174dba0-f3a5-4c49-8647-a53164a2ff28", "280.001", "<subcloud> is offline", "unsuppressed", false, "warning"],
"event_suppression_37": ["2018-04-11 15:44:32.54996", "NULL", "NULL", 40, "ad5757c0-d683-42b7-b0e1-670c049f733d", "300.001", """Data"" Port failed.", "unsuppressed", false, "warning"],
"event_suppression_38": ["2018-04-11 15:44:32.552888", "NULL", "NULL", 41, "78b518e5-9853-4261-bbbe-501ad7824441", "300.002", """Data"" Interface degraded.],
"event_suppression_39": ["2018-04-11 15:44:32.555243", "NULL", "NULL", 42, "a45e432a-ea17-4696-8d25-c43ef759630c", "300.003", "Networking Agent not responding.", "unsuppressed", false, "warning"],
"event_suppression_40": ["2018-04-11 15:44:32.55758", "NULL", "NULL", 43, "8289c192-f64c-4615-8332-1b662cb02e58", "300.004", "No enabled compute host with connectivity to provider network.", "unsuppressed", false, "warning"],
"event_suppression_41": ["2018-04-11 15:44:32.559837", "NULL", "NULL", 44, "44de4bbc-584a-458d-b26c-28432351d223", "300.005", "Communication failure detected over provider network x% for ranges y% on host z%.],
"event_suppression_42": ["2018-04-11 15:44:32.562213", "NULL", "NULL", 45, "11350dc7-bd5b-4a9c-8484-16dfbe080435", "300.010", "ML2 Driver Agent non-reachable],
"event_suppression_43": ["2018-04-11 15:44:32.564635", "NULL", "NULL", 46, "3f066c6d-11a3-428a-8504-9102be3814a3", "300.012", "Openflow Controller connection failed.", "unsuppressed", false, "warning"],
"event_suppression_44": ["2018-04-11 15:44:32.567144", "NULL", "NULL", 47, "6b7d9627-9806-405d-b6fb-a766eaebf5e8", "300.013", "No active Openflow controller connections found for this network.],
"event_suppression_45": ["2018-04-11 15:44:32.569395", "NULL", "NULL", 48, "d0d3820e-fb13-4cce-97f6-6663199165a9", "300.014", "OVSDB Manager connection failed.", "unsuppressed", false, "warning"],
"event_suppression_46": ["2018-04-11 15:44:32.571928", "NULL", "NULL", 49, "a9b58550-83a2-4bbc-b9ea-88b77773bc10", "300.015", "No active OVSDB connections found.", "unsuppressed", false, "warning"],
"event_suppression_47": ["2018-04-11 15:44:32.574799", "NULL", "NULL", 50, "8e2e2ab4-2b57-4dce-b846-7882ed7e7f53", "300.016", "Dynamic routing agent x% lost connectivity to peer y%.", "unsuppressed", false, "warning"],
"event_suppression_48": ["2018-04-11 15:44:32.577197", "NULL", "NULL", 51, "4cb8ec94-79e8-41d9-b187-8105842ff172", "400.001", "Service group failure; <list of affected services>.],
"event_suppression_49": ["2018-04-11 15:44:32.579505", "NULL", "NULL", 52, "68462add-5e85-42b4-a579-78564370f08d", "400.002", "Service group loss of redundancy; expected <num> standby member<s> but only <num> standby member<s> available.],
"event_suppression_50": ["2018-04-11 15:44:32.581805", "NULL", "NULL", 53, "92c62f6b-bcef-48f9-a99e-aeb5f20c1fc3", "400.005", "Communication failure detected with peer over port <linux-ifname>.],
"event_suppression_51": ["2018-04-11 15:44:32.584203", "NULL", "NULL", 54, "545cf28b-9f8e-418f-a0a1-96f12ba1373b", "500.100", "TPM initialization failed on host.", "unsuppressed", false, "none"],
"event_suppression_52": ["2018-04-11 15:44:32.589051", "NULL", "NULL", 56, "f7d6dbe7-760c-454a-a572-4997dd787c68", "700.001", "Instance <instance_name> owned by <tenant_name> has failed on host <host_name>],
"event_suppression_53": ["2018-04-11 15:44:32.591532", "NULL", "NULL", 57, "10b8629e-4021-4032-9c3a-6c3ea302d2b5", "700.002", "Instance <instance_name> owned by <tenant_name> is paused on host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_54": ["2018-04-11 15:44:32.59367", "NULL", "NULL", 58, "7eb9315d-6b06-4e1c-a858-87a9cd6d9931", "700.003", "Instance <instance_name> owned by <tenant_name> is suspended on host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_55": ["2018-04-11 15:44:32.595932", "NULL", "NULL", 59, "35f17ae4-f605-4a33-b979-2df4d01b85df", "700.004", "Instance <instance_name> owned by <tenant_name> is stopped on host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_56": ["2018-04-11 15:44:32.598225", "NULL", "NULL", 60, "d1cdb74c-aff3-4d7a-864e-3515e6d8737c", "700.006", "Instance <instance_name> owned by <tenant_name> is rebuilding on host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_57": ["2018-04-11 15:44:32.600544", "NULL", "NULL", 61, "af0de7e0-a45d-40de-a8d5-521f28d6d4b7", "700.007", "Instance <instance_name> owned by <tenant_name> is evacuating from host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_58": ["2018-04-11 15:44:32.60296", "NULL", "NULL", 62, "2da9b4ed-a6b4-433d-a25f-85d8d26251f7", "700.008", "Instance <instance_name> owned by <tenant_name> is live migrating from host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_59": ["2018-04-11 15:44:32.608135", "NULL", "NULL", 63, "9585178e-d799-49d5-9bef-9e443ba7d10a", "700.009", "Instance <instance_name> owned by <tenant_name> is cold migrating from host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_60": ["2018-04-11 15:44:32.610512", "NULL", "NULL", 64, "a14dfae8-711d-47f0-b898-8fef80876682", "700.010", "Instance <instance_name> owned by <tenant_name> has been cold-migrated to host <host_name> waiting for confirmation", "unsuppressed", false, "warning"],
"event_suppression_61": ["2018-04-11 15:44:32.613231", "NULL", "NULL", 65, "b4ec1dd8-9ec4-41f6-a711-1a64ba406934", "700.011", "Instance <instance_name> owned by <tenant_name> is reverting cold migrate to host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_62": ["2018-04-11 15:44:32.615925", "NULL", "NULL", 66, "fcf60ab4-7ab5-4909-9b07-5c5b89cd256d", "700.012", "Instance <instance_name> owned by <tenant_name> is resizing on host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_63": ["2018-04-11 15:44:32.618689", "NULL", "NULL", 67, "2345b587-6754-4c32-a45d-1fb0cdb77d0f", "700.013", "Instance <instance_name> owned by <tenant_name> has been resized on host <host_name> waiting for confirmation", "unsuppressed", false, "warning"],
"event_suppression_64": ["2018-04-11 15:44:32.620872", "NULL", "NULL", 68, "cb16826d-d8bf-42c6-91ef-271a2b6d1e69", "700.014", "Instance <instance_name> owned by <tenant_name> is reverting resize on host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_65": ["2018-04-11 15:44:32.623352", "NULL", "NULL", 69, "42b14fbb-e0b5-4cf8-bf94-1d17b93377d5", "700.015", "Guest Heartbeat not established for instance <instance_name> owned by <tenant_name> on host <host_name>", "unsuppressed", false, "warning"],
"event_suppression_66": ["2018-04-11 15:44:32.625556", "NULL", "NULL", 70, "de1409fa-3450-4a68-b387-083cde1ebd7c", "700.016", "Multi-Node Recovery Mode", "unsuppressed", false, "warning"],
"event_suppression_67": ["2018-04-11 15:44:32.627937", "NULL", "NULL", 71, "9ab7798c-55d3-4128-97fd-4a4dc0446532", "700.017", "Server group <server_group_name> <policy> policy was not satisfied", "unsuppressed", false, "none"],
"event_suppression_68": ["2018-04-11 15:44:32.630159", "NULL", "NULL", 72, "4dd24d8f-2e43-47b4-913c-d4b6c681b3ac", "800.001", "Storage Alarm Condition:],
"event_suppression_69": ["2018-04-11 15:44:32.63256", "NULL", "NULL", 73, "3bb4ff79-2bd4-4905-a681-13ba4874370c", "800.002", "[""Image storage media is full: There is not enough disk space on the image storage media."", ""Instance <instance name> snapshot failed: There is not enough disk space on the image storage media."", "Supplied <attrs> (<supplied>) and <attrs> generated f ...", "unsuppressed", false, "none"],
"event_suppression_70": ["2018-04-11 15:44:32.634666", "NULL", "NULL", 74, "2ede62a9-e30d-43b0-8165-d7e3fa8e1420", "800.003", "Storage Alarm Condition:],
"event_suppression_71": ["2018-04-11 15:44:32.586818", "2018-04-16 16:40:39.222585", "NULL", 55, "4405c9dc-ade2-4295-a32a-e09dab2231b8", "500.101", "Developer patch certificate enabled.", "suppressed", false, "none"],
"event_suppression_72": ["2018-04-11 15:44:32.547374", "2018-04-16 17:10:44.207576", "NULL", 39, "aa213e29-1452-48d3-9f30-6342562511d8", "280.002", "<subcloud> <resource> sync_status is out-of-sync", "suppressed", false, "warning"],
"event_suppression_73": ["2018-04-11 15:44:32.636707", "NULL", "NULL", 75, "9569204a-a0b6-44c3-b7c3-aab0543f03a1", "800.010", "Potential data loss. No available OSDs in storage replication group.", "unsuppressed", false, "warning"],
"event_suppression_74": ["2018-04-11 15:44:32.638867", "NULL", "NULL", 76, "db6bd5d8-211b-4c26-a06e-06009ae06a1d", "800.011", "Loss of replication in peergroup.", "unsuppressed", false, "warning"],
"event_suppression_75": ["2018-04-11 15:44:32.640974", "NULL", "NULL", 77, "55df89ce-0cea-4d07-9c43-0b0eed5384fd", "800.100", "Storage Alarm Condition:],
"event_suppression_76": ["2018-04-11 15:44:32.643207", "NULL", "NULL", 78, "f71fc83f-545c-4604-b356-edd0a7f2e41d", "800.102", "Storage Alarm Condition:],
"event_suppression_77": ["2018-04-11 15:44:32.645502", "NULL", "NULL", 79, "c1a0da02-d55b-44b6-928c-aeabce68cdb6", "800.103", "Storage Alarm Condition:],
"event_suppression_78": ["2018-04-11 15:44:32.647728", "NULL", "NULL", 80, "85d81e46-269d-425f-8d0f-1bd5b6809dec", "800.104", "Storage Alarm Condition:],
"event_suppression_79": ["2018-04-11 15:44:32.650224", "NULL", "NULL", 81, "a1180fbf-275d-4cb6-8bd8-e11f5e22c922", "900.001", "Patching operation in progress.", "unsuppressed", false, "warning"],
"event_suppression_80": ["2018-04-11 15:44:32.652566", "NULL", "NULL", 82, "5ef868a6-c79d-4893-844b-0dfefee8aeff", "900.003", "Patch host install failure.", "unsuppressed", false, "warning"],
"event_suppression_81": ["2018-04-11 15:44:32.654859", "NULL", "NULL", 83, "19910b38-c707-4e7d-94f1-209ab7999b05", "900.004", "Host version mismatch.", "unsuppressed", false, "warning"],
"event_suppression_82": ["2018-04-11 15:44:32.657067", "NULL", "NULL", 84, "c0bd82ee-6e19-4d92-8ead-b3582d3669db", "900.005", "System Upgrade in progress.", "unsuppressed", false, "warning"],
"event_suppression_83": ["2018-04-11 15:44:32.659281", "NULL", "NULL", 85, "c330581f-fe1a-42c6-9dce-e374069bf943", "900.101", "Software patch auto-apply inprogress", "unsuppressed", false, "warning"],
"event_suppression_84": ["2018-04-11 15:44:32.66156", "NULL", "NULL", 86, "381bd4ac-83a8-45fd-9582-7071b52830b9", "900.102", "Software patch auto-apply aborting", "unsuppressed", false, "warning"],
"event_suppression_85": ["2018-04-11 15:44:32.663658", "NULL", "NULL", 87, "fef20dc9-2beb-4e80-ab3c-a56754c9e1de", "900.103", "Software patch auto-apply failed", "unsuppressed", false, "warning"],
"event_suppression_86": ["2018-04-11 15:44:32.665871", "NULL", "NULL", 88, "057c75e0-2503-44cc-9280-2b83ac99cb10", "900.201", "Software upgrade auto-apply inprogress", "unsuppressed", false, "warning"],
"event_suppression_87": ["2018-04-11 15:44:32.667915", "NULL", "NULL", 89, "34bc6a7e-f60b-4ad3-ab0d-646b983e4bdd", "900.202", "Software upgrade auto-apply aborting", "unsuppressed", false, "warning"],
"event_suppression_88": ["2018-04-11 15:44:32.670038", "NULL", "NULL", 90, "bf9c7cea-9f98-4350-ad99-714e18a15b57", "900.203", "Software upgrade auto-apply failed", "unsuppressed", false, "warning"],
"event_suppression_89": ["2018-04-11 15:44:32.48162", "2018-04-11 20:51:50.520149", "NULL", 18, "f43c790c-ec04-4ecd-899b-f0544181691d", "100.114", "{""major"": ""NTP configuration does not contain any valid or reachable NTP servers."", ""minor"": ""NTP address <IP address> is not a valid or a reachable NTP server.""}", "suppressed", false, "none"]
}

View File

@ -1,4 +0,0 @@
{
"host_upgrade_0": ["2018-04-11 15:32:44.768861", "NULL", "NULL", 1, "2e6b9736-9e00-4804-913f-4b30346709de", 1, 1, 1],
"host_upgrade_1": ["2018-04-11 16:58:20.061424", "NULL", "NULL", 2, "4eb96def-f831-40f9-97c2-b741a620c48d", 2, 1, 1]
}

View File

@ -1,3 +0,0 @@
{
"i_alarm_0": ["2018-04-16 16:33:33.569314", "NULL", "NULL", 115, "a19c245b-44b9-41de-9142-96d66003bb55", "500.101", "set", "host", "host=controller", "2018-04-16 16:33:33.568539", "critical", "Developer patch certificate is enabled", "security-service-or-mechanism-violation", "unspecified-reason", "Reinstall system to disable certificate and remove untrusted patches", false, false, false, false]
}

View File

@ -1,3 +0,0 @@
{
"i_dns_0": ["2018-04-11 15:32:39.931146", "2018-04-11 15:52:42.629276", "NULL", 1, "a631812f-baf1-48e4-8328-1cf4a8418572", "8.8.8.8,8.8.4.4", 1]
}

View File

@ -1,4 +0,0 @@
{
"i_host_0": ["2018-04-11 16:58:20.055114", "2018-05-28 17:49:08.775529", "NULL", false, "standard", "03152ed9-cf5f-4849-a0f3-f2e1d553371e", 2, "controller-1", "90:e2:ba:b0:e9:f4", "fd01:1::4", "128.224.64.214", "NULL", "bmc", "root", "controller", "NULL", "{"locn": ""}", "unlocked", "enabled", "available", "none", "", 1022811, "{"pers_subtype": "ceph-backing"}", "NULL", "3fa7d012-36d4-4197-bc5d-7d2cfa0182f7", "3fa7d012-36d4-4197-bc5d-7d2cfa0182f7", 1, "provisioned", "unlock", "services-enabled", "controller", "disabled", "online", "sda", "sda", "graphical", "", "NULL", false, "NULL", "reinstalled", "NULL", "completed+", "NULL", "iqn.1994-05.com.redhat:79e9f87b1c67", "false"],
"i_host_1": ["2018-04-11 15:32:44.764124", "2018-05-28 17:49:08.95438", "NULL", false, "standard", "fa1e22a0-61e2-4bc9-8d3f-5fc5d552235a", 1, "controller-0", "90:e2:ba:b0:df:d0", "fd01:1::3", "128.224.64.213", "NULL", "bmc", "root", "controller", "NULL", "{"locn": ""}", "unlocked", "enabled", "available", "none", "", 1024866, "{"pers_subtype": "ceph-backing"}", "NULL", "3fa7d012-36d4-4197-bc5d-7d2cfa0182f7", "3fa7d012-36d4-4197-bc5d-7d2cfa0182f7", 1, "provisioned", "unlock", "services-enabled", "controller", "disabled", "online", "/dev/disk/by-path/pci-0000:00:1f.2-ata-1.0", "/dev/disk/by-path/pci-0000:00:1f.2-ata-1.0", "text", "tty0", "NULL", false, "NULL", "reinstalled", "NULL", "completed+", "NULL", "iqn.1994-05.com.redhat:298bbe50fd7", "false"]
}

View File

@ -1,90 +0,0 @@
{
"i_icpu_0": ["2018-04-11 15:33:39.531912", "NULL", "NULL", 1, "c7b392bf-d088-48aa-8279-4631bb54523d", 0, 0, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_1": ["2018-04-11 15:33:39.539085", "NULL", "NULL", 2, "162d56fe-1a60-45b1-b813-c53fd44ccffe", 1, 1, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_2": ["2018-04-11 15:33:39.545597", "NULL", "NULL", 3, "cb821617-624b-42f4-b5cc-095c7847b197", 2, 2, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_3": ["2018-04-11 15:33:39.552015", "NULL", "NULL", 4, "9db101f2-8cf7-48e4-93a6-70d572591189", 3, 3, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_4": ["2018-04-11 15:33:39.558593", "NULL", "NULL", 5, "66e60ff5-5ad4-418c-be75-7f9e75d15560", 4, 4, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_5": ["2018-04-11 15:33:39.566787", "NULL", "NULL", 6, "5f5b7ff1-6b3a-4ceb-b8d0-8601c936b5c3", 5, 5, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_6": ["2018-04-11 15:33:39.573192", "NULL", "NULL", 7, "8b022229-e9fc-4cd0-a3d1-fbaf40a1db7a", 6, 8, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_7": ["2018-04-11 15:33:39.579678", "NULL", "NULL", 8, "bc357378-e1ee-4a12-bb63-1ca3288e2507", 7, 9, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_8": ["2018-04-11 15:33:39.586176", "NULL", "NULL", 9, "b9589e9e-f87c-4647-b134-9f5d23d05c13", 8, 10, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_9": ["2018-04-11 15:33:39.592604", "NULL", "NULL", 10, "72c7b44a-68e2-40ed-98ce-218c7d80759f", 9, 11, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_10": ["2018-04-11 15:33:39.599119", "NULL", "NULL", 11, "75e1f98f-8411-46ce-bb8c-e2234f990ffb", 10, 12, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_11": ["2018-04-11 15:33:39.605694", "NULL", "NULL", 12, "fd5c5d04-084f-4758-8fae-9756e8ffdb65", 11, 16, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_12": ["2018-04-11 15:33:39.613359", "NULL", "NULL", 13, "a45b3a61-98ea-4baf-a7ff-b00e68f886b8", 12, 17, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_13": ["2018-04-11 15:33:39.619629", "NULL", "NULL", 14, "d5536faa-8506-4efe-9e3b-7c783f0ae575", 13, 18, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_14": ["2018-04-11 15:33:39.626155", "NULL", "NULL", 15, "78fb6954-47cc-48e3-ae81-34d330b8d807", 14, 19, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_15": ["2018-04-11 15:33:39.634153", "NULL", "NULL", 16, "fd48f6c0-cf1a-4a4e-b0db-4e3b6b47434b", 15, 20, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_16": ["2018-04-11 15:33:39.640528", "NULL", "NULL", 17, "3111895a-42b0-44f4-9e0d-65324b734c7b", 16, 21, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_17": ["2018-04-11 15:33:39.647087", "NULL", "NULL", 18, "04441b8e-a296-480b-87af-aac24a100d3a", 17, 24, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_18": ["2018-04-11 15:33:39.653552", "NULL", "NULL", 19, "50731c44-5af7-431d-98e0-c5e2322d99b6", 18, 25, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_19": ["2018-04-11 15:33:39.660019", "NULL", "NULL", 20, "193905a9-5f28-4483-b4d0-fcc42a5896a2", 19, 26, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_20": ["2018-04-11 15:33:39.666649", "NULL", "NULL", 21, "93e25779-7083-4377-8dcd-2a32d98429ff", 20, 27, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_21": ["2018-04-11 15:33:39.673023", "NULL", "NULL", 22, "31b5f3ad-db36-4943-9295-0ab061807ebe", 21, 28, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 1],
"i_icpu_22": ["2018-04-11 15:33:39.679968", "NULL", "NULL", 23, "1eb522e1-0917-4cef-897d-356fa473f0a5", 22, 0, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_23": ["2018-04-11 15:33:39.690245", "NULL", "NULL", 24, "e522822f-74a5-4f84-8989-dce2ceedda8d", 23, 1, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_24": ["2018-04-11 15:33:39.700456", "NULL", "NULL", 25, "1c6dd77e-14b1-4d36-ab7e-1fcf6172145d", 24, 2, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_25": ["2018-04-11 15:33:39.707215", "NULL", "NULL", 26, "ff043f01-9183-4a4c-8d9a-ad3f00ec33c7", 25, 3, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_26": ["2018-04-11 15:33:39.713829", "NULL", "NULL", 27, "65bddb09-a137-4a1b-82b8-6aa0c84e2e7d", 26, 4, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_27": ["2018-04-11 15:33:39.720535", "NULL", "NULL", 28, "aa26489b-d7ad-4d4b-805d-45d83160b2d0", 27, 5, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_28": ["2018-04-11 15:33:39.727136", "NULL", "NULL", 29, "7b81c47c-7013-424a-84e7-6483035ac967", 28, 8, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_29": ["2018-04-11 15:33:39.733642", "NULL", "NULL", 30, "55550dc5-25b3-4e61-93f4-dee3c102b6b6", 29, 9, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_30": ["2018-04-11 15:33:39.740459", "NULL", "NULL", 31, "1075b561-5751-400c-9f21-69ea92b86998", 30, 10, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_31": ["2018-04-11 15:33:39.746735", "NULL", "NULL", 32, "a286e98c-be38-4bf1-9a8c-19adbf2fc204", 31, 11, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_32": ["2018-04-11 15:33:39.753171", "NULL", "NULL", 33, "9205bba1-71d8-4dda-8cb3-865dfa5b39ac", 32, 12, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_33": ["2018-04-11 15:33:39.75973", "NULL", "NULL", 34, "a3edaa74-dbed-47c1-b692-ba91428eff87", 33, 16, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_34": ["2018-04-11 15:33:39.767622", "NULL", "NULL", 35, "04035b20-8ab9-4bc5-8fcd-05ce887a1f95", 34, 17, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_35": ["2018-04-11 15:33:39.774076", "NULL", "NULL", 36, "a48d3689-3517-4784-a5b5-81923d62f5bb", 35, 18, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_36": ["2018-04-11 15:33:39.780565", "NULL", "NULL", 37, "bc1d4f26-d10c-4dd6-9ce9-2658e75f0226", 36, 19, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_37": ["2018-04-11 15:33:39.787305", "NULL", "NULL", 38, "fab1ce15-39fd-4530-af50-cc3c194c337b", 37, 20, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_38": ["2018-04-11 15:33:39.793701", "NULL", "NULL", 39, "496b4b80-c99c-4795-b571-0c1d866de751", 38, 21, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_39": ["2018-04-11 15:33:39.8002", "NULL", "NULL", 40, "f3465d7c-181a-47c3-8502-79b6b195060b", 39, 24, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_40": ["2018-04-11 15:33:39.806701", "NULL", "NULL", 41, "56a81b34-8b3d-44da-9bdf-fde0032cec49", 40, 25, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_41": ["2018-04-11 15:33:39.813174", "NULL", "NULL", 42, "5f346a35-d043-4dcc-96d5-5d23189510c9", 41, 26, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_42": ["2018-04-11 15:33:39.819849", "NULL", "NULL", 43, "d34d6478-3043-48aa-ab7f-6afd66e11831", 42, 27, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_43": ["2018-04-11 15:33:39.827817", "NULL", "NULL", 44, "ae690294-10ff-4f62-a16e-d0a1d9caba73", 43, 28, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 1, 2],
"i_icpu_44": ["2018-04-11 17:11:16.301315", "NULL", "NULL", 45, "9a168328-064f-4934-bb0a-11a99f3c2574", 0, 0, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_45": ["2018-04-11 17:11:16.311008", "NULL", "NULL", 46, "cd5d71d5-2031-4aef-b53f-07d6163a2240", 1, 1, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_46": ["2018-04-11 17:11:16.31912", "NULL", "NULL", 47, "a10e6fb9-dfc1-403b-b44f-6f3908436a03", 2, 2, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_47": ["2018-04-11 17:11:16.326803", "NULL", "NULL", 48, "92f770f2-6e80-467f-87e4-27e5f290a31f", 3, 3, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_48": ["2018-04-11 17:11:16.334705", "NULL", "NULL", 49, "c7456eec-b30c-4cb4-abab-182f3e9bf6ee", 4, 4, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_49": ["2018-04-11 17:11:16.343101", "NULL", "NULL", 50, "829ee7c1-c3d7-4eaf-b44b-68a4a1c664b2", 5, 5, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_50": ["2018-04-11 17:11:16.351305", "NULL", "NULL", 51, "803be762-65c9-49ae-a7aa-55d919a681e4", 6, 8, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_51": ["2018-04-11 17:11:16.359423", "NULL", "NULL", 52, "974d1ca6-edf9-4858-b368-f7ed3bb97a65", 7, 9, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_52": ["2018-04-11 17:11:16.367212", "NULL", "NULL", 53, "3c10a002-e486-41bd-99c0-4745586e0f76", 8, 10, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_53": ["2018-04-11 17:11:16.374792", "NULL", "NULL", 54, "736e67d5-0840-412c-94b2-90c256164c37", 9, 11, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_54": ["2018-04-11 17:11:16.384399", "NULL", "NULL", 55, "c0129165-a155-49a2-ae48-f330ac16f1e6", 10, 12, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_55": ["2018-04-11 17:11:16.392417", "NULL", "NULL", 56, "e1bc44d7-98a4-4510-9907-53ca05740353", 11, 16, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_56": ["2018-04-11 17:11:16.400232", "NULL", "NULL", 57, "3403a5cf-ab52-4f44-bb9a-f4cfe7ef1b27", 12, 17, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_57": ["2018-04-11 17:11:16.40801", "NULL", "NULL", 58, "e086b620-7ef2-49df-885f-967e332046a6", 13, 18, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_58": ["2018-04-11 17:11:16.41611", "NULL", "NULL", 59, "eed14557-219b-4170-900e-b51bc74ca1bd", 14, 19, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_59": ["2018-04-11 17:11:16.423718", "NULL", "NULL", 60, "39ad5a1a-82fa-4c36-9a0b-d2b86b3ed3c3", 15, 20, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_60": ["2018-04-11 17:11:16.431703", "NULL", "NULL", 61, "cdee7690-3c13-47da-ba14-c6c617a22faa", 16, 21, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_61": ["2018-04-11 17:11:16.43972", "NULL", "NULL", 62, "323356ac-30da-4555-b7f8-472f94cdd4e7", 17, 24, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_62": ["2018-04-11 17:11:16.447712", "NULL", "NULL", 63, "0d7bd35e-fb25-4ba8-8bf3-1368b8725cbf", 18, 25, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_63": ["2018-04-11 17:11:16.457469", "NULL", "NULL", 64, "a44c9dd6-acfd-4c80-bac4-1cfb5d163da6", 19, 26, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_64": ["2018-04-11 17:11:16.465295", "NULL", "NULL", 65, "ead5d986-d2ff-4980-9f75-2b3a66c52e55", 20, 27, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_65": ["2018-04-11 17:11:16.472688", "NULL", "NULL", 66, "25a18fb1-f9c5-4319-b170-142209c6404b", 21, 28, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 3],
"i_icpu_66": ["2018-04-11 17:11:16.480912", "NULL", "NULL", 67, "c7d90c4b-caeb-47d3-a479-dfc73bbd9876", 22, 0, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_67": ["2018-04-11 17:11:16.488717", "NULL", "NULL", 68, "1b8e2454-6036-4b3f-9b82-06c7e092bc98", 23, 1, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_68": ["2018-04-11 17:11:16.496973", "NULL", "NULL", 69, "3fd64c59-e877-4ecd-98a4-c89270eb73ce", 24, 2, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_69": ["2018-04-11 17:11:16.504925", "NULL", "NULL", 70, "fc7df4e3-0a63-4711-be71-2a79e8d6cd23", 25, 3, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_70": ["2018-04-11 17:11:16.512986", "NULL", "NULL", 71, "46e9e30f-6cbd-4134-8545-d60acca057fa", 26, 4, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_71": ["2018-04-11 17:11:16.5205", "NULL", "NULL", 72, "095c6f47-4a0c-4ca9-b3eb-5eb82ee9dcfd", 27, 5, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_72": ["2018-04-11 17:11:16.527954", "NULL", "NULL", 73, "7d60be24-0a19-4bd0-ad6d-e93c4efb35f7", 28, 8, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_73": ["2018-04-11 17:11:16.537122", "NULL", "NULL", 74, "148c8322-2cc3-4d85-aba0-6a955a8d33ed", 29, 9, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_74": ["2018-04-11 17:11:16.545401", "NULL", "NULL", 75, "2066d82b-a8cf-4b1b-b1a3-e13cf680b631", 30, 10, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_75": ["2018-04-11 17:11:16.553033", "NULL", "NULL", 76, "ca4ed9df-ce23-47e2-ba40-7ea90950f2be", 31, 11, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_76": ["2018-04-11 17:11:16.560856", "NULL", "NULL", 77, "60f422cf-619f-4fe8-b29a-ba543fc2c68b", 32, 12, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_77": ["2018-04-11 17:11:16.568698", "NULL", "NULL", 78, "45998441-92d1-4a1d-97d2-3d760597fec4", 33, 16, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_78": ["2018-04-11 17:11:16.576274", "NULL", "NULL", 79, "6d192c21-30ea-49fc-9173-b87d359cb9f7", 34, 17, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_79": ["2018-04-11 17:11:16.584011", "NULL", "NULL", 80, "102a2188-9093-4249-9535-55b60982b10c", 35, 18, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_80": ["2018-04-11 17:11:16.592053", "NULL", "NULL", 81, "9287d096-0a35-4469-91f2-aa1795b9509b", 36, 19, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_81": ["2018-04-11 17:11:16.600195", "NULL", "NULL", 82, "fba8215f-bda9-4e69-b539-12358e191d6e", 37, 20, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_82": ["2018-04-11 17:11:16.610205", "NULL", "NULL", 83, "9d192ad1-3856-4090-b22a-3335e2601f8f", 38, 21, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_83": ["2018-04-11 17:11:16.617702", "NULL", "NULL", 84, "25c206c4-65aa-4e33-b20f-9da38a16801d", 39, 24, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_84": ["2018-04-11 17:11:16.625061", "NULL", "NULL", 85, "af0971c6-6bf2-480d-8072-5ea9c741427a", 40, 25, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_85": ["2018-04-11 17:11:16.63289", "NULL", "NULL", 86, "18607d02-7fba-469e-bda0-bb235117c94c", 41, 26, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_86": ["2018-04-11 17:11:16.641004", "NULL", "NULL", 87, "b1207ba1-0593-4dd8-93e2-30ad23ce6703", 42, 27, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4],
"i_icpu_87": ["2018-04-11 17:11:16.64875", "NULL", "NULL", 88, "37a10700-2baf-43e3-a882-9f1c7a4f9c71", 43, 28, 0, "6", "Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz", "Platform", "{}", 2, 4]
}

View File

@ -1,8 +0,0 @@
{
"i_idisk_0": ["2018-04-11 15:33:40.505214", "2018-05-28 17:52:20.141316", "NULL", 2, "6900d7af-5482-4999-823f-e3e6833663af", "/dev/sdb", 2064, "SSD", 457862, "PHWA620402ZU480FGN", "{"model_num": "INTEL SSDSC2BB480G6"}", 1, "NULL", "NULL", "N/A", "ata-INTEL_SSDSC2BB480G6_PHWA620402ZU480FGN", "/dev/disk/by-path/pci-0000:00:1f.2-ata-2.0", "wwn-0x55cd2e404c78a9ba", 311893],
"i_idisk_1": ["2018-04-11 15:33:40.523454", "2018-05-28 17:52:20.171622", "NULL", 3, "97314435-cb13-4531-91ea-f975971a6af6", "/dev/sdc", 2080, "SSD", 457862, "PHWA620402ZN480FGN", "{"model_num": "INTEL SSDSC2BB480G6"}", 1, "NULL", "NULL", "N/A", "ata-INTEL_SSDSC2BB480G6_PHWA620402ZN480FGN", "/dev/disk/by-path/pci-0000:00:1f.2-ata-3.0", "wwn-0x55cd2e404c78a9b8", 457860],
"i_idisk_2": ["2018-04-11 17:11:17.577572", "2018-05-28 17:52:11.404163", "NULL", 4, "2e899653-e838-4b83-ac74-fa26729184e4", "/dev/sda", 2048, "SSD", 457862, "PHWA620402W9480FGN", "{"model_num": "INTEL SSDSC2BB480G6", "stor_function": "rootfs"}", 2, "NULL", "NULL", "N/A", "ata-INTEL_SSDSC2BB480G6_PHWA620402W9480FGN", "/dev/disk/by-path/pci-0000:00:1f.2-ata-1.0", "wwn-0x55cd2e404c78a981", 0],
"i_idisk_3": ["2018-04-11 17:11:17.600735", "2018-05-28 17:52:11.438693", "NULL", 5, "756437b3-3c5e-42ae-b0a4-034def142e9e", "/dev/sdb", 2064, "SSD", 457862, "PHWA620402LS480FGN", "{"model_num": "INTEL SSDSC2BB480G6"}", 2, "NULL", "NULL", "N/A", "ata-INTEL_SSDSC2BB480G6_PHWA620402LS480FGN", "/dev/disk/by-path/pci-0000:00:1f.2-ata-2.0", "wwn-0x55cd2e404c78a95a", 311893],
"i_idisk_4": ["2018-04-11 17:11:17.620712", "2018-05-28 17:52:11.472483", "NULL", 6, "26546f25-b61c-4417-9237-a92a85d17cee", "/dev/sdc", 2080, "SSD", 457862, "PHWA6204034Y480FGN", "{"model_num": "INTEL SSDSC2BB480G6"}", 2, "NULL", "NULL", "N/A", "ata-INTEL_SSDSC2BB480G6_PHWA6204034Y480FGN", "/dev/disk/by-path/pci-0000:00:1f.2-ata-3.0", "wwn-0x55cd2e404c78a9fe", 457860],
"i_idisk_5": ["2018-04-11 15:33:40.484557", "2018-05-28 17:52:20.107967", "NULL", 1, "15df3dcb-9578-451e-9a71-16caa5ce8a7d", "/dev/sda", 2048, "SSD", 457862, "PHWA620402QH480FGN", "{"model_num": "INTEL SSDSC2BB480G6", "stor_function": "rootfs"}", 1, "NULL", "NULL", "N/A", "ata-INTEL_SSDSC2BB480G6_PHWA620402QH480FGN", "/dev/disk/by-path/pci-0000:00:1f.2-ata-1.0", "wwn-0x55cd2e404c78a961", 0]
}

View File

@ -1,6 +0,0 @@
{
"i_imemory_0": ["2018-04-11 17:11:16.991305", "2018-05-28 17:52:10.721885", "NULL", 3, "c998a671-4889-4347-876d-6375408db0f6", 65439, 47461, "NULL", false, "NULL", "NULL", "NULL", "NULL", "NULL", 2, 3, "NULL", "NULL", false, "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL"],
"i_imemory_1": ["2018-04-11 17:11:17.031842", "2018-05-28 17:52:10.747659", "NULL", 4, "923e3ddc-2f25-40f2-88fd-4d53d1476631", 65536, 50991, "NULL", false, "NULL", "NULL", "NULL", "NULL", "NULL", 2, 4, "NULL", "NULL", false, "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL"],
"i_imemory_2": ["2018-04-11 15:33:39.901965", "2018-05-28 17:52:19.445662", "NULL", 1, "65f2e8da-e996-4d0c-a3bc-569ac05677ee", 65436, 62735, "NULL", false, "NULL", "NULL", "NULL", "NULL", "NULL", 1, 1, "NULL", "NULL", false, "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL"],
"i_imemory_3": ["2018-04-11 15:33:39.931909", "2018-05-28 17:52:19.472705", "NULL", 2, "34761e76-7bf8-4e9f-9215-0080da865f74", 65536, 63129, "NULL", false, "NULL", "NULL", "NULL", "NULL", "NULL", 1, 2, "NULL", "NULL", false, "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL"]
}

View File

@ -1,6 +0,0 @@
{
"i_lvg_0": ["2018-04-11 15:55:19.436718", "2018-05-18 17:48:57.833773", "NULL", 2, "91741b12-3140-4ffb-b678-bbb8c9d757b5", "provisioned", "cinder-volumes", "1fTfXH-Pn34-Wchy-7WdQ-jmJN-UICy-wjyZeC", "wz--n-", 0, 1, 0, 1, 153050152960, 36490, 365, "{"lvm_type": "thin"}", 1],
"i_lvg_1": ["2018-04-11 17:11:18.393977", "2018-05-24 10:46:16.224453", "NULL", 3, "5ea70574-e071-4894-a34d-91f8c0081288", "provisioned", "cgts-vg", "89aN2C-rq62-Fjew-UiUL-BoB6-wSsK-Hmj1kB", "wz--n-", 0, 10, 0, 1, 458588422144, 13667, 8905, "NULL", 2],
"i_lvg_2": ["2018-04-11 17:34:06.646536", "2018-05-24 10:46:16.232289", "NULL", 4, "f61e7962-cc87-4c39-94fd-3757f9fd64b3", "provisioned", "cinder-volumes", "1fTfXH-Pn34-Wchy-7WdQ-jmJN-UICy-wjyZeC", "wz--n-", 0, 1, 0, 1, 153050152960, 36490, 365, "{"lvm_type": "thin"}", 2],
"i_lvg_3": ["2018-04-11 15:33:41.331137", "2018-05-24 10:46:16.877725", "NULL", 1, "60f640c6-f6a8-496b-ae91-cc5bc21e19a3", "provisioned", "cgts-vg", "kTaIxy-yDi7-Vdqe-q3DQ-3Rau-OwKo-pphwnZ", "wz--n-", 0, 10, 0, 1, 458588422144, 13667, 8905, "NULL", 1]
}

View File

@ -1,6 +0,0 @@
{
"i_node_0": ["2018-04-11 15:33:39.302808", "NULL", "NULL", 1, "6f02d1be-2a80-42f2-85e0-df75f0d3b56f", 0, "{}", 1],
"i_node_1": ["2018-04-11 15:33:39.443611", "NULL", "NULL", 2, "110e51f0-5772-4668-ac37-7e67e3eec452", 1, "{}", 1],
"i_node_2": ["2018-04-11 17:11:15.937057", "NULL", "NULL", 3, "ae2bb5e5-3460-433c-b71c-ca7e460a7b0b", 0, "{}", 2],
"i_node_3": ["2018-04-11 17:11:16.203203", "NULL", "NULL", 4, "e8d94718-bf32-4062-bd7f-9749b6b399b9", 1, "{}", 2]
}

View File

@ -1,3 +0,0 @@
{
"i_ntp_0": ["2018-04-11 15:32:39.938629", "2018-04-11 15:52:46.292322", "NULL", 1, "a631812f-baf1-48e4-8328-1cf4a8418572", "0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org", 1]
}

View File

@ -1,6 +0,0 @@
{
"i_pv_0": ["2018-04-11 15:55:20.977272", "2018-05-18 17:48:57.705941", "NULL", 2, "3c8827bd-0092-42cc-b93f-0fc8318e67cb", "provisioned", "partition", "c5b9f660-8036-43a0-92a2-4ec402693d84", "/dev/sdb1", "/dev/drbd4", "cinder-volumes", "c3QUOm-Ylhu-59GW-vmCO-Yo5x-ryYN-QU5jJg", 153050152960, 36490, 36125, "NULL", 1, 2, "/dev/disk/by-path/pci-0000:00:1f.2-ata-2.0-part1"],
"i_pv_1": ["2018-04-11 17:37:55.801387", "2018-05-24 10:46:16.031028", "NULL", 4, "e857a26a-7a0b-4142-a88d-e5160e1925a3", "provisioned", "partition", "4b20d2cc-9426-4f6c-aea2-f51949a089f0", "/dev/sdb1", "/dev/drbd4", "cinder-volumes", "c3QUOm-Ylhu-59GW-vmCO-Yo5x-ryYN-QU5jJg", 153050152960, 36490, 36125, "NULL", 2, 4, "/dev/disk/by-path/pci-0000:00:1f.2-ata-2.0-part1"],
"i_pv_2": ["2018-04-11 17:11:19.769983", "2018-05-24 10:46:16.084335", "NULL", 3, "cff94efe-dfd9-4cc5-ad1d-d3a80bc15045", "provisioned", "partition", "19fbbcc0-7e91-4bb7-9b96-928778459e39", "/dev/sda4", "/dev/sda4", "cgts-vg", "mAs5zK-jns8-D5L0-NYEX-Y1MU-x4sW-xVidzf", 458588422144, 13667, 4762, "NULL", 2, 3, "/dev/disk/by-path/pci-0000:00:1f.2-ata-1.0-part4"],
"i_pv_3": ["2018-04-11 15:33:42.632857", "2018-05-24 10:46:16.792272", "NULL", 1, "c12269c9-2df2-43e1-83c2-c4ff16e7f808", "provisioned", "partition", "69217878-28e7-4ac2-8d73-828692df069e", "/dev/sda4", "/dev/sda4", "cgts-vg", "JOcJrC-2EAP-OuW4-aUYI-Y2jJ-322X-YVmjfB", 458588422144, 13667, 4762, "NULL", 1, 1, "/dev/disk/by-path/pci-0000:00:1f.2-ata-1.0-part4"]
}

View File

@ -1,10 +0,0 @@
{
"i_sensorgroups_0": ["2018-04-11 17:04:14.386334", "2018-04-11 17:04:19.135812", "NULL", 1, "0ca13638-c6eb-4cb3-873c-1ebbd12dc579", 2, "server fans", "na", "discrete", "fan", "NULL", "enabled", "NULL", 120, "NULL", "debounce-1.v1", "ignore,log,alarm,reset,power-cycle", "ignore,log,alarm", "ignore,log,alarm", "ignore", "log", "alarm", false, "NULL"],
"i_sensorgroups_1": ["2018-04-11 17:04:14.429267", "2018-04-11 17:04:19.185008", "NULL", 2, "25e2959d-2ad8-41fa-92eb-8879d8edb72f", 2, "server temperature", "na", "discrete", "temperature", "NULL", "enabled", "NULL", 120, "NULL", "debounce-1.v1", "ignore,log,alarm,reset,power-cycle", "ignore,log,alarm", "ignore,log,alarm", "ignore", "log", "alarm", false, "NULL"],
"i_sensorgroups_2": ["2018-04-11 17:04:14.458081", "2018-04-11 17:04:19.231536", "NULL", 3, "7c55fb29-7bbb-48f6-bbe2-aa7499ccf927", 2, "server power", "na", "discrete", "power", "NULL", "enabled", "NULL", 120, "NULL", "debounce-1.v1", "ignore,log,alarm,reset,power-cycle", "ignore,log,alarm", "ignore,log,alarm", "ignore", "log", "alarm", false, "NULL"],
"i_sensorgroups_3": ["2018-04-11 17:04:14.48919", "2018-04-11 17:04:19.280021", "NULL", 4, "7d793c0e-a192-4da2-84b7-12dfb19a2681", 2, "server voltage", "na", "discrete", "voltage", "NULL", "enabled", "NULL", 120, "NULL", "debounce-1.v1", "ignore,log,alarm,reset,power-cycle", "ignore,log,alarm", "ignore,log,alarm", "ignore", "log", "alarm", false, "NULL"],
"i_sensorgroups_4": ["2018-04-11 17:10:26.993174", "2018-04-11 17:10:31.38618", "NULL", 5, "daded4c8-7f51-4423-aec4-2c4e8839bea6", 1, "server fans", "na", "discrete", "fan", "NULL", "enabled", "NULL", 120, "NULL", "debounce-1.v1", "ignore,log,alarm,reset,power-cycle", "ignore,log,alarm", "ignore,log,alarm", "ignore", "log", "alarm", false, "NULL"],
"i_sensorgroups_5": ["2018-04-11 17:10:27.033789", "2018-04-11 17:10:31.432569", "NULL", 6, "05757226-5c39-4cb0-9257-5e64aad01b21", 1, "server temperature", "na", "discrete", "temperature", "NULL", "enabled", "NULL", 120, "NULL", "debounce-1.v1", "ignore,log,alarm,reset,power-cycle", "ignore,log,alarm", "ignore,log,alarm", "ignore", "log", "alarm", false, "NULL"],
"i_sensorgroups_6": ["2018-04-11 17:10:27.065682", "2018-04-11 17:10:31.479503", "NULL", 7, "40af954c-9dbc-4507-af02-e80fcd8f4d2b", 1, "server power", "na", "discrete", "power", "NULL", "enabled", "NULL", 120, "NULL", "debounce-1.v1", "ignore,log,alarm,reset,power-cycle", "ignore,log,alarm", "ignore,log,alarm", "ignore", "log", "alarm", false, "NULL"],
"i_sensorgroups_7": ["2018-04-11 17:10:27.096627", "2018-04-11 17:10:31.527621", "NULL", 8, "bcb296bf-7afa-4f91-aba3-8bfc154b3732", 1, "server voltage", "na", "discrete", "voltage", "NULL", "enabled", "NULL", 120, "NULL", "debounce-1.v1", "ignore,log,alarm,reset,power-cycle", "ignore,log,alarm", "ignore,log,alarm", "ignore", "log", "alarm", false, "NULL"]
}

View File

@ -1,10 +0,0 @@
{
"i_sensorgroups_discrete_0": ["NULL", "NULL", "NULL", 1],
"i_sensorgroups_discrete_1": ["NULL", "NULL", "NULL", 2],
"i_sensorgroups_discrete_2": ["NULL", "NULL", "NULL", 3],
"i_sensorgroups_discrete_3": ["NULL", "NULL", "NULL", 4],
"i_sensorgroups_discrete_4": ["NULL", "NULL", "NULL", 5],
"i_sensorgroups_discrete_5": ["NULL", "NULL", "NULL", 6],
"i_sensorgroups_discrete_6": ["NULL", "NULL", "NULL", 7],
"i_sensorgroups_discrete_7": ["NULL", "NULL", "NULL", 8]
}

View File

@ -1,78 +0,0 @@
{
"i_sensors_0": ["2018-04-11 17:04:14.600754", "2018-05-26 13:05:24.079785", "NULL", 3, "5f11c358-7b43-4dc0-ab2e-03a02f9f9be4", 2, 2, "BB P2 VR Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_1": ["2018-04-11 17:04:14.93988", "2018-04-19 22:01:54.905968", "NULL", 14, "62dd6071-7c35-47fe-b1e6-16b7f69b5302", 2, 1, "System Fan 2A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_2": ["2018-04-11 17:04:14.973051", "2018-04-11 17:04:20.060486", "NULL", 15, "723d9c73-f7ba-4c98-8bb7-4ea0ff17dfb8", 2, 1, "System Fan 2B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_3": ["2018-04-11 17:04:15.002569", "2018-04-11 17:04:20.096687", "NULL", 16, "e62e8d41-6514-4779-b2e0-a1acc9e00154", 2, 1, "System Fan 3A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_4": ["2018-04-11 17:04:15.034786", "2018-04-11 17:04:20.1356", "NULL", 17, "4bbea0f8-afae-4f2a-acb2-31f48910279f", 2, 1, "System Fan 3B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_5": ["2018-04-11 17:04:15.064897", "2018-04-20 17:11:08.773152", "NULL", 18, "3a4b22ba-19a0-4e05-b4ce-1d4fe6028662", 2, 1, "System Fan 4A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_6": ["2018-04-11 17:04:15.094726", "2018-05-17 07:31:01.334506", "NULL", 19, "e5aead60-c0b7-4d27-bf6d-fe8c21631969", 2, 1, "System Fan 4B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_7": ["2018-04-11 17:04:15.12667", "2018-04-11 17:04:20.252069", "NULL", 20, "900abf46-a628-4ee3-b813-56ec3e362ad0", 2, 1, "System Fan 5A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_8": ["2018-04-11 17:04:15.156121", "2018-04-11 17:04:20.287889", "NULL", 21, "5b8b6b72-b962-4855-a7b5-496206aa0b51", 2, 1, "System Fan 5B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_9": ["2018-04-11 17:04:15.187865", "2018-05-25 16:30:01.423213", "NULL", 22, "e7438025-2093-4f68-8f54-9ba5cb02d2b9", 2, 1, "System Fan 6A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_10": ["2018-04-11 17:04:15.217113", "2018-04-11 17:04:20.361196", "NULL", 23, "a0f419b3-ca9b-49b7-a75d-785ff9214239", 2, 1, "System Fan 6B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_11": ["2018-04-11 17:04:15.246792", "2018-05-15 15:10:09.156488", "NULL", 24, "4a69701e-ff83-4e78-ae10-3b7d1b9ab554", 2, 3, "PS1 Input Power", "", "discrete", "power", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_12": ["2018-04-11 17:04:15.278232", "2018-04-11 17:04:20.433893", "NULL", 25, "4c59eabb-9d7f-4a0c-8bc1-cea292574eb4", 2, 3, "PS2 Input Power", "", "discrete", "power", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_13": ["2018-04-11 17:04:14.63257", "2018-04-20 15:44:09.553798", "NULL", 4, "657668e1-c501-4c56-92ea-d3a3e7e24c07", 2, 2, "Front Panel Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_14": ["2018-04-11 17:04:14.663359", "2018-04-11 17:04:19.644048", "NULL", 5, "ae6b4c22-1e0d-42c2-84bd-1b4758e194fc", 2, 2, "SSB Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_15": ["2018-04-11 17:04:14.693529", "2018-04-11 17:04:19.685896", "NULL", 6, "115a305a-48dd-4bb0-92e5-a7fd27b76322", 2, 2, "BB BMC Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_16": ["2018-04-11 17:04:14.725338", "2018-05-09 15:49:57.572135", "NULL", 7, "388f2216-2fb7-452c-ac17-f7fe88bf68b9", 2, 2, "BB Rt Rear Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_17": ["2018-04-11 17:04:14.754977", "2018-04-11 17:04:19.765549", "NULL", 8, "752f6a91-0bbe-46ca-86dc-09c83a7138a8", 2, 2, "BB Lft Rear Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_18": ["2018-04-11 17:04:14.78724", "2018-04-11 17:04:19.807569", "NULL", 9, "b4f8d1b0-392d-4936-8852-6ac28347cbb9", 2, 2, "HSBP 1 Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_19": ["2018-04-11 17:04:14.817054", "2018-04-17 14:16:54.605433", "NULL", 10, "a7cea2c5-724f-45bf-8eea-7cb42abad5d8", 2, 2, "Exit Air Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_20": ["2018-04-11 17:04:14.846833", "2018-04-11 17:04:19.890728", "NULL", 11, "4a995976-c38e-4e22-ba01-9b5af54fceb3", 2, 2, "LAN NIC Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_21": ["2018-04-11 17:04:14.879278", "2018-04-11 17:04:19.932643", "NULL", 12, "9923ab79-2835-4ad2-96cf-d06f9bc39249", 2, 1, "System Fan 1A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_22": ["2018-04-11 17:04:14.908651", "2018-04-11 17:04:19.974484", "NULL", 13, "e411d6d8-39c4-4a8a-b48e-dc3e98045b65", 2, 1, "System Fan 1B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_23": ["2018-04-11 17:04:15.435919", "2018-04-11 17:04:20.541937", "NULL", 28, "39b85102-1851-434f-987b-d2b5575b8425", 2, 2, "P1 Therm Margin", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_24": ["2018-04-11 17:04:15.606905", "2018-04-11 17:04:20.576219", "NULL", 29, "5ebb6c87-faf0-486b-a39e-c191940ce6b9", 2, 2, "P2 Therm Margin", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_25": ["2018-04-11 17:04:15.652366", "2018-04-11 17:04:20.713045", "NULL", 30, "0454aba5-323f-49a4-ac9c-5da00beb8617", 2, 2, "P1 DTS Therm Mgn", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_26": ["2018-04-11 17:04:15.681465", "2018-04-11 17:04:20.751894", "NULL", 31, "9b02da8e-e0df-4f0d-842e-b79010959bc4", 2, 2, "P2 DTS Therm Mgn", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_27": ["2018-04-11 17:04:15.708762", "2018-04-11 17:04:20.789767", "NULL", 32, "43280352-efd5-4f2b-bdbd-c32b9c12f85a", 2, 2, "DIMM Thrm Mrgn 1", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_28": ["2018-04-11 17:04:15.735988", "2018-04-20 14:35:30.290666", "NULL", 33, "830b307b-b966-452e-b0ea-bcb745eac276", 2, 2, "DIMM Thrm Mrgn 2", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_29": ["2018-04-11 17:04:15.764789", "2018-05-16 23:06:38.6583", "NULL", 34, "8386a066-6093-4456-bddf-bf329c49049c", 2, 2, "DIMM Thrm Mrgn 3", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_30": ["2018-04-11 17:04:15.792013", "2018-04-11 17:04:20.898968", "NULL", 35, "791a3a4b-fbec-4d3e-a19c-2a5db608124e", 2, 2, "DIMM Thrm Mrgn 4", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_31": ["2018-04-11 17:04:15.819033", "2018-04-20 12:56:13.679183", "NULL", 36, "44258b03-66e2-412a-8d6a-a14c226806c0", 2, 2, "Agg Therm Mgn 1", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_32": ["2018-04-11 17:04:15.848074", "2018-04-11 17:04:20.970614", "NULL", 37, "44fa26f8-1294-4ad2-b758-63d93554c084", 2, 4, "BB +12.0V", "", "discrete", "voltage", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_33": ["2018-04-11 17:04:15.875329", "2018-04-13 17:26:18.366883", "NULL", 38, "035f64d2-ccce-41c5-a52d-1583e8da4c42", 2, 4, "BB +3.3V Vbat", "", "discrete", "voltage", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_34": ["2018-04-11 17:04:15.308341", "2018-04-11 17:04:20.469101", "NULL", 26, "61a9fdea-e1d2-47c5-9c72-261b9643eb32", 2, 2, "PS1 Temperature", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_35": ["2018-04-11 17:04:15.338171", "2018-04-11 17:04:20.505303", "NULL", 27, "f32dffcb-370d-4777-b0ee-69491f370d14", 2, 2, "PS2 Temperature", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_36": ["2018-04-11 17:04:14.526636", "2018-04-11 17:04:19.482279", "NULL", 1, "eb8158a2-8753-4794-8293-31b0842a4df0", 2, 1, "System Airflow", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_37": ["2018-04-11 17:04:14.571048", "2018-04-19 21:31:07.626152", "NULL", 2, "30f964fb-a628-4db9-8b5f-7510c972d659", 2, 2, "BB P1 VR Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_38": ["2018-04-11 17:10:27.247246", "2018-04-11 17:10:32.023661", "NULL", 42, "65204732-c60e-4b11-aaca-16eefb5511c3", 1, 6, "Front Panel Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_39": ["2018-04-11 17:10:27.183025", "2018-04-20 14:24:06.487777", "NULL", 40, "a87187c1-e444-4222-8421-f72a1c7fc267", 1, 6, "BB P1 VR Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_40": ["2018-04-11 17:10:27.216074", "2018-04-11 17:10:31.984548", "NULL", 41, "68426933-d2f8-453e-a6fb-580b7ca49564", 1, 6, "BB P2 VR Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_41": ["2018-04-11 17:10:27.814992", "2018-04-11 17:10:32.720085", "NULL", 57, "2b9dc2a6-9f55-4047-aea8-ae0322c5901e", 1, 5, "System Fan 4B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_42": ["2018-04-11 17:10:27.842918", "2018-04-11 17:10:32.76191", "NULL", 58, "836827c9-8c08-411e-aec9-792e22242c5f", 1, 5, "System Fan 5A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_43": ["2018-04-11 17:10:27.870329", "2018-04-11 17:10:32.801248", "NULL", 59, "e3585d38-3d6a-43a1-9ac2-524cb66d9270", 1, 5, "System Fan 5B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_44": ["2018-04-11 17:10:27.897413", "2018-04-11 17:10:32.843358", "NULL", 60, "3cdf07f9-75f8-49ba-84dd-2e6d211e3fbb", 1, 5, "System Fan 6A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_45": ["2018-04-11 17:10:27.926138", "2018-04-11 17:10:32.889545", "NULL", 61, "85685f9a-4f1e-4485-81e0-9d98070d5d3d", 1, 5, "System Fan 6B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_46": ["2018-04-11 17:10:28.203746", "2018-04-24 23:52:43.292117", "NULL", 71, "91f183ee-78bc-49c7-80fe-1b7f3b279634", 1, 6, "DIMM Thrm Mrgn 2", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_47": ["2018-04-11 17:10:28.00976", "2018-04-11 17:10:32.962632", "NULL", 64, "7c182aee-cc8f-495d-90e9-16a4d7aca517", 1, 6, "PS1 Temperature", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_48": ["2018-04-11 17:10:28.065491", "2018-04-11 17:10:33.002018", "NULL", 66, "993eb172-61b7-44e2-a8dd-8f6a2cd592d0", 1, 6, "P1 Therm Margin", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_49": ["2018-04-11 17:10:28.092532", "2018-04-11 17:10:33.03736", "NULL", 67, "2e1b134d-9ebd-4753-bfec-36b578cd92d4", 1, 6, "P2 Therm Margin", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_50": ["2018-04-11 17:10:27.597845", "2018-05-10 15:19:50.481308", "NULL", 49, "9e601cb3-d679-4adc-9876-6a585a0d3fd0", 1, 6, "LAN NIC Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_51": ["2018-04-11 17:10:27.983247", "2018-04-11 17:10:30.879749", "NULL", 63, "282410b9-7821-4ddd-bfff-020ee520a6af", 1, 7, "PS2 Input Power", "", "discrete", "power", "offline", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_52": ["2018-04-11 17:10:27.569165", "2018-05-23 13:55:42.317944", "NULL", 48, "d079b50e-7490-447e-9cdc-7bc4f107e3b1", 1, 6, "Exit Air Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_53": ["2018-04-11 17:10:27.626006", "2018-04-11 17:10:32.433965", "NULL", 50, "a8bea8e2-dd68-4e6c-be0e-ce8fe55ee36e", 1, 5, "System Fan 1A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_54": ["2018-04-11 17:10:27.678969", "2018-04-11 17:10:32.515668", "NULL", 52, "dd1b76a7-80cd-430a-b904-26b3ae649f3f", 1, 5, "System Fan 2A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_55": ["2018-04-11 17:10:27.706466", "2018-04-11 17:10:32.557128", "NULL", 53, "d42deb73-53ae-4bec-8838-d8689ae76465", 1, 5, "System Fan 2B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_56": ["2018-04-11 17:10:27.733552", "2018-04-11 17:10:32.596914", "NULL", 54, "f376d950-0e4c-4e32-9167-35661251277a", 1, 5, "System Fan 3A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_57": ["2018-04-11 17:10:27.760459", "2018-04-11 17:10:32.639511", "NULL", 55, "6c9e9404-756f-4afe-b2c9-accfacdce194", 1, 5, "System Fan 3B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_58": ["2018-04-11 17:10:28.121637", "2018-04-25 16:57:44.765615", "NULL", 68, "53f2515f-f6f3-4552-a7db-637e211348a7", 1, 6, "P1 DTS Therm Mgn", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_59": ["2018-04-11 17:10:28.230467", "2018-04-11 17:10:33.314352", "NULL", 72, "e0f70986-e987-41ed-b5b5-bedc177d3ecd", 1, 6, "DIMM Thrm Mrgn 3", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_60": ["2018-04-11 17:10:28.258733", "2018-04-11 17:10:33.353305", "NULL", 73, "b03b3e6d-62a6-4388-b487-d7a8f5720083", 1, 6, "DIMM Thrm Mrgn 4", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_61": ["2018-04-11 17:10:28.285891", "2018-04-11 17:10:33.390338", "NULL", 74, "21f3a468-2241-4082-978c-8219c1d831c8", 1, 6, "Agg Therm Mgn 1", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_62": ["2018-04-11 17:10:28.312522", "2018-04-11 17:10:33.427364", "NULL", 75, "2a3400fb-ac02-4971-873f-fff9ad9a4c11", 1, 8, "BB +12.0V", "", "discrete", "voltage", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_63": ["2018-04-11 17:10:27.377646", "2018-05-17 15:52:02.161537", "NULL", 46, "201f5abf-45ec-444d-a9bc-e7df9136592f", 1, 6, "BB Lft Rear Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_64": ["2018-04-11 17:10:27.652276", "2018-04-25 00:17:15.575419", "NULL", 51, "fe69b9bb-d3e2-4413-86b7-5bf927ebceb2", 1, 5, "System Fan 1B", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_65": ["2018-04-11 17:10:28.14837", "2018-04-12 05:46:12.904773", "NULL", 69, "80840676-1d8b-4a49-904c-82c9a35559c1", 1, 6, "P2 DTS Therm Mgn", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_66": ["2018-04-11 17:10:27.953486", "2018-04-20 17:27:21.579132", "NULL", 62, "dbb73a93-181c-4c16-acd1-3fc203e39500", 1, 7, "PS1 Input Power", "", "discrete", "power", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_67": ["2018-04-11 17:10:27.2787", "2018-04-20 15:44:38.910954", "NULL", 43, "db650813-1ff1-40fa-9692-3914736cf096", 1, 6, "SSB Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_68": ["2018-04-11 17:10:27.138332", "2018-04-11 17:10:31.896869", "NULL", 39, "dd8ceb13-5381-47a4-ad4e-64ac7e1fef52", 1, 5, "System Airflow", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_69": ["2018-04-11 17:10:28.036932", "2018-04-11 17:10:30.951974", "NULL", 65, "60f86fa2-f189-4362-b6b4-1755ff09ab0b", 1, 6, "PS2 Temperature", "", "discrete", "temperature", "offline", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_70": ["2018-04-11 17:10:28.175366", "2018-04-11 17:10:33.239162", "NULL", 70, "e9b0be11-826c-46af-9d30-abbc7208b949", 1, 6, "DIMM Thrm Mrgn 1", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_71": ["2018-04-11 17:10:27.312214", "2018-04-11 17:10:32.184471", "NULL", 44, "8dba862c-eab6-4a47-b6ac-fbb7bc69ebe8", 1, 6, "BB BMC Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_72": ["2018-04-11 17:10:27.343777", "2018-04-11 17:10:32.226564", "NULL", 45, "96bd1740-314c-4931-92fc-db60501aaa13", 1, 6, "BB Rt Rear Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_73": ["2018-04-11 17:10:28.340885", "2018-05-18 13:51:03.37858", "NULL", 76, "111ea70f-19fa-469c-a378-237c76bb3596", 1, 8, "BB +3.3V Vbat", "", "discrete", "voltage", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_74": ["2018-04-11 17:10:27.408029", "2018-04-11 17:10:32.30996", "NULL", 47, "2d23817b-d6bb-4257-9586-1693f8c1b45c", 1, 6, "HSBP 1 Temp", "", "discrete", "temperature", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"],
"i_sensors_75": ["2018-04-11 17:10:27.788518", "2018-04-11 17:10:32.678189", "NULL", 56, "9023191e-b785-43e8-9e09-684755ae276f", 1, 5, "System Fan 4A", "", "discrete", "fan", "ok", "enabled", "NULL", "NULL", 0, "debounce-1.v1", "ignore", "log", "alarm", false, "NULL"]
}

View File

@ -1,78 +0,0 @@
{
"i_sensors_discrete_0": ["NULL", "NULL", "NULL", 1],
"i_sensors_discrete_1": ["NULL", "NULL", "NULL", 2],
"i_sensors_discrete_2": ["NULL", "NULL", "NULL", 3],
"i_sensors_discrete_3": ["NULL", "NULL", "NULL", 4],
"i_sensors_discrete_4": ["NULL", "NULL", "NULL", 5],
"i_sensors_discrete_5": ["NULL", "NULL", "NULL", 6],
"i_sensors_discrete_6": ["NULL", "NULL", "NULL", 7],
"i_sensors_discrete_7": ["NULL", "NULL", "NULL", 8],
"i_sensors_discrete_8": ["NULL", "NULL", "NULL", 9],
"i_sensors_discrete_9": ["NULL", "NULL", "NULL", 10],
"i_sensors_discrete_10": ["NULL", "NULL", "NULL", 11],
"i_sensors_discrete_11": ["NULL", "NULL", "NULL", 12],
"i_sensors_discrete_12": ["NULL", "NULL", "NULL", 13],
"i_sensors_discrete_13": ["NULL", "NULL", "NULL", 14],
"i_sensors_discrete_14": ["NULL", "NULL", "NULL", 15],
"i_sensors_discrete_15": ["NULL", "NULL", "NULL", 16],
"i_sensors_discrete_16": ["NULL", "NULL", "NULL", 17],
"i_sensors_discrete_17": ["NULL", "NULL", "NULL", 18],
"i_sensors_discrete_18": ["NULL", "NULL", "NULL", 19],
"i_sensors_discrete_19": ["NULL", "NULL", "NULL", 20],
"i_sensors_discrete_20": ["NULL", "NULL", "NULL", 21],
"i_sensors_discrete_21": ["NULL", "NULL", "NULL", 22],
"i_sensors_discrete_22": ["NULL", "NULL", "NULL", 23],
"i_sensors_discrete_23": ["NULL", "NULL", "NULL", 24],
"i_sensors_discrete_24": ["NULL", "NULL", "NULL", 25],
"i_sensors_discrete_25": ["NULL", "NULL", "NULL", 26],
"i_sensors_discrete_26": ["NULL", "NULL", "NULL", 27],
"i_sensors_discrete_27": ["NULL", "NULL", "NULL", 28],
"i_sensors_discrete_28": ["NULL", "NULL", "NULL", 29],
"i_sensors_discrete_29": ["NULL", "NULL", "NULL", 30],
"i_sensors_discrete_30": ["NULL", "NULL", "NULL", 31],
"i_sensors_discrete_31": ["NULL", "NULL", "NULL", 32],
"i_sensors_discrete_32": ["NULL", "NULL", "NULL", 33],
"i_sensors_discrete_33": ["NULL", "NULL", "NULL", 34],
"i_sensors_discrete_34": ["NULL", "NULL", "NULL", 35],
"i_sensors_discrete_35": ["NULL", "NULL", "NULL", 36],
"i_sensors_discrete_36": ["NULL", "NULL", "NULL", 37],
"i_sensors_discrete_37": ["NULL", "NULL", "NULL", 38],
"i_sensors_discrete_38": ["NULL", "NULL", "NULL", 39],
"i_sensors_discrete_39": ["NULL", "NULL", "NULL", 40],
"i_sensors_discrete_40": ["NULL", "NULL", "NULL", 41],
"i_sensors_discrete_41": ["NULL", "NULL", "NULL", 42],
"i_sensors_discrete_42": ["NULL", "NULL", "NULL", 43],
"i_sensors_discrete_43": ["NULL", "NULL", "NULL", 44],
"i_sensors_discrete_44": ["NULL", "NULL", "NULL", 45],
"i_sensors_discrete_45": ["NULL", "NULL", "NULL", 46],
"i_sensors_discrete_46": ["NULL", "NULL", "NULL", 47],
"i_sensors_discrete_47": ["NULL", "NULL", "NULL", 48],
"i_sensors_discrete_48": ["NULL", "NULL", "NULL", 49],
"i_sensors_discrete_49": ["NULL", "NULL", "NULL", 50],
"i_sensors_discrete_50": ["NULL", "NULL", "NULL", 51],
"i_sensors_discrete_51": ["NULL", "NULL", "NULL", 52],
"i_sensors_discrete_52": ["NULL", "NULL", "NULL", 53],
"i_sensors_discrete_53": ["NULL", "NULL", "NULL", 54],
"i_sensors_discrete_54": ["NULL", "NULL", "NULL", 55],
"i_sensors_discrete_55": ["NULL", "NULL", "NULL", 56],
"i_sensors_discrete_56": ["NULL", "NULL", "NULL", 57],
"i_sensors_discrete_57": ["NULL", "NULL", "NULL", 58],
"i_sensors_discrete_58": ["NULL", "NULL", "NULL", 59],
"i_sensors_discrete_59": ["NULL", "NULL", "NULL", 60],
"i_sensors_discrete_60": ["NULL", "NULL", "NULL", 61],
"i_sensors_discrete_61": ["NULL", "NULL", "NULL", 62],
"i_sensors_discrete_62": ["NULL", "NULL", "NULL", 63],
"i_sensors_discrete_63": ["NULL", "NULL", "NULL", 64],
"i_sensors_discrete_64": ["NULL", "NULL", "NULL", 65],
"i_sensors_discrete_65": ["NULL", "NULL", "NULL", 66],
"i_sensors_discrete_66": ["NULL", "NULL", "NULL", 67],
"i_sensors_discrete_67": ["NULL", "NULL", "NULL", 68],
"i_sensors_discrete_68": ["NULL", "NULL", "NULL", 69],
"i_sensors_discrete_69": ["NULL", "NULL", "NULL", 70],
"i_sensors_discrete_70": ["NULL", "NULL", "NULL", 71],
"i_sensors_discrete_71": ["NULL", "NULL", "NULL", 72],
"i_sensors_discrete_72": ["NULL", "NULL", "NULL", 73],
"i_sensors_discrete_73": ["NULL", "NULL", "NULL", 74],
"i_sensors_discrete_74": ["NULL", "NULL", "NULL", 75],
"i_sensors_discrete_75": ["NULL", "NULL", "NULL", 76]
}

View File

@ -1,3 +0,0 @@
{
"i_system_0": ["2018-04-11 15:32:39.919912", "2018-05-16 21:04:53.427686", "NULL", 1, "51ecfab9-400e-41c9-b679-2c6ba37f1099", "Distributed-Cloud-Lab", "System_Controller: setup by lab_setup.sh", "{"https_enabled": false, "vswitch_type": "avs", "region_config": false, "sdn_enabled": false, "shared_services": "[]"}", "NULL", "Ottawa-PheonixLab-Aisle_3-Rack_A", 72, "18.03", "Standard", "duplex", "UTC", "standard", "RegionOne", "services", "systemcontroller"]
}

View File

@ -1,3 +0,0 @@
{
"i_user_0": ["2018-04-11 15:32:39.923168", "2018-04-11 15:44:42.153281", "NULL", 1, "a631812f-baf1-48e4-8328-1cf4a8418572", "c4decacb98ead527b91afeb0cec1e634", "NULL", "NULL", "NULL", 1, "$6$1sSJbEL3$opfSrh4/pzPW8TdNeTm2CAkxGXTAbPUU08SgpWtdbbH.o1bW3LIYpNRmStbfCuItvlQ9Coujo.ktxFjFFkgey/", 45]
}

View File

@ -1,20 +0,0 @@
{
"interfaces_0": ["2018-04-11 15:33:38.540065", "NULL", "NULL", 2, "2fc56a3e-2e1a-4830-b8fd-a508b5f558a4", 1, "ethernet", "enp3s0f3", "NULL", "NULL", "NULL", "NULL"],
"interfaces_1": ["2018-04-11 15:33:38.588309", "NULL", "NULL", 3, "96dd1a3b-a3b6-459a-8f4a-14f63e77430e", 1, "ethernet", "ens785f0", "NULL", "NULL", "NULL", "NULL"],
"interfaces_2": ["2018-04-11 15:33:38.63678", "NULL", "NULL", 4, "a471bb81-c7ea-492f-a82f-9bdab34164e2", 1, "ethernet", "ens785f1", "NULL", "NULL", "NULL", "NULL"],
"interfaces_3": ["2018-04-11 15:33:38.685778", "NULL", "NULL", 5, "421b0159-211a-42ba-b09a-69b8e6415947", 1, "ethernet", "ens785f2", "NULL", "NULL", "NULL", "NULL"],
"interfaces_4": ["2018-04-11 15:33:38.734062", "NULL", "NULL", 6, "03cbcf8a-5c78-490e-9b12-f38e66429ff4", 1, "ethernet", "ens785f3", "NULL", "NULL", "NULL", "NULL"],
"interfaces_5": ["2018-04-11 15:33:38.830606", "NULL", "NULL", 8, "496fb63d-d649-41cf-b445-d74de1931ab8", 1, "ethernet", "ens801f1", "NULL", "NULL", "NULL", "NULL"],
"interfaces_6": ["2018-04-11 15:33:38.782463", "2018-04-11 15:34:00.614247", "NULL", 7, "e0057166-5d4c-4673-8c5a-0fd940be6875", 1, "ethernet", "ens801f0", "pxeboot", 0, "NULL", "NULL"],
"interfaces_7": ["2018-04-11 15:34:01.126331", "NULL", "NULL", 9, "6935a406-570b-457d-8400-aad4f13d2a18", 1, "vlan", "ens801f0.133", "mgmt", 0, "NULL", "NULL"],
"interfaces_8": ["2018-04-11 15:33:38.471122", "2018-04-11 15:34:02.197169", "NULL", 1, "b78b4c99-197b-4078-be85-9273eed33c56", 1, "ethernet", "eno1", "oam", 0, "NULL", "NULL"],
"interfaces_9": ["2018-04-11 17:11:14.92829", "NULL", "NULL", 11, "c09bba5d-69ed-47b4-9553-b598f0b2280d", 2, "ethernet", "enp3s0f3", "NULL", "NULL", "NULL", "NULL"],
"interfaces_10": ["2018-04-11 17:11:14.988133", "NULL", "NULL", 12, "a276f617-fe32-4b2d-8099-1db845b10904", 2, "ethernet", "ens785f0", "NULL", "NULL", "NULL", "NULL"],
"interfaces_11": ["2018-04-11 17:11:15.048478", "NULL", "NULL", 13, "c9951c01-f4e8-4d51-8c7e-fe1d80eeffb2", 2, "ethernet", "ens785f1", "NULL", "NULL", "NULL", "NULL"],
"interfaces_12": ["2018-04-11 17:11:15.106918", "NULL", "NULL", 14, "9069e9c5-47d1-43b1-a252-dd1d912e07a9", 2, "ethernet", "ens785f2", "NULL", "NULL", "NULL", "NULL"],
"interfaces_13": ["2018-04-11 17:11:15.165828", "NULL", "NULL", 15, "a84358ca-5ac0-4667-8521-9cb38590023f", 2, "ethernet", "ens785f3", "NULL", "NULL", "NULL", "NULL"],
"interfaces_14": ["2018-04-11 17:11:15.224274", "NULL", "NULL", 16, "44f27af2-a8fa-4e5a-acf6-66020dcefb5c", 2, "ethernet", "pxeboot0", "pxeboot", "NULL", "NULL", "NULL"],
"interfaces_15": ["2018-04-11 17:11:15.270051", "NULL", "NULL", 17, "bbb9e208-1f0a-4193-8233-f9a1cbb23437", 2, "vlan", "mgmt0", "mgmt", "NULL", "NULL", "NULL"],
"interfaces_16": ["2018-04-11 17:11:15.476387", "NULL", "NULL", 18, "2cb578f6-e693-449f-9c1e-1d038e8d3694", 2, "ethernet", "ens801f1", "NULL", "NULL", "NULL", "NULL"],
"interfaces_17": ["2018-04-11 17:11:14.858777", "2018-04-11 17:36:11.31691", "NULL", 10, "11c0cc6f-ab99-47cb-8396-1bf0e8448a7a", 2, "ethernet", "oam0", "oam", 0, "NULL", "NULL"]
}

View File

@ -1,4 +0,0 @@
{
"interfaces_to_interfaces_0": [7, 9],
"interfaces_to_interfaces_1": [16, 17]
}

View File

@ -1,18 +0,0 @@
{
"lldp_agents_0": ["2018-04-11 15:51:26.318956", "NULL", "NULL", 1, "010de782-c80a-456c-87ee-598d4045aa2d", 1, 3, "rx=enabled,tx=enabled"],
"lldp_agents_1": ["2018-04-11 15:51:26.684301", "NULL", "NULL", 2, "14c8db49-f511-4684-9e9a-f3f97a026418", 1, 4, "rx=enabled,tx=enabled"],
"lldp_agents_2": ["2018-04-11 15:51:27.615927", "NULL", "NULL", 3, "f728b9a8-5c54-4830-90e6-f0654b4a28de", 1, 5, "rx=enabled,tx=enabled"],
"lldp_agents_3": ["2018-04-11 15:51:27.865353", "NULL", "NULL", 4, "5b5c8007-8488-43a4-b733-2c22b1447c28", 1, 1, "rx=enabled,tx=enabled"],
"lldp_agents_4": ["2018-04-11 15:51:28.22479", "NULL", "NULL", 5, "e765fb39-cb4d-40a8-bc16-b267f1cd4895", 1, 6, "rx=enabled,tx=enabled"],
"lldp_agents_5": ["2018-04-11 15:51:28.473039", "NULL", "NULL", 6, "13249556-4e8a-4771-a0e4-3532e9c074f9", 1, 7, "rx=enabled,tx=enabled"],
"lldp_agents_6": ["2018-04-11 15:51:28.746624", "NULL", "NULL", 7, "6cad1c0c-62dd-42b8-a152-35555c28f8fb", 1, 2, "rx=enabled,tx=enabled"],
"lldp_agents_7": ["2018-04-11 15:51:29.000971", "NULL", "NULL", 8, "cb8a7854-bd10-432b-a3e9-223470004697", 1, 8, "rx=enabled,tx=enabled"],
"lldp_agents_8": ["2018-04-11 17:17:13.981681", "NULL", "NULL", 9, "0610d1f4-a06b-45d3-a7eb-2b39a55f0231", 2, 11, "rx=enabled,tx=enabled"],
"lldp_agents_9": ["2018-04-11 17:17:14.2313", "NULL", "NULL", 10, "c7572fa4-3d0d-4601-9299-997d882c199b", 2, 12, "rx=enabled,tx=enabled"],
"lldp_agents_10": ["2018-04-11 17:17:14.476722", "NULL", "NULL", 11, "61c040f2-e063-4cf7-b061-13a283526cfb", 2, 13, "rx=enabled,tx=enabled"],
"lldp_agents_11": ["2018-04-11 17:17:14.726512", "NULL", "NULL", 12, "791576d5-94e2-4703-8def-67f1518de530", 2, 9, "rx=enabled,tx=enabled"],
"lldp_agents_12": ["2018-04-11 17:17:15.074982", "NULL", "NULL", 13, "126db5e7-a3f4-4a62-906f-104cc883e756", 2, 14, "rx=enabled,tx=enabled"],
"lldp_agents_13": ["2018-04-11 17:17:15.321967", "NULL", "NULL", 14, "1d19c57b-cdc7-4e17-90de-9782909d0c6f", 2, 15, "rx=enabled,tx=enabled"],
"lldp_agents_14": ["2018-04-11 17:17:15.59029", "NULL", "NULL", 15, "7aed93cf-cbd5-44e9-8844-3024c19f6730", 2, 10, "rx=enabled,tx=enabled"],
"lldp_agents_15": ["2018-04-11 17:17:15.846391", "NULL", "NULL", 16, "0df37546-9fed-4ccb-a1c1-a97f44bb4311", 2, 16, "rx=enabled,tx=enabled"]
}

View File

@ -1,6 +0,0 @@
{
"lldp_neighbours_0": ["2018-04-17 15:29:20.259636", "NULL", "NULL", 5, "75144a26-7909-406b-998d-178fffe4d67d", 1, 1, "e8:ba:70:1e:f7:80,Gi1/0/19"],
"lldp_neighbours_1": ["2018-04-17 17:44:28.200456", "NULL", "NULL", 6, "35f9f127-d51c-407b-ae85-fe27b8792621", 2, 9, "e8:ba:70:1e:f7:80,Gi1/0/20"],
"lldp_neighbours_2": ["2018-05-18 17:54:58.480967", "NULL", "NULL", 10, "9f20939f-a95f-42dc-ab19-8a122e9973e1", 1, 7, "54:ab:3a:05:7f:5e,yow-cgcs-wildcat-90, mgmt0+infra0"],
"lldp_neighbours_3": ["2018-05-18 17:55:30.142751", "NULL", "NULL", 12, "1f7ade25-9566-4efe-a3e7-5bcdad5a79de", 2, 15, "54:ab:3a:05:7f:5e,yow-cgcs-wildcat-91, mgmt0+infra0"]
}

Some files were not shown because too many files have changed in this diff Show More