def delete_v_s_route(custom_objects: CustomObjectsApi, name, namespace) -> None: """ Delete a VirtualServerRoute. :param custom_objects: CustomObjectsApi :param namespace: namespace :param name: :return: """ print(f"Delete a VirtualServerRoute: {name}") delete_options = client.V1DeleteOptions() custom_objects.delete_namespaced_custom_object("k8s.nginx.org", "v1", namespace, "virtualserverroutes", name, delete_options) ensure_item_removal( custom_objects.get_namespaced_custom_object, "k8s.nginx.org", "v1", namespace, "virtualserverroutes", name, ) print(f"VirtualServerRoute was removed with the name '{name}'")
def delete_resource(custom_objects: CustomObjectsApi, resource, namespace, plural) -> None: """ Delete a Resource. :param custom_objects: CustomObjectsApi :param namespace: namespace :param resource: a dictionary representation of the resource yaml :param namespace: :param plural: the plural of the resource :return: """ name = resource['metadata']['name'] kind = resource['kind'] group, version = resource["apiVersion"].split("/") print(f"Delete a '{kind}' with name '{name}'") custom_objects.delete_namespaced_custom_object(group, version, namespace, plural, name) ensure_item_removal( custom_objects.get_namespaced_custom_object, group, version, namespace, plural, name, ) print(f"Resource '{kind}' was removed with name '{name}'")
def delete_ap_policy(custom_objects: CustomObjectsApi, name, namespace) -> None: """ Delete a AppProtect policy. :param custom_objects: CustomObjectsApi :param namespace: namespace :param name: :return: """ print(f"Delete a AP policy: {name}") delete_options = client.V1DeleteOptions() custom_objects.delete_namespaced_custom_object("appprotect.f5.com", "v1beta1", namespace, "appolicies", name, delete_options) ensure_item_removal( custom_objects.get_namespaced_custom_object, "appprotect.f5.com", "v1beta1", namespace, "appolicies", name, ) time.sleep(3) print(f"AP policy was removed with name: {name}")
def delete_crd(api_extensions_v1: ApiextensionsV1Api, name) -> None: """ Delete a CRD. :param api_extensions_v1: ApiextensionsV1Api :param name: :return: """ print(f"Delete a CRD: {name}") api_extensions_v1.delete_custom_resource_definition(name) ensure_item_removal(api_extensions_v1.read_custom_resource_definition, name) print(f"CRD was removed with name '{name}'")
def delete_crd(api_extensions_v1_beta1: ApiextensionsV1beta1Api, name) -> None: """ Delete a CRD. :param api_extensions_v1_beta1: ApiextensionsV1beta1Api :param name: :return: """ print(f"Delete a CRD: {name}") delete_options = client.V1DeleteOptions() api_extensions_v1_beta1.delete_custom_resource_definition(name, delete_options) ensure_item_removal(api_extensions_v1_beta1.read_custom_resource_definition, name) print(f"CRD was removed with name '{name}'")
def delete_ap_logconf(custom_objects: CustomObjectsApi, name, namespace) -> None: """ Delete a AppProtect logconf. :param custom_objects: CustomObjectsApi :param namespace: namespace :param name: :return: """ print(f"Delete AP logconf: {name}") delete_options = client.V1DeleteOptions() custom_objects.delete_namespaced_custom_object("appprotect.f5.com", "v1beta1", namespace, "aplogconfs", name, delete_options) ensure_item_removal(custom_objects.get_namespaced_custom_object, "appprotect.f5.com", "v1beta1", namespace, "aplogconfs", name) print(f"AP logconf was removed with name: {name}")
def delete_ap_usersig(custom_objects: CustomObjectsApi, name, namespace) -> None: """ Delete a AppProtect usersig. :param custom_objects: CustomObjectsApi :param namespace: namespace :param name: :return: """ print(f"Delete AP UserSig: {name}") custom_objects.delete_namespaced_custom_object( "appprotect.f5.com", "v1beta1", namespace, "apusersigs", name ) ensure_item_removal( custom_objects.get_namespaced_custom_object, "appprotect.f5.com", "v1beta1", namespace, "apusersigs", name, ) print(f"AP UserSig was removed with name: {name}")
def delete_dos_logconf(custom_objects: CustomObjectsApi, name, namespace) -> None: """ Delete a Dos logconf. :param custom_objects: CustomObjectsApi :param namespace: namespace :param name: :return: """ print(f"Delete DOS logconf: {name}") custom_objects.delete_namespaced_custom_object("appprotectdos.f5.com", "v1beta1", namespace, "apdoslogconfs", name) ensure_item_removal( custom_objects.get_namespaced_custom_object, "appprotectdos.f5.com", "v1beta1", namespace, "apdoslogconfs", name, ) print(f"DOS logconf was removed with name: {name}")
def delete_policy(custom_objects: CustomObjectsApi, name, namespace) -> None: """ Delete a Policy. :param custom_objects: CustomObjectsApi :param namespace: namespace :param name: :return: """ print(f"Delete a Policy: {name}") custom_objects.delete_namespaced_custom_object("k8s.nginx.org", "v1", namespace, "policies", name) ensure_item_removal( custom_objects.get_namespaced_custom_object, "k8s.nginx.org", "v1", namespace, "policies", name, ) print(f"Policy was removed with name '{name}'")
def delete_dos_policy(custom_objects: CustomObjectsApi, name, namespace) -> None: """ Delete a Dos policy. :param custom_objects: CustomObjectsApi :param namespace: namespace :param name: :return: """ print(f"Delete a DOS policy: {name}") custom_objects.delete_namespaced_custom_object("appprotectdos.f5.com", "v1beta1", namespace, "apdospolicies", name) ensure_item_removal( custom_objects.get_namespaced_custom_object, "appprotectdos.f5.com", "v1beta1", namespace, "apdospolicies", name, ) time.sleep(3) print(f"DOS policy was removed with name: {name}")
def delete_virtual_server(custom_objects: CustomObjectsApi, name, namespace) -> None: """ Delete a VirtualServer. :param custom_objects: CustomObjectsApi :param namespace: namespace :param name: :return: """ print(f"Delete a VirtualServer: {name}") custom_objects.delete_namespaced_custom_object( "k8s.nginx.org", "v1", namespace, "virtualservers", name ) ensure_item_removal( custom_objects.get_namespaced_custom_object, "k8s.nginx.org", "v1", namespace, "virtualservers", name, ) print(f"VirtualServer was removed with name '{name}'")