Skip to content

Commit 26e313f

Browse files
some retry testing
1 parent cc168bc commit 26e313f

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

SoftLayer/managers/vs.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@
1313
import time
1414
import warnings
1515

16+
from SoftLayer.decoration import retry
1617
from SoftLayer import exceptions
1718
from SoftLayer.managers import ordering
1819
from SoftLayer import utils
1920

21+
2022
LOGGER = logging.getLogger(__name__)
2123
# pylint: disable=no-self-use
2224

@@ -584,9 +586,17 @@ def create_instance(self, **kwargs):
584586
tags = kwargs.pop('tags', None)
585587
inst = self.guest.createObject(self._generate_create_dict(**kwargs))
586588
if tags is not None:
587-
self.guest.setTags(tags, id=inst['id'])
589+
self.set_tags(tags, guest_id=inst['id'])
588590
return inst
589591

592+
@retry(exceptions.SoftLayerAPIError, logger=LOGGER)
593+
def set_tags(self, tags, guest_id):
594+
"""Sets tags on a guest with a retry decorator
595+
596+
Just calls guest.setTags, but lets if it fails from an APIError will retry
597+
"""
598+
self.guest.setTags(tags, id=guest_id)
599+
590600
def create_instances(self, config_list):
591601
"""Creates multiple virtual server instances.
592602
@@ -636,7 +646,7 @@ def create_instances(self, config_list):
636646

637647
for instance, tag in zip(resp, tags):
638648
if tag is not None:
639-
self.guest.setTags(tag, id=instance['id'])
649+
self.set_tags(tag, guest_id=instance['id'])
640650

641651
return resp
642652

@@ -717,7 +727,7 @@ def edit(self, instance_id, userdata=None, hostname=None, domain=None,
717727
self.guest.setUserMetadata([userdata], id=instance_id)
718728

719729
if tags is not None:
720-
self.guest.setTags(tags, id=instance_id)
730+
self.set_tags(tags, guest_id=instance_id)
721731

722732
if hostname:
723733
obj['hostname'] = hostname

0 commit comments

Comments
 (0)