1
0
Fork 0

Merge branch 'devel' of https://github.com/arangodb/arangodb into devel

This commit is contained in:
jsteemann 2017-01-05 16:53:21 +01:00
commit 3bc02b9aad
10 changed files with 271 additions and 40 deletions

View File

@ -406,6 +406,7 @@ elif [ "${XCGCC}" = 1 ]; then
export LD=$TOOL_PREFIX-g++
export LINK=$TOOL_PREFIX-g++
export STRIP=$TOOL_PREFIX-strip
export OBJCOPY=$TOOL_PREFIX-objcopy
# we need ARM LD:
GOLD=0;
@ -468,6 +469,18 @@ if [ -z "${MSVC}" ]; then
if test -n "${STRIP}"; then
CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS} -DCMAKE_STRIP=${STRIP}"
fi
if test -z "${OBJCOPY}"; then
OBJCOPY=/usr/bin/objcopy
if [ ! -f ${OBJCOPY} ] ; then
OBJCOPY=`which objcopy`
fi
export OBJCOPY
fi
if test -n "${OBJCOPY}"; then
CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS} -DCMAKE_OBJCOPY=${OBJCOPY}"
fi
fi
CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS} ${MAINTAINER_MODE}"
@ -535,6 +548,7 @@ DST=`pwd`
SOURCE_DIR=`compute_relative ${DST}/ ${SRC}/`
if [ ! -f Makefile -o ! -f CMakeCache.txt ]; then
rm -rf CMakeFiles
CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}" LIBS="${LIBS}" \
cmake ${SOURCE_DIR} ${CONFIGURE_OPTIONS} -G "${GENERATOR}" || exit 1
fi

View File

@ -0,0 +1,10 @@
stand-alone shell
A distributed free and open-source database with a flexible data model for documents,
graphs, and key-values. Build high performance applications using a convenient
SQL-like query language or JavaScript extensions.
Debug symbol file for development.
.
Copyright: 2014-2016 by ArangoDB GmbH
Copyright: 2012-2013 by triAGENS GmbH
ArangoDB Software
www.arangodb.com

View File

@ -196,13 +196,17 @@ rest::ResponseCode VocbaseContext::basicAuthentication(char const* auth) {
AuthResult result = _authentication->authInfo()->checkAuthentication(
AuthInfo::AuthType::BASIC, auth);
_request->setUser(std::move(result._username));
if (!result._authorized) {
events::CredentialsBad(_request, rest::AuthenticationMethod::BASIC);
return rest::ResponseCode::UNAUTHORIZED;
}
if (!result._username.empty()) {
_request->setUser(std::move(result._username));
} else {
_request->setUser("root");
}
// we have a user name, verify 'mustChange'
if (result._mustChange) {
if ((_request->requestType() == rest::RequestType::PUT ||
@ -233,7 +237,11 @@ rest::ResponseCode VocbaseContext::jwtAuthentication(std::string const& auth) {
}
// we have a user name, verify 'mustChange'
_request->setUser(std::move(result._username));
if (!result._username.empty()) {
_request->setUser(std::move(result._username));
} else {
_request->setUser("root");
}
events::Authenticated(_request, rest::AuthenticationMethod::JWT);
return rest::ResponseCode::OK;

17
arangod/dbg.cmake Normal file
View File

@ -0,0 +1,17 @@
# -*- mode: CMAKE; -*-
# these are the install targets for the client package.
# we can't use RUNTIME DESTINATION here.
set(STRIP_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_X}/strip")
execute_process(COMMAND mkdir -p ${STRIP_DIR})
set(FILE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_X}/${BIN_ARANGOBENCH}${CMAKE_EXECUTABLE_SUFFIX})
set(STRIP_FILE ${STRIP_DIR}/${BIN_ARANGOD}${CMAKE_EXECUTABLE_SUFFIX})
if (NOT MSVC AND CMAKE_STRIP)
execute_process(COMMAND "rm" -f ${STRIP_FILE})
execute_process(COMMAND ${CMAKE_OBJCOPY} --only-keep-debug ${FILE} ${STRIP_FILE})
set(FILE ${STRIP_FILE})
endif()
install(
PROGRAMS ${FILE}
DESTINATION ${CMAKE_INSTALL_DEBINFO_DIR}/${CMAKE_INSTALL_BINDIR})

63
arangosh/dbg.cmake Normal file
View File

@ -0,0 +1,63 @@
# -*- mode: CMAKE; -*-
# these are the install targets for the client package.
# we can't use RUNTIME DESTINATION here.
set(STRIP_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_X}/strip")
execute_process(COMMAND mkdir -p ${STRIP_DIR})
set(FILE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_X}/${BIN_ARANGOBENCH}${CMAKE_EXECUTABLE_SUFFIX})
set(STRIP_FILE ${STRIP_DIR}/${BIN_ARANGOBENCH}${CMAKE_EXECUTABLE_SUFFIX})
if (NOT MSVC AND CMAKE_STRIP)
execute_process(COMMAND "rm" -f ${STRIP_FILE})
execute_process(COMMAND ${CMAKE_OBJCOPY} --only-keep-debug ${FILE} ${STRIP_FILE})
set(FILE ${STRIP_FILE})
endif()
install(
PROGRAMS ${FILE}
DESTINATION ${CMAKE_INSTALL_DEBINFO_DIR}/${CMAKE_INSTALL_BINDIR})
set(FILE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_X}/${BIN_ARANGODUMP}${CMAKE_EXECUTABLE_SUFFIX})
set(STRIP_FILE ${STRIP_DIR}/${BIN_ARANGODUMP}${CMAKE_EXECUTABLE_SUFFIX})
if (NOT MSVC AND CMAKE_STRIP)
execute_process(COMMAND "rm" -f ${STRIP_FILE})
execute_process(COMMAND ${CMAKE_OBJCOPY} --only-keep-debug ${FILE} ${STRIP_FILE})
set(FILE ${STRIP_FILE})
endif()
install(
PROGRAMS ${FILE}
DESTINATION ${CMAKE_INSTALL_DEBINFO_DIR}/${CMAKE_INSTALL_BINDIR})
set(FILE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_X}/${BIN_ARANGOIMP}${CMAKE_EXECUTABLE_SUFFIX})
set(STRIP_FILE ${STRIP_DIR}/${BIN_ARANGOIMP}${CMAKE_EXECUTABLE_SUFFIX})
if (NOT MSVC AND CMAKE_STRIP)
execute_process(COMMAND "rm" -f ${STRIP_FILE})
execute_process(COMMAND ${CMAKE_OBJCOPY} --only-keep-debug ${FILE} ${STRIP_FILE})
set(FILE ${STRIP_FILE})
endif()
install(
PROGRAMS ${FILE}
DESTINATION ${CMAKE_INSTALL_DEBINFO_DIR}/${CMAKE_INSTALL_BINDIR})
set(FILE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_X}/${BIN_ARANGORESTORE}${CMAKE_EXECUTABLE_SUFFIX})
set(STRIP_FILE ${STRIP_DIR}/${BIN_ARANGORESTORE}${CMAKE_EXECUTABLE_SUFFIX})
if (NOT MSVC AND CMAKE_STRIP)
execute_process(COMMAND "rm" -f ${STRIP_FILE})
execute_process(COMMAND ${CMAKE_OBJCOPY} --only-keep-debug ${FILE} ${STRIP_FILE})
set(FILE ${STRIP_FILE})
endif()
install(
PROGRAMS ${FILE}
DESTINATION ${CMAKE_INSTALL_DEBINFO_DIR}/${CMAKE_INSTALL_BINDIR})
set(FILE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_X}/${BIN_ARANGOSH}${CMAKE_EXECUTABLE_SUFFIX})
set(STRIP_FILE ${STRIP_DIR}/${BIN_ARANGOSH}${CMAKE_EXECUTABLE_SUFFIX})
if (NOT MSVC AND CMAKE_STRIP)
execute_process(COMMAND "rm" -f ${STRIP_FILE})
execute_process(COMMAND ${CMAKE_OBJCOPY} --only-keep-debug ${FILE} ${STRIP_FILE})
set(FILE ${STRIP_FILE})
endif()
install(
PROGRAMS ${FILE}
DESTINATION ${CMAKE_INSTALL_DEBINFO_DIR}/${CMAKE_INSTALL_BINDIR})

View File

@ -16,6 +16,10 @@ if (MSVC)
set(CMAKE_INSTALL_SBINDIR ${CMAKE_INSTALL_BINDIR})
endif()
# debug info directory:
set(CMAKE_INSTALL_DEBINFO_DIR "${CMAKE_INSTALL_LIBDIR}/debug/${CMAKE_PROJECT_NAME}")
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_SYSCONFDIR}/${CMAKE_PROJECT_NAME}")
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO "${CMAKE_INSTALL_FULL_SYSCONFDIR}/${CMAKE_PROJECT_NAME}")
@ -30,10 +34,9 @@ FILE(MAKE_DIRECTORY "${ARANGODB_APPS_DIRECTORY}")
# logs
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/${CMAKE_PROJECT_NAME}")
set(INSTALL_ICU_DT_DEST "${CMAKE_INSTALL_DATAROOTDIR}/arangodb3")
set(INSTALL_ICU_DT_DEST "${CMAKE_INSTALL_DATAROOTDIR}/${CMAKE_PROJECT_NAME}")
include(InstallMacros)
# install ----------------------------------------------------------------------
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Documentation/man/
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/man)

115
cmake/packages/dbg/deb.txt Normal file
View File

@ -0,0 +1,115 @@
################################################################################
# the client package is a complete cmake sub package.
################################################################################
project(PACKAGE-DBG)
cmake_minimum_required(VERSION 2.8)
################################################################################
# variables from the main build have to be explicitely forwarded:
################################################################################
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "@PROJECT_BINARY_DIR@/bin/")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_X ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set(CMAKE_INSTALL_DO_STRIP 0)
set(CROSS_COMPILING @CROSS_COMPILING@)
set(CMAKE_INSTALL_BINDIR @CMAKE_INSTALL_BINDIR@)
set(CMAKE_INSTALL_FULL_BINDIR @CMAKE_INSTALL_FULL_BINDIR@)
set(CMAKE_INSTALL_DATAROOTDIR @CMAKE_INSTALL_DATAROOTDIR@)
set(CMAKE_INSTALL_DATAROOTDIR_ARANGO @CMAKE_INSTALL_DATAROOTDIR_ARANGO@)
set(CMAKE_INSTALL_FULL_DATAROOTDIR_ARANGO @CMAKE_INSTALL_FULL_DATAROOTDIR_ARANGO@)
set(CMAKE_INSTALL_DIR @CMAKE_INSTALL_DIR@)
set(CMAKE_INSTALL_PREFIX @CMAKE_INSTALL_PREFIX@)
set(CMAKE_INSTALL_SYSCONFDIR @CMAKE_INSTALL_SYSCONFDIR@)
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_SYSCONFDIR_ARANGO@)
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO@)
set(CMAKE_INSTALL_DEBINFO_DIR @CMAKE_INSTALL_DEBINFO_DIR@)
set(INSTALL_CONFIGFILES_LIST)
set(PACKAGING_HANDLE_CONFIG_FILES false)
################################################################################
# Substitute the install binaries:
################################################################################
set(BIN_ARANGOD @BIN_ARANGOD@)
set(BIN_ARANGOBENCH @BIN_ARANGOBENCH@)
set(BIN_ARANGODUMP @BIN_ARANGODUMP@)
set(BIN_ARANGOIMP @BIN_ARANGOIMP@)
set(BIN_ARANGORESTORE @BIN_ARANGORESTORE@)
set(BIN_ARANGOSH @BIN_ARANGOSH@)
set(BIN_ARANGOVPACK @BIN_ARANGOVPACK@)
################################################################################
# build specific variables:
################################################################################
set(ARANGODB_URL_INFO_ABOUT @ARANGODB_URL_INFO_ABOUT@)
set(ARANGODB_SOURCE_DIR @ARANGODB_SOURCE_DIR@)
set(ARANGODB_VERSION @ARANGODB_VERSION@)
set(ARANGODB_PACKAGE_CONTACT @ARANGODB_PACKAGE_CONTACT@)
set(ARANGODB_PACKAGE_REVISION @ARANGODB_PACKAGE_REVISION@)
set(ARANGODB_PACKAGE_VENDOR @ARANGODB_PACKAGE_VENDOR@)
set(CMAKE_TARGET_ARCHITECTURES @CMAKE_TARGET_ARCHITECTURES@)
set(ORIGINAL_SOURCE_DIR @PROJECT_SOURCE_DIR@)
set(PROJECT_SOURCE_DIR @PROJECT_SOURCE_DIR@)
set(CPACK_PACKAGE_NAME @CPACK_PACKAGE_NAME@)
set(CPACKG_PACKAGE_CONFLICTS @CPACKG_PACKAGE_CONFLICTS@)
################################################################################
# Get the final values for cpack:
################################################################################
set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}")
set(CPACK_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-dbg")
set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
set(CPACK_PACKAGE_VENDOR ${ARANGODB_PACKAGE_VENDOR})
set(CPACK_PACKAGE_CONTACT ${ARANGODB_PACKAGE_CONTACT})
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
set(CPACK_COMPONENTS_ALL debian-extras)
set(CPACK_GENERATOR "DEB")
set(CPACK_SET_DESTDIR ON)
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
if (USE_ENTERPRISE)
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/enterprise/LICENSE")
else ()
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
endif ()
file(READ "${PROJECT_SOURCE_DIR}/Installation/debian/dbg_packagedesc.txt"
CPACK_DEBIAN_PACKAGE_DESCRIPTION)
################################################################################
# specify which target archcitecture the package is going to be:
################################################################################
if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*")
set(ARANGODB_PACKAGE_ARCHITECTURE "amd64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64")
set(ARANGODB_PACKAGE_ARCHITECTURE "arm64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "armv7")
set(ARANGODB_PACKAGE_ARCHITECTURE "armhf")
else()
set(ARANGODB_PACKAGE_ARCHITECTURE "i386")
endif()
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${ARANGODB_PACKAGE_ARCHITECTURE})
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}")
################################################################################
# Install the external files into the package directory:
################################################################################
set(INSTALL_MACROS_NO_TARGET_INSTALL TRUE)
include(${ORIGINAL_SOURCE_DIR}/cmake/InstallMacros.cmake)
include(${ORIGINAL_SOURCE_DIR}/arangosh/dbg.cmake)
include(${ORIGINAL_SOURCE_DIR}/arangod/dbg.cmake)
include(CPack)

View File

@ -99,8 +99,6 @@ add_custom_target(package-arongodb-client
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
WORKING_DIRECTORY ${CLIENT_BUILD_DIR})
list(APPEND PACKAGES_LIST package-arongodb-client)
@ -116,3 +114,18 @@ add_custom_target(remove_packages
)
list(APPEND CLEAN_PACKAGES_LIST remove_packages)
################################################################################
# hook to build the debug package
################################################################################
set(DEBUG_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/arangodb3-dbg)
configure_file(cmake/packages/dbg/deb.txt ${DEBUG_BUILD_DIR}/CMakeLists.txt @ONLY)
add_custom_target(package-arongodb-dbg
COMMAND ${CMAKE_COMMAND} .
COMMAND ${CMAKE_CPACK_COMMAND} -G DEB
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
WORKING_DIRECTORY ${DEBUG_BUILD_DIR})
list(APPEND PACKAGES_LIST package-arongodb-dbg)

View File

@ -220,28 +220,16 @@ actions.defineHttp({
}
} catch (e) {}
// Now get to work, first get the write lock on the Plan in the Agency:
var success = ArangoAgency.lockRead('Supervision', timeout);
if (!success) {
actions.resultError(req, res, actions.HTTP_REQUEST_TIMEOUT, 0,
'could not get a read lock on Plan in Agency');
var Health;
try {
Health = ArangoAgency.get('Supervision/Health', false, true).arango.Supervision.Health;
} catch (e1) {
actions.resultError(req, res, actions.HTTP_NOT_FOUND, 0,
'Failed to retrieve supervision node from agency!');
return;
}
try {
var Health;
try {
Health = ArangoAgency.get('Supervision/Health', false, true).arango.Supervision.Health;
} catch (e1) {
actions.resultError(req, res, actions.HTTP_NOT_FOUND, 0,
'Failed to retrieve supervision node from agency!');
return;
}
actions.resultOk(req, res, actions.HTTP_OK, {Health});
} finally {
ArangoAgency.unlockRead('Supervision', timeout);
}
actions.resultOk(req, res, actions.HTTP_OK, {Health});
}
});

View File

@ -26,7 +26,7 @@
////////////////////////////////////////////////////////////////////////////////
const internal = require('internal');
const download = internal.download;
const download = internal.clusterDownload;
const cluster = require('@arangodb/cluster');
const db = require('@arangodb').db;
@ -495,20 +495,20 @@ router.get("/coordshort", function(req, res) {
};
var coordinators = global.ArangoClusterInfo.getCoordinators();
var coordinatorStats = coordinators.map(coordinator => {
var endpoint = global.ArangoClusterInfo.getServerEndpoint(coordinator);
var response = download(endpoint.replace(/^tcp/, "http") + "/_db/_system/_admin/aardvark/statistics/short?count=" + coordinators.length);
if (Array.isArray(coordinators)) {
var coordinatorStats = coordinators.map(coordinator => {
var endpoint = global.ArangoClusterInfo.getServerEndpoint(coordinator);
var response = download(endpoint.replace(/^tcp/, "http") + "/_db/_system/_admin/aardvark/statistics/short?count=" + coordinators.length, '', {headers: {}});
try {
return JSON.parse(response.body);
} catch (e) {
console.error("Couldn't read statistics response:", response.body);
throw e;
}
});
try {
return JSON.parse(response.body);
} catch (e) {
console.error("Couldn't read statistics response:", response.body);
throw e;
}
});
mergeHistory(coordinatorStats);
mergeHistory(coordinatorStats);
}
res.json({"enabled": coordinatorStats.some(stat => stat.enabled), "data": merged});
})
.summary("Short term history for all coordinators")