Skip to content

Commit 2ab7df3

Browse files
committed
Linter
1 parent 759907b commit 2ab7df3

File tree

9 files changed

+73
-52
lines changed

9 files changed

+73
-52
lines changed

src/arcdata/arcdata/azext_arcdata/core/kubernetes.py

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from http import HTTPStatus
1919
from knack.log import get_logger
2020
from kubernetes import client as k8sClient
21-
from kubernetes import client, config
21+
from kubernetes import config
2222
from kubernetes.client.exceptions import ApiException
2323
from kubernetes.client.rest import ApiException as K8sApiException
2424
from kubernetes.config.config_exception import ConfigException
@@ -43,10 +43,10 @@ def validate_namespace(cluster_name):
4343
namespaces = ["default", "kube-system"]
4444

4545
if cluster_name.lower() in namespaces:
46-
raise Exception("Cluster name can not be '%s'." % cluster_name)
46+
raise ValueError("Cluster name can not be '%s'." % cluster_name)
4747

4848
if not re.match(r"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$", cluster_name):
49-
raise Exception(
49+
raise ValueError(
5050
"Cluster name '"
5151
+ cluster_name
5252
+ "' is invalid. The name must consist of lowercase alphanumeric "
@@ -347,8 +347,8 @@ def update_private_registry_secret(
347347
k8sClient.CoreV1Api().create_namespaced_secret(
348348
namespace=cluster_name, body=body
349349
)
350-
except K8sApiException as e:
351-
logger.error(e.body)
350+
except K8sApiException as e2:
351+
logger.error(e2.body)
352352
raise
353353
else:
354354
logger.error(e.body)
@@ -586,13 +586,13 @@ def patch_config_map(cluster_name, config_map_name, patch):
586586
raise
587587

588588

589-
def create_secret(cluster_name, config):
589+
def create_secret(cluster_name, secret_config):
590590
"""
591591
Creates a secret in Kubernetes
592592
"""
593593

594594
try:
595-
body = yaml.safe_load(config)
595+
body = yaml.safe_load(secret_config)
596596
k8sClient.CoreV1Api().create_namespaced_secret(
597597
namespace=cluster_name, body=body
598598
)
@@ -801,7 +801,7 @@ def create_namespace_with_retry(
801801
retry_on_exceptions=(NewConnectionError, MaxRetryError),
802802
)
803803
else:
804-
raise Exception(
804+
raise RuntimeError(
805805
"Cluster creation not initiated because the existing "
806806
"namespace %s "
807807
'is not empty. Run "kubectl get all -n %s "'
@@ -810,47 +810,61 @@ def create_namespace_with_retry(
810810
)
811811

812812

813-
def validate_rwx_storage_class(name: str, type: str, instanceType: str):
813+
def validate_rwx_storage_class(name: str, storage_type: str, instance_type: str):
814814
try:
815815
config.load_incluster_config()
816816
except ConfigException:
817817
config.load_kube_config()
818818
storageClass = None
819-
for s in client.StorageV1Api().list_storage_class().items:
819+
for s in k8sClient.StorageV1Api().list_storage_class().items:
820820
if s.metadata.name == name:
821821
storageClass = s
822822

823823
if storageClass is None:
824-
raise Exception("Storage class '{}' does not exist".format(name))
825-
# A generic expression to match storage from list
824+
raise ValueError("Storage class '{}' does not exist".format(name))
825+
# A generic expression to match storage from list
826826
# https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes and usage examples.
827827
#
828828
# example references for storage class names:
829-
# csi-filestore (https://github.com/kubernetes-sigs/gcp-filestore-csi-driver/blob/45661732bea386a0275851fa5c5364a0486e6467/examples/kubernetes/demo-sc.yaml )
830-
# efs-sc (https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html , https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html )
831-
# quobyte-csi ( https://github.com/quobyte/quobyte-csi/blob/master/example/StorageClass.yaml ) <-- Should update this one in the list from 'quobyte'.
832-
# px-shared-sc (https://github.com/portworx/helm/blob/master/charts/portworx/templates/portworx-storageclasses.yaml and many other places for 'portworx'.)
829+
# csi-filestore (
830+
# https://github.com/kubernetes-sigs/gcp-filestore-csi-driver/blob/master/examples/kubernetes/demo-sc.yaml)
831+
# efs-sc (https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html,
832+
# https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html)
833+
# quobyte-csi (https://github.com/quobyte/quobyte-csi/blob/master/example/StorageClass.yaml)
834+
# <-- Should update this one in the list from 'quobyte'.
835+
# px-shared-sc (
836+
# https://github.com/portworx/helm/blob/master/charts/portworx/templates/portworx-storageclasses.yaml
837+
# and many other places for 'portworx'.)
833838
# csi-rbd-sc - (https://docs.ceph.com/en/latest/rbd/rbd-kubernetes/ ) for'ceph'.
834-
# glusterfs - (https://docs.openshift.com/container-platform/3.11/install_config/persistent_storage/persistent_storage_glusterfs.html )
839+
# glusterfs - (
840+
# https://docs.openshift.com/container-platform/3.11/install_config/
841+
# persistent_storage/persistent_storage_glusterfs.html)
835842
#
836843
# example references for volume provisoner names:
837-
# vsphere - (https://docs.openshift.com/container-platform/3.11/install_config/persistent_storage/persistent_storage_vsphere.html)
838-
# portworx - (https://docs.portworx.com/portworx-install-with-kubernetes/storage-operations/kubernetes-storage-101/volumes/)
844+
# vsphere - (
845+
# https://docs.openshift.com/container-platform/3.11/install_config/
846+
# persistent_storage/persistent_storage_vsphere.html)
847+
# portworx - (
848+
# https://docs.portworx.com/portworx-install-with-kubernetes/
849+
# storage-operations/kubernetes-storage-101/volumes/)
839850
# nfs - (https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner),
840851
# quobyte - (https://www.quobyte.com/kubernetes-storage/connect-k8s-storage-classes-with-quobyte-policy-engine),
841-
# gluster - (https://docs.openshift.com/container-platform/3.11/install_config/storage_examples/gluster_dynamic_example.html)
852+
# gluster - (
853+
# https://docs.openshift.com/container-platform/3.11/install_config/
854+
# storage_examples/gluster_dynamic_example.html)
842855
# ceph - (https://docs.ceph.com/en/latest/rbd/rbd-kubernetes/)
843856
if (
844857
re.match(
845-
r".*(csi-filestore|efs-sc|quobyte-csi|px-shared-sc|csi-rbd-sc|azurefile|azurefile-csi|azurefile-csi-premium|azurefile-premium|nfs).*",
858+
r".*(csi-filestore|efs-sc|quobyte-csi|px-shared-sc|csi-rbd-sc|azurefile|"
859+
r"azurefile-csi|azurefile-csi-premium|azurefile-premium|nfs).*",
846860
storageClass.metadata.name,
847861
)
848862
) is None:
849863
if (
850864
storageClass.provisioner is None
851865
or storageClass.provisioner == "kubernetes.io/no-provisioner"
852866
):
853-
raise Exception(
867+
raise RuntimeError(
854868
"Storage class '{}' doesn't have a dynamic provisioner configured.".format(
855869
name
856870
)
@@ -864,8 +878,11 @@ def validate_rwx_storage_class(name: str, type: str, instanceType: str):
864878
)
865879
) is None:
866880
logger.warning(
867-
f"{instanceType} creation will fail if the storage class specified for the '{type}' volume ",
868-
"does not support the ReadWriteMany (RWX) access mode. Please check if the {type} storage class ",
869-
"supports ReadWriteMany (RWX) access mode. ",
870-
"Please see https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes"
881+
"%s creation will fail if the storage class specified for the '%s' volume does not support the "
882+
"ReadWriteMany (RWX) access mode. Please check if the %s storage class supports ReadWriteMany "
883+
"(RWX) access mode. "
884+
"Please see https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes",
885+
instance_type,
886+
storage_type,
887+
storage_type
871888
)

src/arcdata/arcdata/azext_arcdata/dc/help.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from knack.help_files import helps
88
from azext_arcdata.core.util import get_environment_list_by_target
99

10-
"""Help documentation for `control` commands."""
10+
# Help documentation for `control` commands.
1111

1212

1313
helps["arcdata"] = (
@@ -76,8 +76,10 @@
7676
az arcdata dc upgrade --k8s-namespace arc --use-k8s
7777
""".format(
7878
short="Upgrade data controller.",
79-
long="Upgrade data controller to the desired-version specified. If desired-version is not specified, an attempt to upgrade to the latest version will be made. "
80-
"If you are unsure of the desired version, you may use the list-upgrades command to view available versions, or use the --dry-run argument to show which version would be used",
79+
long="Upgrade data controller to the desired-version specified. If desired-version is not specified, "
80+
"an attempt to upgrade to the latest version will be made. If you are unsure of the desired version, "
81+
"you may use the list-upgrades command to view available versions, "
82+
"or use the --dry-run argument to show which version would be used",
8183
ex1="Data controller upgrade.",
8284
)
8385
)
@@ -403,7 +405,8 @@
403405
long-summary: {long}
404406
""".format(
405407
short="Trigger memory dump.",
406-
long="Trigger memory dump and copy it out from container - Kubernetes configuration is required on your system.",
408+
long="Trigger memory dump and copy it out from container - "
409+
"Kubernetes configuration is required on your system.",
407410
)
408411
)
409412

@@ -415,13 +418,16 @@
415418
examples:
416419
- name: {ex1}
417420
text: >
418-
az arcdata dc debug restore-controldb-snapshot -k arc-data-services -f /path/to/backup/controller-1675653451.bak
421+
az arcdata dc debug restore-controldb-snapshot -k arc-data-services
422+
-f /path/to/backup/controller-1675653451.bak
419423
- name: {ex2}
420424
text: >
421-
az arcdata dc debug restore-controldb-snapshot -k arc-data-services -f C:\\path\\to\\backup\\controller-1675653451.bak
425+
az arcdata dc debug restore-controldb-snapshot -k arc-data-services
426+
-f C:\\path\\to\\backup\\controller-1675653451.bak
422427
""".format(
423428
short="Restores a unique copy of ControlDB from backup - for troubleshooting purposes only.",
424-
long="Restores a COPY_ONLY backup of ControlDB under a unique name for troubleshooting - Kubernetes configuration is required on your system.",
429+
long="Restores a COPY_ONLY backup of ControlDB under a unique name for troubleshooting - "
430+
"Kubernetes configuration is required on your system.",
425431
ex1="Linux - Restore a backup taken from a previously run 'arcdata dc debug copy-logs' command.",
426432
ex2="Windows - Restore a backup taken from a previously run 'arcdata dc debug copy-logs' command.",
427433
)
@@ -441,7 +447,8 @@
441447
az arcdata dc debug controldb-cdc -k arc-data-services --enable false
442448
""".format(
443449
short="Enable/disable CDC on Data Controller Database and Tables - for troubleshooting purposes only.",
444-
long="Enable/Disable Change Data Capture for 'controller' Database and supported tables with configurable retention hours.",
450+
long="Enable/Disable Change Data Capture for 'controller' Database and "
451+
"supported tables with configurable retention hours.",
445452
ex1="Enables Change Data Capture with 4 hours of retention.",
446453
ex2="Disables Change Data Capture.",
447454
)

src/arcdata/arcdata/azext_arcdata/dc/validators.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,14 @@
66

77
from azure.cli.core.azclierror import (
88
ArgumentUsageError,
9-
MutuallyExclusiveArgumentError,
109
ValidationError,
1110
)
12-
import azext_arcdata.core.common_validators as validators
13-
import os
14-
from azext_arcdata.vendored_sdks.kubernetes_sdk.dc.constants import CONFIG_DIR
15-
import json
16-
import pydash as _
1711
from azext_arcdata.vendored_sdks.kubernetes_sdk.arc_docker_image_service import (
1812
ArcDataImageService,
1913
)
14+
import azext_arcdata.core.common_validators as validators
15+
import os
16+
import pydash as _
2017

2118

2219
def force_indirect(namespace):
@@ -87,11 +84,11 @@ def validate_delete(namespace):
8784

8885

8986
def validate_controldb_cdc_retention(namespace):
90-
min = 1
91-
max = 24
92-
if not (min <= namespace.retention_hours <= max):
87+
min_hrs = 1
88+
max_hrs = 24
89+
if not (min_hrs <= namespace.retention_hours <= max_hrs):
9390
raise ArgumentUsageError(
94-
f"ControlDB Change Data Capture retention hours must be between {min} and {max}."
91+
f"ControlDB Change Data Capture retention hours must be between {min_hrs} and {max_hrs}."
9592
)
9693
force_indirect(namespace)
9794

@@ -222,7 +219,7 @@ def validate_client_version_for_upgrade(command_values):
222219
command_values.desired_version
223220
):
224221
raise ValueError(
225-
f"The desired version {command_values.desired_version} is not supported by this version of the ArcData CLI extension. "
226-
"Please upgrade the extension using the following command and try again: "
222+
f"The desired version {command_values.desired_version} is not supported by this version of the "
223+
"ArcData CLI extension. Please upgrade the extension using the following command and try again: "
227224
"\naz extension update -n arcdata"
228225
)

src/arcdata/arcdata/azext_arcdata/failover_group/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import time
99
from azext_arcdata.core.util import retry
10-
from azext_arcdata.failover_group.models.fog_cr import FogCustomResource
10+
from src.arcdata.arcdata.azext_arcdata.vendored_sdks.kubernetes_sdk.models.fog_cr import FogCustomResource
1111
from azext_arcdata.vendored_sdks.kubernetes_sdk.models.custom_resource import CustomResource
1212
from azext_arcdata.core.constants import ARC_API_V1BETA2
1313
from azext_arcdata.vendored_sdks.kubernetes_sdk.client import (

src/arcdata/arcdata/azext_arcdata/sqlmi/custom.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ def arc_sql_mi_create(
312312

313313
if storage_class_backups is not None:
314314
kubernetes_util.validate_rwx_storage_class(
315-
name=storage_class_backups, type="backup", instanceType="SQLMI"
315+
name=storage_class_backups, storage_type="backup", instance_type="SQLMI"
316316
)
317317

318318
# if readable_secondaries is not set. use default value

src/arcdata/arcdata/azext_arcdata/vendored_sdks/kubernetes_sdk/failover_group/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
FOG_RESOURCE_KIND,
2929
FOG_RESOURCE_KIND_PLURAL,
3030
)
31-
from azext_arcdata.failover_group.models.fog_cr import FogCustomResource
31+
from src.arcdata.arcdata.azext_arcdata.vendored_sdks.kubernetes_sdk.models.fog_cr import FogCustomResource
3232
from azext_arcdata.vendored_sdks.kubernetes_sdk.util import is_valid_connectivity_mode
3333
from src.arcdata.arcdata.azext_arcdata.vendored_sdks.kubernetes_sdk.models.sqlmi_cr_model import SqlmiCustomResource
3434
from azext_arcdata.sqlmi.sqlmi_utilities import get_sqlmi_custom_resource

src/arcdata/arcdata/azext_arcdata/failover_group/models/fog_cr.py renamed to src/arcdata/arcdata/azext_arcdata/vendored_sdks/kubernetes_sdk/models/fog_cr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from azext_arcdata.vendored_sdks.kubernetes_sdk.models import (
99
CustomResource,
1010
)
11-
from azext_arcdata.failover_group.models.fog_replica import FogReplica
11+
from src.arcdata.arcdata.azext_arcdata.vendored_sdks.kubernetes_sdk.models.fog_replica import FogReplica
1212

1313

1414
class FogCustomResource(CustomResource):

src/arcdata/arcdata/azext_arcdata/failover_group/models/fog_replica.py renamed to src/arcdata/arcdata/azext_arcdata/vendored_sdks/kubernetes_sdk/models/fog_replica.py

File renamed without changes.

src/arcdata/arcdata/azext_arcdata/vendored_sdks/kubernetes_sdk/postgres/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1785,8 +1785,8 @@ def _validate_backup_storage(
17851785
try:
17861786
validate_rwx_storage_class(
17871787
name=v.class_name,
1788-
type="backup",
1789-
instanceType="Postgres",
1788+
storage_type="backup",
1789+
instance_type="Postgres",
17901790
)
17911791
except Exception as e:
17921792
raise CLIError(

0 commit comments

Comments
 (0)