Dell MD3060 JBOD

Here is what it looks like to have a Dell MD3060 JBOD Chassis attached to a an Ubuntu box

 

root@sata01:~# lsscsi
[0:0:0:0] cd/dvd PLDS DVD+-RW DS-8A3S HD51 /dev/sr0
[2:2:0:0] disk DELL PERC H700 2.10 /dev/sda
[3:0:0:0] disk iDRAC LCDRIVE 0323 /dev/sdaf
[4:0:0:0] cd/dvd iDRAC Virtual CD 0323 /dev/sr1
[4:0:0:1] disk iDRAC Virtual Floppy 0323 /dev/sdag
[5:0:31:0] enclosu DELL MD3060e 039D -
[5:0:32:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdah
[5:0:33:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdai
[5:0:34:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdaj
[5:0:35:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdak
[5:0:36:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdal
[5:0:37:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdam
[5:0:38:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdan
[5:0:39:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdao
[5:0:40:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdap
[5:0:41:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdb
[5:0:42:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdc
[5:0:43:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdd
[5:0:44:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sde
[5:0:45:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdf
[5:0:46:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdg
[5:0:47:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdaq
[5:0:48:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdh
[5:0:49:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdi
[5:0:50:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdj
[5:0:51:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdk
[5:0:52:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdl
[5:0:53:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdm
[5:0:54:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdar
[5:0:55:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdn
[5:0:56:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdo
[5:0:57:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdp
[5:0:58:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdq
[5:0:59:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdr
[5:0:60:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sds
[5:0:61:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdt

To list only the SATA disks filter on ” t(SSP)”
root@sata01:~# for i in /dev/bsg/expand* ; do smp_discover $i | grep " t(SSP)" | wc -l; done
12
12
0
0
0
6

root@sata01:~# for i in /dev/bsg/expand* ; do smp_discover $i; done
 phy 0:D:attached:[500003983832bef2:00 t(SSP)] 6 Gbps
 phy 1:D:attached:[50000398383814f2:00 t(SSP)] 6 Gbps
 phy 2:D:attached:[50000398382a56fa:00 t(SSP)] 6 Gbps
 phy 3:D:attached:[500003983832bf02:00 t(SSP)] 6 Gbps
 phy 4:D:attached:[50000398382a573a:00 t(SSP)] 6 Gbps
 phy 5:D:attached:[500003983833e472:00 t(SSP)] 6 Gbps
 phy 6:D:attached:[500003983832bece:00 t(SSP)] 6 Gbps
 phy 7:D:attached:[5000039848013812:00 t(SSP)] 6 Gbps
 phy 8:D:attached:[5000039848013816:00 t(SSP)] 6 Gbps
 phy 9:D:attached:[5000039848013916:00 t(SSP)] 6 Gbps
 phy 10:D:attached:[50000398480137f6:00 t(SSP)] 6 Gbps
 phy 11:D:attached:[500003984801380a:00 t(SSP)] 6 Gbps
 phy 12:S:attached:[50080e548c83503f:12 exp t(SMP)] 6 Gbps
 phy 13:S:attached:[50080e548c83503f:13 exp t(SMP)] 6 Gbps
 phy 14:S:attached:[50080e548c83503f:14 exp t(SMP)] 6 Gbps
 phy 15:S:attached:[50080e548c83503f:15 exp t(SMP)] 6 Gbps
 phy 16:D:attached:[50080e54a55db03d:00 V i(SSP+SMP) t(SSP)] 6 Gbps
 phy 0:D:attached:[500003984801382a:00 t(SSP)] 6 Gbps
 phy 1:D:attached:[5000039848013722:00 t(SSP)] 6 Gbps
 phy 2:D:attached:[500003983833c74a:00 t(SSP)] 6 Gbps
 phy 3:D:attached:[500003983838a4aa:00 t(SSP)] 6 Gbps
 phy 4:D:attached:[50000398382a572a:00 t(SSP)] 6 Gbps
 phy 5:D:attached:[500003983838a4a2:00 t(SSP)] 6 Gbps
 phy 6:D:attached:[500003984801381e:00 t(SSP)] 6 Gbps
 phy 7:D:attached:[500003984801381a:00 t(SSP)] 6 Gbps
 phy 8:D:attached:[500003983830e1ca:00 t(SSP)] 6 Gbps
 phy 9:D:attached:[50000398480137de:00 t(SSP)] 6 Gbps
 phy 10:D:attached:[50000398382a56ce:00 t(SSP)] 6 Gbps
 phy 11:D:attached:[500003983830e1d2:00 t(SSP)] 6 Gbps
 phy 12:S:attached:[50080e548c83503f:16 exp t(SMP)] 6 Gbps
 phy 13:S:attached:[50080e548c83503f:17 exp t(SMP)] 6 Gbps
 phy 14:S:attached:[50080e548c83503f:18 exp t(SMP)] 6 Gbps
 phy 15:S:attached:[50080e548c83503f:19 exp t(SMP)] 6 Gbps
 phy 16:D:attached:[50080e54a54ef03d:00 V i(SSP+SMP) t(SSP)] 6 Gbps
 phy 0:U:attached:[50080e54a567703f:12 exp t(SMP)] 6 Gbps
 phy 1:U:attached:[50080e54a567703f:13 exp t(SMP)] 6 Gbps
 phy 2:U:attached:[50080e54a567703f:14 exp t(SMP)] 6 Gbps
 phy 3:U:attached:[50080e54a567703f:15 exp t(SMP)] 6 Gbps
 phy 4:U:attached:[50080e54a57b703f:12 exp t(SMP)] 6 Gbps
 phy 5:U:attached:[50080e54a57b703f:13 exp t(SMP)] 6 Gbps
 phy 6:U:attached:[50080e54a57b703f:14 exp t(SMP)] 6 Gbps
 phy 7:U:attached:[50080e54a57b703f:15 exp t(SMP)] 6 Gbps
 phy 8:U:attached:[50080e54a56b303f:12 exp t(SMP)] 6 Gbps
 phy 9:U:attached:[50080e54a56b303f:13 exp t(SMP)] 6 Gbps
 phy 10:U:attached:[50080e54a56b303f:14 exp t(SMP)] 6 Gbps
 phy 11:U:attached:[50080e54a56b303f:15 exp t(SMP)] 6 Gbps
 phy 12:U:attached:[50080e54a55db03f:12 exp t(SMP)] 6 Gbps
 phy 13:U:attached:[50080e54a55db03f:13 exp t(SMP)] 6 Gbps
 phy 14:U:attached:[50080e54a55db03f:14 exp t(SMP)] 6 Gbps
 phy 15:U:attached:[50080e54a55db03f:15 exp t(SMP)] 6 Gbps
 phy 16:U:attached:[50080e54a54ef03f:12 exp t(SMP)] 6 Gbps
 phy 17:U:attached:[50080e54a54ef03f:13 exp t(SMP)] 6 Gbps
 phy 18:U:attached:[50080e54a54ef03f:14 exp t(SMP)] 6 Gbps
 phy 19:U:attached:[50080e54a54ef03f:15 exp t(SMP)] 6 Gbps
 phy 20:U:attached:[51866da05f99eb00:07 i(SSP+STP+SMP)] 6 Gbps
 phy 21:U:attached:[51866da05f99eb00:06 i(SSP+STP+SMP)] 6 Gbps
 phy 22:U:attached:[51866da05f99eb00:05 i(SSP+STP+SMP)] 6 Gbps
 phy 23:U:attached:[51866da05f99eb00:04 i(SSP+STP+SMP)] 6 Gbps
 phy 32:D:attached:[50080e548c83503d:00 V i(SSP+SMP) t(SSP)] 6 Gbps
 phy 12:S:attached:[50080e548c83503f:00 exp t(SMP)] 6 Gbps
 phy 13:S:attached:[50080e548c83503f:01 exp t(SMP)] 6 Gbps
 phy 14:S:attached:[50080e548c83503f:02 exp t(SMP)] 6 Gbps
 phy 15:S:attached:[50080e548c83503f:03 exp t(SMP)] 6 Gbps
 phy 16:D:attached:[50080e54a567703d:00 V i(SSP+SMP) t(SSP)] 6 Gbps
 phy 12:S:attached:[50080e548c83503f:04 exp t(SMP)] 6 Gbps
 phy 13:S:attached:[50080e548c83503f:05 exp t(SMP)] 6 Gbps
 phy 14:S:attached:[50080e548c83503f:06 exp t(SMP)] 6 Gbps
 phy 15:S:attached:[50080e548c83503f:07 exp t(SMP)] 6 Gbps
 phy 16:D:attached:[50080e54a57b703d:00 V i(SSP+SMP) t(SSP)] 6 Gbps
 phy 0:D:attached:[500003983832be2e:00 t(SSP)] 6 Gbps
 phy 1:D:attached:[5000039848013936:00 t(SSP)] 6 Gbps
 phy 2:D:attached:[500003983832be8e:00 t(SSP)] 6 Gbps
 phy 3:D:attached:[500003983830e1da:00 t(SSP)] 6 Gbps
 phy 4:D:attached:[500003984801391e:00 t(SSP)] 6 Gbps
 phy 5:D:attached:[500003983832be76:00 t(SSP)] 6 Gbps
 phy 12:S:attached:[50080e548c83503f:08 exp t(SMP)] 6 Gbps
 phy 13:S:attached:[50080e548c83503f:09 exp t(SMP)] 6 Gbps
 phy 14:S:attached:[50080e548c83503f:10 exp t(SMP)] 6 Gbps
 phy 15:S:attached:[50080e548c83503f:11 exp t(SMP)] 6 Gbps
 phy 16:D:attached:[50080e54a56b303d:00 V i(SSP+SMP) t(SSP)] 6 Gbps

 

What info can we get form Udev
root@sata01:~# udevadm info -q path -n /dev/sdar
/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54/5:0:54:0/block/sdar
root@edpk-sata01:~# udevadm info -a -p /devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54/5:0:54:0/block/sdar
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

looking at device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54/5:0:54:0/block/sdar':
 KERNEL=="sdar"
 SUBSYSTEM=="block"
 DRIVER==""
 ATTR{alignment_offset}=="0"
 ATTR{capability}=="50"
 ATTR{discard_alignment}=="0"
 ATTR{events}==""
 ATTR{events_async}==""
 ATTR{events_poll_msecs}=="-1"
 ATTR{ext_range}=="256"
 ATTR{inflight}==" 0 0"
 ATTR{range}=="16"
 ATTR{removable}=="0"
 ATTR{ro}=="0"
 ATTR{size}=="7814037168"
 ATTR{stat}==" 32963 1619 7699048 104236 7501 779 3505528 328772 0 240440 433100"

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54/5:0:54:0':
 KERNELS=="5:0:54:0"
 SUBSYSTEMS=="scsi"
 DRIVERS=="sd"
 ATTRS{device_blocked}=="0"
 ATTRS{device_busy}=="0"
 ATTRS{dh_state}=="detached"
 ATTRS{eh_timeout}=="10"
 ATTRS{evt_capacity_change_reported}=="0"
 ATTRS{evt_inquiry_change_reported}=="0"
 ATTRS{evt_lun_change_reported}=="0"
 ATTRS{evt_media_change}=="0"
 ATTRS{evt_mode_parameter_change_reported}=="0"
 ATTRS{evt_soft_threshold_reached}=="0"
 ATTRS{inquiry}==""
 ATTRS{iocounterbits}=="32"
 ATTRS{iodone_cnt}=="0xa12e"
 ATTRS{ioerr_cnt}=="0x0"
 ATTRS{iorequest_cnt}=="0xa12e"
 ATTRS{model}=="MG04SCA40ENY "
 ATTRS{queue_depth}=="254"
 ATTRS{queue_ramp_up_period}=="120000"
 ATTRS{queue_type}=="simple"
 ATTRS{rev}=="EG02"
 ATTRS{sas_address}=="0x50000398382a572a"
 ATTRS{sas_device_handle}=="0x0026"
 ATTRS{scsi_level}=="7"
 ATTRS{state}=="running"
 ATTRS{timeout}=="30"
 ATTRS{type}=="0"
 ATTRS{vendor}=="TOSHIBA "
 ATTRS{vpd_pg80}==""
 ATTRS{vpd_pg83}==""

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54':
 KERNELS=="target5:0:54"
 SUBSYSTEMS=="scsi"
 DRIVERS==""

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4':
 KERNELS=="end_device-5:11:4"
 SUBSYSTEMS==""
 DRIVERS==""

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4':
 KERNELS=="port-5:11:4"
 SUBSYSTEMS==""
 DRIVERS==""

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11':
 KERNELS=="expander-5:11"
 SUBSYSTEMS==""
 DRIVERS==""

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5':
 KERNELS=="port-5:6:5"
 SUBSYSTEMS==""
 DRIVERS==""

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6':
 KERNELS=="expander-5:6"
 SUBSYSTEMS==""
 DRIVERS==""

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1':
 KERNELS=="port-5:1"
 SUBSYSTEMS==""
 DRIVERS==""

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5':
 KERNELS=="host5"
 SUBSYSTEMS=="scsi"
 DRIVERS==""

looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0':
 KERNELS=="0000:04:00.0"
 SUBSYSTEMS=="pci"
 DRIVERS=="mpt3sas"
 ATTRS{broken_parity_status}=="0"
 ATTRS{class}=="0x010700"
 ATTRS{config}==""
 ATTRS{consistent_dma_mask_bits}=="64"
 ATTRS{d3cold_allowed}=="1"
 ATTRS{device}=="0x0072"
 ATTRS{dma_mask_bits}=="64"
 ATTRS{driver_override}=="(null)"
 ATTRS{enable}=="1"
 ATTRS{irq}=="35"
 ATTRS{local_cpulist}=="0-23"
 ATTRS{local_cpus}=="00ffffff"
 ATTRS{msi_bus}=="1"
 ATTRS{numa_node}=="-1"
 ATTRS{subsystem_device}=="0x1f1c"
 ATTRS{subsystem_vendor}=="0x1028"
 ATTRS{vendor}=="0x1000"
 ATTRS{vpd}==""

looking at parent device '/devices/pci0000:00/0000:00:07.0':
 KERNELS=="0000:00:07.0"
 SUBSYSTEMS=="pci"
 DRIVERS=="pcieport"
 ATTRS{broken_parity_status}=="0"
 ATTRS{class}=="0x060400"
 ATTRS{consistent_dma_mask_bits}=="32"
 ATTRS{d3cold_allowed}=="0"
 ATTRS{device}=="0x340e"
 ATTRS{dma_mask_bits}=="32"
 ATTRS{driver_override}=="(null)"
 ATTRS{enable}=="1"
 ATTRS{irq}=="27"
 ATTRS{local_cpulist}=="0-23"
 ATTRS{local_cpus}=="00ffffff"
 ATTRS{msi_bus}=="1"
 ATTRS{numa_node}=="-1"
 ATTRS{subsystem_device}=="0x0236"
 ATTRS{subsystem_vendor}=="0x1028"
 ATTRS{vendor}=="0x8086"

looking at parent device '/devices/pci0000:00':
 KERNELS=="pci0000:00"
 SUBSYSTEMS==""
 DRIVERS==""

Seems to crash the machine 10% of the time it’s run

udevadm info -a -p $(udevadm info -q path -n /dev/sdl) | grep sas

LibreNMS – Ignore junk ports

I’m sick of seeing alerts in LibreNMS about ports on my virtual hosts I don’t care about. So i’ll set them all to ignore

I’ll also update the rule to prevent the alerts coming trough if a new tap port gets created

 

update librenms.ports set ports.ignore='1' where ports.ifName like 'tap%' or ports.ifName like 'tbr%' or ports.ifName like 'vxlan%' or ports.ifName like 'virbr

Kolla commands

Build just one container and send it to a private registry

kolla-build -b ubuntu kolla-toolbox --registry localhost:443 --push

Build one thing and publish it to a custom namespace

sudo kolla-build horizon -b ubuntu --push --registry m2-kolla-deploy:443 -n cory

Push a single ‘project’ out – Unconfirmed

kolla-ansible deploy keystone -i all-in-one

 

kolla-ansible prechecks -e 'ansible_become=true' -e 'ansible_become_method=sudo' -i all-in-one

 

Private registry with self signed certificates

root@m3-kolla-dockerhost1:/etc/docker/certs.d/m2-kolla-deploy:443# ll
total 16
drwxr-xr-x 2 root root 4096 Dec 14 16:02 ./
drwxr-xr-x 3 root root 4096 Dec 14 16:02 ../
-rw-r--r-- 1 root root 757 Dec 14 15:04 client.cert
-rw-r--r-- 1 root root 887 Dec 14 15:04 client.key

root@m3-kolla-dockerhost1:~# cat /etc/docker/daemon.json
{
"insecure-registries" : ["m2-kolla-deploy:443"]
}

Starting the registry container

sudo docker run -d --restart=always --name registry2 -v /opt/registry/:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.nexulon.crt -e REGISTRY_HTTP_TLS_KEY=/certs/registry.nexulon.key -p 443:443 registry:2

 

Build with overrides

sudo kolla-build kolla-toolbox -b ubuntu --push --registry m2-kolla-deploy:443 -n cory --template-override kolla-toolbox_override.j2

cory@m3-kolla-deploy:~$ cat kolla-toolbox_override.j2
{% extends parent_template %}

# Horizon
{% set kolla_toolbox_packages_append = ['python-openstackclient'] %}

Openstack Queens – Nova: Error creating new key pair

Ina fresh install of Oepnstack Queens I was having an issue generating new keypairs after a reboot f the Nova node.

The following error was logged in nova-api.log

A simple restart of the nova-api service resolved this issue for me

 

 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi [req-78070ded-b2cd-4e1a-8a51-8c082b50e0a4 f2800cf724264988aab44aa21bf1dae4 0d280551fd45414eace8211d6ac154c0 - default 252047b9b8504489a11d9230a8f9bf55] Unexpected exception in API method: InternalError: Unknown OpenSSL error. This error is commonly encountered when another library is not cleaning up the OpenSSL error stack. If you are using cryptography with another library that uses OpenSSL try disabling it before reporting a bug. Otherwise please file an issue at https://github.com/pyca/cryptography/issues with information on how to reproduce this. ([_OpenSSLErrorWithText(code=2147897744L, lib=128, func=101, reason=400, reason_text='error:80065190:lib(128):osrandom_rand_bytes:getrandom() initialization failed.'), _OpenSSLErrorWithText(code=67637251L, lib=4, func=129, reason=3, reason_text='error:04081003:rsa routines:RSA_BUILTIN_KEYGEN:BN lib')])
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi Traceback (most recent call last):
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 788, in wrapped
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi return f(*args, **kwargs)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/api/validation/__init__.py", line 108, in wrapper
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi return func(*args, **kwargs)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/api/validation/__init__.py", line 108, in wrapper
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi return func(*args, **kwargs)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/api/openstack/compute/keypairs.py", line 112, in create
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi return self._create(req, body)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/api/openstack/compute/keypairs.py", line 133, in _create
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi context, user_id, name, key_type)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/exception_wrapper.py", line 76, in wrapped
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi function_name, call_dict, binary)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi self.force_reraise()
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi six.reraise(self.type_, self.value, self.tb)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/exception_wrapper.py", line 67, in wrapped
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi return f(self, context, *args, **kw)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 5287, in create_key_pair
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi user_id, key_type)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 5322, in _generate_key_pair
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi return crypto.generate_key_pair()
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/nova/crypto.py", line 132, in generate_key_pair
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi key = paramiko.RSAKey.generate(bits)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/paramiko/rsakey.py", line 156, in generate
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi public_exponent=65537, key_size=bits, backend=default_backend()
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py", line 119, in generate_private_key
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi return backend.generate_rsa_private_key(public_exponent, key_size)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 362, in generate_rsa_private_key
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi self.openssl_assert(res == 1)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 106, in openssl_assert
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi return binding._openssl_assert(self._lib, ok)
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/bindings/openssl/binding.py", line 75, in _openssl_assert
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi errors_with_text
 2018-05-02 13:25:41.101 1351 ERROR nova.api.openstack.wsgi InternalError: Unknown OpenSSL error. This error is commonly encountered when another library is not cleaning up the OpenSSL error stack. If you are using cryptography with another library that uses OpenSSL try disabling it before reporting a bug. Otherwise please file an issue at https://github.com/pyca/cryptography/issues with information on how to reproduce this. ([_OpenSSLErrorWithText(code=2147897744L, lib=128, func=101, reason=400, reason_text='error:80065190:lib(128):osrandom_rand_bytes:getrandom() initialization failed.'), _OpenSSLErrorWithText(code=67637251L, lib=4, func=129, reason=3, reason_text='error:04081003:rsa routines:RSA_BUILTIN_KEYGEN:BN lib')])