Commit Graph

36795 Commits

Author SHA1 Message Date
Rohit Yadav 4830334e79 CLOUDSTACK-9020: Make UI pagesize configurable
Add global setting that can be consumed by UI to make its pagesize for list API
calls dynamic with default to 100.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-11-19 15:17:44 +05:30
Rohit Yadav ad592835c8 CLOUDSTACK-9020: Metrics views for CloudStack UI
Implements various metrics views based on a listView based widget that has following
properties:
  - vertically and horizontally scrollable with pagination/infinite scrolling
  - sortable columns (client side)
  - groupable/collapsible columns
  - alternate row coloring
  - refresh button to refresh views
  - threshold table cell coloring
  - panel/breadcrumb navigation
  - quick view action column
  - translatable labels
  - sorts after metrics is refreshed, if a column was previously sorted
  - sorts after adding rows on infinite scrolling if a column was pre-sorted
- Metrics views: Zones, Clusters, Hosts, Instances, Storage pools, Volumes
- Resource filtering/navigation: Zones->Clusters->Hosts->Instances->Volumes,
                                 Storage Pool->Volumes

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-11-19 15:17:44 +05:30
Rohit Yadav 0845edce1a CLOUDSTACK-9020: Implement collapsible columns and threshold colorings
Implements following in listView that generates tabular views;
- Collapsible columns in case of multi-header groupable columns
- Implements threshold coloring of cells in table
- Implements option to render a table that is scrollable in both x-y directions
- Support to only display status icon instead of label if compact is set to true
- Fixes quick-view alignment issue on Safari
- If a column was previously sorted, sorts after adding new rows
- If a supercolumn was collapsed, hides cell after adding new rows

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-11-19 15:17:43 +05:30
Rohit Yadav 106e9106c9 CLOUDSTACK-9020: Implement sorting for tables
Implements sorting for tables across CloudStack UI;
- General alphabetic/string based sorting
- Numeric sorting for columns if data appears numeric
- Special sorting comparator for state columns
- Avoids sorting quick view columns and other specific columns

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-11-19 15:17:43 +05:30
Rohit Yadav a48a224eae CLOUDSTACK-9020: Method to remove last panel from the breadcrumb
Adds a new method to cloudBrowser that can remove the last panel and link/ref
from the breadcrumb

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-11-19 15:17:43 +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
Daan Hoogland d40d3498a6 CLOUDSTACK-9053 security upgrade as per COLLECTIONS-580
cloustack is not vulnerable but as the classes are in they might
  be used in the future so we upgrade to prevent accidental
  vulnerabilities.
2015-11-18 23:35:42 +01:00
Wilder Rodrigues 459499017f CLOUDSTACK-9015 - Delete public IP in order to get both IP and NAT rule removed.
- Set the IP and NAT to None to make sure they get reassigned.
2015-11-18 16:25:50 +01:00
Wilder Rodrigues 942aa17d0c CLOUDSTACK-9067 - Replaces hardcoded paths with the VRScripts constants. 2015-11-18 13:12:45 +01:00
Remi Bergsma 219da64027 Merge pull request #935 from nvazquez/from4.5.1
CLOUDSTACK-8956: NSX/Nicira Plugin does not support NSX v4.2.1JIRA Ticket: https://issues.apache.org/jira/browse/CLOUDSTACK-8956

### Description of the problem:
Prior to version 4.2. Nicira/VmWare NSX used a variation of Open vSwitch as means of integrating SDN into hypervisor layer. Cloudstack NiciraNVP plugin was written to support OVS as a bridge to NSX.
In version 4.2 VMware introduced NSX vSwitch as a replacement for OVS in ESX hypervisors. It is a fork of distributed vSwitch leveraging one of the recent features of ESX called opaque networks. Because of that change the current version of NiciraNVP plugin doesnt support versions of NSX-MH above 4.2 specifically in Vsphere environment. Proposed fix will analyze a version of NVP/NSX API and use proper support for ESX hypervisors.

vSphere hypervisor mode operations when NV is deployed onto NSX managed network changes:
* Current mode. A portgroup = UUID of CS VM NIC is created on a local standard switch of the Hypervisor where VM is starting. VM nic is attached to that port group.
* New mode. No additional port group is created on a HW. No port group cleanup is needed after VM/NIC is destroyed. VM is attached to 1st port group having the following attributes:
** opaqueNetworkId string "br-int
** opaqueNetworkType string "nsx.network"

If portgroup with such attributes is not found a deployment should fail with exception.

### VMware vSphere API version from 5.1 to 5.5:
Since vSphere API version 5.5, [OpaqueNetworks](https://www.vmware.com/support/developer/converter-sdk/conv55_apireference/vim.OpaqueNetwork.html) are introduced.
Its description says:
> This interface defines an opaque network, in the sense that the detail and configuration of the network is unknown to vShpere and is managed by a management plane outside of vSphere. However, the identifier and name of these networks is made available to vSphere so that host and virtual machine virtual ethernet device can connect to them.

In order to connect a vm's virtual ethernet device to the proper opaque network when deploying a vm into a NSX managed network, we first need to look for a particular opaque network on hosts. This opaque network's id has to be **"br-int"** and its type **"nsx.network"**.

Since vSphere API version 5.5 [HostNetworkInfo](https://www.vmware.com/support/developer/converter-sdk/conv55_apireference/vim.host.NetworkInfo.html#opaqueNetwork) introduces a list of available opaque networks for each host.
If NSX API version >= 4.2 we look for a [OpaqueNetworkInfo](https://www.vmware.com/support/developer/converter-sdk/conv55_apireference/vim.host.OpaqueNetworkInfo.html) which satisfies:
* opaqueNetworkId = "br-int"
* opaqueNetworkType = "nsx.netork"

If that opaque network is found, then we need to attach vm's NIC to a virtual ethernet device which support this, so we use [VirtualEthernetCardOpaqueNetworkBackingInfo](https://www.vmware.com/support/developer/converter-sdk/conv55_apireference/vim.vm.device.VirtualEthernetCard.OpaqueNetworkBackingInfo.html) setting:
* opaqueNetworkId = "br-int"
* opaqueNetworkType = "nsx.netork"

* pr/935:
  CLOUDSTACK-8956: Remove assert(false) on opaque network and ping method on NiciraNvpApiVersion
  CLOUDSTACK-8956: Deploy VM on NSX managed network changes if NSX Api Version >= 4.2: has to connect to "br-int" of "nsx.network" type
  CLOUDSTACK-8956: Log NSX Api Version
  CLOUDSTACK-8956: Add VMware Api v5.5 and change pom.xml to use VMware Api v5.5

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-18 13:11:25 +01:00
Remi Bergsma 95ae7963d5 Merge pull request #801 from nlivens/updated-nuage-vsp-plugin
CLOUDSTACK-8832 : Update Nuage VSP plugin to work with Nuage VSP release 3.2

* pr/801:
  CLOUDSTACK-8832 : Update Nuage VSP plugin to work with Nuage VSP release 3.2

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-18 12:09:09 +01:00
Remi Bergsma 228935df4e Merge release branch 4.6 to master
* 4.6:
  CLOUDSTACK-9058
2015-11-18 11:22:16 +01:00
Remi Bergsma 37cee3309c Merge pull request #1079 from dsclose/CLOUDSTACK-9058
CLOUDSTACK-9058 - Respond with "saved_password" if no password is to be issued.The password server on the virtual router should respond with "saved_password" if no password is to be issued. This allows for backwards compatibility with Windows Guest VMs which require the "saved_password" response.

* pr/1079:
  CLOUDSTACK-9058

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-18 11:20:56 +01:00
Wei Zhou d6232cb3d1 Cannot list vlanipranges by keyword
Before change:

cloudmonkey> list vlanipranges  keyword=118
: Caught: com.mysql.jdbc.JDBC4PreparedStatement@18f36b6e: SELECT vlan.id, vlan.vlan_id, vlan.vlan_gateway, vlan.vlan_netmask, vlan.ip6_gateway, vlan.ip6_cidr, vlan.data_center_id, vlan.description, vlan.ip6_range, vlan.network_id, vlan.physical_network_id, vlan.vlan_type, vlan.uuid, vlan.removed, vlan.created FROM vlan WHERE  ( OR vlan.description LIKE ** NOT SPECIFIED ** )  AND vlan.removed IS NULL  ORDER BY vlan.id ASC  LIMIT 0, 500

After change:

cloudmonkey> list vlanipranges  keyword='118'
count = 1
vlaniprange:
id = 0d80fd9c-cd6b-4f99-96c6-261420e75f58
account = system
domain = ROOT
domainid = 2044762d-c4a5-11e3-8379-005056ac4490
......
2015-11-18 08:40:36 +01:00
Nitin Kumar Maharana 48df255f71 CLOUDSTACK-9068: Listing Port Forwarding Rules take too much time to load
For setting the width of each data item for each row of Port Forwarding rules, it was processing all rules.

Basically for each data item, it was searching in all rules, which is un-necessary.
If there are N-Rules, It was processing N-times.

Now, it only processes one time by taking all N-rules at a time.
The previous solution was of O(NxN). Now its changed to O(N).
2015-11-17 23:02:55 +05:30
Wilder Rodrigues 1cf57f74d7 CLOUDSTACK-9067 - Fomatting the code of HypervDirectConnectResource class 2015-11-17 15:58:22 +01:00
Wilder Rodrigues 6477bd8ff7 CLOUDSTACK-9067 - Remove old script file from the project
- Java constants also removed
   - Project still compiling and all unit tests passing.
2015-11-17 15:58:22 +01:00
Priti Sarap a8e60499fe CLOUDSTACK-9066: Update testpath to delete account after deleting VMs of that account 2015-11-17 17:25:23 +05:30
Rajani Karuturi f53188192f CLOUDSTACK-8868: change the default vm.password.length to 10
also moved it to ConfigDepot
2015-11-17 16:05:46 +05:30
Rajani Karuturi 97a5d6bd20 CLOUDSTACK-8868: use same method to generate passwords for system/guest vms
generateRandomPassword() is supposed to create root user passwords.
Right now it is only used on the guest VMs. The format of the passwords
it creates are of the form "random 3-character string with a lowercase
character, uppercase character, and a digit" + random n-character string
with only lowercase characters".

For whatever reason it was that we use generateRandomPassword() for
guest VM root user passwords(maybe more secure?) we should use the same
function for system VM root user passwords.
2015-11-17 16:05:46 +05:30
Rajani Karuturi 004242ccc6 removed commented code 2015-11-17 16:05:45 +05:30
Rajani Karuturi a723988aec CLOUDSTACK-8885: added blocked connection listener for rabbitmqeventbus
When rabbitmq connections are blocked(for example when rabbitmq is
server is out of space), all the cloudstack threads which does any
action and publishes to rabbitmq(for example login, launch vm etc.) are
all blocked.

Added a blocked connection listener to handle this and unblock the
parent thread.
2015-11-17 16:04:16 +05:30
Rajani Karuturi 693a001c63 updating rabbitmq amqp client to 3.5.4 from 3.4.2 2015-11-17 16:04:16 +05:30
Daan Hoogland 9a23229d94 javascript:TrailingComma sonacube issue considered blocker removed 2015-11-17 10:19:33 +01:00
Rajani Karuturi 170a025787 CLOUDSTACK-8951: validation for "remote.access.vpn.psk.length"
throwing error for value < 8 and value > 256
right now, 8, 256 are hardcoded in the code. They should be moved to a
constant and has to be reused everywhere.
2015-11-17 14:34:57 +05:30
Remi Bergsma bf0c4f2ecb Merge pull request #1071 from karuturi/merge-46-to-master
Merge 4.6 release branch to masterInitial merge of 4.6 to master
ignored pom.xml version number changes and changes to debian/changelog and engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java

Following commands were executed
```
1. git checkout 4.6
2. git pull --rebase
3. git checkout master
4. git pull --rebase
5. git fwd-merge 4.6
6. git diff --name-only | grep pom.xml | xargs git checkout --ours
7. git diff --name-only | grep pom.xml | xargs git add
8. git checkout --ours engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
9. git add engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
10. git checkout --ours debian/changelog
11. git add debian/changelog
12. # manually edited version number in tools/marvin/marvin/deployAndRun.py and tools/marvin/setup.py
13. git commit
14. git checkout -b "merge-46-to-master"
```

* pr/1071:
  Fixed version number in build/replace.properties
  more poms didn't get updated with script
  implemented upgrade path from 4.6.0 to 4.6.1
  checkstyle pom didn't get updated with script
  debian: add 4.6.1-snapshot to changelog
  Updating pom.xml version numbers for release 4.6.1-SNAPSHOT
  Updating pom.xml version numbers for release 4.6.0

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-17 09:25:45 +01:00
nvazquez b20c5be1ce CLOUDSTACK-8956: Remove assert(false) on opaque network and ping method on NiciraNvpApiVersion 2015-11-16 11:29:31 -08:00
nvazquez e1d1a40325 CLOUDSTACK-8956: Deploy VM on NSX managed network changes if NSX Api Version >= 4.2: has to connect to "br-int" of "nsx.network" type 2015-11-16 11:29:30 -08:00
nvazquez 2386ae5e5a CLOUDSTACK-8956: Log NSX Api Version 2015-11-16 11:29:30 -08:00
nvazquez d05c1f47ba CLOUDSTACK-8956: Add VMware Api v5.5 and change pom.xml to use VMware Api v5.5 2015-11-16 11:29:30 -08:00
David Amorim Faria e66dd8c1e0 Refactor package.sh:
* lint
 * adjust exit codes (1 for usage, 2 for maven, 3 for rpmbuild)
 * variable naming consistency
 * add option for package release version
 * revise synopsis and usage
2015-11-16 19:30:25 +01:00
Daan Hoogland 52037e88e4 CLOUDSTACK-8656: tests ignoring exceptions 2015-11-16 18:36:24 +01:00
Daan Hoogland 2fb01b67ad CID 1338016: multi catch instead of pokemon 2015-11-16 18:33:32 +01:00
Daan Hoogland 3d5f09357b use equals instead of comparison operators on strings 2015-11-16 18:30:36 +01:00
Daan Hoogland 9a798c537e findbugs: instead of !=, use string utils 2015-11-16 18:30:36 +01:00
Daan Hoogland 1bc837837f CWE-190 netmask as long form cidr-size as method 2015-11-16 18:25:32 +01:00
Daan Hoogland 3ae4dd06f3 CID-1116482 cidrToLong cleanup of bitshift problem
and some trivial testing
2015-11-16 18:25:32 +01:00
Daan Hoogland f9d5c6918c CID-1116483 cidr to netmask bitshifts guarded with casts
and simple test
2015-11-16 18:25:32 +01:00
Daan Hoogland 2fadfe93dc CID-1116484 cast to long and use long as cidrsize type
and simpel test
2015-11-16 18:25:32 +01:00
Daan Hoogland 637afb9b67 CID-1116485: cast cidr during bit shifting
and simple test included
2015-11-16 18:25:31 +01:00
Daan Hoogland b5625c05d0 CID-1175714 casts before bit shift 2015-11-16 18:25:31 +01:00
Daan Hoogland c669c93b05 CLOUDSTACK-9046 rename enums to adhere to naming conventions 2015-11-16 13:41:16 +00:00
Daan Hoogland 962d4b4afe CLOUDSTACK-9046 renamed enums in kvm plugin 2015-11-16 13:41:14 +00:00
Daan Hoogland 586c325167 CLOUDSTACK-9047 use 'State's only with context
there are more types called 'State'
  (or to be called so but now 'state')
  So remove imports and prepend their enclosing class/context to them.
2015-11-16 13:41:12 +00:00
Wei Zhou 66fc7c62f4 CLOUDSTACK-9055: fix NPE in updating Redundant State of VPC networks 2015-11-16 11:46:26 +01:00
Daan Hoogland d6e77624d9 CLOUDSTACK-9057 remove old system vm upgrade code 2015-11-16 10:46:02 +00:00
Rajani Karuturi 9ed8151169 Fixed version number in build/replace.properties 2015-11-16 15:56:59 +05:30
Rajani Karuturi 17219dfe79 Merge release branch 4.6 to master
* 4.6:
  more poms didn't get updated with script
  implemented upgrade path from 4.6.0 to 4.6.1
  checkstyle pom didn't get updated with script
  debian: add 4.6.1-snapshot to changelog
  Updating pom.xml version numbers for release 4.6.1-SNAPSHOT
  Updating pom.xml version numbers for release 4.6.0
2015-11-16 15:43:08 +05:30
Wei Zhou 89ce8bd9e2 CLOUDSTACK-8958: throw an exception if project account cannot be found 2015-11-16 10:17:50 +01:00
Wei Zhou 37301ed454 CLOUDSTACK-8958: add dedicated ips to domain (account for now) 2015-11-16 10:17:40 +01:00