Skip to content

Commit 17c9878

Browse files
Removed the migrate filter for guests since it doesn't seem to work, now manually checking 'pendingMIgrationFlag'. Also added an 'id' orderBy to the guest_list manager
1 parent d90b32e commit 17c9878

File tree

2 files changed

+22
-15
lines changed

2 files changed

+22
-15
lines changed

SoftLayer/CLI/virt/migrate.py

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ def cli(env, guest, migrate_all, host):
1919
"""Manage VSIs that require migration. Can migrate Dedicated Host VSIs as well."""
2020

2121
vsi = SoftLayer.VSManager(env.client)
22-
pending_filter = {'virtualGuests': {'pendingMigrationFlag': {'operation': 1}}}
2322
dedicated_filter = {'virtualGuests': {'dedicatedHost': {'id': {'operation': 'not null'}}}}
2423
mask = """mask[
2524
id, hostname, domain, datacenter, pendingMigrationFlag, powerState,
@@ -28,21 +27,22 @@ def cli(env, guest, migrate_all, host):
2827

2928
# No options, just print out a list of guests that can be migrated
3029
if not (guest or migrate_all):
31-
require_migration = vsi.list_instances(filter=pending_filter, mask=mask)
30+
require_migration = vsi.list_instances(mask=mask)
3231
require_table = formatting.Table(['id', 'hostname', 'domain', 'datacenter'], title="Require Migration")
3332

3433
for vsi_object in require_migration:
35-
require_table.add_row([
36-
vsi_object.get('id'),
37-
vsi_object.get('hostname'),
38-
vsi_object.get('domain'),
39-
utils.lookup(vsi_object, 'datacenter', 'name')
40-
])
34+
if vsi_object['pendingMigrationFlag']:
35+
require_table.add_row([
36+
vsi_object.get('id'),
37+
vsi_object.get('hostname'),
38+
vsi_object.get('domain'),
39+
utils.lookup(vsi_object, 'datacenter', 'name')
40+
])
4141

42-
if require_migration:
42+
if len(require_table.rows) > 0:
4343
env.fout(require_table)
4444
else:
45-
click.secho("No guests require migration at this time", fg='green')
45+
click.secho("No guests require migration at this time.", fg='green')
4646

4747
migrateable = vsi.list_instances(filter=dedicated_filter, mask=mask)
4848
migrateable_table = formatting.Table(['id', 'hostname', 'domain', 'datacenter', 'Host Name', 'Host Id'],
@@ -56,14 +56,20 @@ def cli(env, guest, migrate_all, host):
5656
utils.lookup(vsi_object, 'dedicatedHost', 'name'),
5757
utils.lookup(vsi_object, 'dedicatedHost', 'id')
5858
])
59-
env.fout(migrateable_table)
59+
if len(migrateable_table.rows) > 0:
60+
env.fout(migrateable_table)
61+
else:
62+
click.secho("No dedicated guests to migrate.", fg='green')
6063
# Migrate all guests with pendingMigrationFlag=True
6164
elif migrate_all:
62-
require_migration = vsi.list_instances(filter=pending_filter, mask="mask[id]")
63-
if not require_migration:
64-
click.secho("No guests require migration at this time", fg='green')
65+
require_migration = vsi.list_instances(mask="mask[id,pendingMigrationFlag]")
66+
migrated = 0
6567
for vsi_object in require_migration:
66-
migrate(vsi, vsi_object['id'])
68+
if vsi_object['pendingMigrationFlag']:
69+
migrated = migrated + 1
70+
migrate(vsi, vsi_object['id'])
71+
if migrated == 0:
72+
click.secho("No guests require migration at this time", fg='green')
6773
# Just migrate based on the options
6874
else:
6975
migrate(vsi, guest, host)

SoftLayer/managers/vs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ def list_instances(self, hourly=True, monthly=True, tags=None, cpus=None,
131131
call = 'getMonthlyVirtualGuests'
132132

133133
_filter = utils.NestedDict(kwargs.get('filter') or {})
134+
_filter['virtualGuests']['id'] = utils.query_filter_orderby()
134135
if tags:
135136
_filter['virtualGuests']['tagReferences']['tag']['name'] = {
136137
'operation': 'in',

0 commit comments

Comments
 (0)