Skip to content
This repository was archived by the owner on Jun 30, 2018. It is now read-only.

Commit 2ea3c25

Browse files
committed
Merge pull request #2 from mbelang/master
Fixed instance rebuild
2 parents b9a0331 + 286c198 commit 2ea3c25

File tree

6 files changed

+26
-6
lines changed

6 files changed

+26
-6
lines changed

almanach/adapters/api_route_v1.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ def rebuild_instance(instance_id):
134134
instance_id=instance_id,
135135
distro=instance['distro'],
136136
version=instance['version'],
137+
os_type=instance['os_type'],
137138
rebuild_date=instance['rebuild_date'],
138139
)
139140

almanach/adapters/bus_adapter.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ def _instance_rebuilt(self, notification):
178178
instance_id = payload.get("instance_id")
179179
distro = payload.get("image_meta").get("distro")
180180
version = payload.get("image_meta").get("version")
181-
self.controller.rebuild_instance(instance_id, distro, version, date)
181+
os_type = payload.get("image_meta").get("os_type")
182+
self.controller.rebuild_instance(instance_id, distro, version, os_type, date)
182183

183184
def _volume_type_create(self, notification):
184185
volume_types = notification.get("payload").get("volume_types")

almanach/core/controller.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,18 @@ def resize_instance(self, instance_id, flavor, resize_date):
8686
logging.error("Trying to resize an instance with id '%s' not in the database yet." % instance_id)
8787
raise e
8888

89-
def rebuild_instance(self, instance_id, distro, version, rebuild_date):
89+
def rebuild_instance(self, instance_id, distro, version, os_type, rebuild_date):
9090
rebuild_date = self._validate_and_parse_date(rebuild_date)
9191
instance = self.database_adapter.get_active_entity(instance_id)
92-
logging.info("instance %s rebuilded in project %s to os %s %s on %s" % (instance_id, instance.project_id,
93-
distro, version, rebuild_date))
92+
logging.info("instance %s rebuilded in project %s to os %s %s %s on %s" % (instance_id, instance.project_id,
93+
os_type, distro, version,
94+
rebuild_date))
9495
if instance.os.distro != distro or instance.os.version != version:
9596
self.database_adapter.close_active_entity(instance_id, rebuild_date)
9697

9798
instance.os.distro = distro
9899
instance.os.version = version
100+
instance.os.os_type = os_type
99101
instance.start = rebuild_date
100102
instance.end = None
101103
instance.last_event = rebuild_date

tests/adapters/test_bus_adapter.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ def test_on_message_with_rebuild_instance(self):
122122
notification['payload']['instance_id'],
123123
notification['payload']['image_meta']['distro'],
124124
notification['payload']['image_meta']['version'],
125+
notification['payload']['image_meta']['os_type'],
125126
notification['timestamp'],
126127
) \
127128
.once()

tests/api_test.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,13 +775,15 @@ def test_rebuild_instance(self):
775775
data = {
776776
'distro': 'A_DISTRIBUTION',
777777
'version': 'A_VERSION',
778+
'os_type': 'AN_OS_TYPE',
778779
'rebuild_date': 'UPDATE_DATE',
779780
}
780781
self.controller.should_receive('rebuild_instance') \
781782
.with_args(
782783
instance_id=instance_id,
783784
distro=data.get('distro'),
784785
version=data.get('version'),
786+
os_type=data.get('os_type'),
785787
rebuild_date=data.get('rebuild_date')) \
786788
.once()
787789

@@ -817,6 +819,7 @@ def test_rebuild_instance_bad_date_format_returns_bad_request_code(self):
817819
data = {
818820
'distro': 'A_DISTRIBUTION',
819821
'version': 'A_VERSION',
822+
'os_type': 'AN_OS_TYPE',
820823
'rebuild_date': 'A_BAD_UPDATE_DATE',
821824
}
822825

tests/core/test_controller.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -556,8 +556,20 @@ def test_instance_rebuilded(self):
556556
.should_receive("insert_entity")
557557
.once())
558558

559-
self.controller.rebuild_instance("an_instance_id", "some_distro", "some_version", "2015-10-21T16:25:00.000000Z")
560-
self.controller.rebuild_instance("an_instance_id", i.os.distro, i.os.version, "2015-10-21T16:25:00.000000Z")
559+
self.controller.rebuild_instance(
560+
"an_instance_id",
561+
"some_distro",
562+
"some_version",
563+
"some_type",
564+
"2015-10-21T16:25:00.000000Z"
565+
)
566+
self.controller.rebuild_instance(
567+
"an_instance_id",
568+
i.os.distro,
569+
i.os.version,
570+
i.os.os_type,
571+
"2015-10-21T16:25:00.000000Z"
572+
)
561573

562574
def test_rename_volume(self):
563575
fake_volume = a(volume().with_display_name('old_volume_name'))

0 commit comments

Comments
 (0)