diff options
author | tang peng <tang.peng5@zte.com.cn> | 2020-09-25 15:15:00 +0800 |
---|---|---|
committer | tang peng <tang.peng5@zte.com.cn> | 2020-09-25 15:15:12 +0800 |
commit | 38107cb7956b94100cbc5a766c7bbc12dc7154a2 (patch) | |
tree | 610045d00d49a951da64a2845def106c5b6f5847 /holmes-actions/src/main | |
parent | fe095c6946e55131f3b70af0a9795135a8314f08 (diff) |
Added some tools for engine instance management
Issue-ID: HOLMES-365
Signed-off-by: tang peng <tang.peng5@zte.com.cn>
Change-Id: Ie57ca3eaa0ffda7c3f611b07293ceedd75d08a91
Diffstat (limited to 'holmes-actions/src/main')
5 files changed, 246 insertions, 0 deletions
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityDao.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityDao.java new file mode 100644 index 0000000..42e0bf4 --- /dev/null +++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityDao.java @@ -0,0 +1,44 @@ +/** + * Copyright 2020 ZTE Corporation. + * + * Licensed 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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.onap.holmes.common.engine.dao; + +import org.onap.holmes.common.engine.entity.EngineEntity; +import org.skife.jdbi.v2.sqlobject.Bind; +import org.skife.jdbi.v2.sqlobject.BindBean; +import org.skife.jdbi.v2.sqlobject.SqlQuery; +import org.skife.jdbi.v2.sqlobject.SqlUpdate; +import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper; + +import java.util.List; + +@RegisterMapper(EngineEntityMapper.class) +public interface EngineEntityDao { + @SqlQuery("SELECT * FROM ENGINE_ENTITY WHERE ID = :id") + EngineEntity getEntity(@Bind("id") String id); + + @SqlQuery("SELECT * FROM ENGINE_ENTITY") + List<EngineEntity> getAllEntities(); + + @SqlUpdate("INSERT INTO ENGINE_ENTITY VALUES (:id, :ip, :port, :lastModified)") + void insertEntity(@BindBean EngineEntity entity); + + @SqlUpdate("UPDATE ENGINE_ENTITY SET LASTMODIFIED = :lastModified WHERE ID = :id") + void updateEntity(@BindBean EngineEntity entity); + + @SqlUpdate("DELETE FROM ENGINE_ENTITY WHERE ID = :id") + void deleteEntity(@Bind("id") String id); +}
\ No newline at end of file diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityMapper.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityMapper.java new file mode 100644 index 0000000..cda38a5 --- /dev/null +++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/dao/EngineEntityMapper.java @@ -0,0 +1,35 @@ +/** + * Copyright 2020 ZTE Corporation. + * + * Licensed 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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.onap.holmes.common.engine.dao; + +import org.onap.holmes.common.engine.entity.EngineEntity; +import org.skife.jdbi.v2.StatementContext; +import org.skife.jdbi.v2.tweak.ResultSetMapper; + +import java.sql.ResultSet; +import java.sql.SQLException; + +public class EngineEntityMapper implements ResultSetMapper<EngineEntity> { + @Override + public EngineEntity map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException { + EngineEntity entity = new EngineEntity(); + entity.setIp(resultSet.getString("ip")); + entity.setPort(resultSet.getInt("port")); + entity.setLastModified(resultSet.getLong("lastmodified")); + return entity; + } +}
\ No newline at end of file diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/entity/EngineEntity.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/entity/EngineEntity.java new file mode 100644 index 0000000..9822fbc --- /dev/null +++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/entity/EngineEntity.java @@ -0,0 +1,74 @@ +/** + * Copyright 2020 ZTE Corporation. + * + * Licensed 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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.onap.holmes.common.engine.entity; + +public class EngineEntity { + private String ip; + private int port; + private long lastModified; + + public EngineEntity(String ip, int port) { + this.ip = ip; + this.port = port; + this.lastModified = System.currentTimeMillis(); + } + + public EngineEntity() { + } + + public String getId() { + return ip + "_" + port; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public long getLastModified() { + return lastModified; + } + + public void setLastModified(long lastModified) { + this.lastModified = lastModified; + } + + @Override + public boolean equals(Object o) { + if (o == null || ! (o instanceof EngineEntity)) { + return false; + } + + return ((EngineEntity) o).getId().equals(getId()); + } + + @Override + public int hashCode() { + return getId().hashCode(); + } +}
\ No newline at end of file diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/EngineEntityService.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/EngineEntityService.java new file mode 100644 index 0000000..0baa4de --- /dev/null +++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/EngineEntityService.java @@ -0,0 +1,31 @@ +/** + * Copyright 2020 ZTE Corporation. + * + * Licensed 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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.onap.holmes.common.engine.service; + +import org.glassfish.jersey.spi.Contract; +import org.onap.holmes.common.engine.entity.EngineEntity; + +import java.util.List; + +@Contract +public interface EngineEntityService { + EngineEntity getEntity(String id); + List<EngineEntity> getAllEntities(); + void updateEntity(EngineEntity entity); + void insertEntity(EngineEntity entity); + void deleteEntity(String id); +} diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/impl/EngineEntityServiceImpl.java b/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/impl/EngineEntityServiceImpl.java new file mode 100644 index 0000000..926af13 --- /dev/null +++ b/holmes-actions/src/main/java/org/onap/holmes/common/engine/service/impl/EngineEntityServiceImpl.java @@ -0,0 +1,62 @@ +/** + * Copyright 2020 ZTE Corporation. + * + * Licensed 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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.onap.holmes.common.engine.service.impl; + +import org.jvnet.hk2.annotations.Service; +import org.onap.holmes.common.engine.dao.EngineEntityDao; +import org.onap.holmes.common.engine.entity.EngineEntity; +import org.onap.holmes.common.engine.service.EngineEntityService; +import org.onap.holmes.common.utils.DbDaoUtil; + +import javax.inject.Inject; +import java.util.List; + +@Service +public class EngineEntityServiceImpl implements EngineEntityService { + + private EngineEntityDao engineEntityDao; + + @Inject + public EngineEntityServiceImpl(DbDaoUtil dbDaoUtil){ + engineEntityDao = dbDaoUtil.getJdbiDaoByOnDemand(EngineEntityDao.class); + } + + @Override + public EngineEntity getEntity(String id) { + return engineEntityDao.getEntity(id); + } + + @Override + public List<EngineEntity> getAllEntities() { + return engineEntityDao.getAllEntities(); + } + + @Override + public void updateEntity(EngineEntity entity) { + engineEntityDao.updateEntity(entity); + } + + @Override + public void insertEntity(EngineEntity entity) { + engineEntityDao.insertEntity(entity); + } + + @Override + public void deleteEntity(String id) { + engineEntityDao.deleteEntity(id); + } +} |