diff --git a/networkapi/api_interface/facade.py b/networkapi/api_interface/facade.py index 17bfe2b3..e96c685f 100644 --- a/networkapi/api_interface/facade.py +++ b/networkapi/api_interface/facade.py @@ -489,6 +489,8 @@ def generate_and_deploy_channel_config_sync(user, id_channel): raise exceptions.InvalidIdInterfaceException() channel = PortChannel.get_by_pk(id_channel) + channel.status_deploy = StatusDeploy.processing[0] + channel.save(user) interfaces = channel.list_interfaces() diff --git a/networkapi/interface/models.py b/networkapi/interface/models.py index 67862dfc..4d902fe1 100644 --- a/networkapi/interface/models.py +++ b/networkapi/interface/models.py @@ -148,9 +148,10 @@ def get_by_name(cls, name): class StatusDeploy: pending = ('pending', 'pending') + processing = ('processing', 'processing') deployed = ('deployed', 'deployed') error = ('error', 'error') - list_type = (pending, deployed, error) + list_type = (pending, processing, deployed, error) class PortChannel(BaseModel): diff --git a/networkapi/interface/resource/InterfaceChannelResource.py b/networkapi/interface/resource/InterfaceChannelResource.py index bba6f1fd..e8710998 100644 --- a/networkapi/interface/resource/InterfaceChannelResource.py +++ b/networkapi/interface/resource/InterfaceChannelResource.py @@ -338,6 +338,10 @@ def handle_delete(self, request, user, *args, **kwargs): # For each equipment (leaf), undeploy port channel config try: + if keep_db: + channel.status_deploy = StatusDeploy.processing[0] + channel.save(user, commit=True) + for e in equip_dict: if not keep_db: for i in equip_dict.get(e):