Add neutron/upgrade tasks
This commit adds neutron/upgrade:
pre.sls: Stop API/Render Configuration
upgrade.sls: Install latest package
post.sls: Start service
Change-Id: I5c1bfd819e7d9fa2ec2ba937e4ee644cd4b77370
Related-Prod: PROD-21927
diff --git a/_states/neutronv2.py b/_states/neutronv2.py
index 42e202b..0c00c22 100644
--- a/_states/neutronv2.py
+++ b/_states/neutronv2.py
@@ -147,6 +147,49 @@
return _failed('find', name, 'agent')
+def agents_disabled(name, cloud_name, **kwargs):
+ """
+ :param name: agent host name
+ :param kwargs:
+ :param description: agent description
+ :param admin_state_up: administrative state of the agent
+ """
+ agents = _neutronv2_call(
+ 'agent_list', host=name, cloud_name=cloud_name)['agents']
+
+ changes = {}
+ for agent in agents:
+ if agent['admin_state_up'] == True:
+ try:
+ changes[agent['id']] = _neutronv2_call('agent_update', agent_id=agent['id'],
+ cloud_name=cloud_name, admin_state_up=False)
+ except Exception:
+ return _failed('update', name, 'agent')
+ return _succeeded('update', name, 'agent',changes)
+
+
+def agents_enabled(name, cloud_name, **kwargs):
+ """
+ :param name: agent host name
+ :param kwargs:
+ :param description: agent description
+ :param admin_state_up: administrative state of the agent
+ """
+ agents = _neutronv2_call(
+ 'agent_list', host=name, cloud_name=cloud_name)['agents']
+
+ changes = {}
+ for agent in agents:
+ if agent['admin_state_up'] == False:
+ try:
+ changes[agent['id']] = _neutronv2_call('agent_update', agent_id=agent['id'],
+ cloud_name=cloud_name, admin_state_up=True)
+ except Exception:
+ return _failed('update', name, 'agent')
+
+ return _succeeded('update', name, 'agent', changes)
+
+
def _succeeded(op, name, resource, changes=None):
msg_map = {
'create': '{0} {1} created',