114 Commits

Author SHA1 Message Date
Rafael Weingärtner
cd3a128090
[CLOUDSTACK-10329] Button in ACL rules page to export all rules as a CSV file (#2494) 2018-03-20 07:36:24 -03: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
Rohit Yadav
4347776ac6 CLOUDSTACK-8562: DB-Backed Dynamic Role Based API Access Checker
This feature allows root administrators to define new roles and associate API
permissions to them.

A limited form of role-based access control for the CloudStack management server
API is provided through a properties file, commands.properties, embedded in the
WAR distribution. Therefore, customizing API permissions requires unpacking the
distribution and modifying this file consistently on all servers. The old system
also does not permit the specification of additional roles.

FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+Role+Based+API+Access+Checker+for+CloudStack

DB-Backed Dynamic Role Based API Access Checker for CloudStack brings following
changes, features and use-cases:
- Moves the API access definitions from commands.properties to the mgmt server DB
- Allows defining custom roles (such as a read-only ROOT admin) beyond the
  current set of four (4) roles
- All roles will resolve to one of the four known roles types (Admin, Resource
  Admin, Domain Admin and User) which maintains this association by requiring
  all new defined roles to specify a role type.
- Allows changes to roles and API permissions per role at runtime including additions or
  removal of roles and/or modifications of permissions, without the need
  of restarting management server(s)

Upgrade/installation notes:
- The feature will be enabled by default for new installations, existing
  deployments will continue to use the older static role based api access checker
  with an option to enable this feature
- During fresh installation or upgrade, the upgrade paths will add four default
  roles based on the four default role types
- For ease of migration, at the time of upgrade commands.properties will be used
  to add existing set of permissions to the default roles. cloud.account
  will have a new role_id column which will be populated based on default roles
  as well

Dynamic-roles migration tool: scripts/util/migrate-dynamicroles.py
- Allows admins to migrate to the dynamic role based checker at a future date
- Performs a harder one-way migrate and update
- Migrates rules from existing commands.properties file into db and deprecates it
- Enables an internal hidden switch to enable dynamic role based checker feature

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-11 09:45:19 +05:30
Rohit Yadav
aa6099515d CLOUDSTACK-9020: Increase UI container width by 200px
Based on suggestion from Lucian (Nux), this patch increases the UI's container
width by 200px as most modern resolutions on desktop/laptops/workstations are
at least 1400px wide. By increasing the width and adjusting css properties
throughout the UI, we get more space to show information. This also gets
rid of horizontal scrollbar in case of metrics views. This also, fixes the UI
logos to include our mascot 'cloudmonkey'.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-11-19 15:17:44 +05:30
Rohit Yadav
77b01fa7a5 CLOUDSTACK-9020: Add new status icons and css rules
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-11-19 15:17:43 +05:30
Rohit Yadav
ba9c4cfa81 ui: use cloudstack logo as favicon
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:24:05 +02:00
Laszlo Hornyak
0347f733dd added favicon
This closes #225

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:23:32 +02:00
Gabor Apati-Nagy
e65d6bd3a8 CLOUDSTACK-6227 (Add copy-paste support for detail view fields):
DetailView widget now supports bool isCopyPaste property that can be set
for fields. If this is set to true, the text of this field is displayed
using ellipsis formatting* and a copy-paste icon is available right next
to it. On clicking this icon, the full text is displayed

*: tooltip is also enabled showing the original non-ellipsed value
2014-03-28 10:15:19 -07:00
Brian Federle
15729f342c CLOUDSTACK-6272: Fix recover/restore VM actions
-Label recoverVirtualMachine as 'Recover VM'
-Label restoreVirtualMachine as 'Reinstall VM'
-Change confirmation text for restoreVirtualMachine to be more explicit
-Change restoreVirtualMachine icon to 'recycle' symbol, to avoid
 confusion with the reboot VM icon
2014-03-21 13:28:52 -07:00
Brian Federle
e37a6cd115 Update plugins side nav icon 2014-03-07 11:50:00 -08:00
Brian Federle
bf8507d564 VPC UI: Restore old 'router' icon 2014-03-06 14:45:28 -08:00
Brian Federle
4df897f4ab Add hover states for nav icons 2014-03-04 16:04:17 -08:00
Brian Federle
952888ab84 Icons: make monochromatic 2014-03-04 13:31:53 -08:00
Brian Federle
f45a5b231d Update infrastructure icons 2014-03-03 11:38:02 -08:00
Brian Federle
9769ab329d UI support for specify IP in VM wizard 2014-02-27 13:15:21 -08:00
Brian Federle
0c28b66362 Update socket icon 2014-01-28 10:25:57 -08:00
Brian Federle
09da5153df Update infrastructure 'socket' icon 2014-01-09 10:51:32 -08:00
Brian Federle
1a7872d189 Notifications: New alert style
-Move corner alert to pop up under notification area, intead of in the
 window corner, for better visibility

-Give alert box tooltip appearance
2013-10-31 15:55:26 -07:00
Brian Federle
d63a08d0a3 Add bg gradient to header 2013-10-24 16:04:51 -07:00
Brian Federle
0ef8b8770a Update logo 2013-10-24 15:22:02 -07:00
Brian Federle
70c4a97eaa UI: Add initial UCS section to infrastructure page 2013-07-09 13:48:48 -07:00
Brian Federle
7cdaa8694a Style router box 2013-05-08 14:34:46 -07:00
Brian Federle
34774c0c30 WIP 2013-05-08 14:03:51 -07:00
Brian Federle
f9b843d744 Add tier 'view all' icon 2013-05-07 16:11:45 -07:00
Brian Federle
880f98c023 Update affinity icon 2013-04-25 13:21:15 -07:00
Brian Federle
6802b9dac6 Add icon for affinity groups section 2013-04-25 11:23:31 -07:00
Brian Federle
f1bdae006a Add icons for 'add account,' 'release from account' 2013-04-24 16:53:22 -07:00
Brian Federle
7cef521227 Add icon for 'change affinity' action 2013-04-24 16:46:17 -07:00
Brian Federle
c954d8000b Install wizard logo text: lighten trademark text to match color 2013-02-28 15:11:30 -08:00
Brian Federle
612a598dcc CLOUDSTACK-1419: Add trademark to logos 2013-02-27 13:44:07 -08:00
Brian Federle
fb44e6d7ed Add basic region drop-down 2013-02-26 14:28:22 -08:00
Brian Federle
e3439bc8d0 Add select region icon to top bar 2013-02-26 14:02:05 -08:00
Brian Federle
cc49cb5806 Add nav icon for regions 2013-02-26 13:50:35 -08:00
Brian Federle
fe6fc0a20e Remove old screenshot files from UI folder 2013-02-21 15:01:13 -08:00
Brian Federle
8c1b3404ea Merge branch 'master' into ui-plugins 2012-12-27 13:48:04 -08:00
Brian Federle
eff0716426 UI: Minor cosmetic fixes
-Fix missing icons on some dialog headers

-multiEdit: Fix overflow for long text strings

-Projects UI: Fix project selector margins, overflow on 'Events' box
 on project dashboard
2012-12-27 13:46:52 -08:00
Brian Federle
f0a6e86e14 Add/style basic plugin listing 2012-12-19 15:04:47 -08:00
John Kinsella
5658fc4249 CLOUDSTACK-646: Cleaning up Citrix/eula/CloudPlatform references
Tried to remove any references to license agreements, EULA, Citrix,
or CloudPlatform. Tested through devcloud, didn't see decreased UI
functionality.
2012-12-16 20:39:03 -08:00
Brian Federle
9e90ff58e9 CLOUDSTACK-536: Remove legacy CloudPlatform files 2012-12-05 13:18:25 -08:00
Brian Federle
bbfb13a1d9 Merge Autoscaler UI implemetation
This change includes the new dialog box for the CloudStack Autoscaler
implementation. It is accessible by a button ('Autoscaler') that
appears under each LB rule.

This also contains changes to the multiEdit widget to support features
required for Autoscaler:

-Fixes context/data passing to custom button widgets
-Fixes data retrieval for select fields
2012-11-16 10:56:45 +05:30
Brian Federle
cdbfe261ba Add new infrastructure icons 2012-10-26 13:33:38 -07:00
Brian Federle
d7704422ac UI browser: add panel focus overlay
On hover of a breadcrumb, show an overlay effect which focuses on that
particular panel, hiding all panels after it.

This allows a user to see the content of previous breadcrumbs that the
user loaded.
2012-10-16 14:11:05 -07:00
Brian Federle
469e180515 multiEdit: better handling for tag widget
Place tagging widget in a separate action and dialog class; it is
indicated by a 'tag' icon for better clarity.

-- This removes the requirement to specify a dummy 'edit' action on
multi-rules; instead, the separate tag action will appear automatically
as long as 'tags' is specified under the multiEdit's properties.

Conflicts:
	client/WEB-INF/classes/resources/messages.properties
	ui/css/cloudstack3.css
	ui/index.jsp
2012-08-06 14:15:41 -07:00
bfederle
71bfeae487 Update VPC UI 2012-07-20 11:02:28 -07:00
Brian Federle
683b7d7822 Add configure VPC tooltip and links 2012-06-29 13:13:59 -07:00
Brian Federle
c347c6bd09 Add base VPC UI
** Note: this is a work-in-progress, and only contains dummy content

Implement UI for managing VPC tiers, via a custom chart-like UI list
tiers and allowing the management of VMs associated with the VPCs.
2012-06-28 10:51:56 -07:00
Brian Federle
45311fefc1 CS-13739: Localize 'login' button 2012-05-24 12:41:14 -07:00
Brian Federle
4b88f454a3 CS-14953: 'CloudStack' -> 'CloudPlatform'
reviewed-by: brian

commit 4488f0a66766286e960a47d34cd2e5148162bcab
Author: Pranav Saxena <pranav.saxena@citrix.com>
Date:   Tue May 22 15:15:40 2012 +0530

    Renaming CloudStack to CloudPlatform for Proprietary builds
2012-05-22 11:45:58 -07:00
Brian Federle
f3a73d722f UI proprietary build: rename 'CloudStack' -> 'CloudPlatform'
When EULA is present for a proprietary build, show 'CloudPlatform'
instead of 'CloudStack' in the logo for the login form and top header.
2012-05-16 10:43:36 -07:00
bfederle
57cc1ea378 WIP: Upload volume UI
Adds new action, upload volume, to the storage->volumes list view
header. This will present a dialog to specify URL & name of volume,
and select a VM to attach the volume to.

Server API calls are still incomplete and rely on hardcoded values.
2012-05-02 14:29:29 -07:00