Fix some bugs of gvnfm lcm
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / vnfs / vnf_cancel / delete_vnf_identifier.py
index 650d17e..4ff6493 100644 (file)
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
-# limitations under the License.
\ No newline at end of file
+# limitations under the License.
+import logging
+
+from lcm.pub.database.models import NfInstModel
+from lcm.pub.exceptions import NFLCMException
+
+logger = logging.getLogger(__name__)
+
+
+class DeleteVnf:
+    def __init__(self, data, instanceid):
+        self.data = data
+        self.nf_inst_id = instanceid
+
+    def do_biz(self):
+        vnf_insts = NfInstModel.objects.filter(nfinstid=self.nf_inst_id)
+        if not vnf_insts.exists():
+            raise NFLCMException('VnfInst(%s) does not exist' % self.nf_inst_id)
+        sel_vnf = vnf_insts[0]
+        if sel_vnf.status != 'NOT_INSTANTIATED':
+            raise NFLCMException("Don't allow to delete vnf(status:[%s])" % sel_vnf.status)
+        NfInstModel.objects.filter(nfinstid=self.nf_inst_id).delete()
+        NfvoRegInfoModel.objects.filter(nfvoid=self.nf_inst_id).delete()