ec2 driver does not support strings for size and image parameters
- Langage dominant
- Python
- Étoiles
- 2.1k
- Forks
- 931
- Merge moyen
- 1 j 2 h
- PR mergées (30 j)
- 4
Description
## Summary
Both the GCP and the Dummy drivers for compute allow passing the imaged id, and size id as a string, and both drivers will do a lookup to find them.
The EC2 driver requires that the image and size be objects that have the name as an id attribute.
## Detailed Information
The commit https://github.com/newcontext-oss/openc2-aws-actuator/commit/f67cbee488236604b65c72a8f5f695fddf9592e9 fixes the issue for that code. GCP works w/ the previous commit.
This is on MacOSX 10.14.6.
```
$python
Python 3.6.7 (default, Oct 21 2018, 08:56:20)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import libcloud
>>> libcloud.__version__
'2.7.0'
>>> from libcloud.compute.types import Provider
>>> from libcloud.compute.providers import get_driver
>>> cls = get_driver(Provider.EC2)
>>> access_key, secret_key = open('.keys').read().split()
>>> drv = cls(access_key, secret_key, region='us-west-2')
>>> drv.create_node(image='ami-0b74be4bc329b8a1b', size='t2.nano')
Traceback (most recent call last):
File "", line 1, in
File "/Users/jmg/work/openc2-aws-actuator/p/lib/python3.6/site-packages/libcloud/compute/drivers/ec2.py", line 1891, in create_node
'ImageId': image.id,
AttributeError: 'str' object has no attribute 'id'
>>> from mock import MagicMock
>>> img = MagicMock()
>>> img.id = 'ami-0b74be4bc329b8a1b'
>>> sizeobj = MagicMock()
>>> sizeobj.id = 't2.nano'
>>> drv.create_node(image=img, size=sizeobj, name='somename')
>>>
```
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez dans libcloud/compute/drivers/ec2.py, au niveau du point d’entrée create_node, autour de l’accès défaillant à ImageId montré dans la trace d’exécution. Comparez la manière dont les drivers GCP et Dummy résolvent les ID d’image et de taille sous forme de chaînes. Le travail est terminé lorsque EC2 create_node accepte image='ami-0b74be4bc329b8a1b' et size='t2.nano', ainsi que des objets possédant des attributs id.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- aws, python
- Domaine
- cloud
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100