Commit Graph

294 Commits

Author SHA1 Message Date
Nitin Kumar Maharana 9a53b53aff CLOUDSTACK-10058: Error while opening the Settings tab in Secondary storage (#2254)
Root Cause:
Some global parameters contains NULL value, where the code doesn't handle NULL check.
So it fails with an exception. Hence nothing appears on the field(ERROR).

Solution:
Added required NULL check.
2018-01-16 14:39:32 +01:00
Daan Hoogland 6512d393d4 fr21: Account ldap binding 2018-01-15 14:29:12 +01:00
Rohit Yadav 366d82e292 FR12 (CLOUDSTACK-9993): Secure Agent Communications (#38)
This introduces a new certificate authority framework that allows
pluggable CA provider implementations to handle certificate operations
around issuance, revocation and propagation. The framework injects
itself to `NioServer` to handle agent connections securely. The
framework adds assumptions in `NioClient` that a keystore if available
with known name `cloud.jks` will be used for SSL negotiations and
handshake.

This includes a default 'root' CA provider plugin which creates its own
self-signed root certificate authority on first run and uses it for
issuance and provisioning of certificate to CloudStack agents such as
the KVM, CPVM and SSVM agents and also for the management server for
peer clustering.

Additional changes and notes:
- Comma separate list of management server IPs can be set to the 'host'
  global setting. Newly provisioned agents (KVM/CPVM/SSVM etc) will get
  radomized comma separated list to which they will attempt connection
  or reconnection in provided order. This removes need of a TCP LB on
  port 8250 (default) of the management server(s).
- All fresh deployment will enforce two-way SSL authentication where
  connecting agents will be required to present certificates issued
  by the 'root' CA plugin.
- Existing environment on upgrade will continue to use one-way SSL
  authentication and connecting agents will not be required to present
  certificates.
- A script `keystore-setup` is responsible for initial keystore setup
  and CSR generation on the agent/hosts.
- A script `keystore-cert-import` is responsible for import provided
  certificate payload to the java keystore file.
- Agent security (keystore, certificates etc) are setup initially using
  SSH, and later provisioning is handled via an existing agent connection
  using command-answers. The supported clients and agents are limited to
  CPVM, SSVM, and KVM agents, and clustered management server (peering).
- Certificate revocation does not revoke an existing agent-mgmt server
  connection, however rejects a revoked certificate used during SSL
  handshake.
- Older `cloudstackmanagement.keystore` is deprecated and will no longer
  be used by mgmt server(s) for SSL negotiations and handshake. New
  keystores will be named `cloud.jks`, any additional SSL certificates
  should not be imported in it for use with tomcat etc. The `cloud.jks`
  keystore is stricly used for agent-server communications.
- Management server keystore are validated and renewed on start up only,
  the validity of them are same as the CA certificates.

New APIs:
- listCaProviders: lists all available CA provider plugins
- listCaCertificate: lists the CA certificate(s)
- issueCertificate: issues X509 client certificate with/without a CSR
- provisionCertificate: provisions certificate to a host
- revokeCertificate: revokes a client certificate using its serial

Global settings for the CA framework:
- ca.framework.provider.plugin: The configured CA provider plugin
- ca.framework.cert.keysize: The key size for certificate generation
- ca.framework.cert.signature.algorithm: The certificate signature algorithm
- ca.framework.cert.validity.period: Certificate validity in days
- ca.framework.cert.automatic.renewal: Certificate auto-renewal setting
- ca.framework.background.task.delay: CA background task delay/interval
- ca.framework.cert.expiry.alert.period: Days to check and alert expiring certificates

Global settings for the default 'root' CA provider:
- ca.plugin.root.private.key: (hidden/encrypted) CA private key
- ca.plugin.root.public.key: (hidden/encrypted) CA public key
- ca.plugin.root.ca.certificate: (hidden/encrypted) CA certificate
- ca.plugin.root.issuer.dn: The CA issue distinguished name
- ca.plugin.root.auth.strictness: Are clients required to present certificates
- ca.plugin.root.allow.expired.cert: Are clients with expired certificates allowed

UI changes:
- Button to download/save the CA certificates.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-09-26 09:19:31 +05:30
Abhinandan Prateek b3f6d9136e CW1261: Do not reset connection for user managed connections 2017-03-24 12:42:41 +05:30
Abhinandan Prateek 635aa20058 CLOUDSTACK-9460: For long running transactions, if the connection is
timed out by the mysql server then refresh it
2016-11-21 15:09:50 +05:30
Abhinandan Prateek 066057d7c4 CLOUDSTACK-9571: fence gracefully using clustermanger's notifyNodeIsolated 2016-11-21 15:09:50 +05:30
Abhinandan Prateek 6fdd19fa7e CLOUDSTACK-9571: Fence DB if there are consecutive connection errors. 2016-11-21 15:09:50 +05:30
ramamurtis 173e2462b3 CLOUDSTACK-9006 - ListTemplates API returns result in inconsistent order when called concurrently
Adding filter test to verify addOrderBy method.

(cherry picked from commit 9d1a469ae5)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-01-20 12:54:06 +01:00
ramamurtis d82a373604 CLOUDSTACK-9006 - ListTemplates API returns result in inconsistent order when called concurrently
(cherry picked from commit c90723f491)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-01-20 12:54:05 +01:00
Rohit Yadav a4f552d46d cloudstack: set next version to 4.5.3-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-09-14 09:59:40 +05:30
Koushik Das 3d9cbf0bcb CLOUDSTACK-8733: Host stuck in rebalancing state during agent LB
This is happening as ClusterServiceServletAdapter is started after ClusteredAgentManagerImpl.
Fix is to start ClusterServiceServletAdapter before ClusteredAgentManagerImpl.

(cherry-picked from c989921fb7)
2015-08-25 09:37:50 +05:30
Rohit Yadav 7385441807 Updating pom.xml version numbers for release 4.5.2
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-19 14:42:54 +05:30
Rohit Yadav fb88a11f82 framework: don't use raw SQL statements to save certificate in KeystoreDaoImpl
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-29 18:32:40 +02:00
Rohit Yadav 4ba72a877c Updating pom.xml version numbers for release 4.5.2-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-07 15:33:01 +02:00
Rohit Yadav 0eb4eb2370 Updating pom.xml version numbers for release 4.5.1
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-04 12:17:03 +02:00
Koushik Das 6378d37c5e CLOUDSTACK-8425: Job framework: Same internal job can execute simultaneously
The same internal job was simultaneously getting executed by 2 worked threads.
The fix is to ensure that job gets scheduled for execution from a single place.

(cherry picked from commit 6dfb8ab03e)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-29 16:50:40 +02:00
Santhosh Edukulla 86943da26e Fixed few coverity issues
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
(cherry picked from commit 0a9742f914)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-27 14:43:48 +02:00
Rohit Yadav 6c5cf04d62 CLOUDSTACK-8372: Encrypt key column when saving key in keystore table
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-08 14:35:17 +05:30
Jayapal 32fe64ce1b Avoid logging password when adding srx device
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-13 15:01:06 +05:30
Rohit Yadav cfd4573335 engine: Add Upgrade path from 4.5.0 to 4.5.1
Encrypts:
- Remote access vpn preshared key
- StoragePool's user info
- Keystore's key

This closes #112

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-12 12:13:28 +05:30
Rohit Yadav c198dfdb7a Update pom and version usage to 4.5.1-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-12 12:13:18 +05:30
Rohit Yadav 68b5440d44 fix NPE cases, throw exceptions early on
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-05 17:44:32 +05:30
Rohit Yadav 46cd98b163 jobs: fix corner cases, add NPE checks
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-05 16:20:47 +05:30
Santhosh Edukulla bd190192b9 Fixed Resource Leaks
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
(cherry picked from commit 350ac4c4b0)

Conflicts:
	engine/schema/src/com/cloud/upgrade/dao/Upgrade441to450.java
2015-02-05 13:47:22 +05:30
Santhosh Edukulla 737edd90dc Fixed few coverity patches
NPE in delete firewall rules observed, cherry-picking fix from master.

(cherry picked from commit 31a42d2b7a)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-02 12:48:38 +05:30
Rohit Yadav bf88be5b25 Revert "CLOUDSTACK-8011: Upgrade maven dependencies"
This reverts commit 482815d084.
2014-12-04 19:47:23 +05:30
Rohit Yadav 482815d084 CLOUDSTACK-8011: Upgrade maven dependencies
Changes;
- Upgrades maven-war plugin to 4.5 (faster war packaging)
- Upgrade spring framework to latest minor release
- Upgrade ehcache, jasypt, httpclient, httpcore and other core dependencies
- Upgrade to latest ipv6 library, fix unit test NetUtilsTest
- httpcore and httpclient are sharing same version variable
- commons-httpclient is different that httpclient, the fix gives it a separate var
- Apidocs failed to generate and get stuck with new reflections version, for now
  we will continue using 0.9.8

Newer dependencies can be listed using:
mvn versions:display-dependency-updates -Dnoredist -Dsimulator -P developer,systemvm

Testing;
- Tested using Maven 3.2.1
- Local noredist build with unit tests succeeds
- CloudStack mgmt server started, basic business layer tests work
- Observed 10-15% build time improvement using new maven-war plugin

Branch: bugfix/4.5-8011 (commits are squashed in favour of a linear history)

Pull request:
https://github.com/apache/cloudstack/pull/50

This closes #50

TravisCI build summary:
https://travis-ci.org/shapeblue/cloudstack/builds/42902172

- Build passes with unit tests
- Apidocs generates successfully
- Most integration tests pass, some fail due to timeout errors, second re-run
  passes some of them

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit fac7bfc5d5)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	pom.xml
2014-12-04 02:14:54 +05:30
Edison Su d856a2acad CLOUDSTACK-7946:
remove leftover state in volume and snapshot table in case of mgt server
shutdown during storage operation.
Reviewed-by: Min
2014-11-19 16:08:27 -08:00
Min Chen 0c45c96ec7 CLOUDSTACK-7864: CPVM continues to be in Stopped state after a failure to start because of a management server restart. Added optimization to purge queue items for cancelled jobs. 2014-11-11 11:11:18 -08:00
Min Chen f2cedda9ef CLOUDSTACK-7884: Cloudstack MS is not responding (happening randomly) after some restart. 2014-11-11 09:19:21 -08:00
Damodar cdabb2407a CLOUDSTACK-7843: sync Job Failures always reported as success on Event Bus 2014-11-10 15:07:13 +05:30
Min Chen 3a2f6ffd49 CLOUDSTACK-7864: CPVM continues to be in Stopped state after a failure to start because of a management server restart. 2014-11-07 16:37:05 -08:00
Rajani Karuturi c3e5964dcb Fixed CLOUDSTACK-7242: Adding a securing config using configDepo doesnt work
In ConfigurationVo, changed the setter to do the encryption if required
like the getter. Called the setter in constructor as well.

Removed references of encryption check in different places.

Reviewed-by: Santhosh Edukulla

This closes #35
2014-11-05 11:49:38 +05:30
Min Chen 07ba078ee6 CLOUDSTACK-7833: VM Async work jobs log "Was unable to find lock for the key vm_instance" errors as warning 2014-11-03 11:19:06 -08:00
Min Chen 6830cbc15a CLOUDSTACK-7832: Move some job db update and item purge to
completeAsyncJob transaction to avoid MySQL deadlock.
2014-11-03 11:18:52 -08:00
Min Chen dbf12d58e7 CLOUDSTACK-7749: AsyncJob GC thread cannot purge queue items that have been blocking for too long if exception is thrown in expunging some unfinished or completed old jobs, this will make some future jobs stuck. 2014-10-17 10:55:38 -07:00
Hugo Trippaers dba4a8c837 cleaning more conflicts 2014-10-13 00:19:20 -04:00
Min Chen 3ebf49ab28 CLOUDSTACK-7628:VM Worker job should be expunged one hour after
completion instead of currently being expunged whenever cleanup task
thread is run.
(cherry picked from commit 4317a85e97)
2014-10-12 23:53:56 -04:00
Anthony Xu d036168ecb cleaning up more conflicts 2014-10-12 23:52:53 -04:00
Anthony Xu b4bddc61ac timeInSeconds * 1000
timeInSeconds is int type, if timeInSeconds is very big, it makes "timeInseconds * 1000" very small even 0

(cherry picked from commit f5eae55abb)
2014-10-12 23:48:43 -04:00
Koushik Das 1b0618d39c CLOUDSTACK-7595: Config parameters "job.expire.minutes" and "job.cancel.threshold.minutes" incorrectly getting multiplied by a factor of 60
Removed the unnecessary multiply factor for both the config parameters. Also removed the duplicate entries from Config.java as these are not required

(cherry picked from commit a6ee4112a5)
2014-10-12 23:43:01 -04:00
Min Chen b979c6f0c7 CLOUDSTACK-7589: VM not Starting and always stuck in Stopped state after
management server restarts.

(cherry picked from commit 7cdb67dcf1)
2014-10-12 23:40:07 -04:00
Anthony Xu e5a91e40dd in tagCommand, AsyncJobExecutionContext doesn't need to be created if it doesn't exist 2014-09-17 18:15:41 -07:00
Min Chen a2d85c8cae CLOUDSTACK-7566:Many jobs getting stuck in pending state and cloud is
unusable.
2014-09-16 15:14:08 -07:00
Harikrishna Patnala 5d389b1a71 CLOUDSTACK-5992: default values of configuraiton parameters in configuration table are set NULL on fresh setup Some configuration parameters have Component names different from fresh and upgrade setup
Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>
2014-09-05 14:59:33 +05:30
Hugo Trippaers dc3f0cbc63 Improve the handling of the findbug exclude files 2014-09-03 10:41:22 +02:00
Santhosh Edukulla 4a6560a9ee Fixed few coverity defects 2014-08-21 12:43:11 +05:30
Anthony Xu 90fe6d8087 removed trailing space 2014-08-13 11:09:38 -07:00
Santhosh Edukulla 0ca3b4a4e4 Fixed coverity reported concurrency issue
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-08-06 10:15:39 +05:30
Alena Prokharchyk ffeca8bbd2 CLOUDSTACK-7209: handle the case when network fails to implement NoTransitionException, and null is returned to the caller stack. All caller methods should verify if the return value is null before processing it further. 2014-08-01 09:47:28 -07:00