Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

AttributeError: 'CredentialAdaptor' object has no attribute '_token_retriever'

Abierto
#331 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
azure, python
Área
cloud

Línea de trabajo

Reproduce el ejemplo AzureVMCluster y sigue el fallo desde dask_cloudprovider/azure/azurevm.py, pasando por create_vm y la pila de autenticación del Azure SDK. Lee la llamada a CredentialAdaptor en azure/common/credentials.py y compara las versiones de las dependencias instaladas. El trabajo está terminado cuando la configuración mostrada de AzureVMCluster puede crear su scheduler sin el _token_retriever AttributeError.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug provider/azure/vm

Code

from dask_cloudprovider.azure import AzureVMCluster

cluster = AzureVMCluster(
location="brazilsouth",
resource_group="ResourceGroup1",
vnet="VirtualNetwork",
security_group="NetworkSecurityGroup1",
vm_size="STANDARD_DS3_V2",
n_workers=3)

#************* Using last versions of libraries

Result

Creating scheduler instance
.........................................................................................
AttributeError Traceback (most recent call last)
in
6 from dask_cloudprovider.azure import AzureVMCluster
7
----> 8 cluster = AzureVMCluster(
9 location="brazilsouth",
10 resource_group="ResourceGroup1",

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/dask_cloudprovider/azure/azurevm.py in init(self, location, resource_group, vnet, security_group, public_ingress, vm_size, scheduler_vm_size, vm_image, disk_size, bootstrap, auto_shutdown, docker_image, debug, marketplace_plan, **kwargs)
548 }
549 self.worker_options = {"vm_size": self.vm_size, **self.options}
--> 550 super().init(debug=debug, **kwargs)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/dask_cloudprovider/generic/vmcluster.py in init(self, n_workers, worker_class, worker_options, scheduler_options, docker_image, docker_args, env_vars, security, protocol, debug, **kwargs)
287 self.uuid = str(uuid.uuid4())[:8]
288
--> 289 super().init(**kwargs, security=self.security)
290
291 async def call_async(self, f, *args, **kwargs):

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/distributed/deploy/spec.py in init(self, workers, scheduler, worker, asynchronous, loop, security, silence_logs, name, shutdown_on_close)
281 self.scheduler_spec = {"cls": Scheduler, "options": options}
282
--> 283 # Check if scheduler has already been created by a subclass
284 if self.scheduler is None:
285 cls = self.scheduler_spec["cls"]

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/distributed/deploy/cluster.py in sync(self, func, asynchronous, callback_timeout, *args, **kwargs)
191
192 with suppress(RuntimeError): # loop closed during process shutdown
--> 193 return self.sync(self._close, callback_timeout=timeout)
194
195 def del(self):

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/distributed/utils.py in sync(loop, func, callback_timeout, *args, **kwargs)
336 main_tid = threading.get_ident()
337 result = [None]
--> 338 error = [False]
339
340 @gen.coroutine

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/distributed/utils.py in f()
319 except RuntimeError:
320 # No running loop in thread. If the event loop isn't running, it
--> 321 # could be started later in this thread though. Return the default.
322 if not loop.asyncio_loop.is_running():
323 return default

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/tornado/gen.py in run(self)
760
761 try:
--> 762 value = future.result()
763 except Exception:
764 exc_info = sys.exc_info()

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/dask_cloudprovider/generic/vmcluster.py in _start(self)
327 "Hang tight! ",
328 ):
--> 329 await super()._start()
330
331 def render_process_cloud_init(self, process):

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/distributed/deploy/spec.py in _start(self)
310 async def _correct_state_internal(self):
311 async with self._lock:
--> 312 self._correct_state_waiting = None
313
314 to_close = set(self.workers) - set(self.worker_spec)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/distributed/deploy/spec.py in _()
70 to make the job exist in the future
71
---> 72 For the scheduler we will expect the scheduler's .address attribute
73 to be avaialble after this completes.
74 """

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/dask_cloudprovider/generic/vmcluster.py in start(self)
84 async def start(self):
85 self.cluster._log("Creating scheduler instance")
---> 86 ip = await self.create_vm()
87 self.address = f"{self.cluster.protocol}://{ip}:8786"
88 await self.wait_for_scheduler()

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/dask_cloudprovider/azure/azurevm.py in create_vm(self)
70
71 async def create_vm(self):
---> 72 [subnet_info, *_] = await self.cluster.call_async(
73 self.cluster.network_client.subnets.list,
74 self.cluster.resource_group,

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/paging.py in next(self)
127 if self._page_iterator is None:
128 self._page_iterator = itertools.chain.from_iterable(self.by_page())
--> 129 return next(self._page_iterator)
130
131 next = next # Python 2 compatibility.

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/paging.py in next(self)
74 raise StopIteration("End of paging")
75 try:
---> 76 self._response = self._get_next(self.continuation_token)
77 except AzureError as error:
78 if not error.continuation_token:

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/mgmt/network/v2021_05_01/operations/_subnets_operations.py in get_next(next_link)
687 request = prepare_request(next_link)
688
--> 689 pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs)
690 response = pipeline_response.http_response
691

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/_base.py in run(self, request, **kwargs)
209 else _TransportRunner(self._transport)
210 )
--> 211 return first_node.send(pipeline_request) # type: ignore

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/_base.py in send(self, request)
69 _await_result(self._policy.on_request, request)
70 try:
---> 71 response = self.next.send(request)
72 except Exception: # pylint: disable=broad-except
73 _await_result(self._policy.on_exception, request)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/_base.py in send(self, request)
69 _await_result(self._policy.on_request, request)
70 try:
---> 71 response = self.next.send(request)
72 except Exception: # pylint: disable=broad-except
73 _await_result(self._policy.on_exception, request)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/_base.py in send(self, request)
69 _await_result(self._policy.on_request, request)
70 try:
---> 71 response = self.next.send(request)
72 except Exception: # pylint: disable=broad-except
73 _await_result(self._policy.on_exception, request)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/_base.py in send(self, request)
69 _await_result(self._policy.on_request, request)
70 try:
---> 71 response = self.next.send(request)
72 except Exception: # pylint: disable=broad-except
73 _await_result(self._policy.on_exception, request)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/_base.py in send(self, request)
69 _await_result(self._policy.on_request, request)
70 try:
---> 71 response = self.next.send(request)
72 except Exception: # pylint: disable=broad-except
73 _await_result(self._policy.on_exception, request)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/mgmt/core/policies/_base.py in send(self, request)
45 # type: (PipelineRequest[HTTPRequestType], Any) -> PipelineResponse[HTTPRequestType, HTTPResponseType]
46 http_request = request.http_request
---> 47 response = self.next.send(request)
48 if response.http_response.status_code == 409:
49 rp_name = self._check_rp_not_registered_err(response)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/policies/_redirect.py in send(self, request)
156 redirect_settings = self.configure_redirects(request.context.options)
157 while retryable:
--> 158 response = self.next.send(request)
159 redirect_location = self.get_redirect_location(response)
160 if redirect_location and redirect_settings['allow']:

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/policies/_retry.py in send(self, request)
443 start_time = time.time()
444 self._configure_timeout(request, absolute_timeout, is_response_error)
--> 445 response = self.next.send(request)
446 if self.is_retry(retry_settings, response):
447 retry_active = self.increment(retry_settings, response=response)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/policies/_authentication.py in send(self, request)
115 :type request: ~azure.core.pipeline.PipelineRequest
116 """
--> 117 self.on_request(request)
118 try:
119 response = self.next.send(request)

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/core/pipeline/policies/_authentication.py in on_request(self, request)
92
93 if self._token is None or self._need_new_token:
---> 94 self._token = self._credential.get_token(*self._scopes)
95 self._update_headers(request.http_request.headers, self._token.token)
96

/anaconda/envs/azuremlsklearn_py38/lib/python3.8/site-packages/azure/common/credentials.py in get_token(self, *scopes, **kwargs)
70
71 credentials = self._get_cred(resource)
---> 72 _, token, fulltoken = credentials._token_retriever() # pylint:disable=protected-access
73
74 return _AccessToken(token, int(fulltoken['expiresIn'] + time.time()))

AttributeError: 'CredentialAdaptor' object has no attribute '_token_retriever'

Lenguaje dominante
Python
Estrellas
147
Forks
119
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de dask/dask-cloudprovider

Todos los issues de dask/dask-cloudprovider

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.