/* * Copyright 2014 by SCSK Corporation. * * This file is part of PrimeCloud Controller(TM). * * PrimeCloud Controller(TM) is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * PrimeCloud Controller(TM) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PrimeCloud Controller(TM). If not, see <http://www.gnu.org/licenses/>. */ package jp.primecloud.auto.tool.management.zabbix; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import jp.primecloud.auto.config.Config; import jp.primecloud.auto.zabbix.ZabbixClient; import jp.primecloud.auto.zabbix.ZabbixClientFactory; import jp.primecloud.auto.zabbix.model.hostgroup.HostgroupCreateParam; import jp.primecloud.auto.zabbix.model.right.Right; import jp.primecloud.auto.zabbix.model.user.User; import jp.primecloud.auto.zabbix.model.user.UserCreateParam; import jp.primecloud.auto.zabbix.model.user.UserGetParam; import jp.primecloud.auto.zabbix.model.user.UserUpdateParam; import jp.primecloud.auto.zabbix.model.usergroup.Usergroup; import jp.primecloud.auto.zabbix.model.usergroup.UsergroupCreateParam; import jp.primecloud.auto.zabbix.model.usergroup.UsergroupGetParam; import jp.primecloud.auto.zabbix.model.usergroup.UsergroupMassAddParam; import jp.primecloud.auto.zabbix.model.usergroup.UsergroupUpdateParam; public class ZabbixScriptService { protected ZabbixClient zabbixClient; //Zabbixの情報 private static String zabbixUrl = Config.getProperty("zabbix.url"); private static String zabbixUsername = Config.getProperty("zabbix.username"); private static String zabbixPassword = Config.getProperty("zabbix.password"); public ZabbixScriptService(String url, String username, String password) { ZabbixClientFactory factory = new ZabbixClientFactory(); factory.setUrl(url); zabbixClient = factory.createClient(username, password); } public ZabbixScriptService() { this(zabbixUrl, zabbixUsername, zabbixPassword); } public List<String> createUser(String alias, String surname, String name, String password, List<Usergroup> usergroups) { UserCreateParam userCreateParam = new UserCreateParam(); userCreateParam.setAlias(alias); userCreateParam.setName(name); userCreateParam.setSurname(surname); userCreateParam.setPasswd(password); userCreateParam.setUrl("overview.php"); userCreateParam.setUsrgrps(usergroups); if (zabbixClient.checkVersion("2.0.0") < 0) { userCreateParam.setLang("ja_jp"); } else { userCreateParam.setLang("ja_JP"); } List<String> users = zabbixClient.user().create(userCreateParam); return users; } public List<User> getUsers() { UserGetParam param = new UserGetParam(); param.setOutput("extend"); List<User> users = zabbixClient.user().get(param); return users; } public String getUser(String username) { List<User> users = getUsers(); for (User user : users) { if (user.getName().equals(username)) { return user.getName(); } } return ""; } public List<String> updateUser(String userid, String passwd) { UserUpdateParam param = new UserUpdateParam(); param.setUserid(userid); param.setPasswd(passwd); return zabbixClient.user().update(param); } public List<String> deleteUser(String userid) { return zabbixClient.user().delete(Arrays.asList(userid)); } public List<String> createHostGroup(String name) { HostgroupCreateParam param = new HostgroupCreateParam(); param.setName(name); return zabbixClient.hostgroup().create(param); } public List<Usergroup> getUserGroup(List<String> usrgrpids) { UsergroupGetParam usergroupGetParam = new UsergroupGetParam(); usergroupGetParam.setUsrgrpids(usrgrpids); return zabbixClient.usergroup().get(usergroupGetParam); } public List<String> createUserGroup(String name) { UsergroupCreateParam param = new UsergroupCreateParam(); param.setName(name); return zabbixClient.usergroup().create(param); } public List<String> massAddUserGroup(List<String> usrgrpids, List<String> userids, String hostgroupid) { UsergroupMassAddParam param = new UsergroupMassAddParam(); param.setUsrgrpids(usrgrpids); param.setUserids(userids); Right right = new Right(); right.setId(hostgroupid); right.setPermission("2"); param.setRights(Arrays.asList(right)); return zabbixClient.usergroup().massAdd(param); } public List<String> updateUserGroup(String usrgrpid, Boolean status) { UsergroupUpdateParam param = new UsergroupUpdateParam(); param.setUsrgrpid(usrgrpid); if (status != null) { param.setUsersStatus(status ? 0 : 1); // 有効の場合は0、無効の場合は1 } return zabbixClient.usergroup().update(param); } public List<Usergroup> getUserGroup(String name) { UsergroupGetParam param = new UsergroupGetParam(); Map<String, List<Object>> filter = new HashMap<String, List<Object>>(); filter.put("name", Arrays.asList((Object)name)); param.setFilter(filter); param.setOutput("extend"); return zabbixClient.usergroup().get(param); } public String getApiVersion() { return zabbixClient.APIInfo().version(); } }