"timeRange": [
{
"start_time": "00:00:00+00:00",
- "end_time": "23:59:59+00:00"
+ "end_time": "24:00:00+00:00"
}
]
},
"timeRange": [
{
"start_time": "00:00:00+00:00",
- "end_time": "23:59:59+00:00"
+ "end_time": "24:00:00+00:00"
}
]
}
+++ /dev/null
-/*
- * Copyright © 2017-2018 AT&T Intellectual Property. Modifications Copyright © 2018 IBM.
- *
- * 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.
- *
- *
- * Unless otherwise specified, all documentation contained herein is licensed under the Creative
- * Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * https://creativecommons.org/licenses/by/4.0/
- *
- * Unless required by applicable law or agreed to in writing, documentation 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.optf.cmso;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.onap.optf.cmso.common.PropertiesManagement;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.env.EnvironmentPostProcessor;
-import org.springframework.core.env.ConfigurableEnvironment;
-import org.springframework.core.env.MapPropertySource;
-import org.springframework.core.env.MutablePropertySources;
-
-/**
- * The Class CMSEnvironmentPostProcessor.
- */
-public class CmsoEnvironmentPostProcessor implements EnvironmentPostProcessor {
- // tested in ONAP springboot and this is called before all of the properties files have been
- // loaded...
- // perhaps there is a post post processor? Until this works. DB password will be in the clear in the
- /**
- * Post process environment.
- *
- * @param environment the environment
- * @param application the application
- */
- // proeprties files.
- @Override
- public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
- String pwd = environment.getProperty("cmso.database.password");
- if (pwd != null) {
- pwd = PropertiesManagement.getDecryptedValue(pwd);
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("spring.datasource.password", pwd);
- MapPropertySource propertySource = new MapPropertySource("abc", map);
- MutablePropertySources proeprtySources = environment.getPropertySources();
- proeprtySources.addLast(propertySource);
- }
- }
-
-}
import java.util.HashMap;
import java.util.Map;
-import org.onap.optf.cmso.common.PropertiesManagement;
+import org.onap.optf.cmso.optimizer.common.PropertiesManagement;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.core.env.ConfigurableEnvironment;
* limitations under the License.
******************************************************************************/
-package org.onap.optf.cmso.aaf;
+package org.onap.optf.cmso.optimizer.aaf;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.onap.aaf.cadi.CadiWrap;
import org.onap.aaf.cadi.Permission;
-import org.onap.observations.Observation;
-import org.onap.optf.cmso.common.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.SpringProfiles;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.exceptions.CmsoException;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter;
import org.springframework.context.annotation.Profile;
* limitations under the License.
******************************************************************************/
-package org.onap.optf.cmso.aaf;
+package org.onap.optf.cmso.optimizer.aaf;
import java.io.IOException;
import java.util.Properties;
import javax.servlet.http.HttpServletResponse;
import org.onap.aaf.cadi.PropAccess;
import org.onap.aaf.cadi.filter.CadiFilter;
-import org.onap.observations.Observation;
-import org.onap.optf.cmso.common.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.Application;
import org.onap.optf.cmso.optimizer.SpringProfiles;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.exceptions.CmsoException;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
* limitations under the License.
******************************************************************************/
-package org.onap.optf.cmso.aaf;
+package org.onap.optf.cmso.optimizer.aaf;
import java.util.HashSet;
import java.util.Set;
* limitations under the License.
*/
-package org.onap.optf.cmso.aaf;
+package org.onap.optf.cmso.optimizer.aaf;
import org.onap.optf.cmso.optimizer.SpringProfiles;
import org.springframework.context.annotation.ComponentScan;
* limitations under the License.
******************************************************************************/
-package org.onap.optf.cmso.aaf;
+package org.onap.optf.cmso.optimizer.aaf;
import java.util.ArrayList;
import java.util.List;
* limitations under the License.
******************************************************************************/
-package org.onap.optf.cmso.aaf;
+package org.onap.optf.cmso.optimizer.aaf;
import java.io.File;
import java.io.FileInputStream;
import javax.servlet.http.HttpServletRequest;
import org.onap.aaf.cadi.Permission;
import org.onap.aaf.cadi.aaf.AAFPermission;
-import org.onap.observations.Observation;
import org.onap.optf.cmso.optimizer.SpringProfiles;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.core.env.Environment;
* limitations under the License.
******************************************************************************/
-package org.onap.optf.cmso.aaf;
+package org.onap.optf.cmso.optimizer.aaf;
import org.springframework.core.Ordered;
* limitations under the License.
******************************************************************************/
-package org.onap.optf.cmso.aaf;
+package org.onap.optf.cmso.optimizer.aaf;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.onap.optf.cmso.common.exceptions.CmsoException;
+import org.onap.optf.cmso.optimizer.exceptions.CmsoException;
class ResponseFormatter {
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
-import org.onap.observations.Observation;
import org.onap.optf.cmso.optimizer.availability.policies.model.Policy;
import org.onap.optf.cmso.optimizer.availability.policies.model.TimeLimitAndVerticalTopology;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import java.util.Set;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
-import org.onap.observations.Observation;
import org.onap.optf.cmso.optimizer.availability.policies.model.AllowedPeriodicTime;
import org.onap.optf.cmso.optimizer.availability.policies.model.TimeLimitAndVerticalTopology;
import org.onap.optf.cmso.optimizer.availability.policies.model.TimeRange;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.onap.optf.cmso.optimizer.service.rs.models.ChangeWindow;
/**
if (ranges.size() == 0) {
TimeRange range = new TimeRange();
range.setStartTime("00:00:00+00:00");
- range.setEndTime("23:59:59+00:00");
+ range.setEndTime("24:00:00+00:00");
ranges.add(range);
}
StringBuilder rdata = new StringBuilder();
private static Instant getInstanceFromTime(String timeIn, Instant cwStartInstant) {
Instant instant = null;
Instant date = cwStartInstant.truncatedTo(ChronoUnit.DAYS);
+ // Handle ending midnight
+ if (timeIn.startsWith("24:00:00")) {
+ timeIn = "00:00:00+00:00";
+ date = date.plus(1, ChronoUnit.DAYS);
+ }
LocalDate epoch = LocalDate.ofEpochDay(0);
try {
OffsetTime offset = OffsetTime.parse(timeIn);
if (optimizerRequest.getAdditionalDuration() != null) {
duration += optimizerRequest.getAdditionalDuration();
}
+ duration = duration * 1000;
for (String elementId : nodeInfo.keySet()) {
TopologyElementInfo info = nodeInfo.get(elementId);
import java.util.Map;
import java.util.UUID;
import org.apache.commons.io.IOUtils;
-import org.onap.observations.Observation;
-import org.onap.optf.cmso.common.PropertiesManagement;
-import org.onap.optf.cmso.common.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.availability.policies.PolicyManager;
import org.onap.optf.cmso.optimizer.availability.policies.model.TimeLimitAndVerticalTopology;
import org.onap.optf.cmso.optimizer.clients.optimizer.models.OptimizerEngineResponse;
import org.onap.optf.cmso.optimizer.clients.topology.TopologyRequestManager;
import org.onap.optf.cmso.optimizer.clients.topology.models.TopologyResponse;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.common.PropertiesManagement;
+import org.onap.optf.cmso.optimizer.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.model.Optimizer;
import org.onap.optf.cmso.optimizer.model.Request;
import org.onap.optf.cmso.optimizer.model.Ticket;
import org.onap.optf.cmso.optimizer.model.Topology;
import org.onap.optf.cmso.optimizer.model.dao.OptimizerDao;
import org.onap.optf.cmso.optimizer.model.dao.RequestDao;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerRequest;
import org.onap.optf.cmso.optimizer.service.rs.models.PolicyInfo;
import org.springframework.beans.factory.annotation.Autowired;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Optional;
import java.util.UUID;
-import org.onap.observations.Observation;
import org.onap.optf.cmso.optimizer.clients.optimizer.models.OptimizerEngineResponse;
import org.onap.optf.cmso.optimizer.clients.optimizer.models.OptimizerEngineResponse.OptimizerEngineResponseStatus;
import org.onap.optf.cmso.optimizer.clients.optimizer.models.OptimizerResults;
import org.onap.optf.cmso.optimizer.model.dao.OptimizerDao;
import org.onap.optf.cmso.optimizer.model.dao.RequestDao;
import org.onap.optf.cmso.optimizer.model.dao.ResponseDao;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerRequest;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerResponse;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerResponse.OptimizeScheduleStatus;
*/
public OptimizerEngineResponse createOptimizerRequest(Request requestRow) {
//
- if (okToDispatch(false)) {
+ if (okToDispatch()) {
Optimizer optimizer = getExistingOptmizer(requestRow.getUuid());
if (optimizer == null) {
optimizer = new Optimizer();
- private boolean okToDispatch(boolean checkDispatchability) {
- if (checkDispatchability) {
+ private boolean okToDispatch() {
+ if (env.getProperty("ok.to.dispatch.check", Boolean.class, true)) {
// not yet implemented
- return false;
- }
- else {
return true;
}
+ return false;
}
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
-import org.onap.observations.Observation;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.introspector.Property;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
-import org.onap.observations.Observation;
-import org.onap.optf.cmso.common.BasicAuthenticatorFilter;
-import org.onap.optf.cmso.common.PropertiesManagement;
-import org.onap.optf.cmso.common.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.clients.common.models.ElementCriteria;
import org.onap.optf.cmso.optimizer.clients.ticketmgt.models.ActiveTicketsRequest;
import org.onap.optf.cmso.optimizer.clients.ticketmgt.models.ActiveTicketsResponse;
import org.onap.optf.cmso.optimizer.clients.topology.models.TopologyElementInfo;
import org.onap.optf.cmso.optimizer.clients.topology.models.TopologyPolicyInfo;
import org.onap.optf.cmso.optimizer.clients.topology.models.TopologyResponse;
+import org.onap.optf.cmso.optimizer.common.BasicAuthenticatorFilter;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.common.PropertiesManagement;
+import org.onap.optf.cmso.optimizer.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.filters.CmsoClientFilters;
import org.onap.optf.cmso.optimizer.model.Request;
import org.onap.optf.cmso.optimizer.model.Ticket;
import org.onap.optf.cmso.optimizer.model.Topology;
import org.onap.optf.cmso.optimizer.model.dao.RequestDao;
import org.onap.optf.cmso.optimizer.model.dao.TicketDao;
-import org.onap.optf.cmso.optimizer.service.rs.models.ElementInfo;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerRequest;
import org.onap.optf.cmso.optimizer.service.rs.models.PolicyInfo;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Optional;
import java.util.UUID;
-import org.onap.observations.Observation;
import org.onap.optf.cmso.optimizer.clients.ticketmgt.models.ActiveTicketsResponse;
-import org.onap.optf.cmso.optimizer.common.LogMessages;
import org.onap.optf.cmso.optimizer.model.Request;
import org.onap.optf.cmso.optimizer.model.Ticket;
-import org.onap.optf.cmso.optimizer.model.Topology;
import org.onap.optf.cmso.optimizer.model.dao.RequestDao;
import org.onap.optf.cmso.optimizer.model.dao.TicketDao;
import org.springframework.beans.factory.annotation.Autowired;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
-import org.onap.observations.Observation;
-import org.onap.optf.cmso.common.BasicAuthenticatorFilter;
-import org.onap.optf.cmso.common.PropertiesManagement;
-import org.onap.optf.cmso.common.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.clients.common.models.ElementCriteria;
import org.onap.optf.cmso.optimizer.clients.topology.models.TopologyPolicyInfo;
import org.onap.optf.cmso.optimizer.clients.topology.models.TopologyRequest;
import org.onap.optf.cmso.optimizer.clients.topology.models.TopologyResponse;
import org.onap.optf.cmso.optimizer.clients.topology.models.TopologyResponse.TopologyRequestStatus;
+import org.onap.optf.cmso.optimizer.common.BasicAuthenticatorFilter;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.common.PropertiesManagement;
+import org.onap.optf.cmso.optimizer.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.filters.CmsoClientFilters;
import org.onap.optf.cmso.optimizer.model.Request;
import org.onap.optf.cmso.optimizer.model.Topology;
import org.onap.optf.cmso.optimizer.model.dao.RequestDao;
import org.onap.optf.cmso.optimizer.model.dao.TopologyDao;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.onap.optf.cmso.optimizer.service.rs.models.ElementInfo;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerRequest;
import org.onap.optf.cmso.optimizer.service.rs.models.PolicyInfo;
* limitations under the License.
*/
-package org.onap.optf.cmso.common;
+package org.onap.optf.cmso.optimizer.common;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
* limitations under the License.
*/
-package org.onap.optf.cmso.common;
+package org.onap.optf.cmso.optimizer.common;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.Serializable;
import java.nio.file.Paths;
import javax.ws.rs.core.Response.Status;
import org.apache.log4j.Level;
-import org.onap.observations.ObservationInterface;
+import org.onap.optf.cmso.optimizer.observations.ObservationInterface;
/**
* The Enum LogMessages.
* limitations under the License.
*/
-package org.onap.optf.cmso.common;
+package org.onap.optf.cmso.optimizer.common;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import java.util.Optional;
import java.util.UUID;
import javax.ws.rs.core.Response.Status;
-import org.onap.observations.Observation;
-import org.onap.optf.cmso.common.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.clients.optimizer.OptimizerRequestManager;
import org.onap.optf.cmso.optimizer.clients.optimizer.models.OptimizerEngineResponse;
import org.onap.optf.cmso.optimizer.clients.ticketmgt.TicketMgtRequestManager;
import org.onap.optf.cmso.optimizer.clients.topology.TopologyRequestManager;
import org.onap.optf.cmso.optimizer.clients.topology.models.TopologyResponse;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.model.Request;
import org.onap.optf.cmso.optimizer.model.Response;
import org.onap.optf.cmso.optimizer.model.dao.RequestDao;
import org.onap.optf.cmso.optimizer.model.dao.ResponseDao;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.onap.optf.cmso.optimizer.service.rs.models.ChangeWindow;
import org.onap.optf.cmso.optimizer.service.rs.models.ElementInfo;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerRequest;
* limitations under the License.
*/
-package org.onap.optf.cmso.common.exceptions;
+package org.onap.optf.cmso.optimizer.exceptions;
import com.att.eelf.i18n.EELFResourceManager;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.Response.Status;
-import org.onap.observations.ObservationInterface;
-import org.onap.optf.cmso.common.CmsoRequestError;
+import org.onap.optf.cmso.optimizer.common.CmsoRequestError;
+import org.onap.optf.cmso.optimizer.observations.ObservationInterface;
/**
* The Class CMSException.
package org.onap.optf.cmso.optimizer.filters;
import static com.att.eelf.configuration.Configuration.MDC_KEY_REQUEST_ID;
-
import java.io.IOException;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
import javax.ws.rs.client.ClientResponseContext;
import javax.ws.rs.client.ClientResponseFilter;
import javax.ws.rs.core.MultivaluedMap;
-import org.onap.observations.Mdc;
-import org.onap.observations.MessageHeaders;
-import org.onap.observations.MessageHeaders.HeadersEnum;
-import org.onap.observations.Observation;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.observations.Mdc;
+import org.onap.optf.cmso.optimizer.observations.MessageHeaders;
+import org.onap.optf.cmso.optimizer.observations.MessageHeaders.HeadersEnum;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.slf4j.MDC;
import org.springframework.stereotype.Component;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import javax.ws.rs.ext.Provider;
-import org.onap.observations.Mdc;
-import org.onap.observations.MessageHeaders;
-import org.onap.observations.MessageHeaders.HeadersEnum;
-import org.onap.observations.Observation;
import org.onap.optf.cmso.optimizer.common.LogMessages;
+import org.onap.optf.cmso.optimizer.observations.Mdc;
+import org.onap.optf.cmso.optimizer.observations.MessageHeaders;
+import org.onap.optf.cmso.optimizer.observations.MessageHeaders.HeadersEnum;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.springframework.stereotype.Component;
@Priority(1)
MultivaluedMap<String, Object> respHeaders = responseContext.getHeaders();
String minorVersion = reqHeaders.getFirst(HeadersEnum.MinorVersion.toString());
respHeaders.add(HeadersEnum.MinorVersion.toString(), minorVersion);
- respHeaders.add(HeadersEnum.LatestVersion.toString(), MessageHeaders.getLatestversion());
- respHeaders.add(HeadersEnum.PatchVersion.toString(), MessageHeaders.getPatchversion());
+ respHeaders.add(HeadersEnum.LatestVersion.toString(), MessageHeaders.getLatestVersion());
+ respHeaders.add(HeadersEnum.PatchVersion.toString(), MessageHeaders.getPatchVersion());
} catch (Exception e) {
if (e instanceof WebApplicationException) {
* limitations under the License.
*/
-package org.onap.observations;
+package org.onap.optf.cmso.optimizer.observations;
import static com.att.eelf.configuration.Configuration.MDC_BEGIN_TIMESTAMP;
import static com.att.eelf.configuration.Configuration.MDC_END_TIMESTAMP;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response.StatusType;
-import org.onap.observations.MessageHeaders.HeadersEnum;
+import org.onap.optf.cmso.optimizer.observations.MessageHeaders.HeadersEnum;
import org.slf4j.MDC;
/**
* limitations under the License.
*/
-package org.onap.observations;
+package org.onap.optf.cmso.optimizer.observations;
import java.util.HashMap;
import java.util.HashSet;
}
/** The Constant supportedMajorVersions. */
- private static final Map<String, String> supportedMajorVersions = new HashMap<String, String>();
+ public static final Map<String, String> supportedMajorVersions = new HashMap<String, String>();
static {
supportedMajorVersions.put("v1", "0");
}
/** The Constant supportedMajorMinorVersions. */
- private static final Set<String> supportedMajorMinorVersions = new HashSet<String>();
+ public static final Set<String> supportedMajorMinorVersions = new HashSet<String>();
static {
supportedMajorMinorVersions.add("v1.0");
}
/** The Constant latestVersion. */
- private static final String latestVersion = "2.0.0";
+ public static final String latestVersion = "2.0.0";
/** The Constant patchVersion. */
- private static final String patchVersion = "0";
+ public static final String patchVersion = "0";
/**
* From string.
return latestVersion;
}
+ public static Map<String, String> getSupportedmajorversions() {
+ return supportedMajorVersions;
+ }
+
+ public static Set<String> getSupportedmajorminorversions() {
+ return supportedMajorMinorVersions;
+ }
+
/**
* Validate major version.
*
}
return true;
}
-
- public static Map<String, String> getSupportedmajorversions() {
- return supportedMajorVersions;
- }
-
- public static Set<String> getSupportedmajorminorversions() {
- return supportedMajorMinorVersions;
- }
-
- public static String getLatestversion() {
- return latestVersion;
- }
-
- public static String getPatchversion() {
- return patchVersion;
- }
}
* limitations under the License.
*/
-package org.onap.observations;
+package org.onap.optf.cmso.optimizer.observations;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
* limitations under the License.
*/
-package org.onap.observations;
+package org.onap.optf.cmso.optimizer.observations;
import com.att.eelf.i18n.EELFResolvableErrorEnum;
import javax.ws.rs.core.Response.Status;
* limitations under the License.
*/
-package org.onap.observations;
+package org.onap.optf.cmso.optimizer.observations;
import com.att.eelf.i18n.EELFResolvableErrorEnum;
import com.att.eelf.i18n.EELFResourceManager;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
-import org.onap.optf.cmso.common.PropertiesManagement;
+import org.onap.optf.cmso.optimizer.common.PropertiesManagement;
import org.springframework.stereotype.Controller;
@Controller
package org.onap.optf.cmso.optimizer.service.rs;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.onap.optf.cmso.common.CmsoRequestError;
+import org.onap.optf.cmso.optimizer.common.CmsoRequestError;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerRequest;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerResponse;
import org.onap.optf.cmso.optimizer.service.rs.models.PolicyInfo;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
@Api("Optimizer Interface")
@Path("/{apiVersion}")
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
-import org.onap.observations.Observation;
-import org.onap.optf.cmso.common.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.common.LogMessages;
import org.onap.optf.cmso.optimizer.core.OptimizerManager;
+import org.onap.optf.cmso.optimizer.exceptions.CmsoException;
import org.onap.optf.cmso.optimizer.model.dao.RequestDao;
+import org.onap.optf.cmso.optimizer.observations.Observation;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerRequest;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerResponse;
import org.onap.optf.cmso.optimizer.service.rs.models.OptimizerResponse.OptimizeScheduleStatus;
Instant startInstant = startTime.toInstant();
Instant endInstant = endTime.toInstant();
Instant testStart = test.getStartTime().toInstant().plusMillis(startTimeZoneOffset);;
- Instant testEnd = test.getEndTime().toInstant().plusMillis(startTimeZoneOffset);;
+ Instant testEnd = test.getEndTime().toInstant().plusMillis(endTimeZoneOffset);;
if (!testStart.isBefore(startInstant)
&& !testEnd.isAfter(endInstant)) {
return true;
-org.springframework.boot.env.EnvironmentPostProcessor=org.onap.optf.cmso.CmsoEnvironmentPostProcessor
\ No newline at end of file
+org.springframework.boot.env.EnvironmentPostProcessor=org.onap.optf.cmso.optimizer.CmsoEnvironmentPostProcessor
\ No newline at end of file
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import java.util.TimeZone;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@Test
public void getAvailabilityWindowsForPolicies() {
- getAvailabilityWindowsForPolicy("AllDayEveryDay", "2019-03-08T00:00:00.00Z", "2019-03-12T00:00:00.00Z", 5);
+ getAvailabilityWindowsForPolicy("AllDayEveryDay", "2019-03-08T00:00:00.00Z", "2019-03-12T00:00:00.00Z", 1);
getAvailabilityWindowsForPolicy("Weekday_00_06", "2019-03-08T00:00:00.00Z", "2019-03-12T00:00:00.00Z", 3);
getAvailabilityWindowsForPolicy("EveryDay_00_06", "2019-03-08T00:00:00.00Z", "2019-03-12T00:00:00.00Z", 5);
getAvailabilityWindowsForPolicy("Weekend_00_06", "2019-03-08T00:00:00.00Z", "2019-03-12T00:00:00.00Z", 3);
package org.onap.optf.cmso.utilities;
-import org.onap.optf.cmso.common.PropertiesManagement;
+import org.onap.optf.cmso.optimizer.common.PropertiesManagement;
/**
* The Class PropertiesAdmin.
# See the License for the specific language governing permissions and
# limitations under the License.
###
-spring.datasource.jdbcUrl=jdbc:mariadb://${DB_HOST}:3306/optimizer?createDatabaseIfNotExist=true
+spring.datasource.jdbcUrl=jdbc:mariadb://${DB_HOST}:${DB_PORT}/optimizer?createDatabaseIfNotExist=true
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=beer
###
### MySQL DB.
-spring.datasource.url=jdbc:mariadb://${DB_HOST}:3306/optimizer
+spring.datasource.url=jdbc:mariadb://${DB_HOST}:${DB_PORT}/optimizer
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=beer
cp org.jacoco.agent-0.8.2/jacocoagent.jar .
ls -l
-VM_ARGS="${VM_ARGS} -javaagent:./jacocoagent.jar=destfile=/share/logs/jacoco.exec,dumponexit=true,jmx=true,append=true,output=file,includes=org.onap.optf.cmso.*"
+VM_ARGS="${VM_ARGS} -javaagent:./jacocoagent.jar=destfile=/share/logs/optimizer.jacoco.exec,dumponexit=true,jmx=true,append=true,output=file,includes=org.onap.*"
echo "VM_ARGS=${VM_ARGS}"
#-------------------------------------------------------------------------------
-# Copyright © 2017-2018 AT&T Intellectual Property.
-# Modifications Copyright © 2018 IBM.
+# Copyright ? 2017-2018 AT&T Intellectual Property.
+# Modifications Copyright ? 2018 IBM.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
#
#
# Unless otherwise specified, all documentation contained herein is licensed
-# under the Creative Commons License, Attribution 4.0 Intl. (the â??Licenseâ?\9d);
+# under the Creative Commons License, Attribution 4.0 Intl. (the ???License???);
# you may not use this documentation except in compliance with the License.
# You may obtain a copy of the License at
#
###
### MySQL DB.
-spring.datasource.url=jdbc:mariadb://${DB_HOST}:3306/cmso
+spring.datasource.url=jdbc:mariadb://${DB_HOST}:${DB_PORT}/cmso
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=beer
# See the License for the specific language governing permissions and
# limitations under the License.
###
-spring.datasource.jdbcUrl=jdbc:mariadb://${DB_HOST}:3306/cmso?createDatabaseIfNotExist=true
+spring.datasource.jdbcUrl=jdbc:mariadb://${DB_HOST}:${DB_PORT}/cmso?createDatabaseIfNotExist=true
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=beer
image: mariadb:10.1.11
volumes:
- "/var/lib/mysql"
- - "../mariadb/conf1:/etc/mysql/conf.d:ro"
+ - "./mariadb/conf1:/etc/mysql/conf.d:ro"
environment:
- MYSQL_ROOT_PASSWORD=beer
ports:
- mariadb
environment:
- DB_HOST=mariadb
+ - DB_PORT=3306
entrypoint: "bash -x /share/etc/startDbinitService.sh"
db-init-opt:
- mariadb
environment:
- DB_HOST=mariadb
+ - DB_PORT=3306
entrypoint: "bash -x /share/etc/startDbinitService.sh"
- "8080:8080"
environment:
- DB_HOST=mariadb
+ - DB_PORT=3306
- OPTIMIZER_URL=http://cmso-optimizer:7997/optimizer/v1/optimize/schedule
- OPTIMIZER_HEALTH_URL=http://cmso-optimizer:7997/optimizer/v1/health?checkInterfaces=true
- "7997:7997"
environment:
- DB_HOST=mariadb
+ - DB_PORT=3306
- TOPOLOGY_HOST=cmso-topology
- TICKETMGT_HOST=cmso-ticketmgt
environment:
- GLOBAL_SCHEDULER_URL=http://cmso-service:8080
- GLOBAL_OPTIMIZER_URL=http://cmso-optimizer:7997
- - CMSO_STARTUP_WAIT_TIME=600s
+ - CMSO_STARTUP_WAIT_TIME=20m
- TAGS=-i ete
- OUTPUT=-d /share
working_dir: /opt/cmso-robot
### Wait for robot to finish
sleep 240
-docker exec cmso-service_cmso-robot_1 ls
+docker exec integration_cmso-robot_1 ls
while [ $? -ne 1 ]; do
sleep 60
- docker exec cmso-service_cmso-robot_1 ls
+ docker exec integration_cmso-robot_1 ls
done
### Shut down java with to give time to write the jacoco_exec file
-docker exec cmso-service_cmso-service_1 pkill java
-docker exec cmso-service_cmso-optimizer_1 pkill java
+docker exec integration_cmso-service_1 pkill java
+docker exec integration_cmso-optimizer_1 pkill java
sleep 10
### wait for cmso containers to exit and jacoco files written
-docker exec cmso-service_cmso-service_1 ls
+docker exec integration_cmso-service_1 ls
while [ $? -ne 1 ]; do
sleep 60
- docker exec cmso-service_cmso-service_1 ls
+ docker exec integration_cmso-service_1 ls
done
-docker exec cmso-service_cmso-optimizer_1 ls
+docker exec integration_cmso-optimizer_1 ls
while [ $? -ne 1 ]; do
sleep 60
- docker exec cmso-service_cmso-optimizer_1 ls
+ docker exec integration_cmso-optimizer_1 ls
done
cat up.txt
<docker.skip.push>false</docker.skip.push>\r
<docker.skip.tag>false</docker.skip.tag>\r
<skip.staging.artifacts>false</skip.staging.artifacts>\r
-\r
+ <skipIntegrationTests>true</skipIntegrationTests>\r
</properties>\r
<dependencies>\r
<dependency>\r
</execution>\r
</executions>\r
</plugin>\r
+ <plugin>\r
+ <groupId>org.apache.maven.plugins</groupId>\r
+ <artifactId>maven-failsafe-plugin</artifactId>\r
+ <configuration>\r
+ <skipITs>${skipIntegrationTests}</skipITs>\r
+ </configuration>\r
+ </plugin>\r
<plugin>\r
<groupId>org.jacoco</groupId>\r
<artifactId>jacoco-maven-plugin</artifactId>\r
<goal>report</goal>\r
</goals>\r
<configuration>\r
+ <skip>${skipIntegrationTests}</skip>\r
<dataFile>${project.basedir}/target/code-coverage/service.jacoco.exec</dataFile>\r
<outputDirectory>${project.basedir}/target/site/service-it</outputDirectory>\r
<includes>\r
</excludes>\r
</configuration>\r
</execution>\r
+ <execution>\r
+ <id>post-integration-test2</id>\r
+ <phase>post-integration-test</phase>\r
+ <goals>\r
+ <goal>report</goal>\r
+ </goals>\r
+ <configuration>\r
+ <skip>${skipIntegrationTests}</skip>\r
+ <dataFile>${project.basedir}/target/code-coverage/optimizer.jacoco.exec</dataFile>\r
+ <outputDirectory>${project.basedir}/target/site/optimizer-it</outputDirectory>\r
+ <includes>\r
+ <include>optimizer/**</include>\r
+ </includes>\r
+ <excludes>\r
+ <exclude>**/gen/**</exclude>\r
+ <exclude>**/generated-sources/**</exclude>\r
+ <exclude>**/yang-gen/**</exclude>\r
+ <exclude>**/pax/**</exclude>\r
+ </excludes>\r
+ </configuration>\r
+ </execution>\r
</executions>\r
</plugin>\r
</plugins>\r
System.out.println("stderr=" + stderr);
copyJacocoFiles();
copyClassFiles();
+ copyForSonar();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
+ private void copyForSonar() throws IOException {
+ String[] jacocoFiles = env.getProperty("copy.jacoco.for.sonar").split(",");
+ for (String jacocoFile : jacocoFiles) {
+ String[] parts = jacocoFile.split("\\|");
+ if (parts.length == 2) {
+ File source = new File(parts[0]);
+ File dest = new File(parts[1]);
+ if (source.exists() && source.isFile() && dest.getParentFile().isDirectory()) {
+ Path srcFile = Paths.get(source.getAbsolutePath());
+ Path dstFile = Paths.get(dest.getAbsolutePath());
+ Files.copy(srcFile, dstFile, StandardCopyOption.REPLACE_EXISTING);
+ } else {
+ System.out.println("Skipping " + jacocoFile);
+ }
+ } else {
+ System.out.println("Skipping " + jacocoFile);
+ }
+
+ }
+ }
+
private void copyClassFiles() throws IOException {
File dest = new File(env.getProperty("jacoco.exec.classes"));
dest.mkdirs();
base.path=./
jacoco.exec.dest=target/code-coverage
jacoco.exec.classes=target/classes
-source.classes.folders=service|../cmso-service/target/classes,optimizer
-jacoco.exec.source.files=docker/integration/cmso-service/logs/service.jacoco.exec,docker/integration/cmso-service/logs/optimizer.jacoco.exec
\ No newline at end of file
+source.classes.folders=service|../cmso-service/target/classes,optimizer|../cmso-optimizer/target/classes
+jacoco.exec.source.files=docker/integration/cmso-service/logs/service.jacoco.exec,docker/integration/cmso-optimizer/logs/optimizer.jacoco.exec
+
+copy.jacoco.for.sonar=docker/integration/cmso-service/logs/service.jacoco.exec|../cmso-service/target/jacoco-it.exec,docker/integration/cmso-optimizer/logs/optimizer.jacoco.exec|../cmso-optimizer/target/jacoco-it.exec
\ No newline at end of file