Add new kubectl.py functions, modify some libjuju.py functions, add unit tests 23/9723/5
authorDavid Garcia <david.garcia@canonical.com>
Mon, 21 Sep 2020 14:19:15 +0000 (16:19 +0200)
committerDavid Garcia <david.garcia@canonical.com>
Tue, 22 Sep 2020 16:24:22 +0000 (18:24 +0200)
commit475a7221e3598ad1c75ce802c5ad74ef7ecf72f1
treed4d2a9a5d1430567848e4721d9ba7e4eea869189
parent85755d17a807df83d0e472e6e73500a4d743296b
Add new kubectl.py functions, modify some libjuju.py functions, add unit tests

- Kubectl.py: two new functions added (get_configuration and get_default_storage_class)
  - get_configuration(): Returns a kubernetes Configuration object.
    It can be used to properly parse the kubeconfig.
  - get_default_storage_class(): Searches for the default storage class of a k8s cluster.
- Libjuju.py: modified add_k8s function and get_k8s_cloud_credential function was added.
  - add_k8s(): Improves the way of generation Cloud and CloudCredential objects for the K8s Cloud
  - get_k8s_cloud_credential(): It parses the kubeconfig to properly determine the authentication
    method type that should be used for that k8s cluster.
- Unit tests: Added unit tests for all the new functions added.
- Exceptions: Make all Juju Exceptions to inherit from N2VC Exception.
  Now Juju exceptions have the message attribute, that is useful for unit testing, to not only check that
  an exception raised, but to check the message too.
- Move get_k8s_cloud_credential() function to n2vc/utils in order to share that code between different connectors.

Change-Id: Ife9027d80663fe95f1f3ad883cb9a3376b047d0b
Signed-off-by: David Garcia <david.garcia@canonical.com>
n2vc/exceptions.py
n2vc/kubectl.py
n2vc/libjuju.py
n2vc/n2vc_juju_conn.py
n2vc/tests/unit/test_kubectl.py
n2vc/tests/unit/test_libjuju.py
n2vc/utils.py