List of usage examples for org.apache.commons.lang.builder ToStringBuilder reflectionToString
public static String reflectionToString(Object object, ToStringStyle style)
Forwards to ReflectionToStringBuilder
.
From source file:com.gemini.provision.security.openstack.SecurityProviderOpenStackImpl.java
/** * * @param tenant//from www . jav a 2 s . c o m * @param env * @param securityGroup - assumes on the name is available in the object * @return * * Calls open stack to retrieve information about the security group. * Typically used when only a security group name is available and the * caller wants to get rest of the information */ @Override public ProvisioningProviderResponseType getSecurityGroup(GeminiTenant tenant, GeminiEnvironment env, GeminiSecurityGroup securityGroup) { //authenticate the session with the OpenStack installation OSClient os = OSFactory.builder().endpoint(env.getEndPoint()) .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName()) .authenticate(); if (os == null) { Logger.error("Failed to authenticate Tenant: {}", ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE)); return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE; } SecurityGroup osSecGrp = null; try { List<? extends SecurityGroup> osSecGrps = os.networking().securitygroup().list(); osSecGrp = osSecGrps.stream().filter(osg -> osg.getName().equals(securityGroup.getName())).findFirst() .get(); } catch (NullPointerException | ClientResponseException ex) { Logger.error( "Cloud Exception: {}\nCould not retrieve security group information in OpenStack. tenant: {} env: {} security group: {}", ex.toString(), tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.CLOUD_EXCEPTION; } catch (NoSuchElementException ex) { //security group was not found, so return an error Logger.error( "Security Group {} not found for tenant: {} env: {} Could not retrieve security group information in OpenStack. tenant: {} env: {} security group: {}", securityGroup.getName(), tenant.getName(), env.getName()); return ProvisioningProviderResponseType.OBJECT_NOT_FOUND; } //copy the basic stuff securityGroup.setCloudID(osSecGrp.getId()); securityGroup.setProvisioned(true); securityGroup.setName(osSecGrp.getName()); securityGroup.setDescription(osSecGrp.getDescription()); //now the rules List<? extends SecurityGroupRule> osSecGrpRules = osSecGrp.getRules(); osSecGrpRules.stream().forEach(osSecGrpRule -> { //check to see if this already exists GeminiSecurityGroupRule gemSecGrpRule = null; try { securityGroup.getSecurityRules().stream() //.filter(gsr -> gsr.getCloudID().equals(osSecGrpRule.getId())) // don't compare the cloud id, because this could be a new Gemini object .filter(gsr -> gsr.getDirection().toString().toLowerCase() .equals(osSecGrpRule.getDirection())) .filter(gsr -> gsr.getIpAddressType().toString() .contains(osSecGrpRule.getEtherType().toUpperCase())) .filter(gsr -> gsr.getPortRangeMax().equals(osSecGrpRule.getPortRangeMax())) .filter(gsr -> gsr.getPortRangeMin().equals(osSecGrpRule.getPortRangeMin())) .filter(gsr -> gsr.getProtocol().toString().contains(osSecGrpRule.getProtocol())) .filter(gsr -> gsr.getRemoteGroupId().equals(osSecGrpRule.getRemoteGroupId())) .filter(gsr -> gsr.getRemoteIpPrefix().equals(osSecGrpRule.getRemoteIpPrefix())).findAny() .get(); } catch (NoSuchElementException | NullPointerException ex) { gemSecGrpRule = new GeminiSecurityGroupRule(); securityGroup.addSecurityRule(gemSecGrpRule); gemSecGrpRule.setPortRangeMin(osSecGrpRule.getPortRangeMin()); gemSecGrpRule.setPortRangeMax(osSecGrpRule.getPortRangeMax()); gemSecGrpRule.setProtocol(Protocol.fromString(osSecGrpRule.getProtocol())); // gemSecGrpRule.setCidr(osSecGrpRule.getRange().getCidr()); gemSecGrpRule.setDirection( GeminiSecurityGroupRuleDirection.valueOf(osSecGrpRule.getDirection().toUpperCase())); gemSecGrpRule.setRemoteGroupId(osSecGrpRule.getRemoteGroupId()); gemSecGrpRule.setRemoteIpPrefix(osSecGrpRule.getRemoteIpPrefix()); gemSecGrpRule.setIpAddressType(IPAddressType.valueOf(osSecGrpRule.getEtherType())); gemSecGrpRule.setParent(securityGroup); } //rule already existed or new one created - just copy the cloud ID gemSecGrpRule.setCloudID(osSecGrpRule.getId()); gemSecGrpRule.setProvisioned(true); }); Logger.debug("Successfully retrieved security group information Tenant: {} Env: {} security group {}", tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.SUCCESS; }
From source file:com.all.download.manager.download.ManagedDownload.java
@Override public synchronized void onSearchSources(SearchSourcesEvent searchSourcesEvent) { ManagedDownloader downloader = searchSourcesEvent.getDownloader(); if (selectedDownloader == null) { log.debug("searchedSourcesResult received for " + ToStringBuilder.reflectionToString(searchSourcesEvent, ToStringStyle.NO_FIELD_NAMES_STYLE) + ToStringBuilder.reflectionToString(searchSourcesEvent.getDownloadStatus(), ToStringStyle.NO_FIELD_NAMES_STYLE)); DownloadStatus downloadStatus = searchSourcesEvent.getDownloadStatus(); boolean validEvent = processSearchSourcesEvent(downloadStatus, downloader); if (!validEvent) { return; }/*from ww w . ja v a2 s . co m*/ findDownloaderCandidate(downloadStatus); } else { log.warn(String.format( "Ignoring event from managedDownloader[%s] since download is already in progress", downloader)); } }
From source file:com.gemini.provision.network.openstack.NetworkProviderOpenStackImpl.java
@Override public ProvisioningProviderResponseType deleteNetwork(GeminiTenant tenant, GeminiEnvironment env, GeminiNetwork delNetwork) {//from w w w .j a v a 2s. c o m //authenticate the session with the OpenStack installation //authenticate the session with the OpenStack installation OSClient os = OSFactory.builder().endpoint(env.getEndPoint()) .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName()) .authenticate(); if (os == null) { Logger.error("Failed to authenticate Tenant: {}", ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE)); return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE; } //check to see if this network exists Network n; try { n = os.networking().network().get(delNetwork.getCloudID()); } catch (NullPointerException | ClientResponseException ex) { Logger.error("Failed to delete network - does not exist. Tenant: {} Environment: {} Network: {}", tenant.getName(), env.getName(), delNetwork.getName()); return ProvisioningProviderResponseType.OBJECT_NOT_FOUND; } try { os.networking().network().delete(delNetwork.getCloudID()); } catch (ClientResponseException ex) { Logger.error( "Cloud exception, could not delete network. status code {} Tenant: {} Environment: {} Network: {}", ex.getStatusCode(), tenant.getName(), env.getName(), delNetwork.getName()); return ProvisioningProviderResponseType.CLOUD_EXCEPTION; } Logger.debug("Successfully deleted network - Tenant: {} Environment: {} Network: {}", tenant.getName(), env.getName(), delNetwork.getName()); return ProvisioningProviderResponseType.SUCCESS; }
From source file:com.gemini.provision.loadbalancer.openstack.LoadBalancerProviderOpenStackImpl.java
public ProvisioningProviderResponseType getResponseType(Object object, GeminiTenant tenant, GeminiEnvironment env, String operation) { if (object == null) { Logger.error("Failed to {}, failure in Cloud provider. Tenant: {} Environment: {} Network: {}", operation, tenant.getName(), env.getName(), ToStringBuilder.reflectionToString(object, ToStringStyle.MULTI_LINE_STYLE)); return ProvisioningProviderResponseType.CLOUD_FAILURE; }/*from w w w.j a v a 2 s .c o m*/ Logger.debug("Successfully {} {} - Tenant: {} Environment: {} Network: {}", operation, object.getClass().getName(), tenant.getName(), env.getName(), ToStringBuilder.reflectionToString(object, ToStringStyle.MULTI_LINE_STYLE)); return ProvisioningProviderResponseType.SUCCESS; }
From source file:com.gemini.provision.network.openstack.NetworkProviderOpenStackImpl.java
@Override public ProvisioningProviderResponseType updateNetwork(GeminiTenant tenant, GeminiEnvironment env, GeminiNetwork n) {//from w w w. j a v a2 s. c o m //authenticate the session with the OpenStack installation //authenticate the session with the OpenStack installation OSClient os = OSFactory.builder().endpoint(env.getEndPoint()) .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName()) .authenticate(); if (os == null) { Logger.error("Failed to authenticate Tenant: {}", ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE)); return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE; } // Get a network by ID Network network; try { network = os.networking().network().get(n.getCloudID()); } catch (NullPointerException ex) { Logger.error("Failed to update network - does not exist. Tenant: {} Environment: {} Network: {}", tenant.getName(), env.getName(), n.getName()); return ProvisioningProviderResponseType.OBJECT_NOT_FOUND; } //update the network Network updatedNetwork; try { updatedNetwork = os.networking().network().update(n.getCloudID(), Builders.networkUpdate().name(n.getName()).build()); } catch (ClientResponseException ex) { Logger.error( "Cloud exception, could not update network. status code {} Tenant: {} Environment: {} Network: {}", ex.getStatusCode(), tenant.getName(), env.getName(), n.getName()); return ProvisioningProviderResponseType.CLOUD_EXCEPTION; } //TODO: Need to get detailed error codes for the call above. Research the StatusCode class if (updatedNetwork == null) { Logger.error("Failed to update network, Cloud provider failure Tenant: {} Environment: {} Network: {}", tenant.getName(), env.getName(), n.getName()); return ProvisioningProviderResponseType.CLOUD_FAILURE; } Logger.debug("Successfully updated the network. Tenant: {} Environment: {} Network: {}", tenant.getName(), env.getName(), n.getName()); return ProvisioningProviderResponseType.SUCCESS; }
From source file:com.gemini.provision.loadbalancer.openstack.LoadBalancerProviderOpenStackImpl.java
public ProvisioningProviderResponseType getResponseType(ActionResponse actionResponse, Object object, GeminiTenant tenant, GeminiEnvironment env, String operation) { if (!actionResponse.isSuccess()) { Logger.error("Failed to {} {}, failure in Cloud provider. Tenant: {} Environment: {} Network: {}", operation, object.getClass().getName(), tenant.getName(), env.getName(), ToStringBuilder.reflectionToString(object, ToStringStyle.MULTI_LINE_STYLE)); return ProvisioningProviderResponseType.CLOUD_FAILURE; }/*from w ww.jav a 2s. c o m*/ Logger.debug("Successfully {} {} - Tenant: {} Environment: {} Network: {}", operation, object.getClass().getName(), tenant.getName(), env.getName(), ToStringBuilder.reflectionToString(object, ToStringStyle.MULTI_LINE_STYLE)); return ProvisioningProviderResponseType.SUCCESS; }
From source file:com.gemini.provision.security.openstack.SecurityProviderOpenStackImpl.java
/** * * @param tenant//from w ww. java 2 s.com * @param env * @param securityGroup - the security group to be created * @return SUCCESS, AUTH_FAILURE, CLOUD_FAILURE, OBJECT_EXISTS * * Creates the Security group in OpenStack if it doesn't exist NOTE: it * creates all security rules in the group. A separate call to create rules * IS NOT required */ @Override public ProvisioningProviderResponseType createSecurityGroup(GeminiTenant tenant, GeminiEnvironment env, GeminiSecurityGroup securityGroup) { //authenticate the session with the OpenStack installation OSClient os = OSFactory.builder().endpoint(env.getEndPoint()) .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName()) .authenticate(); if (os == null) { Logger.error("Failed to authenticate Tenant: {}", ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE)); return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE; } SecurityGroup osSecGrp = null; try { List<? extends SecurityGroup> osSecGrps = os.networking().securitygroup().list(); osSecGrp = osSecGrps.stream().filter(osg -> osg.getName().equals(securityGroup.getName())).findFirst() .get(); } catch (NullPointerException | ClientResponseException ex) { Logger.error( "Cloud Exception: {}\nCould not retrieve security group information in OpenStack. tenant: {} env: {} security group: {}", ex.toString(), tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.CLOUD_EXCEPTION; } catch (NoSuchElementException ex) { //security group not found, so ok to move forward with the creation } if (osSecGrp != null) { Logger.error("Security Group exists: tenant: {} env: {} security group: {}", tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.OBJECT_EXISTS; } //create the security group osSecGrp = os.networking().securitygroup().create(Builders.securityGroup().tenantId(tenant.getTenantID()) .name(securityGroup.getName()).description(securityGroup.getDescription()).build()); if (osSecGrp == null) { Logger.error("Security Group creation failure tenant: {} env: {} security group: {}", tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.CLOUD_FAILURE; } //map the object and then create the security group rules in the cloud securityGroup.setCloudID(osSecGrp.getId()); securityGroup.setProvisioned(true); securityGroup.getSecurityRules().stream().forEach(s -> { SecurityGroupRule r = null; try { r = os.networking().securityrule() .create(Builders.securityGroupRule().tenantId(tenant.getTenantID()) .securityGroupId(securityGroup.getCloudID()) .direction(s.getDirection().toString().toLowerCase()) .ethertype(s.getIpAddressType().toString()).portRangeMin(s.getPortRangeMin()) .portRangeMax(s.getPortRangeMax()).protocol(s.getProtocol().toString()) // .remoteGroupId(s.getRemoteGroupId()) .remoteIpPrefix(s.getRemoteIpPrefix()).build()); //copy the id s.setCloudID(r.getId()); s.setProvisioned(true); } catch (ClientResponseException | NullPointerException ex) { Logger.error( "Cloud Exception {} - Security Group rule creation failure tenant: {} env: {} security group: {} rule: {}", ex.toString(), tenant.getName(), env.getName(), securityGroup.getName(), s.getName()); } }); Logger.debug("Successfully created security group Tenant: {} Env: {} security group {}", tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.SUCCESS; }
From source file:com.gemini.provision.network.openstack.NetworkProviderOpenStackImpl.java
/** * getAllSubnets. Lists all the subnets in the cloud - function may not have * practical use in OpenStack. Use getSubnets and provide a network to get * subnets specific to a network.//from ww w . j av a 2s . c o m * * @param tenant - the tenant * @param env - the environment with the subnets * @return */ @Override public List<GeminiSubnet> getAllSubnets(GeminiTenant tenant, GeminiEnvironment env) { //authenticate the session with the OpenStack installation OSClient os = OSFactory.builder().endpoint(env.getEndPoint()) .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName()) .authenticate(); if (os == null) { Logger.error("Failed to authenticate Tenant: {}", ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE)); return null; } //get all the subnets List<? extends Subnet> subnets = os.networking().subnet().list(); if (subnets.isEmpty()) { return null; } List<GeminiSubnet> gemSubnets = new ArrayList(); //map the list of network gateways and their subnets to gemini equivalents subnets.stream().forEach(s -> { GeminiSubnet gn = new GeminiSubnet(); //the basic elements gn.setName(s.getName()); gn.setCloudID(s.getId()); gn.setCidr(s.getCidr()); gn.setGateway(InetAddresses.forString(s.getGateway())); //connect with the parent network try { //match the parent network to one in the application gn.setParent( env.getApplications().stream().map(GeminiApplication::getNetworks).flatMap(List::stream) .filter(g -> g.getCloudID().equals(s.getNetworkId())).findAny().get()); } catch (NoSuchElementException | NullPointerException ex) { try { //could not find a parent network in the applications, now look in the orphaned networks gn.setParent(env.getOrphanNetworks().stream() .filter(g -> g.getCloudID().equals(s.getNetworkId())).findAny().get()); } catch (NoSuchElementException | NullPointerException e) { gn.setParent(null); //VERY BAD SITUATION - GEMINI MODEL IS COMPLETELY OUT OF SYNC Logger.error( "Subnet {} has a network that isn't in Applications or orphaned networks. subnet {} parent network {}", gn.getName(), s.getNetworkId()); } } gn.setEnableDHCP(s.isDHCPEnabled()); gn.setNetworkType(s.getIpVersion() == IPVersionType.V6 ? IPAddressType.IPv6 : IPAddressType.IPv4); s.getHostRoutes(); s.getAllocationPools().stream().forEach(ap -> { GeminiSubnetAllocationPool gsap = new GeminiSubnetAllocationPool( InetAddresses.forString(ap.getStart()), InetAddresses.forString(ap.getEnd())); gn.addAllocationPool(gsap); }); gemSubnets.add(gn); }); return gemSubnets; }
From source file:com.gemini.provision.security.openstack.SecurityProviderOpenStackImpl.java
@Override public ProvisioningProviderResponseType updateSecurityGroup(GeminiTenant tenant, GeminiEnvironment env, GeminiSecurityGroup securityGroup) { //authenticate the session with the OpenStack installation OSClient os = OSFactory.builder().endpoint(env.getEndPoint()) .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName()) .authenticate();/*from w w w .j av a 2s . c o m*/ if (os == null) { Logger.error("Failed to authenticate Tenant: {}", ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE)); return ProvisioningProviderResponseType.CLOUD_AUTH_FAILURE; } SecurityGroup osSecGrp; try { osSecGrp = os.networking().securitygroup().get(securityGroup.getCloudID()); } catch (NullPointerException | ClientResponseException ex) { Logger.error( "Could not retrieve security group information in OpenStack. tenant: {} env: {} security group: {}", tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.CLOUD_EXCEPTION; } if (osSecGrp == null) { Logger.error("Security Group does not exist: tenant: {} env: {} security group: {}", tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.OBJECT_NOT_FOUND; } //looks like there no way to update a security group, we have to delete and re-create ActionResponse a = os.networking().securitygroup().delete(osSecGrp.getId()); if (!a.isSuccess()) { Logger.error( "Security Group update - could not delete the security group: tenant: {} env: {} security group: {} Error Message: {}", tenant.getName(), env.getName(), securityGroup.getName(), a.getFault()); return ProvisioningProviderResponseType.CLOUD_FAILURE; } //now re-create the group with the updated info //create the security group osSecGrp = os.networking().securitygroup().create(Builders.securityGroup().tenantId(tenant.getTenantID()) .name(securityGroup.getName()).description(securityGroup.getDescription()).build()); if (osSecGrp == null) { Logger.error("Security Group update, creation failure. tenant: {} env: {} security group: {}", tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.CLOUD_FAILURE; } //update the cloud ID since it has most likely changed and then create the security group rules in the cloud securityGroup.setCloudID(osSecGrp.getId()); securityGroup.setProvisioned(true); securityGroup.getSecurityRules().stream().forEach(s -> { SecurityGroupRule r = os.networking().securityrule() .create(Builders.securityGroupRule().tenantId(tenant.getTenantID()) .securityGroupId(securityGroup.getCloudID()) .direction(s.getDirection().toString().toLowerCase()) .ethertype(s.getIpAddressType().toString()).portRangeMin(s.getPortRangeMin()) .portRangeMax(s.getPortRangeMax()).protocol(s.getProtocol().toString()) // .remoteGroupId(s.getRemoteGroupId()) .remoteIpPrefix(s.getRemoteIpPrefix()).build()); if (r == null) { Logger.error("Security Group rule creation failure. tenant: {} env: {} security group: {} rule {}", tenant.getName(), env.getName(), securityGroup.getName(), s.getName()); } }); Logger.debug("Successfully updated security group Tenant: {} Env: {} security group {}", tenant.getName(), env.getName(), securityGroup.getName()); return ProvisioningProviderResponseType.SUCCESS; }
From source file:com.gemini.provision.network.openstack.NetworkProviderOpenStackImpl.java
/** * getSubnets. Find all subnets related to a parent network. For each subnet * found it create an equivalent gemini object and adds it to the parent * network/*from w ww .ja v a2 s .co m*/ * * @param tenant - contains the environment, provides the auth parameters * @param env - contains the parent network whose subnets needs to be * retrieved * @param parent - the parent network whose subnets need to be retrieved * @return List<GeminiSubnet> list of the subnets found or null if there was * an error */ @Override public List<GeminiSubnet> getSubnets(GeminiTenant tenant, GeminiEnvironment env, GeminiNetwork parent) { //authenticate the session with the OpenStack installation OSClient os = OSFactory.builder().endpoint(env.getEndPoint()) .credentials(env.getAdminUserName(), env.getAdminPassword()).tenantName(tenant.getName()) .authenticate(); if (os == null) { Logger.error("Failed to authenticate Tenant: {}", ToStringBuilder.reflectionToString(tenant, ToStringStyle.MULTI_LINE_STYLE)); return null; } //get all the subnets List<? extends Subnet> subnets = os.networking().subnet().list(); if (subnets == null || subnets.isEmpty()) { Logger.info("No subnets for tenant: {} env: {} network {}", tenant.getName(), env.getName(), parent.getName()); return null; } List<GeminiSubnet> gemSubnets = new ArrayList(); //map the list of network gateways and their subnets to gemini equivalents subnets.stream().filter(s -> s != null).filter(s -> s.getNetworkId().equals(parent.getCloudID())) .forEach(s -> { GeminiSubnet gn = new GeminiSubnet(); gn.setName(s.getName()); gn.setCloudID(s.getId()); gn.setCidr(s.getCidr()); gn.setGateway(InetAddresses.forString(s.getGateway())); gn.setParent(parent); gn.setEnableDHCP(s.isDHCPEnabled()); gn.setNetworkType( s.getIpVersion() == IPVersionType.V4 ? IPAddressType.IPv4 : IPAddressType.IPv6); s.getAllocationPools().stream().forEach(ap -> { GeminiSubnetAllocationPool gsap = new GeminiSubnetAllocationPool( InetAddresses.forString(ap.getStart()), InetAddresses.forString(ap.getEnd())); gn.addAllocationPool(gsap); }); gemSubnets.add(gn); gn.setParent(parent); parent.addSubnet(gn); }); return gemSubnets; }