/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * 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. */ package org.apache.oozie.ambari.view.assets; import java.util.Collection; import org.apache.ambari.view.ViewContext; import org.apache.oozie.ambari.view.assets.model.ActionAsset; import org.apache.oozie.ambari.view.assets.model.ActionAssetDefinition; import org.apache.oozie.ambari.view.assets.model.AssetDefintion; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AssetService { private final static Logger LOGGER = LoggerFactory .getLogger(AssetService.class); private final AssetRepo assetRepo; private final AssetDefinitionRepo assetDefinitionRepo; private final ViewContext viewContext; public AssetService(ViewContext viewContext) { super(); this.viewContext = viewContext; this.assetDefinitionRepo = new AssetDefinitionRepo( viewContext.getDataStore()); this.assetRepo = new AssetRepo(viewContext.getDataStore()); } public Collection<ActionAsset> getAssets() { return assetRepo.findAll(); } public Collection<ActionAsset> getPrioritizedAssets() { Collection<ActionAsset> assets = getAssets(); return assets; } public void saveAsset(String assetId, String userName, AssetDefintion assetDefinition) { if (assetId != null) { ActionAsset actionAsset = assetRepo.findById(assetId); if (actionAsset == null) { throw new RuntimeException("could not find asset with id :" + assetId); } actionAsset.setDescription(assetDefinition.getDescription()); actionAsset.setName(assetDefinition.getName()); actionAsset.setType(assetDefinition.getType()); ActionAssetDefinition assetDefinintion = assetDefinitionRepo .findById(actionAsset.getDefinitionRef()); assetDefinintion.setData(assetDefinintion.getData()); assetDefinitionRepo.update(assetDefinintion); assetRepo.update(actionAsset); } else { ActionAsset actionAsset = new ActionAsset(); actionAsset.setOwner(userName); ActionAssetDefinition definition = new ActionAssetDefinition(); definition.setData(assetDefinition.getDefinition()); ActionAssetDefinition createdDefinition = assetDefinitionRepo .create(definition); actionAsset.setDefinitionRef(createdDefinition.getId()); actionAsset.setDescription(assetDefinition.getDescription()); actionAsset.setName(assetDefinition.getName()); actionAsset.setType(assetDefinition.getType()); assetRepo.create(actionAsset); } } public void deleteAsset(String id) { assetRepo.deleteById(id); } public AssetDefintion getAssetDetail(String assetId) { AssetDefintion ad = new AssetDefintion(); ActionAsset actionAsset = assetRepo.findById(assetId); ActionAssetDefinition actionDefinition = assetDefinitionRepo .findById(actionAsset.getDefinitionRef()); ad.setDefinition(actionDefinition.getData()); ad.setDescription(actionAsset.getDescription()); ad.setName(actionAsset.getName()); return ad; } public ActionAssetDefinition getAssetDefinition(String assetDefintionId) { return assetDefinitionRepo.findById(assetDefintionId); } public ActionAsset getAsset(String id) { return assetRepo.findById(id); } public Collection<ActionAsset> getMyAssets() { return assetRepo.getMyAsets(viewContext.getUsername()); } public boolean isAssetNameAvailable(String name) { return assetRepo.assetNameAvailable(name); } }