Commit graph

30 commits

Author SHA1 Message Date
Gonéri Le Bouder
b183d36c53 vmware_export_ovf/test needs an ESXi
Ensure the `vmware_export_ovf` test-suite runs with at least one ESXi.
2020-01-17 16:56:47 -05:00
Gonéri Le Bouder
b9b2ddc580 prepare_vmware_tests: no waiting loop during DS probing
For a refresh of the datastore list on the vcenter, this before we
check the present of the newly attached datastores.

A lot of tests depend on the presence of the DS, and this little
change allow us to save =~ 45s everytime.
2020-01-15 12:39:56 -05:00
Gonéri Le Bouder
3103fd62dd vmware_vmotion/test: ensure we can run tests
Some adjustments to be able to run the test-suite properly:

- Starts with the ESXi out of the cluster to be able to deploy the
  VM on a proper host consistently
- Ensure the resource pool exists
- The resource pool is called `DC0_C0_RP1`, not `Resources`
- Avoid an exception if we try to move a non existing VM.

Put the test in the zuul/vmware/vcenter_2esxi group.
2020-01-15 11:50:04 -05:00
Gonéri Le Bouder
89703b3284 vmware/test: more modular teardown.yml
Some teardown tasks are now enabled only if we have ESXi in the configuration
file. On my system and in a vcenter only scenario, `vcenter_folder` goes from
42.7 to 31.2s.
2019-12-19 13:52:51 -05:00
Gonéri Le Bouder
3ed0b2c7ea vmware/test: init esxi_user with esxi1_username
By default, `esxi_user` is initialize as `root`. We now use `esxi1_username`
instead.
2019-12-19 11:30:00 -05:00
Gonéri Le Bouder
8d6b9cf6e0 prepare_vmware_tests: add scenario with one ESXi
Add the ability to test with just one vcenter instance and a single
ESXi. This allow us to cover 90 modules.
2019-12-19 11:30:00 -05:00
Gonéri Le Bouder
030b20b024
prepare_vmware_tests: ensure 'VM Network' exists (#65616)
Depending on the ESXi configuration, the 'VM Network' may missing.
2019-12-10 09:08:42 -05:00
Gonéri Le Bouder
a8efe7442c
vmware/test: set vmware/scenario/vcenter_only alias (#65515)
Add the `vmware/scenario/vcenter_only` alias to be able to identify the
vmware test roles that can be tested with just on vcenter instance.

Also, add a check to be sure we don't try to attach ESXi hosts if none
has been defined.
2019-12-04 17:12:29 -05:00
Gonéri Le Bouder
974e8cec3d
prepare_vmware_tests: run test w/ just 1 vcsa (#65433)
Add the ability to run test with just a VCSA instance. This allow us to
test a subset of tests that don't need any ESXi nodes.
2019-12-03 11:17:06 -05:00
Gonéri Le Bouder
0407af936a
vmware/test: switch the ro of the two datastore (#65356)
The `ro_datastore` was actually using the value of `rw_datastore`.
2019-11-29 10:23:57 -05:00
Gonéri Le Bouder
0aa59ce9ab vmware/test: use better name for datastores
In the VMware tests, we call the datastores `ds1` and `ds2`. The first
one is read-only, the second is read-write and can be used to deploy
VMs. The naming convention was not clear enough and source of a lot
confusion and mistake.

We now have two better names:

- ro_datastore, which is ... read-only
- rw_datastore, the one that we can use to deploy new VM.
2019-11-14 16:55:05 -05:00
Abhijeet Kasurde
47f9873eab
VMware: Handle slash in network name in vmware_guest module (#64494)
Encode slash in network name to work with vSphere API.

Fixes: #64399

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-11-12 17:13:57 +05:30
Gonéri Le Bouder
35a8922988 prepare_vmware_tests: datastore host is datastore.test
Use an alias to access the datastore host. This way, it's easier
to use an existing NFS server.
We can also disable the `write` access on the iso datastore.
2019-11-06 17:08:07 -05:00
Gonéri Le Bouder
039c770a95 vmware_host_firewall_manager: fix #61332
Since https://github.com/ansible/ansible/pull/56733, we were not able to apply
firewall rules with no `allowed_hosts` key.

closes: #61332

In addition, this patch ensures the `allowed_hosts` key accepts a dict,
instead of a dict in a single entry list.

```yaml
vmware_host_firewall_manager:
  esxi_hostname: "{{ esxi1 }}"
  rules:
    - name: NFC
      enabled: True
      allowed_hosts:
        - all_ip: False
          ip_address:
            - "1.2.3.4"
```

Should be written:

```yaml
vmware_host_firewall_manager:
  esxi_hostname: "{{ esxi1 }}"
  rules:
    - name: NFC
      enabled: True
      allowed_hosts:
        all_ip: False
        ip_address:
          - "1.2.3.4"
```
2019-10-28 13:01:02 -04:00
Gonéri Le Bouder
73febd4ea6 prepare_vmware_tests: use module_defaults (#63209) 2019-10-11 19:46:54 +05:30
Gonéri Le Bouder
7de70bde52
prepare_vmware_test: avoid the dependency on jmespath (#63344)
We don't really need to depend on jmespath for this.
2019-10-10 13:25:07 -04:00
Gonéri Le Bouder
ef69f3a3b5 vmware/test: clean up dvswitch_0001 and dvswitch_0002
Ensure `dvswitch_0001` and `dvswitch_0002` won't remain after
`vmware_dvswitch` test execution.
2019-08-27 11:30:44 -04:00
pratikgadiya12
8ee7d9f598 VMWare - Rename _facts to _info (#57474)
Deprecate vmware's _facts modules and add new modules.

Fixes: #57278
2019-08-26 14:45:34 -04:00
Mario Lenz
3aa73cb6b8 VMware: Refactor vmware_cluster into several modules (#58468)
Refactor vmware_cluster into several modules (vmware_cluster, vmware_cluster_drs, vmware_cluster_ha and vmware_cluster_vsan) as discussed in #58023.

vmware_cluster lacks a lot of configuration options for DRS, HA and vSAN. Implementing them
all in vmware_cluster would make the module hard to maintain. Therefore, splitting it into several
modules and implementing the missing configuration options in them seems a good idea to me.

This is step one, refactoring vmware_cluster into several modules. Step two, implementing more
configuration options for DRS, HA and vSAN, will follow.
2019-08-01 10:35:29 +02:00
Gonéri Le Bouder
93ea961205 vmware_guest: enable 3 extra tests
- network_with_dvpg
- network_with_portgroup.yml
- template_d1_c1_f0.yml
2019-07-29 15:28:52 +02:00
Gonéri Le Bouder
964783fbd2 vmware_guest: speed up vmware_guest tests
- Use predictable VM name during the tests (test_vm1, test_vm2 and
  test_vm2). This to simplify the teardown of the newly created resource
  before the next test.
- Update the documentation to explain the new requirement
- Avoid VM creation with `with_items` when it's not mandatory. This to:
    - speed up the test execution, our hypervisors have limited resources
    - simplify the teardown
- Remove `create_d1_c1_f0_env.yml`, the test was just testing how Ansible
  pass environment variables.
- Correct the name for the `f0` variable (`f1`)
- Fix the DVS tests, the hosts can now reach the dvswitch1 vswitch
- Provision the VM with a poweroff status, this to improve the
  idempotency and sleep up the tests
- Avoid the use of `prepare_vmware_tests` to prepare virtual machines
  when we just need one machine
2019-07-26 14:07:01 +02:00
Gonéri Le Bouder
fb96f0b8ae vmware_content_library_info: init the functional test
`vmware_content_library_info` functional test is currently broken because it
assumes the vCenter content library is not empty.
With this commit, the test inits the vCenter content library database using
`prepapre_vmware_tests`, this before the functional test execution.
2019-07-24 16:47:25 +02:00
Abhijeet Kasurde
401e70c0a2
VMware: add facts about tags in vmware_cluster_facts (#56848)
Fixes: #46458

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-07-24 15:45:15 +05:30
Gonéri Le Bouder
f98a4ef2f7 vmware: ro=False datastores for the functional test
https://github.com/ansible/ansible/issues/58541 prevents us from using
read-only datastore. So for now, we mount everything read-write.
2019-07-12 16:23:17 +02:00
Gonéri Le Bouder
db81b1d0f5 prepapre_vmware_tests: add a common vars file
Add a new file to record the variables that are shared with the two
scenarios (real_lab and vcsim).

The goal is to reduce the the amount of boilerplate configuration from
a user perspective.
2019-06-21 14:35:44 -04:00
Gonéri Le Bouder
7d85cbcc6c vmware: test-suite fixes
Minor fixes for the test-suite found during the integration with the CI.
2019-06-13 20:23:33 -04:00
Gonéri Le Bouder
6bb21c3db0 vmware: test-refactoring
- In order to keep the integration with `ansible-test`, we prefer to avoid any
  interaction with the Ansible inventory file.
- split up the prepare_vmware_tests/defaults/main.yml in two
  configuration files: one for vcsim and one for a real environment
- remove all the access to hostvars
- directly interact with the ESXi to mount/umount the datastore
  https://github.com/ansible/ansible/pull/56516
- record the virtual machine folder in the environment configuration
- vmware_guest_move: Use https://github.com/ansible/ansible/pull/55237
2019-05-23 17:40:19 -04:00
Gonéri Le Bouder
4b99a2ac50 vmware: use hostname in esxi_hostname
The use of the `hostvars[esxi1].ansible_host` was attempt to use
different hostname and IP address. But it's actually the source of
more problems.

VMware expects to be able to resolvable the host name. This means, that
if someone wants to run the test-suite, s/he needs to use a DNS or
update the `/etc/hosts` files on the different hosts.
2019-05-13 17:04:17 -04:00
Gonéri Le Bouder
2307797a76 vmware: refactoring of vmware test roles -- part3
Refactoring of the following roles to make use of the new
`prepare_vmware_tests` role.

- `vmware_drs_group`
- `vmware_drs_group_facts`
- `vmware_drs_rule_facts`
- `vmware_drs_portgroup`
- `vmware_drs_portgroup_facts`
- `vmware_dvs_portgroup_facts`
- `vmware_dvswitch`
- `vmware_dvswitch_pvlans`

This patch depends on: https://github.com/ansible/ansible/pull/55719

Original PR: https://github.com/ansible/ansible/pull/54882
2019-05-02 09:31:03 -04:00
Gonéri Le Bouder
6d645c127f vmware: import prepare_vmware_tests
The vmware test roles do a lot of similar operation to prepare
the environment. This role will be used to reduce the amount of
duplicated code.

The role can prepare an environment on a baremetal environment, this
in addition to vcsim.

Original PR: https://github.com/ansible/ansible/pull/54882
2019-04-25 09:58:59 -04:00