Commit Graph

37538 Commits

Author SHA1 Message Date
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
Remi Bergsma ea7c2d95b2 Merge pull request #1068 from remibergsma/460_470_upgrade_path
Make master 4.7.0-SNAPSHOT and implement upgrade paths towards itThis bumps all pom.xml versions to 4.7.0-SNAPSHOT. It also implements upgrade paths from 4.6.0 and the upcoming 4.6.1 (branch 4.6 is now on 4.6.1-SNAPSHOT) towards 4.7.0.

I will be doing some upgrade tests, will post back results soon.

* pr/1068:
  Add 4.7.0-SNAPSHOT to Debian changelog
  implement upgrade paths from 4.6.0/4.6.1 to 4.7.0
  Updating pom.xml version numbers for release 4.7.0-SNAPSHOT

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-16 08:46:13 +01:00
Remi Bergsma 704cbe0ec6 Add 4.7.0-SNAPSHOT to Debian changelog 2015-11-15 21:41:03 +01:00
Remi Bergsma f6db0a2a49 Merge pull request #1067 from remibergsma/460_461_upgrade_path
implement upgrade path from 4.6.0 to 4.6.1The 4.6 branch needs an upgrade path to 4.6.1. I looked at how this was done before and think this will do. Can you give it a second pair of eyes please @DaanHoogland ?

When this is indeed OK, I'll do the same for master for the 4.6.0 -> 4.7.0 path.

I've tried a build and that works: `mvn clean install`
```
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 07:33 min
[INFO] Finished at: 2015-11-15T13:45:58+01:00
[INFO] Final Memory: 120M/1591M
[INFO] ------------------------------------------------------------------------
```

Once this is a PR, I'll try an actual upgrade from 4.6.0 to 4.6.1-SNAPSHOT.

* pr/1067:
  implemented upgrade path from 4.6.0 to 4.6.1

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-15 21:09:35 +01:00
Remi Bergsma 33fb5efd0c more poms didn't get updated with script 2015-11-15 21:07:45 +01:00
Remi Bergsma 6536992671 implement upgrade paths from 4.6.0/4.6.1 to 4.7.0 2015-11-15 19:11:50 +01:00
Remi Bergsma 1f53f2a93e Updating pom.xml version numbers for release 4.7.0-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-15 18:54:13 +01:00
Remi Bergsma e0ac9df529 implemented upgrade path from 4.6.0 to 4.6.1 2015-11-15 14:43:22 +01:00