31073 Commits

Author SHA1 Message Date
Rajani Karuturi
a44407743c docker: increased jetty timeout (#2245)
the container sometimes doesn't come up as it timesout
2017-08-28 13:31:46 +02:00
Rohit Yadav
7ce54bf7a8 CLOUDSTACK-9993: Securing Agents Communications (#2239)
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.

Misc changes:
- Upgrades bountycastle version and uses newer classes
- Refactors SAMLUtil to use new CertUtils

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-28 12:15:11 +02:00
dahn
64e56a2159 Merge pull request #2044 from shapeblue/cleanup-unlinked-templates
CLOUDSTACK-9877 Cleanup unlinked templates
2017-08-25 09:01:26 +02:00
Daan Hoogland
94718c0bd3 CE-110 markedForGC is ignored so delete the templates in the task that finds them 2017-08-25 08:57:52 +02:00
Daan Hoogland
16b34c9a11 CE-110 default interval of 0 minutes means do not mark for cleaning 2017-08-25 08:57:51 +02:00
Daan Hoogland
c10c342d9e CE-110 task for marking cleaning fully cloned templates
implemented by marking them for GC
2017-08-25 08:57:51 +02:00
Daan Hoogland
693d63e7c4 CE-110 remove duplicate-unused functionality 2017-08-25 08:57:51 +02:00
Daan Hoogland
426894411e CE-110 move config to public fields 2017-08-25 08:57:51 +02:00
digitalgust
a8c09f2a19 CLOUDSTACK-9996: Fix juniper vlan untagged jedgement and xml element replacment (#2174)
Fix  juniper vlan untagged jedgement and xml element replacment.
2017-08-24 13:22:06 +02:00
vedulasantosh
4b38d36284 CLOUDSTACK-9915 ListSnapshots API does not provide virtual size information of the snapshots (#2101) 2017-08-24 13:21:13 +02:00
Gabriel Beims Bräscher
57255ac72c CLOUDSTACK-9914: Update Quota plugin to support currency values up to 5 decimal places (#2123)
Summary: this commit alters column currency_value from table
cloud_usage.quota_tariff to support values up to 5 decimal places. The
current implementation allows up to 2 decimal places.

Issue: need to use more than 2 decimal places to define resources values
in Quota tariff.

Solution: modify column currency_value from table
cloud_usage.quota_tariff to support values up to 5 decimal places.
Values with more than 5 decimal places will be displayed with scientific
notation in the user interface.

SQL command: "ALTER TABLE cloud_usage.quota_tariff MODIFY currency_value
DECIMAL(15,5) not null"
2017-08-23 21:40:48 +02:00
Nitin Kumar Maharana
1f29313071 CLOUDSTACK-10002: Restart network with cleanup spawns Redundant Routers(In Default Network Offering) (#2186)
The setter name is different from what it should be used by update call.
2017-08-22 22:48:32 +02:00
SudharmaJain
7f987ace35 CLOUDSTACK-9165: unable to use reserved IP range in a network for external VMs (#1246) 2017-08-22 21:11:45 +02:00
Rohit Yadav
cc749cca3e Merge branch '4.10' 2017-08-22 10:23:29 +02:00
Rohit Yadav
0f27bc9a7b Merge branch '4.9' into 4.10 2017-08-22 10:23:00 +02:00
Rohit Yadav
310195cbe2 CLOUDSTACK-10052: Simplify dynamic roles enable checking (#2241)
This fixes issue of enabling dynamic roles based on the global setting
only. This also fixes application of the default role/permissions mapping
on upgrade from 4.8 and previous versions to 4.9+.

Previously, it would make additional check to ensure commands.properties
is not in the classpath however this creates confusion for admins who
may skip/skim through the rn/docs and assume that mere changing the
global settings was not enough.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-22 10:22:27 +02:00
Gabriel Beims Bräscher
f62a8d7a5b CLOUDSTACK-10022: Allow domain admin to create and delete subdomains (#2222) 2017-08-22 08:51:31 +02:00
Syed Mushtaq Ahmed
deb92d32bb CLOUDSTACK-10030: Make sure that public IPs assigned to VPC are reacheable from inside the VPC (#2221)
If a public IP is assigned to a VPC, a VM running inside that VPC cannot ping that public IP. This is due to the IPtables Nat rules set in such a way that drop any requests to the public IP from internal interfaces. I am fixing this so that internal hosts can also reach the public IP.

Reproduction:

Create a VPC
Create a network inside the VPC
Allocate a public IP
Create a VM in the network
Create a port forwarding rule enabling ICMP
ping the public IP inside the VM (this will fail)
2017-08-22 08:50:25 +02:00
Jayapal
40d7746038 CLOUDSTACK-9967: Fixed static nat iptables rules order issue on additional public subnet ip (#2154) 2017-08-21 19:04:40 +02:00
sureshanaparti
0c6cf69eee CLOUDSTACK-9717: [VMware] RVRs have mismatching MAC addresses for extra public NICs. (#1878)
Fix: When RVR is enabled and Peer Router is available, get the MAC addresses of the extra public NICs from the Peer Router and set them to the router.
2017-08-21 11:04:20 +02:00
SudharmaJain
b947eca958 CLOUDSTACK-9734: Destroy VM Fails sometimes (#2013) 2017-08-20 14:47:28 +02:00
pavanaravapalli
250c47eb62 CLOUDSTACK-9964: Snapahots are getting deleted if VM is assigned to another user (#2159) 2017-08-19 21:11:45 +02:00
pavanaravapalli
a40e0f0097 CLOUDSTACK-9939: Volumes stuck in Creating state while restarting the Management Server when the volume creation is in progress (#2163) 2017-08-19 21:10:43 +02:00
Joakim Sernbrant
ea52a1312f CLOUDSTACK-9763: set ssh public key when creating vm data (#1919) 2017-08-19 20:59:11 +02:00
Marc-Aurèle Brothier
4e4d7c7e36 CLOUDSTACK-9773: Don't break API output with non-printable characters (#1936) 2017-08-19 20:55:20 +02:00
Nitesh Sarda
d450e1acc0 CLOUDSTACK-9992 : Failed to change cluster to managed state 2017-08-19 14:13:31 +05:30
Rohit Yadav
fa2c5a0128 Merge remote-tracking branch 'origin/4.10' 2017-08-18 11:16:17 +02:00
Sigert Goeminne
dc361e1903 CLOUDSTACK-10031: change default configuration for router.aggregation.command.each.timeout from 3 to 600 seconds (#2223)
Change default configuration for router.aggregation.command.each.timeout from 3 to 600 seconds (#2223)
(cherry picked from commit 17bc6afc8228ed2da6e0b09f330e18217483577c)

This fixes some test_nic failures caused due to short aggregation command timeout

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-17 23:05:23 +02:00
Rohit Yadav
a502c00ca7 Merge branch '4.9' into 4.10 2017-08-17 23:04:29 +02:00
Sigert Goeminne
cd2176f9a6 CLOUDSTACK-10031: change default configuration for router.aggregation.command.each.timeout from 3 to 600 seconds (#2223)
Change default configuration for router.aggregation.command.each.timeout from 3 to 600 seconds (#2223)
(cherry picked from commit 17bc6afc8228ed2da6e0b09f330e18217483577c)

This fixes some test_nic failures caused due to short aggregation command timeout

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-17 23:01:46 +02:00
vedulasantosh
f243f70c59 CLOUDSTACK-10026 Page for Internal LB VM stucking while loading (#2215) 2017-08-13 01:21:18 +02:00
ustcweizhou
6745f98487 CLOUDSTACK-9999: vpc tiers do not work if vpc has more than 8 tiers (#2180)
In the VR, deviceid of eth1X should be 1X (eth10->10, eth11->11), not 1.
2017-08-13 01:19:51 +02:00
Sigert Goeminne
17bc6afc82 CLOUDSTACK-10031: change default configuration for router.aggregation.command.each.timeout from 3 to 600 seconds (#2223)
Change default configuration for router.aggregation.command.each.timeout from 3 to 600 seconds (#2223)
2017-08-11 12:26:24 +02:00
Nicolas Vazquez
3f330a2199 CLOUDSTACK-10044: Update role permission (#2236)
This feature allows changing permission for existing role permissions, as those were static and could not be changed once created. It also provides the ability to change these permissions in the UI using a drop down menu for each permission rule, in which admin can select ‘Allow’ or ‘Deny’ permission.

Changes in the API:

This feature modifies behaviour of updateRolePermission API method:

New optional parameters ‘ruleid’ and ‘permission’ are introduced, they are mutual exclusive to ‘ruleorder’ parameter. This defines two use cases:
Update role permission: ‘ruleid’ and ‘permission’ parameters needed
Update rules order: ‘ruleorder’ parameter needed
Parameter ‘ruleorder’ is now optional
updateRolePermission providing ‘ruleorder’ parameter should be sent via POST
2017-08-11 12:24:50 +02:00
dahn
c13af1e85a README: Repo has moved (#2235)
Move from git-wip-us to gitbox
2017-08-10 13:54:26 +02:00
Rohit Yadav
f84728d374 Merge branch '4.10' 2017-08-10 01:59:34 +02:00
Rohit Yadav
d9b7b8cb62 Merge branch '4.9' into 4.10
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-10 01:39:14 +02:00
Rohit Yadav
92b07d453f CLOUDSTACK-10000: Fix vpn_users component test
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-10 01:31:28 +02:00
ustcweizhou
aee3dbb49a CLOUDSTACK-10000: Fix remote access vpn does not work due to '#' in password (#2182) 2017-08-10 01:30:21 +02:00
Rohit Yadav
542b7e6608 CLOUDSTACK-8958: Fix typos introduced
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-10 01:12:59 +02:00
Wei Zhou
5645164dbb CLOUDSTACK-8958: release dedicated ip range in domain removal 2017-08-10 01:11:51 +02:00
Rohit Yadav
d17728dd7e Merge branch '4.10' 2017-08-10 01:04:54 +02:00
Rohit Yadav
cf6c949310 Merge branch '4.9' into 4.10 2017-08-10 01:04:04 +02:00
Wido den Hollander
86b6050c32 CLOUDSTACK-10042: Properly show ICMP SecGroup Rules (#2233)
A simple if-statement would fail if either the type or code were 0
as that if-statement failed them.

By checking if they are defined and casting them to a String afterwards
this makes the if-statement properly resolve and show the rule as it should.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-08-10 01:03:35 +02:00
Boris Stoyanov - a.k.a Bobby
18ffd7b199 CLOUDSTACK-10036: Decreasing timeout of failing unit test (#2228)
This test occasionally fails on CentOS6 environments by failing to meet the 2000 milliseconds threshold. Usually it ends up executing the method for ~1100. So decreasing the timeout to 1000 would prevent it from failing.
2017-08-08 11:50:07 +02:00
SowjanyaPatha
f66bbb9521 CLOUDSTACK-9922 Unable to use 8081 port for Load balancing 2017-08-08 11:57:45 +05:30
Abhinandan Prateek
d7f5b929b2 CLOUDSTACK-9861: Expire VM snapshots after configured duration (#2026)
Default value of the account level global config vmsnapshot.expire.interval is -1 that conforms to legacy behaviour. A positive value will expire the VM snapshots for the respective account in that many hours.
2017-08-06 00:13:17 +02:00
Mowgli
3614f8aae2 CLOUDSTACK-9608: Errored State and Abandoned state Templates are not displayed on UI. (#1774)
Errored and Abandoned Templates should also be displayed on UI so that user has the accessibility to delete the template even before the clean up thread is run. Refer - CLOUDSTACK-9608
2017-08-06 00:10:26 +02:00
Wido den Hollander
2867080979 CLOUDSTACK-10034: Use libvirt to create new volumes and not rados-java (#2039)
Since libvirt 1.2.2 libvirt will properly create volumes
using RBD format 2.

We can use libvirt to creates the volumes which strips a bit of
code from the CloudStack Agent's responsbility.

RBD format 2 is already used by all volumes created by CloudStack.

This format is the most recent format of RBD and is still actively
being developed.

This removes the support for Ubuntu 12.04 as that does not have the
proper libvirt version available.

Signed-off-by: Wido den Hollander wido@widodh.nl

We can use libvirt to creates the volumes which strips a bit of
code from the CloudStack Agent's responsbility.

RBD format 2 is already used by all volumes created by CloudStack.

This format is the most recent format of RBD and is still actively
being developed.

This removes the support for Ubuntu 12.04 as that does not have the
proper libvirt version available.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-08-06 00:04:21 +02:00
niteshsarda
6203013ec6 CLOUDSTACK-9955 : Featured Templates/Iso's created by Root/admin user are not visible to Domain Admin users (#2144)
ISSUE: Featured Templates/Iso's created by Root/admin user are not visible to Domain Admin users.

STEPS TO REPRODUCE

Mark a template as featured and try to view it from a domain admin user
The issue occurs for both templates and iso's registered before and after upgrade
Templates,ISO's whose owner is ROOT admin, public: Yes, featured: Yes
Log in to UI (as a domain admin, such as an admin of “TEST/TEST1” domain)
Choose “Templates”.
Error message will be shown on UI
2017-08-04 20:59:07 +02:00