Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Disponible desde Release 2.3.0-immortal

Introducción

En Q4 de 2021 se ha remodelado la Configuración Centralizada, a partir de la versión 2.3.0 encontraremos los diversos cambios.

Cambios introducidos

Nueva ubicación.

Se cambiará la ubicación de esta funcionalidad dentro del menú del Controlpanel, ya que ahora estará disponible para todos los usuarios, no solo los administradores.

A partir de la próxima versión de Plataforma encontrarás esta funcionalidad en DEV TOOLS

...

Nombrado y APIs

A partir de esta versión, se podrá asignar un identificador legible a cada configuración, lo que permitirá operar con las configuraciones de manera más sencilla. Para ello se ha creado también un nuevo API dentro de las APIs del controlpanel para poder obtener una Configuración según su identificador, tipo y entorno:

...

Integración con microsericios

Además, se añade un nuevo tipo de Configuración para el caso de los usuarios no administradores “EXTERNAL_CONFIGURATION“.

...

Para mas detalle consultar este tutorial.

A continuación se muestra un ejemplo completo de como operar con el Cliente Java de la Plataforma:

Code Block
languagejava
/**
 * Copyright Indra Soluciones Tecnologías de la Información, S.L.U.
 * 2013-2021 SPAIN
 *
 * 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 com.minsait.onesait.platform.client;

import java.io.IOException;
import java.util.List;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;

import com.minsait.onesait.platform.client.enums.ConfigurationType;
import com.minsait.onesait.platform.client.exception.ConfigurationManagerException;
import com.minsait.onesait.platform.client.model.Configuration;
import com.minsait.onesait.platform.testing.IntegrationTest;

import lombok.extern.slf4j.Slf4j;

@Slf4j
@Category(IntegrationTest.class)
public class TestConfigurationManager {

	private final static String USERNAME = "developer";
	private final static String PASSWORD = "Changed2019!";
	private final static String SERVER = "http://localhost:18000";
	private final static String IDENTIFICATION = "testing_01";
	private final static String ENVIRONMENT = "default";
	private final static String YML_SAMPLE = "rancher:\r\n  url: https://rancher.sofia4cities.com/\r\n  accessKey: 471D90A16431C2CE7158\r\n  secretKey: VSoq31eGBqaFsG4vUcuvdpkQL1T64FypVPVckaDx";
	private final static ConfigurationType TYPE = ConfigurationType.EXTERNAL_CONFIG;
	private static ConfigurationManager manager;

	@BeforeClass
	public static void startUp() throws ConfigurationManagerException {
		log.info("Initializing Manager");
		manager = new ConfigurationManager(USERNAME, PASSWORD, SERVER);
	}

	@Test
	public void getAllConfigurations() throws IOException, ConfigurationManagerException {
		log.info("Getting Configurations from open platform");
		final List<Configuration> configurations = manager.getConfigurations();
		Assert.assertTrue(configurations.size() > 0);
	}

	@Test
	public void configurationCRUD() throws IOException, ConfigurationManagerException {

		@SuppressWarnings("unchecked")
		final Configuration configuration = Configuration.builder().description("Rancher config sample")
				.environment(ENVIRONMENT).identification(IDENTIFICATION).username(USERNAME).type(TYPE).yml(YML_SAMPLE)
				.build();

		Configuration retrievedConfig = manager.getConfiguration(IDENTIFICATION, ConfigurationType.EXTERNAL_CONFIG,
				ENVIRONMENT);
		if (retrievedConfig != null) {
			log.info("Deleting configuration with id {}", retrievedConfig.getId());
			manager.deleteConfiguration(retrievedConfig.getId());
		}

		log.info("Creating configuration");
		final String id = manager.createConfiguration(configuration);
		Assert.assertNotNull(id);
		log.info("Created configuration, id is {}", id);
		retrievedConfig = manager.getConfigurationById(id);
		Assert.assertNotNull(retrievedConfig);
		log.info("Retrieved config from the platform by id");
		retrievedConfig = manager.getConfiguration(IDENTIFICATION, ConfigurationType.EXTERNAL_CONFIG, ENVIRONMENT);
		Assert.assertNotNull(retrievedConfig);
		log.info("Retrieved config from the platform by parameters");

		configuration.setDescription("This is a new description");
		log.info("Updating configuration with new description and identification {}", IDENTIFICATION);
		manager.updateConfiguration(configuration, id);

		log.info("Deleting configuration with id {}", id);
		manager.deleteConfiguration(IDENTIFICATION, ConfigurationType.EXTERNAL_CONFIG, ENVIRONMENT);

	}
}

Explicación en vídeo

Widget Connector
overlayyoutube
_templatecom/atlassian/confluence/extra/widgetconnector/templates/youtube.vm
width600px
urlhttps://www.youtube.com/watch?v=ApiDrqj60EI
height450px