Changeset - ceb51ff23ae3
[Not reviewed]
0 9 2
Branko Majic (branko) - 6 years ago 2018-08-01 15:55:02
branko@majic.rs
MAR-132: Added support to xmpp_server role for Debian 9 (Stretch):

- Updated tests to include Debian 9 in testing. Existing private keys
are reused where possible (since most of the naming is identical
between the machines with jessie/stretch).
- Updated invocation of sendxmpp in tests as workaround for
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=854210.
- Updated testing of imported keys to accomodate differences between
gpg/gpg2 (used by apt-key in Jessie/Stretch).
11 files changed with 269 insertions and 26 deletions:
0 comments (0 inline, 0 general)
docs/rolereference.rst
Show inline comments
 
@@ -934,6 +934,7 @@ Distribution compatibility
 
Role is compatible with the following distributions:
 

	
 
- Debian 8 (Jessie)
 
- Debian 9 (Stretch)
 

	
 

	
 
Examples
roles/web_server/molecule/default/tests/test_client.py
Show inline comments
 
@@ -4,7 +4,7 @@ import testinfra.utils.ansible_runner
 

	
 

	
 
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
 
    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['client1'])
 
    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['clients'])
 

	
 

	
 
def test_connectivity(host):
 
@@ -14,8 +14,8 @@ def test_connectivity(host):
 

	
 
    with host.sudo():
 

	
 
        for server in ["parameters-mandatory-jessie64",
 
                       "parameters-optional-jessie64"]:
 
        for server in ["parameters-mandatory",
 
                       "parameters-optional"]:
 
            # HTTP, HTTPS.
 
            for port in [80, 443]:
 

	
roles/xmpp_server/molecule/default/group_vars/parameters-optional.yml
Show inline comments
 
@@ -22,7 +22,7 @@ ca_certificates:
 

	
 
# backup_client
 
enable_backup: true
 
backup_client_username: bak-parameters-optional
 
backup_client_username: "bak-parameters-optional-{{ ansible_distribution_release }}"
 
backup_encryption_key: "{{ lookup('file', 'tests/data/gnupg/parameters-optional.asc') }}"
 
backup_server: backup-server
 
backup_server_host_ssh_public_keys:
roles/xmpp_server/molecule/default/host_vars/ldap-server.yml
Show inline comments
 
@@ -40,6 +40,9 @@ backup_host_ssh_private_keys:
 
  ed25519: "{{ lookup('file', 'tests/data/ssh/server_ed25519') }}"
 
  ecdsa: "{{ lookup('file', 'tests/data/ssh/server_ecdsa') }}"
 
backup_clients:
 
  - server: parameters-optional
 
  - server: parameters-optional-jessie
 
    ip: 10.31.127.31
 
    public_key: "{{ lookup('file', 'tests/data/ssh/parameters-optional.pub') }}"
 
  - server: parameters-optional-stretch
 
    ip: 10.31.127.33
 
    public_key: "{{ lookup('file', 'tests/data/ssh/parameters-optional.pub') }}"
roles/xmpp_server/molecule/default/molecule.yml
Show inline comments
 
@@ -24,7 +24,10 @@ platforms:
 
        network_name: private_network
 
        type: static
 

	
 
  - name: client1
 
  - name: client-jessie
 
    groups:
 
      - clients
 
      - jessie
 
    box: debian/contrib-jessie64
 
    memory: 256
 
    cpus: 1
 
@@ -34,9 +37,23 @@ platforms:
 
        network_name: private_network
 
        type: static
 

	
 
  - name: client-stretch
 
    groups:
 
      - clients
 
      - stretch
 
    box: debian/contrib-stretch64
 
    memory: 256
 
    cpus: 1
 
    interfaces:
 
      - auto_config: true
 
        ip: 10.31.127.21
 
        network_name: private_network
 
        type: static
 

	
 
  - name: parameters-mandatory-jessie64.domain1
 
    groups:
 
      - parameters-mandatory
 
      - jessie
 
    box: debian/contrib-jessie64
 
    memory: 512
 
    cpus: 1
 
@@ -49,6 +66,7 @@ platforms:
 
  - name: parameters-optional-jessie64
 
    groups:
 
      - parameters-optional
 
      - jessie
 
    box: debian/contrib-jessie64
 
    memory: 512
 
    cpus: 1
 
@@ -58,6 +76,32 @@ platforms:
 
        network_name: private_network
 
        type: static
 

	
 
  - name: parameters-mandatory-stretch64.domain1
 
    groups:
 
      - parameters-mandatory
 
      - stretch
 
    box: debian/contrib-stretch64
 
    memory: 512
 
    cpus: 1
 
    interfaces:
 
      - auto_config: true
 
        ip: 10.31.127.32
 
        network_name: private_network
 
        type: static
 

	
 
  - name: parameters-optional-stretch64
 
    groups:
 
      - parameters-optional
 
      - stretch
 
    box: debian/contrib-stretch64
 
    memory: 512
 
    cpus: 1
 
    interfaces:
 
      - auto_config: true
 
        ip: 10.31.127.33
 
        network_name: private_network
 
        type: static
 

	
 
provisioner:
 
  name: ansible
 
  config_options:
roles/xmpp_server/molecule/default/prepare.yml
Show inline comments
 
@@ -18,6 +18,10 @@
 
        update_cache: true
 
      changed_when: false
 

	
 
- hosts: jessie
 
  become: true
 
  tasks:
 

	
 
    - name: Set-up the hosts file
 
      lineinfile:
 
        path: /etc/hosts
 
@@ -29,11 +33,30 @@
 
        state: present
 
      with_dict:
 
        10.31.127.10: "ldap-server backup-server"
 
        10.31.127.20: "client1"
 
        10.31.127.20: "client-jessie"
 
        10.31.127.30: "parameters-mandatory domain1 proxy.domain1 conference.domain1"
 
        10.31.127.31: "parameters-optional domain2 proxy.domain2 conference.domain2 domain3 proxy.domain3 conference.domain3"
 

	
 
- hosts: client1
 
- hosts: stretch
 
  become: true
 
  tasks:
 

	
 
    - name: Set-up the hosts file
 
      lineinfile:
 
        path: /etc/hosts
 
        regexp: "^{{ item.key }}"
 
        line: "{{ item.key }} {{ item.value }}"
 
        owner: root
 
        group: root
 
        mode: 0644
 
        state: present
 
      with_dict:
 
        10.31.127.10: "ldap-server backup-server"
 
        10.31.127.21: "client-stretch"
 
        10.31.127.32: "parameters-mandatory domain1 proxy.domain1 conference.domain1"
 
        10.31.127.33: "parameters-optional domain2 proxy.domain2 conference.domain2 domain3 proxy.domain3 conference.domain3"
 

	
 
- hosts: clients
 
  become: true
 
  tasks:
 

	
roles/xmpp_server/molecule/default/tests/data/x509/parameters-mandatory-stretch64.domain1_xmpp.key
Show inline comments
 
new file 100644
 
Public Key Info:
 
	Public Key Algorithm: RSA
 
	Key Security Level: Medium (2048 bits)
 

	
 
modulus:
 
	00:cb:3a:33:e2:e0:03:f5:4a:cd:a3:18:b4:1e:52:6a
 
	e1:3d:90:2c:0b:e1:fd:a2:ac:1c:c8:f6:50:8b:43:ae
 
	d1:7f:ab:d5:17:93:a2:91:7d:5c:10:72:67:e0:71:24
 
	86:f6:de:ba:30:ed:93:0d:e2:ba:40:36:4c:37:99:c3
 
	91:41:d0:bf:1c:45:ba:52:b0:72:2e:5a:39:62:07:b1
 
	f2:ee:71:0f:c1:f0:1d:72:a7:db:96:9d:1f:3a:33:50
 
	6a:f1:33:c1:88:7d:ae:0d:ac:dd:06:b1:be:09:3b:50
 
	26:b8:2c:14:ba:1b:1f:04:70:9d:5f:62:97:23:a8:d8
 
	d8:1d:9f:86:f7:ae:77:9c:82:5f:d7:07:81:77:fa:80
 
	5f:8c:4d:51:c2:1d:c7:8e:a4:98:5f:ff:31:f9:02:6e
 
	62:80:02:14:5d:f6:9d:54:f7:c5:9c:db:a6:b7:82:e0
 
	67:64:69:50:cb:db:c9:6c:c7:2f:1e:be:ea:fd:c2:b3
 
	8b:6c:a8:88:88:90:82:07:a4:3e:09:d0:64:da:53:cb
 
	c9:0e:57:c8:77:fa:ad:aa:4b:2f:64:99:63:b3:ea:e4
 
	31:18:a8:62:d6:c8:f8:3e:34:6f:7a:9a:a5:64:83:ae
 
	1a:69:ec:e7:6a:a1:3a:dd:03:df:07:0e:56:29:bd:83
 
	ad:
 

	
 
public exponent:
 
	01:00:01:
 

	
 
private exponent:
 
	31:3b:df:78:16:37:3f:44:a8:fe:db:2c:3f:b0:4d:ce
 
	55:80:c8:fa:f3:fb:e3:5d:f8:f7:42:9d:0e:b0:0d:f9
 
	19:0a:02:ec:dc:4a:65:1e:ce:9f:f9:67:6a:fb:5e:13
 
	08:59:bb:17:c1:66:7f:d5:ae:b3:81:b4:03:40:50:1d
 
	af:a9:27:b3:6c:bd:0f:ed:49:2c:2b:95:7d:47:49:f8
 
	05:86:04:80:42:70:8f:e7:54:8e:6f:70:32:44:5e:36
 
	1a:4b:24:96:b1:83:ea:32:37:b5:b8:77:c6:7a:c5:17
 
	2c:45:19:9c:60:97:aa:16:b2:39:7a:84:0d:12:89:bd
 
	9b:0a:d2:9d:03:13:1c:88:01:c4:b2:d5:e3:63:e5:fd
 
	68:c4:0f:76:e8:da:a8:e9:12:c4:2f:f4:14:7e:73:7f
 
	4c:9b:5c:30:c2:8e:7a:7d:b8:ab:12:49:fb:f3:27:60
 
	c0:74:36:ac:b8:08:e6:d7:44:66:f8:06:c9:75:c9:db
 
	54:1c:8c:09:87:bf:d0:90:cf:45:55:52:bf:f7:7f:83
 
	53:43:5a:b4:e7:98:02:3f:30:be:3a:e7:17:a4:af:d3
 
	a4:08:aa:db:d8:fd:c9:6d:40:99:9f:2a:f5:08:97:17
 
	32:17:5a:e6:20:1c:d3:c4:2a:ad:6d:0e:9c:04:38:41
 
	
 

	
 
prime1:
 
	00:ed:c3:c1:34:90:09:ae:d5:20:0a:8d:eb:4e:97:b8
 
	f3:33:9d:16:23:4c:59:f7:07:67:fe:c9:a7:06:72:83
 
	78:a8:59:3f:68:66:0e:be:21:dd:25:1a:c3:4d:6b:c1
 
	20:49:68:84:ee:8e:9c:ec:36:6f:d9:15:89:c1:4b:2f
 
	32:67:a5:ca:9a:6b:0d:28:6f:34:dc:68:9c:d4:8e:79
 
	eb:d8:b5:8d:5d:81:f4:38:0e:0d:c0:6d:e2:bc:8e:0f
 
	e1:70:2c:e7:d1:66:06:ca:ab:7e:70:67:e4:85:89:53
 
	2c:85:1d:85:a2:5e:e0:03:87:21:ec:fa:f5:41:2f:40
 
	31:
 

	
 
prime2:
 
	00:da:d0:58:9f:2f:00:ba:2c:c8:eb:ec:4c:8d:5b:99
 
	03:76:cc:e5:c6:e5:a7:8b:a7:83:76:56:07:39:45:f5
 
	0b:16:9c:e7:46:2c:22:17:21:72:3b:f3:4e:9a:44:37
 
	30:eb:f0:17:00:cf:a3:8c:1f:a2:3a:a4:5e:84:ff:ce
 
	c2:04:ee:9d:e8:26:d2:4e:1d:20:6d:01:3b:4d:db:62
 
	bf:ac:8d:93:9a:85:ee:6a:7e:ff:77:c5:31:2d:17:57
 
	f9:5d:6f:be:79:b0:e4:6a:9a:04:32:76:a8:7d:04:1f
 
	d2:83:2b:b1:16:96:d4:3b:8d:a1:22:24:57:22:d8:b8
 
	3d:
 

	
 
coefficient:
 
	30:7f:c6:82:a7:bd:58:f8:b4:d2:b8:64:93:df:76:d9
 
	c4:8e:d5:41:b6:6c:06:12:e8:08:de:9b:21:ce:d4:02
 
	35:29:06:0f:b5:41:da:ad:b4:39:bf:4e:b9:47:06:7b
 
	4d:ac:c0:f8:5b:ff:a4:11:62:30:5d:3a:76:ee:3c:e6
 
	aa:87:11:a6:2b:41:e3:f3:37:8b:89:3b:65:30:2b:0e
 
	79:fe:7e:6f:5d:c7:a7:db:89:14:4d:fd:b0:90:a4:71
 
	af:5a:6c:5a:6e:1e:1d:0e:95:c2:c0:40:47:bc:c0:41
 
	f3:93:cd:8f:08:4e:96:49:a3:6d:0d:d0:a9:58:18:21
 
	
 

	
 
exp1:
 
	68:c8:46:53:35:cf:2e:9f:7a:39:6c:85:f0:e2:e8:7d
 
	35:97:da:f3:bf:68:3e:77:a3:1b:24:1f:59:b6:09:be
 
	98:e2:8c:11:24:39:07:0d:c1:79:e2:ab:83:69:23:79
 
	69:20:88:c4:e1:50:c2:c0:d2:d5:e6:aa:08:e7:6b:6b
 
	59:46:35:5d:8c:24:06:57:cc:01:fe:90:6f:14:43:22
 
	ef:24:43:a2:9b:ec:d6:ef:4a:9c:2d:51:29:2b:aa:4f
 
	fd:b1:ac:90:19:d8:90:64:b7:9a:2e:0f:05:d2:99:37
 
	1b:8b:01:23:a7:90:2d:bd:d5:f3:ac:3d:7d:76:a7:61
 
	
 

	
 
exp2:
 
	19:11:4d:55:cf:38:b2:1b:77:59:2f:d5:05:4c:bd:16
 
	dc:81:54:c1:98:85:bd:46:0f:95:7a:fd:90:de:26:d8
 
	82:5a:af:54:26:b2:31:1c:2f:ce:16:6d:a6:d6:b1:cb
 
	f4:fb:a8:66:fb:62:ad:26:e2:9a:fd:41:a6:d2:f7:88
 
	da:af:cb:7f:51:13:3e:c7:af:73:4d:74:d1:d2:94:59
 
	89:17:1f:15:d0:ca:23:81:31:1b:33:88:12:b6:5d:e9
 
	bf:7e:91:bf:b7:38:33:ce:39:34:de:cb:26:a7:56:4d
 
	f3:a1:09:c4:a0:ba:e7:a7:ae:12:0f:3f:bc:4a:3f:b1
 
	
 

	
 

	
 
Public Key PIN:
 
	pin-sha256:soVlq2xfLjafw5ZjlJCZFSns2WrcPBaR+BnM7V2C0TQ=
 
Public Key ID:
 
	sha256:b28565ab6c5f2e369fc396639490991529ecd96adc3c1691f819cced5d82d134
 
	sha1:d12e59a22820766e8e49fa380e6e9367fd5c37f7
 

	
 
-----BEGIN RSA PRIVATE KEY-----
 
MIIEogIBAAKCAQEAyzoz4uAD9UrNoxi0HlJq4T2QLAvh/aKsHMj2UItDrtF/q9UX
 
k6KRfVwQcmfgcSSG9t66MO2TDeK6QDZMN5nDkUHQvxxFulKwci5aOWIHsfLucQ/B
 
8B1yp9uWnR86M1Bq8TPBiH2uDazdBrG+CTtQJrgsFLobHwRwnV9ilyOo2Ngdn4b3
 
rnecgl/XB4F3+oBfjE1Rwh3HjqSYX/8x+QJuYoACFF32nVT3xZzbpreC4GdkaVDL
 
28lsxy8evur9wrOLbKiIiJCCB6Q+CdBk2lPLyQ5XyHf6rapLL2SZY7Pq5DEYqGLW
 
yPg+NG96mqVkg64aaeznaqE63QPfBw5WKb2DrQIDAQABAoIBADE733gWNz9EqP7b
 
LD+wTc5VgMj68/vjXfj3Qp0OsA35GQoC7NxKZR7On/lnavteEwhZuxfBZn/VrrOB
 
tANAUB2vqSezbL0P7UksK5V9R0n4BYYEgEJwj+dUjm9wMkReNhpLJJaxg+oyN7W4
 
d8Z6xRcsRRmcYJeqFrI5eoQNEom9mwrSnQMTHIgBxLLV42Pl/WjED3bo2qjpEsQv
 
9BR+c39Mm1wwwo56fbirEkn78ydgwHQ2rLgI5tdEZvgGyXXJ21QcjAmHv9CQz0VV
 
Ur/3f4NTQ1q055gCPzC+OucXpK/TpAiq29j9yW1AmZ8q9QiXFzIXWuYgHNPEKq1t
 
DpwEOEECgYEA7cPBNJAJrtUgCo3rTpe48zOdFiNMWfcHZ/7JpwZyg3ioWT9oZg6+
 
Id0lGsNNa8EgSWiE7o6c7DZv2RWJwUsvMmelypprDShvNNxonNSOeevYtY1dgfQ4
 
Dg3AbeK8jg/hcCzn0WYGyqt+cGfkhYlTLIUdhaJe4AOHIez69UEvQDECgYEA2tBY
 
ny8AuizI6+xMjVuZA3bM5cblp4ung3ZWBzlF9QsWnOdGLCIXIXI7806aRDcw6/AX
 
AM+jjB+iOqRehP/OwgTunegm0k4dIG0BO03bYr+sjZOahe5qfv93xTEtF1f5XW++
 
ebDkapoEMnaofQQf0oMrsRaW1DuNoSIkVyLYuD0CgYBoyEZTNc8un3o5bIXw4uh9
 
NZfa879oPnejGyQfWbYJvpjijBEkOQcNwXniq4NpI3lpIIjE4VDCwNLV5qoI52tr
 
WUY1XYwkBlfMAf6QbxRDIu8kQ6Kb7NbvSpwtUSkrqk/9sayQGdiQZLeaLg8F0pk3
 
G4sBI6eQLb3V86w9fXanYQKBgBkRTVXPOLIbd1kv1QVMvRbcgVTBmIW9Rg+Vev2Q
 
3ibYglqvVCayMRwvzhZtptaxy/T7qGb7Yq0m4pr9QabS94jar8t/URM+x69zTXTR
 
0pRZiRcfFdDKI4ExGzOIErZd6b9+kb+3ODPOOTTeyyanVk3zoQnEoLrnp64SDz+8
 
Sj+xAoGAMH/Ggqe9WPi00rhkk9922cSO1UG2bAYS6AjemyHO1AI1KQYPtUHarbQ5
 
v065RwZ7TazA+Fv/pBFiMF06du485qqHEaYrQePzN4uJO2UwKw55/n5vXcen24kU
 
Tf2wkKRxr1psWm4eHQ6VwsBAR7zAQfOTzY8ITpZJo20N0KlYGCE=
 
-----END RSA PRIVATE KEY-----
roles/xmpp_server/molecule/default/tests/data/x509/parameters-mandatory-stretch64.domain1_xmpp.pem
Show inline comments
 
new file 100644
 
-----BEGIN CERTIFICATE-----
 
MIIENjCCAp6gAwIBAgIMWWSpYRreX/eZfcxHMA0GCSqGSIb3DQEBCwUAMEgxIjAg
 
BgNVBAMTGUV4YW1wbGUgSW5jLiBUZXN0IFNpdGUgQ0ExFTATBgNVBAoTDEV4YW1w
 
bGUgSW5jLjELMAkGA1UEBhMCU0UwHhcNMTcwNzExMTAzMzA1WhcNMjcwNzA5MTAz
 
MzA1WjBGMSAwHgYDVQQDExdFeGFtcGUgSW5jLiBYTVBQIFNlcnZlcjEVMBMGA1UE
 
ChMMRXhhbXBsZSBJbmMuMQswCQYDVQQGEwJTRTCCASIwDQYJKoZIhvcNAQEBBQAD
 
ggEPADCCAQoCggEBAMs6M+LgA/VKzaMYtB5SauE9kCwL4f2irBzI9lCLQ67Rf6vV
 
F5OikX1cEHJn4HEkhvbeujDtkw3iukA2TDeZw5FB0L8cRbpSsHIuWjliB7Hy7nEP
 
wfAdcqfblp0fOjNQavEzwYh9rg2s3Qaxvgk7UCa4LBS6Gx8EcJ1fYpcjqNjYHZ+G
 
9653nIJf1weBd/qAX4xNUcIdx46kmF//MfkCbmKAAhRd9p1U98Wc26a3guBnZGlQ
 
y9vJbMcvHr7q/cKzi2yoiIiQggekPgnQZNpTy8kOV8h3+q2qSy9kmWOz6uQxGKhi
 
1sj4PjRvepqlZIOuGmns52qhOt0D3wcOVim9g60CAwEAAaOBoTCBnjAMBgNVHRMB
 
Af8EAjAAMCgGA1UdEQQhMB+CFHBhcmFtZXRlcnMtbWFuZGF0b3J5ggdkb21haW4x
 
MBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYE
 
FNEuWaIoIHZujkn6OA5uk2f9XDf3MB8GA1UdIwQYMBaAFDdr25McaX6STGvfc4X4
 
hJZZgU9rMA0GCSqGSIb3DQEBCwUAA4IBgQBshtMmQRwArDdUaOouK+WVRSVcZvl9
 
Sz2+PhSNmGffeF8P43q0WhFCYBb2+9HL+NVfzonPqaPswjqWSIj6vrBhNKQFI1+q
 
ZHkZvzRWJcgCBNSS5hR1rKZRjSE+mcJVcj5+FjbwMbCuUx3CVd80kQWimvvlrQOR
 
QstDJDqKX6WyODQpukBGw1mCHeHR2L6mOzbQ8GaSYqXP5TDXrhKBGq5xLVQg2FMw
 
VkwWBnytLa4W9ej36oJRpzqzzapPWifp5X/ze6KXHOvrrI/NKfDlbdpw5N9HlJ9K
 
M42e3HWMnQo75SkAMhA8UVisDGgBLiWfrMhcnk9SPIx83NPj4AkP5fbAa1LceHG7
 
SC7VnAe02B44zm4oMockvhKGBGJDFa/bWM2szNvgrjwhf0lpxBVmxQqeE5OrgIw5
 
kw/vbN7/gVWJbbfFZ16n8nVst8Xuow56OfgjcdIdp7Z2nVQVqe5qALrZKUZ94nLd
 
zm8QHU0XkNQsGEnZdeDHVpzAqj9olzTxlBY=
 
-----END CERTIFICATE-----
roles/xmpp_server/molecule/default/tests/test_backup.py
Show inline comments
 
@@ -14,10 +14,12 @@ def test_backup(host):
 

	
 
    # Deliver a couple of messages in order to make sure the directory structure
 
    # is created.
 
    send = host.run("echo 'Hello' | sendxmpp -t -u jane.doe -p janepassword -j domain2:5222 jane.doe@domain2")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-t -u jane.doe -p janepassword -j domain2:5222 jane.doe@domain2")
 
    assert send.rc == 0
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -t -u mick.doe -p mickpassword -j domain3:5222 mick.doe@domain3")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-t -u mick.doe -p mickpassword -j domain3:5222 mick.doe@domain3")
 
    assert send.rc == 0
 

	
 
    with host.sudo():
roles/xmpp_server/molecule/default/tests/test_client.py
Show inline comments
 
@@ -4,7 +4,7 @@ import testinfra.utils.ansible_runner
 

	
 

	
 
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
 
    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['client1'])
 
    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['clients'])
 

	
 

	
 
def test_connectivity(host):
 
@@ -28,16 +28,20 @@ def test_tls(host):
 
    Tests if TLS works as expected.
 
    """
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -t -u john.doe -p johnpassword -j domain1:5222 john.doe@domain1")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-t -u john.doe -p johnpassword -j domain1:5222 john.doe@domain1")
 
    assert send.rc == 0
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -e -u john.doe -p johnpassword -j domain1:5223 john.doe@domain1")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-e -u john.doe -p johnpassword -j domain1:5223 john.doe@domain1")
 
    assert send.rc == 0
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -t -u jane.doe -p janepassword -j domain2:5222 jane.doe@domain2")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-t -u jane.doe -p janepassword -j domain2:5222 jane.doe@domain2")
 
    assert send.rc == 0
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -e -u jane.doe -p janepassword -j domain2:5223 jane.doe@domain2")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-e -u jane.doe -p janepassword -j domain2:5223 jane.doe@domain2")
 
    assert send.rc == 0
 

	
 

	
 
@@ -46,10 +50,12 @@ def test_authentication_requires_tls(host):
 
    Tests if authentication must be done over TLS.
 
    """
 

	
 
    command = host.run("echo 'Hello' | sendxmpp -u bogus -p bogus -j domain1:5222 john.doe@domain1 -d")
 
    command = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                       "-u bogus -p bogus -j domain1:5222 john.doe@domain1 -d")
 
    assert "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'><required/></starttls>" in command.stderr
 

	
 
    command = host.run("echo 'Hello' | sendxmpp -u bogus -p bogus -j domain2:5222 jane.doe@domain2 -d")
 
    command = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                       "-u bogus -p bogus -j domain2:5222 jane.doe@domain2 -d")
 
    assert "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'><required/></starttls>" in command.stderr
 

	
 

	
 
@@ -58,16 +64,20 @@ def test_authentication(host):
 
    Tests if authentication works correctly.
 
    """
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -t -u john.doe -p johnpassword -j domain1:5222 john.doe@domain1")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-t -u john.doe -p johnpassword -j domain1:5222 john.doe@domain1")
 
    assert send.rc == 0
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -e -u john.doe -p johnpassword -j domain1:5223 john.doe@domain1")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-e -u john.doe -p johnpassword -j domain1:5223 john.doe@domain1")
 
    assert send.rc == 0
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -t -u jane.doe -p janepassword -j domain2:5222 jane.doe@domain2")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-t -u jane.doe -p janepassword -j domain2:5222 jane.doe@domain2")
 
    assert send.rc == 0
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -e -u mick.doe -p mickpassword -j domain3:5223 mick.doe@domain3")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-e -u mick.doe -p mickpassword -j domain3:5223 mick.doe@domain3")
 
    assert send.rc == 0
 

	
 

	
 
@@ -77,6 +87,7 @@ def test_unauthorized_users_rejected(host):
 
    group) are rejected from accessing the XMPP server.
 
    """
 

	
 
    send = host.run("echo 'Hello' | sendxmpp -t -u noxmpp -p noxmpppassword -j domain1:5222 john.doe@domain1")
 
    send = host.run("echo 'Hello' | sendxmpp --tls-ca-path /usr/local/share/ca-certificates/testca.crt "
 
                    "-t -u noxmpp -p noxmpppassword -j domain1:5222 john.doe@domain1")
 
    assert send.rc != 0
 
    assert "Error 'AuthSend': error: not-authorized[?]" in send.stderr
roles/xmpp_server/molecule/default/tests/test_default.py
Show inline comments
 
@@ -23,10 +23,10 @@ def test_prosody_apt_key(host):
 
    Tests if Prosody repository signing key has been imported.
 
    """
 

	
 
    keys = host.run("apt-key list")
 
    keys = host.run("apt-key adv --fingerprint --fingerprint prosody")
 

	
 
    assert "1024D/74D9DBB5" in keys.stdout
 
    assert "4096g/6C8F28BA" in keys.stdout
 
    assert "107D 65A0 A148 C237 FDF0  0AB4 7393 D7E6 74D9 DBB5" in keys.stdout
 
    assert "44AB 6DD0 6DA4 6979 CFAF  997F 9B1B 8278 6C8F 28BA" in keys.stdout
 

	
 

	
 
def test_prosody_repository(host):
 
@@ -37,7 +37,7 @@ def test_prosody_repository(host):
 
    repository = host.file("/etc/apt/sources.list.d/packages_prosody_im_debian.list")
 

	
 
    distribution_release = host.ansible("setup")["ansible_facts"]["ansible_distribution_release"]
 
    expected_content = "deb http://packages.prosody.im/debian %s main" %  distribution_release
 
    expected_content = "deb http://packages.prosody.im/debian %s main" % distribution_release
 

	
 
    assert repository.is_file
 
    assert repository.user == 'root'
0 comments (0 inline, 0 general)