use of cz.metacentrum.perun.core.api.Service in project perun by CESNET.
the class ExecServiceDenialDaoTest method setUp.
@Before
public void setUp() throws InternalErrorException, OwnerNotExistsException, ServiceExistsException, PrivilegeException {
perunSession = perun.getPerunSession(new PerunPrincipal("perunTests", ExtSourcesManager.EXTSOURCE_NAME_INTERNAL, ExtSourcesManager.EXTSOURCE_INTERNAL), new PerunClient());
jdbcTemplate = new JdbcPerunTemplate(dataSource);
// Test Owner
int newOwnerId = Utils.getNewId(jdbcTemplate, "owners_id_seq");
testOwner = new Owner();
testOwner.setContact("Call me babe");
testOwner.setType(OwnerType.technical);
testOwner.setName("Tester-" + Long.toHexString(System.currentTimeMillis()));
testOwner.setId(newOwnerId);
jdbcTemplate.update("insert into owners(id, name, contact, type) values (?,?,?,?)", newOwnerId, testOwner.getName(), testOwner.getContact(), testOwner.getType().toString());
// Test Service #1
testService1 = new Service();
testService1.setName("Test_service_1_" + Long.toHexString(System.currentTimeMillis()));
// Test Service #2
testService2 = new Service();
testService2.setName("Test_service_2_" + Long.toHexString(System.currentTimeMillis()));
testService1.setId(servicesManager.createService(perunSession, testService1).getId());
testService2.setId(servicesManager.createService(perunSession, testService2).getId());
// Testing Destination #1
testDestinationId1 = Utils.getNewId(jdbcTemplate, "destinations_id_seq");
jdbcTemplate.update("insert into destinations(id, destination, type) values (?,?,'host')", testDestinationId1, "test.destination." + testDestinationId1);
// Testing Destination #2
testDestinationId2 = Utils.getNewId(jdbcTemplate, "destinations_id_seq");
jdbcTemplate.update("insert into destinations(id, destination, type) values (?,?,'host')", testDestinationId2, "test.destination." + testDestinationId2);
// Testing Facility #1
testFacilityId1 = Utils.getNewId(jdbcTemplate, "facilities_id_seq");
jdbcTemplate.update("insert into facilities(id, name) values (?,?)", testFacilityId1, "Cluster_" + testFacilityId1);
// Testing Facility #2
testFacilityId2 = Utils.getNewId(jdbcTemplate, "facilities_id_seq");
jdbcTemplate.update("insert into facilities(id, name) values (?,?)", testFacilityId2, "Cluster_" + testFacilityId2);
// Test ExecService #1 (Parent:testService1)
testExecService1 = new ExecService();
testExecService1.setDefaultDelay(1);
testExecService1.setDefaultRecurrence(1);
testExecService1.setEnabled(true);
testExecService1.setService(testService1);
testExecService1.setScript("/hellish/test/script");
testExecService1.setExecServiceType(ExecServiceType.GENERATE);
try {
testExecService1.setId(execServiceDao.insertExecService(testExecService1));
} catch (InternalErrorException e) {
log.error(e.toString(), e);
}
// Test ExecService #2 (Parent:testService1)
testExecService2 = new ExecService();
testExecService2.setDefaultDelay(2);
testExecService2.setDefaultRecurrence(2);
testExecService2.setEnabled(true);
testExecService2.setService(testService2);
testExecService2.setScript("/hellish/test/script2");
testExecService2.setExecServiceType(ExecServiceType.SEND);
try {
testExecService2.setId(execServiceDao.insertExecService(testExecService2));
} catch (InternalErrorException e) {
log.error(e.toString(), e);
}
}
use of cz.metacentrum.perun.core.api.Service in project perun by CESNET.
the class GeneralServiceManagerImpl method insertExecService.
@Override
public int insertExecService(PerunSession perunSession, ExecService execService) throws InternalErrorException, PrivilegeException, ServiceExistsException {
Service service = null;
try {
service = servicesManager.getServiceByName(perunSession, execService.getService().getName());
} catch (ServiceNotExistsException e) {
service = servicesManager.createService(perunSession, execService.getService());
}
execService.setService(service);
return execServiceDao.insertExecService(execService);
}
use of cz.metacentrum.perun.core.api.Service in project perun by CESNET.
the class VosManagerBlImpl method deleteVo.
public void deleteVo(PerunSession sess, Vo vo, boolean forceDelete) throws InternalErrorException, RelationExistsException {
log.debug("Deleting vo {}", vo);
try {
List<Member> members = getPerunBl().getMembersManagerBl().getMembers(sess, vo);
log.debug("Deleting vo {} members", vo);
// Check if there are some members left
if (members != null && members.size() > 0) {
if (forceDelete) {
getPerunBl().getMembersManagerBl().deleteAllMembers(sess, vo);
} else
throw new RelationExistsException("Vo vo=" + vo + " contains members");
}
log.debug("Removing vo {} resources and theirs atributes", vo);
// Delete resources
List<Resource> resources = getPerunBl().getResourcesManagerBl().getResources(sess, vo);
if ((resources.size() == 0) || ((resources.size() > 0) && forceDelete)) {
for (Resource resource : resources) {
getPerunBl().getAttributesManagerBl().removeAllAttributes(sess, resource);
// Remove binding between service and resource
List<Service> services = getPerunBl().getResourcesManagerBl().getAssignedServices(sess, resource);
for (Service service : services) {
getPerunBl().getResourcesManagerBl().removeService(sess, resource, service);
}
getPerunBl().getResourcesManagerBl().deleteResource(sess, resource);
}
} else {
throw new RelationExistsException("Vo vo=" + vo + " contains resources");
}
log.debug("Removing vo {} groups", vo);
// Delete all groups
List<Group> groups = getPerunBl().getGroupsManagerBl().getGroups(sess, vo);
if (groups.size() != 1) {
if (groups.size() < 1)
throw new ConsistencyErrorException("'members' group is missing");
if ((groups.size() > 1) && forceDelete) {
getPerunBl().getGroupsManagerBl().deleteAllGroups(sess, vo);
} else {
throw new RelationExistsException("Vo vo=" + vo + " contains groups");
}
}
// Finally delete binding between Vo and external source
List<ExtSource> ess = getPerunBl().getExtSourcesManagerBl().getVoExtSources(sess, vo);
log.debug("Deleting {} external sources binded to the vo {}", ess.size(), vo);
for (ExtSource es : ess) {
getPerunBl().getExtSourcesManagerBl().removeExtSource(sess, vo, es);
}
// Delete members group
log.debug("Removing an administrators' group from the vo {}", vo);
getPerunBl().getGroupsManagerBl().deleteMembersGroup(sess, vo);
// delete all VO reserved logins from KDC
List<Integer> list = getVosManagerImpl().getVoApplicationIds(sess, vo);
for (Integer appId : list) {
// for each application
for (Pair<String, String> login : getVosManagerImpl().getApplicationReservedLogins(appId)) {
// for all reserved logins - delete them in ext. system (e.g. KDC)
try {
// !!! left = namespace / right = login !!!
getPerunBl().getUsersManagerBl().deletePassword(sess, login.getRight(), login.getLeft());
} catch (LoginNotExistsException ex) {
log.error("Login: {} not exists in namespace {} while deleting passwords", login.getRight(), login.getLeft());
}
}
}
// delete all VO reserved logins from DB
getVosManagerImpl().deleteVoReservedLogins(sess, vo);
// VO applications, submitted data and app_form are deleted on cascade with "deleteVo()"
// Delete VO attributes
getPerunBl().getAttributesManagerBl().removeAllAttributes(sess, vo);
// Delete all Vo tags (for resources in Vo)
getPerunBl().getResourcesManagerBl().deleteAllResourcesTagsForVo(sess, vo);
} catch (Exception ex) {
throw new InternalErrorException(ex);
}
// Finally delete the VO
getVosManagerImpl().deleteVo(sess, vo);
getPerunBl().getAuditer().log(sess, "{} deleted.", vo);
}
use of cz.metacentrum.perun.core.api.Service in project perun by CESNET.
the class ServicesManagerBlImpl method addDestinationsDefinedByHostsOnFacility.
public List<Destination> addDestinationsDefinedByHostsOnFacility(PerunSession perunSession, List<Service> services, Facility facility) throws InternalErrorException {
List<Host> hosts = getPerunBl().getFacilitiesManagerBl().getHosts(perunSession, facility);
List<Destination> destinations = new ArrayList<Destination>();
for (Service service : services) {
for (Host host : hosts) {
if (host.getHostname() != null && !host.getHostname().isEmpty()) {
Destination destination = new Destination();
destination.setDestination(host.getHostname());
destination.setType(Destination.DESTINATIONHOSTTYPE);
destinations.add(this.addDestinationEvenIfAlreadyExists(perunSession, service, facility, destination));
}
}
}
return destinations;
}
use of cz.metacentrum.perun.core.api.Service in project perun by CESNET.
the class AttributesManagerEntryIntegrationTest method setUpService.
private Service setUpService() throws Exception {
Service service = new Service();
service.setName("AttributesManagerTestService");
perun.getServicesManager().createService(sess, service);
return service;
}
Aggregations