Commit 02cb2279 authored by Ignacio's avatar Ignacio
Browse files

Merge branch 'dev' into 'master'

Elimina parte de jacoco

See merge request redmic-project/server/db2es!2
parents 05ab36ef 0c98d5da
Loading
Loading
Loading
Loading
+36 −20
Original line number Diff line number Diff line
@@ -17,8 +17,6 @@ maven-build:
    ELASTIC_XPACKSECURITYUSER: ${DEV_ELASTIC_XPACKSECURITYUSER}
  only:
    - branches
  except:
    - master
  cache:
    paths:
      - .m2/repository/
@@ -27,12 +25,12 @@ maven-build:
  after_script:
    - rm -r .m2/repository/es
  artifacts:
    name: "${CI_PROJECT_NAME}"
    name: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_NAME}"
    expire_in: '6 months'
    paths:
      - dist/*.jar

docker-build-commit:
docker-build-commit-non-master-branches:
  stage: package
  image: docker:stable
  variables:
@@ -52,7 +50,7 @@ docker-build-commit:
      -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-latest .
    - docker push ${CI_REGISTRY_IMAGE}

docker-build-tag:
docker-build-commit-master-branch:
  stage: package
  image: docker:stable
  variables:
@@ -62,7 +60,7 @@ docker-build-tag:
  services:
    - docker:dind
  only:
    - tags
    - master
  script:
    - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
    - >
@@ -70,6 +68,20 @@ docker-build-tag:
      -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG} -t ${CI_REGISTRY_IMAGE}:latest .
    - docker push ${CI_REGISTRY_IMAGE}

docker-tag-already-built-image:
  stage: package
  image: docker:stable
  variables:
    DOCKER_DRIVER: overlay2
  services:
    - docker:dind
  only:
    - tags
  script:
    - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
    - docker tag ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}
    - docker push ${CI_REGISTRY_IMAGE}

container_scanning:
  stage: test-package
  image: docker:stable
@@ -80,8 +92,6 @@ container_scanning:
    - docker:stable-dind
  only:
    - branches
  except:
    - master
  script:
    - docker run -d --name db arminc/clair-db:latest
    - docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1
@@ -92,7 +102,9 @@ container_scanning:
    - mv clair-scanner_linux_amd64 clair-scanner
    - chmod +x clair-scanner
    - touch clair-whitelist.yml
    - ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-sast-container-report.json -l clair.log -w clair-whitelist.yml ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} || true
    - >
      ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-sast-container-report.json -l clair.log
      -w clair-whitelist.yml ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} || true
  artifacts:
    paths: [gl-sast-container-report.json]

@@ -110,16 +122,18 @@ deploy-dev:
    - docker:dind
  script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=pre
      SPRING_DATASOURCE_USERNAME=${DEV_SPRING_DATASOURCE_USERNAME}
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=pre SPRING_DATASOURCE_USERNAME=${DEV_SPRING_DATASOURCE_USERNAME}
      SPRING_DATASOURCE_PASSWORD=${DEV_SPRING_DATASOURCE_PASSWORD}
      JOBS_DATASOURCE_USERNAME=${DEV_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD=${DEV_JOBS_DATASOURCE_PASSWORD}
      JOBS_DATASOURCE_USERNAME=${DEV_JOBS_DATASOURCE_USERNAME}
      JOBS_DATASOURCE_PASSWORD=${DEV_JOBS_DATASOURCE_PASSWORD}
      ELASTIC_XPACKSECURITYUSER=${DEV_ELASTIC_XPACKSECURITYUSER}
  environment:
    name: dev
    url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}
    url: https://appdev.${DEV_PUBLIC_HOSTNAME}/${CI_PROJECT_NAME}
  only:
    - dev
  when: manual

deploy-supporting-branch:
  stage: deploy
@@ -135,14 +149,15 @@ deploy-supporting-branch:
    - docker:dind
  script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} SPRING_PROFILES_ACTIVE=pre
      SPRING_DATASOURCE_USERNAME=${DEV_SPRING_DATASOURCE_USERNAME}
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=pre SPRING_DATASOURCE_USERNAME=${DEV_SPRING_DATASOURCE_USERNAME}
      SPRING_DATASOURCE_PASSWORD=${DEV_SPRING_DATASOURCE_PASSWORD}
      JOBS_DATASOURCE_USERNAME=${DEV_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD=${DEV_JOBS_DATASOURCE_PASSWORD}
      JOBS_DATASOURCE_USERNAME=${DEV_JOBS_DATASOURCE_USERNAME}
      JOBS_DATASOURCE_PASSWORD=${DEV_JOBS_DATASOURCE_PASSWORD}
      ELASTIC_XPACKSECURITYUSER=${DEV_ELASTIC_XPACKSECURITYUSER}
  environment:
    name: dev
    url: https://appdev.${DEV_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}
    url: https://appdev.${DEV_PUBLIC_HOSTNAME}/${CI_PROJECT_NAME}
  only:
    - branches
  except:
@@ -167,11 +182,12 @@ deploy-pro:
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=prod SPRING_DATASOURCE_USERNAME=${PRO_SPRING_DATASOURCE_USERNAME}
      SPRING_DATASOURCE_PASSWORD=${PRO_SPRING_DATASOURCE_PASSWORD}
      JOBS_DATASOURCE_USERNAME=${PRO_JOBS_DATASOURCE_USERNAME} JOBS_DATASOURCE_PASSWORD=${PRO_JOBS_DATASOURCE_PASSWORD}
      JOBS_DATASOURCE_USERNAME=${PRO_JOBS_DATASOURCE_USERNAME}
      JOBS_DATASOURCE_PASSWORD=${PRO_JOBS_DATASOURCE_PASSWORD}
      ELASTIC_XPACKSECURITYUSER=${PRO_ELASTIC_XPACKSECURITYUSER}
  environment:
    name: pro
    url: https://${PRO_PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}
    url: https://${PRO_PUBLIC_HOSTNAME}/${CI_PROJECT_NAME}
  only:
    - tags
    - master
  when: manual
+66 −0
Original line number Diff line number Diff line
require([
	'dijit/form/Button'
	, 'app-client/task/TasksSelect'
	, 'dijit/form/Select'
	, 'dojo/dom'
	, 'app-client/socket/Socket'
	, 'app-client/tasks'
	, 'dojo/domReady!'
], function(
	Button
	, TasksSelect
	, Select
	, dom
	, Socket
	, Tasks
){
	var socket = new Socket({
		url: '/db2es/socket'
	});

	var connectBtn = new Button({
		label: 'Connect',
		onClick: function(){
			socket.connect();
		}
	}, 'connectBtn');



	var sendBtn = new TasksSelect({
		socket: socket
	}, 'sendBtn');

/*	sendBtn.on('subscribed', function() {
		console.log('Subscrito');
		setTimeout(function() {
			var listTask = ["citation-job", "animaltracking-job"];
			socket.sendByTopic('/topic' + sendBtn.reqChannel, listTask);
		}, 500);
	});*/


	socket.on('connected', function(url) {
		console.log('Conectado');



/*		socket.subscribe('/topic/greeting', function(message) {
			console.log('Recibo gretting: ' + message);
		});

		socket.subscribe('/topic/jobs/list', function(message) {
			console.log('Recibo jobs: ' + message);
		});*/
		var tasks = new Tasks({
			socket: socket
		}, 'tasks');

		/*socket.subscribe('/topic/jobs/list', function(message) {
			console.log('Recibo jobs: ' + message);
		});*/


	});

});
 No newline at end of file
+68 −0
Original line number Diff line number Diff line
define([
	'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'dojo/Evented'
	, 'sockjs'
	, 'stomp'
], function(
	declare
	, lang
	, Evented
	, SockJS
	, Stomp
){
	return declare([Evented], {
		_ws: null,
		_client: null,
		url: null,

		constructor: function(args) {
			this._subscribes = {};
			this._isConnected = false;

			lang.mixin(this, args);

			this.on('connect', this._connect);
			this.on('error', this._error);
		},

		connect: function() {
			this.emit(this.url ? 'connect' : 'error', this.url);
		},

		isConnected: function() {
			return this._isConnected;
		},

		subscribe: function(channel, callback) {
			this._subscribes[channel] = callback;

			this._client.subscribe(channel, function(message) {
				console.debug('SUBSCRIBE', channel, message);
				message.body = JSON.parse(message.body);
				callback(message);
			});
		},

		send: function(channel, message) {
			console.debug('SEND', channel, message);
			this._client.send(channel, {}, JSON.stringify(message));
		},

		_connect: function() {

			this._ws = new SockJS(this.url);
			this._client = window.Stomp.over(this._ws);
			this._client.connect({}, lang.hitch(this, this._connected));
		},

		_connected: function() {
			this._isConnected = true;
			this.emit('connected', this);
		},

		_error: function(url) {
			console.error('ERROR');
		}
	});
});
 No newline at end of file
+30 −0
Original line number Diff line number Diff line
define([
	'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'app-client/socket/Socket'
], function(
	declare
	, lang
	, Socket
){
	return declare([Socket], {

		subscribe: function(channel, callback) {
			this._subscribes[channel] = callback;
		},

		sendByTopic: function(channel, message) {

			this._subscribes[channel] && this._subscribes[channel](message);
		},

		send: function(channel, message) {
			console.log('Send', channel, message);
		},

		_connect: function() {
			console.log('Connect');
			setTimeout(lang.hitch(this, this._connected), 500);
		}
	});
});
 No newline at end of file
+144 −0
Original line number Diff line number Diff line
define([
	'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'dojo/on'
	, 'dojo/Evented'
	, 'dojo/dom-construct'
	, 'dijit/_WidgetBase'
	, 'dijit/form/Select'
	, 'dijit/form/Button'
], function(
	declare
	, lang
	, on
	, Evented
	, domConstruct
	, _Widget
	, Select
	, Button
){
	return declare([_Widget, Evented], {
		socket: null,
		reqChannel: '/jobs/list',
		url: null,
		jobsList: null,

		constructor: function(args) {
			this._subscriptions = {};

			this.i18n = {
				"indexing-animalTracking-job": "Tracking de animales",
				"indexing-platformTracking-job": "Tracking de plataformas",
				"indexing-citation-job": "Citas corológicas",
				"indexing-timeseriesSurvey-job": "Estaciones fijas con series temporales",
				"indexing-timeSeries-job": "Series temporales",
				"indexing-attributeSeries-job": "Series de atributo de Infrastructuras",
				"indexing-isolines-job": "Isolíneas",
				"indexing-area-job": "Áreas",
				"indexing-objectCollectingSurvey-job": "Indexar object survey",
				"indexing-objectCollectingseries-job": "Serie de colección de objetos",
				"indexing-infrastructure-job": "Infrastructuras",
				"indexing-administrativeDomains-job": "Dominios de administración",
				"indexing-document-job": "Indexar documentos",
				"indexing-classificationsDomains-job": "Dominios de clasificación",
				"indexing-parametersDomains-job": "Dominios de parámetros",
				"indexing-qualityDomains-job": "Dominios de calidad de los datos",
				"indexing-qualifyDomains-job": "Dominios de calificación de objetos",
				"indexing-taxonomyDomains-job": "Dominios de taxonomía",
				"indexing-ancillaryDataDomains-job": "Dominios de datos auxiliares",
				"indexing-toponymias-job": "Toponimias",
				"indexing-taxonomy-job": "Taxonomía",
				"indexing-administrative-job": "Administración",
				"indexing-atlas-job": "Atlas"
			};

			lang.mixin(this, args);
		},

		postCreate: function() {
			this._createLayout();
			this._startSocket();
		},

		_createLayout: function() {
			this._selectNode = domConstruct.create('span', null, this.domNode);
			this._btnNode = domConstruct.create('span', null, this.domNode);
		},

		_startSocket: function(value) {
			if (this.socket) {
				this.socket.isConnected() && this._onSocketOpened();
				this.socket.on('connected', lang.hitch(this, this._onSocketOpened));
			}
		},

		_onSocketOpened: function() {
			this.emit('socket-opened');
			this._onSubscriptions();
		},

		_onSubscriptions: function() {

			this.socket.subscribe('/topic' + this.reqChannel, lang.hitch(this, this._onReceivedJobsList));
			this.emit('subscribed');
			this.socket.send('/app' + this.reqChannel, {});
		},

		_onReceivedJobsList: function(message) {

			this.jobsList = this._parseJobsList(message.body);
			this.emit('received-jobs-list', this.jobsList);
			this._createSelectJob();
			this._createBtnRunJob();
		},

		_parseJobsList: function(jobsIn) {
			var jobs = [];
			for (var i = 0; i < jobsIn.length; i++) {
				jobs.push({
					value: jobsIn[i],
					label: this.i18n[jobsIn[i]]
				});
			}

			return jobs;
		},

		_createSelectJob: function() {
			this._selectWidget = new Select({
				name: 'selectJob',
				options: this.jobsList,
				style: 'width: 90%'
			}, this._selectNode);
		},

		_createBtnRunJob: function() {
			this._btnWidget = new Button({
				onClick: lang.hitch(this, this._runJob),
				iconClass: 'dijitIconTask',
				label: null
			}, this._btnNode);
		},

		_runJob: function() {
			var jobId = this._selectWidget.get('value');

			this.socket.send('/app/jobs/indexing', {
				jobName: jobId
			});
		},

		_sendRequest: function() {
			this.socket.send(this.reqChannel, {});
		},

		_createJobList: function() {

		},

		_error: function(url) {
			console.error('ERROR');
		}

	});
});
 No newline at end of file
Loading