Merge branch 'master' into f/centos8
Change-Id: I68ff5ebde3231c8d0a932a398b8d30980ae8e9f0 Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
This commit is contained in:
commit
04b49dd093
110
.zuul.yaml
110
.zuul.yaml
|
@ -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=
|
||||
|
|
|
@ -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
|
||||
----------------
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
# distributedcloud
|
||||
distributedcloud-dccommon
|
||||
distributedcloud-dcmanager
|
||||
distributedcloud-dcorch
|
||||
distributedcloud-dcdbsync
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
SRC_DIR="."
|
||||
COPY_LIST="$FILES_BASE/*"
|
||||
|
||||
TIS_PATCH_VER=0
|
||||
TIS_PATCH_VER=1
|
||||
|
|
|
@ -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*
|
||||
|
|
|
@ -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.
|
||||
|
|
@ -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()
|
|
@ -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}
|
|
@ -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.
|
||||
"""
|
|
@ -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
|
|
@ -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')
|
|
@ -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__)
|
||||
|
|
@ -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
|
|
@ -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
|
|
@ -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__)
|
||||
|
|
@ -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,
|
|
@ -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")
|
|
@ -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()
|
|
@ -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()
|
|
@ -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'])
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
})
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"migrate_version_0": ["dcmanager", "/usr/lib/python2.7/site-packages/dcmanager/db/sqlalchemy/migrate_repo", 1]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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", "{}"]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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>>"]
|
||||
}
|
|
@ -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"}"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"}]}"]
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"trust_role_0": ["8955b2c1a40749b49f2bf21cc4b0acb4", "9fe2ff9ee4384b1894a90878d3e92bab"],
|
||||
"trust_role_1": ["6562be68284e4cc6a8832714569e180b", "9fe2ff9ee4384b1894a90878d3e92bab"],
|
||||
"trust_role_2": ["e6c80f658ebb4ace9020c31865c0245b", "9fe2ff9ee4384b1894a90878d3e92bab"],
|
||||
"trust_role_3": ["0e67dc152a514c15827da1dbeb4c84cf", "9fe2ff9ee4384b1894a90878d3e92bab"]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"interfaces_to_interfaces_0": [7, 9],
|
||||
"interfaces_to_interfaces_1": [16, 17]
|
||||
}
|
|
@ -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"]
|
||||
}
|
|
@ -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
Loading…
Reference in New Issue