Exemplo n.º 1
0
    def deleteImage(self, paramDict):
        #処理メソッド取得
        method = paramDict['method']
        #辞書からメソッドキーと値を削除
        del paramDict['method']
        
        #引数チェック
        result = CommonUtils.checkArguments(method, paramDict)
        if result != True:
            return {'result':'1','message':result}
        
        #変数定義
        platformList = None
        imageName = paramDict['imageName']
        if "platformList" in paramDict:
            platformList = paramDict['platformList']
        iconDeleteFlg = False
        imageNoList = []
        imageDataList = []
        
        #イメージデータ存在チェック
        try:
            imageData = CommonUtils.getImageDataByName(imageName)
            if imageData is None:
                return {'result':'1','message':"イメージ:"+ imageName + "が存在しません。削除対象を確認して下さい。"}
        except Exception as e:
            return {'result':'1','message':"イメージ情報の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
        
        #削除対象imageNo一覧取得
        #platformListが指定されなかった場合
        if platformList is None:
            for image in imageData:
                imageNoList.append(image["IMAGE_NO"])
        else:
            platformList = platformList.split(",")
            for platformName in platformList:
                try:
                    platformNo = CommonUtils.getPlatformDataByName(platformName)["PLATFORM_NO"]
                except Exception as e:
                    return {'result':'1','message':"プラットフォーム情報の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
                try:
                    imageData = CommonUtils.getImageDataByNameAndPlatformNo(imageName, platformNo)
                    if imageData != None:
                        imageNoList.append(imageData["IMAGE_NO"])
                except Exception as e:
                    return {'result':'1','message':"イメージ情報の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}

        for imageNo in imageNoList:
            #削除対象のOSイメージを使用しているインスタンス存在チェック
            try:
                table = self.conn.getTable("INSTANCE")
            except Exception as e:
                return {'result':'1','message':"INSTANCEテーブルが存在しません。管理者に連絡を行って下さい。"}
            instanceDatas = self.conn.select(table.select(table.c.IMAGE_NO==imageNo))
            if len(instanceDatas) > 0:
                return {'result':'1','message':"OSイメージNo:" + str(imageNo) + "は現在作成済みのインスタンスで使用されているため削除できません。処理を中止します。"}

            #削除対象のOSイメージを使用しているmyCloud用インスタンステンプレートチェック
            try:
                table = self.conn.getTable("TEMPLATE_INSTANCE")
            except Exception as e:
                return {'result':'1','message':"TEMPLATE_INSTANCEテーブルが存在しません。管理者に連絡を行って下さい。"}
            tmpInstDatas = self.conn.select(table.select(table.c.IMAGE_NO==imageNo))
            if len(tmpInstDatas) > 0:
                return {'result':'1','message':"OSイメージNo:" + str(imageNo) + "は現在インスタンステンプレートで使用されているため削除できません。処理を中止します。"}

        #imageNameの同名存在チェック
        try:
            table = self.conn.getTable("IMAGE")
        except Exception as e:
            return {'result':'1','message':"IMAGEテーブルが存在しません。管理者に連絡を行って下さい。"}
        checkImageData = self.conn.select(table.select(table.c.IMAGE_NAME==imageName))

        if len(checkImageData) == len(imageNoList):
            iconDeleteFlg = True
        
        for imageNo in imageNoList:
            #プラットフォームデータ取得
            try:
                platformNo = CommonUtils.getImageDataByNo(imageNo)["PLATFORM_NO"]
            except Exception as e:
                return {'result':'1','message':"イメージ情報の取得に失敗したため処理を終了します。"}
            try:
                plData = CommonUtils.getPlatformDataByNo(platformNo)
            except Exception as e:
                return {'result':'1','message':"プラットフォーム情報の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
            
            iaasName = plData["PLATFORM_TYPE"]
            #IaaS毎のイメージテーブルのデータ削除
            if "aws" == iaasName:
                try:
                    tableImageAws = self.conn.getTable("IMAGE_AWS")
                    sql = tableImageAws.delete(tableImageAws.c.IMAGE_NO == imageNo)
                    self.conn.execute(sql)
                except Exception as e:
                    self.conn.rollback()
                    return {'result':'1','message':"IMAGE_AWSテーブルのデータ削除に失敗したため処理を中止します。"}

            elif "vmware" == iaasName:
                try:
                    tableImageVm = self.conn.getTable("IMAGE_VMWARE")
                    sql = tableImageVm.delete(tableImageVm.c.IMAGE_NO == imageNo)
                    self.conn.execute(sql)
                except Exception as e:
                    self.conn.rollback()
                    return {'result':'1','message':"IMAGE_VMWAREテーブルのデータ削除に失敗したため処理を中止します。"}
                    
            elif "cloudstack" == iaasName:
                try:
                    tableImageCs = self.conn.getTable("IMAGE_CLOUDSTACK")
                    sql = tableImageCs.delete(tableImageCs.c.IMAGE_NO == imageNo)
                    self.conn.execute(sql)
                except Exception as e:
                    self.conn.rollback()
                    return {'result':'1','message':"IMAGE_CLOUDSTACKテーブルのデータ削除に失敗したため処理を中止します。"}
                    
            elif "vcloud" == iaasName:
                try:
                    tableImageVc = self.conn.getTable("IMAGE_VCLOUD")
                    sql = tableImageVc.delete(tableImageVc.c.IMAGE_NO == imageNo)
                    self.conn.execute(sql)
                except Exception as e:
                    self.conn.rollback()
                    return {'result':'1','message':"IMAGE_VCLOUDテーブルのデータ削除に失敗したため処理を中止します。"}

            elif "openstack" == iaasName:
                try:
                    tableImageOs = self.conn.getTable("IMAGE_OPENSTACK")
                    sql = tableImageOs.delete(tableImageOs.c.IMAGE_NO == imageNo)
                    self.conn.execute(sql)
                except Exception as e:
                    self.conn.rollback()
                    return {'result':'1','message':"IMAGE_OPENSTACKテーブルのデータ削除に失敗したため処理を中止します。"}

            elif "azure" == iaasName:
                try:
                    tableImageAz = self.conn.getTable("IMAGE_AZURE")
                    sql = tableImageAz.delete(tableImageAz.c.IMAGE_NO == imageNo)
                    self.conn.execute(sql)
                except Exception as e:
                    self.conn.rollback()
                    return {'result':'1','message':"IMAGE_AZUREテーブルのデータ削除に失敗したため処理を中止します。"}

            elif "nifty" == iaasName:
                try:
                    tableImageNif = self.conn.getTable("IMAGE_NIFTY")
                    sql = tableImageNif.delete(tableImageNif.c.IMAGE_NO == imageNo)
                    self.conn.execute(sql)
                except Exception as e:
                    self.conn.rollback()
                    return {'result':'1','message':"IMAGE_NIFTYテーブルのデータ削除に失敗したため処理を中止します。"}

            #IMAGEテーブルのデータ削除
            try:
                tableImage = self.conn.getTable("IMAGE")
                sql = tableImage.delete(tableImage.c.IMAGE_NO == imageNo)
                self.conn.execute(sql)
            except Exception as e:
                self.conn.rollback()
                return {'result':'1','message':"IMAGEテーブルのデータ削除に失敗したため処理を中止します。"}
        
        self.conn.commit()
        
        imageNos = ",".join(str(imageNo) for imageNo in imageNoList)
        
        if iconDeleteFlg:
            #アイコン画像削除処理
            filePath = glob.glob('/opt/adc/app/auto-web/VAADIN/themes/classy/icons/' + imageName + '.*')
            if len(filePath) > 0:
                if os.path.isfile(filePath[0]):
                    os.remove(filePath[0])

        return {'result':'0','message':"OSイメージNo:" + imageNos + "の削除が完了しました。"}
Exemplo n.º 2
0
    def showImage(self, paramDict):
        #処理メソッド取得
        method = paramDict['method']
        #辞書からメソッドキーと値を削除
        del paramDict['method']
        strServiceName = None
        #引数チェック
        result = CommonUtils.checkArguments(method, paramDict)
        if result != True:
            return {'result':'1','message':result}
        
        #変数定義
        imageNo = paramDict['imageNo']
        imageIaasData = None
        
        #イメージデータ存在チェック
        try:
            imageData = CommonUtils.getImageDataByNo(imageNo)
            if imageData is None:
                return {'result':'1','message':"イメージNo:"+ imageNo + "が存在しません。対象を確認して下さい。"}
        except Exception as e:
            return {'result':'1','message':"イメージ情報の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
        
        strServiceNo = imageData["COMPONENT_TYPE_NOS"]
        #serviceListの値が存在する場合、Noを名称に変換
        if strServiceNo != None:
            serviceList = strServiceNo.split(',')
            serviceNameList = []
            for serviceNo in serviceList:
                try:
                    result =  CommonUtils.getComponentTypeNameByNo(serviceNo)
                    if result is None:
                        return {'result':'1','message':"サービス名称の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
                    else:
                        serviceNameList.append(result)
                except AttributeError as e:
                    return {'result':'1','message':"サービス名称の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
            #リストをカンマで結合
            strServiceName = ",".join(serviceNameList)
            
        imageData.update({"SERVICE_NAME_LIST":strServiceName})

        #ステータスの取得
        try:
            status = CommonUtils.getSelectableStatus(imageData["SELECTABLE"])
        except Exception as e:
            return {'result':'1','message':"ステータス名称の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
            
        #SELECTABLEの値をenable/disableに変換
        imageData["SELECTABLE"] = status
        
        #プラットフォーム存在チェック
        try:
            plData = CommonUtils.getPlatformDataByNo(imageData["PLATFORM_NO"])
            #指定されたプラットフォームが存在しない場合
            if plData is None:
                return {'result':'1','message':"プラットフォーム名:" + platformName + "が存在しません。管理者に連絡を行って下さい。"}
        except Exception as e:
            return {'result':'1','message':"プラットフォーム情報の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
        
        platformName = plData["PLATFORM_NAME"]
        iaasName = plData["PLATFORM_TYPE"]
        
        if "aws" == iaasName:
            try:
                tableImageAws = self.conn.getTable("IMAGE_AWS")
            except Exception as e:
                return {'result':'1','message':"IMAGE_AWSテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageIaasData = self.conn.selectOne(tableImageAws.select(tableImageAws.c.IMAGE_NO==imageNo))
        elif "vmware" == iaasName:
            try:
                tableImageVm = self.conn.getTable("IMAGE_VMWARE")
            except Exception as e:
                return {'result':'1','message':"IMAGE_VMWAREテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageIaasData = self.conn.selectOne(tableImageVm.select(tableImageVm.c.IMAGE_NO==imageNo))
            imageIaasData.update({"IMAGE_ID":imageIaasData["TEMPLATE_NAME"]})
        elif "cloudstack" == iaasName:
            try:
                tableImageCs = self.conn.getTable("IMAGE_CLOUDSTACK")
            except Exception as e:  
                return {'result':'1','message':"IMAGE_CLOUDSTACKテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageIaasData = self.conn.selectOne(tableImageCs.select(tableImageCs.c.IMAGE_NO==imageNo))
            imageIaasData.update({"IMAGE_ID":imageIaasData["TEMPLATE_ID"]})
        elif "vcloud" == iaasName:
            try:
                tableImageVc = self.conn.getTable("IMAGE_VCLOUD")
            except Exception as e:
                return {'result':'1','message':"IMAGE_VCLOUDテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageIaasData = self.conn.selectOne(tableImageVc.select(tableImageVc.c.IMAGE_NO==imageNo))
            imageIaasData.update({"IMAGE_ID":imageIaasData["TEMPLATE_NAME"]})
        elif "openstack" == iaasName:
            try:
                tableImageOs = self.conn.getTable("IMAGE_OPENSTACK")
            except Exception as e:  
                return {'result':'1','message':"IMAGE_OPENSTACKテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageIaasData = self.conn.selectOne(tableImageOs.select(tableImageOs.c.IMAGE_NO==imageNo))
        elif "azure" == iaasName:
            try:
                tableImageAz = self.conn.getTable("IMAGE_AZURE")
            except Exception as e:
                return {'result':'1','message':"IMAGE_AZUREテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageIaasData = self.conn.selectOne(tableImageAz.select(tableImageAz.c.IMAGE_NO==imageNo))
            imageIaasData.update({"IMAGE_ID":imageIaasData["IMAGE_NAME"]})
        elif "nifty" == iaasName:
            try:
                tableImageNif = self.conn.getTable("IMAGE_NIFTY")
            except Exception as e:
                return {'result':'1','message':"IMAGE_NIFTYテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageIaasData = self.conn.selectOne(tableImageNif.select(tableImageNif.c.IMAGE_NO==imageNo))
            
        imageData.update(imageIaasData)
        imageData.update({u"PLATFORM_NAME":platformName})
        retData = json.dumps(imageData, ensure_ascii=False)
        
        return {'result':'0', 'message':"suucess", 'data':retData}
        
Exemplo n.º 3
0
    def updateImage(self, paramDict):
        #処理メソッド取得
        method = paramDict['method']
        #辞書からメソッドキーと値を削除
        del paramDict['method']

        #イメージNo存在チェック
        try:
            if "imageNo" in paramDict:
                imageNo = paramDict['imageNo']
                imageData = CommonUtils.getImageDataByNo(imageNo)
                if imageData is None:
                    return {'result':'1','message':"イメージNo:"+ imageNo + "が存在しません。更新対象を確認して下さい。"}
                else:
                    platformNo = imageData["PLATFORM_NO"]
                    iaasName = CommonUtils.getPlatformTypeByNo(platformNo)
                    if iaasName is None:
                        return {'result':'1','message':"指定されたプラットフォーム名:" + paramDict['platformName'] + "は存在しません。登録対象を確認して下さい。"}
                    elif "aws" == iaasName:
                        method = "updateAwsImage"
        except Exception as e:
            return {'result':'1','message':"イメージ情報の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}

        #引数のチェック
        result = CommonUtils.checkArguments(method, paramDict)
        if result != True:
            return {'result':'1','message':result}
        
        #引数から変数へセット
        imageNo = paramDict['imageNo']
        imageName = None
        imageNameDisp = None
        osName = None
        osNameDisp = None
        serviceList = None
        serviceNoList = 0
        instanceTypeList = None
        zabbixTemplate = None
        kernelId = None
        ramdiskId = None
        icon = None
        
        if "imageName" in paramDict:
            imageName = paramDict['imageName']
        if "imageNameDisp" in paramDict:
            imageNameDisp = paramDict['imageNameDisp']
        if "osName" in paramDict:
            osName = paramDict['osName']
        if "osNameDisp" in paramDict:
            osNameDisp = paramDict['osNameDisp']
        if "serviceList" in paramDict:
            serviceList = paramDict['serviceList']
        if "instanceTypeList" in paramDict:
            instanceTypeList = paramDict['instanceTypeList']
        if "zabbixTemplate" in paramDict:
            zabbixTemplate = paramDict['zabbixTemplate']
        if "kernelId" in paramDict:
            kernelId = paramDict['kernelId']
        if "ramdiskId" in paramDict:
            ramdiskId = paramDict['ramdiskId']
        if "icon" in paramDict:
            icon = paramDict['icon']
       
        #serviceListの値が存在する場合、名称をNoに変換
        if serviceList != None:
            serviceList = serviceList.split(',')
            serviceNoList = []
            for serviceName in serviceList:
                try:
                    result =  CommonUtils.getComponentTypeNoByName(serviceName)
                    if result is None:
                        return {'result':'1','message':"サービス名称:" + serviceName + "が存在しません。更新対象を確認して下さい。"}
                    else:
                        serviceNoList.append(result)
                except AttributeError as e:
                    return {'result':'1','message':"サービス名称の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
            #リストをカンマで結合
            serviceNoList = ",".join(serviceNoList)
        
        #同一プラットフォーム・同一名のイメージデータ存在チェック
        try:
            platformNo = imageData["PLATFORM_NO"]
            plData = CommonUtils.getPlatformDataByNo(platformNo)
            checkImageData = CommonUtils.getImageDataByNameAndPlatformNo(imageName, platformNo)
             #指定されたイメージ名が既に存在する場合
            if checkImageData != None and imageNo != checkImageData["IMAGE_NO"]:
                return {'result':'1','message':"更新対象のOSイメージが使用するプラットフォーム:" + plData["PLATFORM_NAME"] +"には既に同じ名称のイメージ:" + imageName + "が存在します。名称を指定し直して下さい。"}
        except Exception as e:
            return {'result':'1','message':"イメージ情報の取得に失敗したため処理を中止します。管理者に連絡を行って下さい。"}
        
        #アイコンファイル存在チェック
        if icon != None:
            if os.path.isfile(icon) == False:
                return {'result':'1','message':"指定されたアイコンファイルが見つからないため処理を中止します。対象を確認して下さい。"}
        
        iaasName = plData["PLATFORM_TYPE"]
        
        #更新データ作成
        if imageName != None:
            imageData["IMAGE_NAME"] = imageName
        if imageNameDisp != None:
            imageData["IMAGE_NAME_DISP"] = imageNameDisp
        if osName != None:
            imageData["OS"] = osName
        if osNameDisp != None:
            imageData["OS_DISP"] = osName
        if serviceNoList != 0:
            imageData["COMPONENT_TYPE_NOS"] = serviceNoList
        if zabbixTemplate != None:
            imageData["ZABBIX_TEMPLATE"] = zabbixTemplate
        
        try:
            #IMAGEテーブルのデータ更新
            try:
                image = self.conn.getTable("IMAGE")
            except Exception as e:
                return {'result':'1','message':"IMAGEテーブルが存在しません。管理者に連絡を行って下さい。"}
            sql = image.update(image.c.IMAGE_NO == imageData["IMAGE_NO"], values = imageData)
            self.conn.execute(sql)
        except Exception as e:
            self.conn.rollback()
            return {'result':'1','message':"IMAGEテーブルの更新に失敗したため処理を中止します。イメージNo:" + imageNo}
        
        #IaaS毎のテーブル更新
        if "aws" == iaasName:
            #更新データ作成
            try:
                tableImageAws = self.conn.getTable("IMAGE_AWS")
            except Exception as e:
                return {'result':'1','message':"IMAGE_AWSテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageAwsData = self.conn.selectOne(tableImageAws.select(tableImageAws.c.IMAGE_NO==imageNo))
            if kernelId != None:
                imageAwsData["KERNEL_ID"] = kernelId
            if ramdiskId != None:
                imageAwsData["RAMDISK_ID"] = ramdiskId
            if instanceTypeList != None:
                imageAwsData["INSTANCE_TYPES"] = instanceTypeList
            try:
                #IMAGE_AWSテーブルのデータ更新
                sql = tableImageAws.update(tableImageAws.c.IMAGE_NO == imageAwsData["IMAGE_NO"], values = imageAwsData)
                self.conn.execute(sql)
            except Exception as e:
                self.conn.rollback()
                return {'result':'1','message':"IMAGE_AWSテーブルの更新に失敗したため処理を中止します。イメージNo:" + imageNo}
        
        elif "vmware" == iaasName:
            #更新データ作成
            try:
                tableImageVm = self.conn.getTable("IMAGE_VMWARE")
            except Exception as e:
                return {'result':'1','message':"IMAGE_VMWAREテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageVmData = self.conn.selectOne(tableImageVm.select(tableImageVm.c.IMAGE_NO==imageNo))
            if instanceTypeList != None:
                imageVmData["INSTANCE_TYPES"] = instanceTypeList
            try:
                #IMAGE_VMWAREテーブルのデータ更新
                sql = tableImageVm.update(tableImageVm.c.IMAGE_NO == imageVmData["IMAGE_NO"], values = imageVmData)
                self.conn.execute(sql)
            except Exception as e:
                self.conn.rollback()
                return {'result':'1','message':"IMAGE_VMWAREテーブルの更新に失敗したため処理を中止します。イメージNo:" + imageNo}
        
        elif "cloudstack" == iaasName:
            #更新データ作成
            try:
                tableImageCs = self.conn.getTable("IMAGE_CLOUDSTACK")
            except Exception as e:
                return {'result':'1','message':"IMAGE_CLOUDSTACKテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageCsData = self.conn.selectOne(tableImageCs.select(tableImageCs.c.IMAGE_NO==imageNo))
            if instanceTypeList != None:
                imageCsData["INSTANCE_TYPES"] = instanceTypeList
            try:
                #IMAGE_CLOUDSTACKテーブルのデータ更新
                sql = tableImageCs.update(tableImageCs.c.IMAGE_NO == imageCsData["IMAGE_NO"], values = imageCsData)
                self.conn.execute(sql)
            except Exception as e:
                self.conn.rollback()
                return {'result':'1','message':"IMAGE_CLOUDSTACKテーブルの更新に失敗したため処理を中止します。イメージNo:" + imageNo}
        
        elif "vcloud" == iaasName:
            #更新データ作成
            try:
                tableImageVc = self.conn.getTable("IMAGE_VCLOUD")
            except Exception as e:
                return {'result':'1','message':"IMAGE_VCLOUDテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageVcData = self.conn.selectOne(tableImageVc.select(tableImageVc.c.IMAGE_NO==imageNo))
            if instanceTypeList != None:
                imageVcData["INSTANCE_TYPES"] = instanceTypeList
            try:
                #IMAGE_VCLOUDテーブルのデータ更新
                sql = tableImageVc.update(tableImageVc.c.IMAGE_NO == imageVcData["IMAGE_NO"], values = imageVcData)
                self.conn.execute(sql)
            except Exception as e:
                self.conn.rollback()
                return {'result':'1','message':"IMAGE_VCLOUDテーブルの更新に失敗したため処理を中止します。イメージNo:" + imageNo}
        
        elif "openstack" == iaasName:
            #更新データ作成
            try:
                tableImageOs = self.conn.getTable("IMAGE_OPENSTACK")
            except Exception as e:
                return {'result':'1','message':"IMAGE_OPENSTACKテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageOsData = self.conn.selectOne(tableImageOs.select(tableImageOs.c.IMAGE_NO==imageNo))
            if instanceTypeList != None:
                imageOsData["INSTANCE_TYPES"] = instanceTypeList
            try:
                #IMAGE_OPENSTACKテーブルのデータ更新
                sql = tableImageOs.update(tableImageOs.c.IMAGE_NO == imageOsData["IMAGE_NO"], values = imageOsData)
                self.conn.execute(sql)
            except Exception as e:
                self.conn.rollback()
                return {'result':'1','message':"IMAGE_OPENSTACKテーブルの更新に失敗したため処理を中止します。イメージNo:" + imageNo}
        
        elif "azure" == iaasName:
            #更新データ作成
            try:
                tableImageAzure = self.conn.getTable("IMAGE_AZURE")
            except Exception as e:
                return {'result':'1','message':"IMAGE_AZUREテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageAzureData = self.conn.selectOne(tableImageAzure.select(tableImageAzure.c.IMAGE_NO==imageNo))
            if instanceTypeList != None:
                imageAzureData["INSTANCE_TYPES"] = instanceTypeList
            try:
                #IMAGE_AZUREテーブルのデータ更新
                sql = tableImageAzure.update(tableImageAzure.c.IMAGE_NO == imageAzureData["IMAGE_NO"], values = imageAzureData)
                self.conn.execute(sql)
            except Exception as e:
                self.conn.rollback()
                return {'result':'1','message':"IMAGE_AZUREテーブルの更新に失敗したため処理を中止します。イメージNo:" + imageNo}
        
        elif "nifty" == iaasName:
            #更新データ作成
            try:
                tableImageNifty = self.conn.getTable("IMAGE_NIFTY")
            except Exception as e:
                return {'result':'1','message':"IMAGE_NIFTYテーブルが存在しません。管理者に連絡を行って下さい。"}
            imageNiftyData = self.conn.selectOne(tableImageNifty.select(tableImageNifty.c.IMAGE_NO==imageNo))
            if instanceTypeList != None:
                imageNiftyData["INSTANCE_TYPES"] = instanceTypeList
            try:
                #IMAGE_NIFTYテーブルのデータ更新
                sql = tableImageNifty.update(tableImageNifty.c.IMAGE_NO == imageNiftyData["IMAGE_NO"], values = imageNiftyData)
                self.conn.execute(sql)
            except Exception as e:
                self.conn.rollback()
                return {'result':'1','message':"IMAGE_NIFTYテーブルの更新に失敗したため処理を中止します。イメージNo:" + imageNo}

        if icon != None:
            path, ext = os.path.splitext(icon)
            #iconの指定がある場合iconのパスに存在する画像を/opt/adc/app/auto-web/VAADIN/themes/classy/iconsに(引数.imageName)pngの形式にリネームしてコピーする。
            copyName = "/opt/adc/app/auto-web/VAADIN/themes/classy/icons/" + imageName + ext
            shutil.copyfile(icon, copyName)

        self.conn.commit()
        return {'result':'0','message':"OSイメージNo:" + imageNo + "/" + imageName + "の更新が完了しました。"}