summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
0ab522f)
Added the `yaml_format` argument to the `status_kdu` abstract method of
the class `K8sConnector`, and changed the corresponding Helm connectors
methods accordingly, while maintaining backward compatibility
Change-Id: Ic78c951825b7654ccf8246c4fe1fc4d488221bfc
Signed-off-by: Pedro Escaleira <escaleira@av.it.pt>
import abc
import asyncio
import abc
import asyncio
+from typing import Union
import time
from n2vc.loggable import Loggable
import time
from n2vc.loggable import Loggable
- async def status_kdu(self, cluster_uuid: str, kdu_instance: str) -> str:
+ async def status_kdu(
+ self, cluster_uuid: str, kdu_instance: str, yaml_format: str
+ ) -> Union[str, dict]:
"""
This call would retrieve tha current state of a given KDU instance. It would be
would allow to retrieve the _composition_ (i.e. K8s objects) and _specific
"""
This call would retrieve tha current state of a given KDU instance. It would be
would allow to retrieve the _composition_ (i.e. K8s objects) and _specific
:param cluster_uuid: UUID of a K8s cluster known by OSM
:param kdu_instance: unique name for the KDU instance
:param cluster_uuid: UUID of a K8s cluster known by OSM
:param kdu_instance: unique name for the KDU instance
+ :param yaml_format: if the return shall be returned as an YAML string or as a
+ dictionary
:return: If successful, it will return the following vector of arguments:
- K8s `namespace` in the cluster where the KDU lives
- `state` of the KDU instance. It can be:
:return: If successful, it will return the following vector of arguments:
- K8s `namespace` in the cluster where the KDU lives
- `state` of the KDU instance. It can be:
# For those usages not covered by the Apache License, Version 2.0 please
# contact with: nfvlabs@tid.es
##
# For those usages not covered by the Apache License, Version 2.0 please
# contact with: nfvlabs@tid.es
##
+from typing import Union
cluster_id: str,
kdu_instance: str,
namespace: str = None,
cluster_id: str,
kdu_instance: str,
namespace: str = None,
+ yaml_format: bool = False,
show_error_log: bool = False,
show_error_log: bool = False,
- return_text: bool = False,
- ):
self.log.debug(
"status of kdu_instance: {}, namespace: {} ".format(kdu_instance, namespace)
self.log.debug(
"status of kdu_instance: {}, namespace: {} ".format(kdu_instance, namespace)
return str(output)
if rc != 0:
return str(output)
if rc != 0:
##
import abc
import asyncio
##
import abc
import asyncio
+from typing import Union
import random
import time
import shlex
import random
import time
import shlex
- async def status_kdu(self, cluster_uuid: str, kdu_instance: str, **kwargs) -> str:
+ async def status_kdu(
+ self, cluster_uuid: str, kdu_instance: str, yaml_format: str = False, **kwargs
+ ) -> Union[str, dict]:
"""
This call would retrieve tha current state of a given KDU instance. It would be
would allow to retrieve the _composition_ (i.e. K8s objects) and _specific
"""
This call would retrieve tha current state of a given KDU instance. It would be
would allow to retrieve the _composition_ (i.e. K8s objects) and _specific
:param cluster_uuid: UUID of a K8s cluster known by OSM
:param kdu_instance: unique name for the KDU instance
:param kwargs: Additional parameters (None yet)
:param cluster_uuid: UUID of a K8s cluster known by OSM
:param kdu_instance: unique name for the KDU instance
:param kwargs: Additional parameters (None yet)
+ :param yaml_format: if the return shall be returned as an YAML string or as a
+ dictionary
:return: If successful, it will return the following vector of arguments:
- K8s `namespace` in the cluster where the KDU lives
- `state` of the KDU instance. It can be:
:return: If successful, it will return the following vector of arguments:
- K8s `namespace` in the cluster where the KDU lives
- `state` of the KDU instance. It can be:
cluster_id=cluster_uuid,
kdu_instance=kdu_instance,
namespace=instance["namespace"],
cluster_id=cluster_uuid,
kdu_instance=kdu_instance,
namespace=instance["namespace"],
+ yaml_format=yaml_format,
cluster_id: str,
kdu_instance: str,
namespace: str = None,
cluster_id: str,
kdu_instance: str,
namespace: str = None,
+ yaml_format: bool = False,
show_error_log: bool = False,
show_error_log: bool = False,
- return_text: bool = False,
- ):
"""
Implements the helm version dependent method to obtain status of a helm instance
"""
"""
Implements the helm version dependent method to obtain status of a helm instance
"""
detailed_status = await self._status_kdu(
cluster_id=cluster_id,
kdu_instance=kdu_instance,
detailed_status = await self._status_kdu(
cluster_id=cluster_id,
kdu_instance=kdu_instance,
)
status = detailed_status.get("info").get("description")
self.log.debug("KDU {} STATUS: {}.".format(kdu_instance, status))
)
status = detailed_status.get("info").get("description")
self.log.debug("KDU {} STATUS: {}.".format(kdu_instance, status))
# contact with: nfvlabs@tid.es
##
import asyncio
# contact with: nfvlabs@tid.es
##
import asyncio
+from typing import Union
cluster_id: str,
kdu_instance: str,
namespace: str = None,
cluster_id: str,
kdu_instance: str,
namespace: str = None,
+ yaml_format: bool = False,
show_error_log: bool = False,
show_error_log: bool = False,
- return_text: bool = False,
- ):
self.log.debug(
"status of kdu_instance: {}, namespace: {} ".format(kdu_instance, namespace)
self.log.debug(
"status of kdu_instance: {}, namespace: {} ".format(kdu_instance, namespace)
return str(output)
if rc != 0:
return str(output)
if rc != 0:
)
status = await self._status_kdu(
)
status = await self._status_kdu(
- cluster_id=cluster_id, kdu_instance=kdu_instance, return_text=False
+ cluster_id=cluster_id, kdu_instance=kdu_instance, yaml_format=False
)
# extract info.status.resources-> str
)
# extract info.status.resources-> str
# limitations under the License.
import asyncio
# limitations under the License.
import asyncio
+from typing import Union
import os
import uuid
import yaml
import os
import uuid
import yaml
complete_status: bool = False,
yaml_format: bool = False,
**kwargs,
complete_status: bool = False,
yaml_format: bool = False,
**kwargs,
"""Get the status of the KDU
Get the current status of the KDU instance.
"""Get the status of the KDU
Get the current status of the KDU instance.
self.helm_conn._local_async_exec = asynctest.CoroutineMock(return_value=("", 0))
await self.helm_conn._status_kdu(
self.helm_conn._local_async_exec = asynctest.CoroutineMock(return_value=("", 0))
await self.helm_conn._status_kdu(
- self.cluster_id, kdu_instance, self.namespace, return_text=True
+ self.cluster_id, kdu_instance, self.namespace, yaml_format=True
)
command = (
"env KUBECONFIG=./tmp/helm3_cluster_id/.kube/config /usr/bin/helm3 status {} --namespace={} --output yaml"
)
command = (
"env KUBECONFIG=./tmp/helm3_cluster_id/.kube/config /usr/bin/helm3 status {} --namespace={} --output yaml"
cluster_id=self.cluster_id,
kdu_instance=kdu_instance,
namespace=self.namespace,
cluster_id=self.cluster_id,
kdu_instance=kdu_instance,
namespace=self.namespace,
)
self.helm_conn.write_app_status_to_db.assert_called_once_with(
db_dict=db_dict,
)
self.helm_conn.write_app_status_to_db.assert_called_once_with(
db_dict=db_dict,
self.helm_conn._local_async_exec = asynctest.CoroutineMock(return_value=("", 0))
await self.helm_conn._status_kdu(
self.helm_conn._local_async_exec = asynctest.CoroutineMock(return_value=("", 0))
await self.helm_conn._status_kdu(
- self.cluster_id, kdu_instance, self.namespace, return_text=True
+ self.cluster_id, kdu_instance, self.namespace, yaml_format=True
)
command = (
"env KUBECONFIG=./tmp/helm_cluster_id/.kube/config /usr/bin/helm status {} --output yaml"
)
command = (
"env KUBECONFIG=./tmp/helm_cluster_id/.kube/config /usr/bin/helm status {} --output yaml"
cluster_id=self.cluster_id,
kdu_instance=kdu_instance,
namespace=self.namespace,
cluster_id=self.cluster_id,
kdu_instance=kdu_instance,
namespace=self.namespace,
)
self.helm_conn.write_app_status_to_db.assert_called_once_with(
db_dict=db_dict,
)
self.helm_conn.write_app_status_to_db.assert_called_once_with(
db_dict=db_dict,