From b013e7c8642f9fb267080cf1d233e61f00070046 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Wed, 5 Dec 2012 13:08:02 -0500 Subject: [PATCH] PerformOperationalAction can only be called on fully allocated slivers --- sfa/openstack/nova_driver.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sfa/openstack/nova_driver.py b/sfa/openstack/nova_driver.py index 08c48db6..b6595b2e 100644 --- a/sfa/openstack/nova_driver.py +++ b/sfa/openstack/nova_driver.py @@ -408,6 +408,16 @@ class NovaDriver(Driver): action_method = aggreate.restart_instances else: raise UnsupportedOperation(action) + + # fault if sliver is not full allocated (operational status is geni_pending_allocation) + description = self.describe(urns, None, options) + for sliver in description['geni_slivers']: + if sliver['geni_operational_status'] == 'geni_pending_allocation': + raise UnsupportedOperation(action, "Sliver must be fully allocated (operational status is not geni_pending_allocation)") + # + # Perform Operational Action Here + # + instances = aggregate.get_instances(urns) for instance in instances: tenant_name = self.driver.shell.auth_manager.client.tenant_name -- 2.47.0