diff --git a/agent/pom.xml b/agent/pom.xml
index 4464ff69cdb1..c47671f4197b 100644
--- a/agent/pom.xml
+++ b/agent/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
diff --git a/api/pom.xml b/api/pom.xml
index 45bedab97451..141eedb1d2d8 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
diff --git a/api/src/com/cloud/user/DomainService.java b/api/src/com/cloud/user/DomainService.java
index 4c1f93d07371..3ccfcbcea4c5 100644
--- a/api/src/com/cloud/user/DomainService.java
+++ b/api/src/com/cloud/user/DomainService.java
@@ -56,4 +56,14 @@ public interface DomainService {
*/
Domain findDomainByPath(String domainPath);
+ /**
+ * finds the domain by either id or provided path
+ *
+ * @param id the domain id
+ * @param domainPath the domain path use to lookup a domain
+ *
+ * @return domainId the long value of the domain ID, or null if no domain id exists with provided id/path
+ */
+ Domain findDomainByIdOrPath(Long id, String domainPath);
+
}
diff --git a/client/pom.xml b/client/pom.xml
index ab88a8209f79..abcf6e81886d 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -17,7 +17,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
diff --git a/core/pom.xml b/core/pom.xml
index 9dae8ebcd074..dc455e47be30 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -25,7 +25,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
diff --git a/debian/changelog b/debian/changelog
index 4dd453be7473..1fbe9c0c98d0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cloudstack (4.8.0.1) unstable; urgency=low
+
+ * Update the version to 4.8.0.1
+
+ -- the Apache CloudStack project Wed, 25 May 2016 12:47:52 +0530
+
cloudstack (4.8.0) unstable; urgency=low
* Update the version to 4.8.0
diff --git a/developer/pom.xml b/developer/pom.xml
index dca91c144264..04b03b281793 100644
--- a/developer/pom.xml
+++ b/developer/pom.xml
@@ -18,7 +18,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
diff --git a/engine/api/pom.xml b/engine/api/pom.xml
index e31544e4a0db..2c42fc4377f3 100644
--- a/engine/api/pom.xml
+++ b/engine/api/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/engine/components-api/pom.xml b/engine/components-api/pom.xml
index 915cd4be3504..031748fb3e08 100644
--- a/engine/components-api/pom.xml
+++ b/engine/components-api/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/engine/network/pom.xml b/engine/network/pom.xml
index 4fac020e91d3..6e44c9e3cabe 100644
--- a/engine/network/pom.xml
+++ b/engine/network/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/engine/orchestration/pom.xml b/engine/orchestration/pom.xml
index 150e674e9fc6..1d70402e3023 100755
--- a/engine/orchestration/pom.xml
+++ b/engine/orchestration/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/engine/pom.xml b/engine/pom.xml
index 83953ade5336..3323a2c3419b 100644
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/engine/schema/pom.xml b/engine/schema/pom.xml
index beaaf3360f4a..a22aecccceaa 100644
--- a/engine/schema/pom.xml
+++ b/engine/schema/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/engine/service/pom.xml b/engine/service/pom.xml
index 50c2fb848360..6af532a99928 100644
--- a/engine/service/pom.xml
+++ b/engine/service/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
cloud-engine-service
war
diff --git a/engine/storage/cache/pom.xml b/engine/storage/cache/pom.xml
index e81127e53c4e..62a53a6e50b2 100644
--- a/engine/storage/cache/pom.xml
+++ b/engine/storage/cache/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/engine/storage/datamotion/pom.xml b/engine/storage/datamotion/pom.xml
index 17db5a09df1d..69a09a363e19 100644
--- a/engine/storage/datamotion/pom.xml
+++ b/engine/storage/datamotion/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/engine/storage/image/pom.xml b/engine/storage/image/pom.xml
index ce79ce696835..3dff7acc1231 100644
--- a/engine/storage/image/pom.xml
+++ b/engine/storage/image/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/engine/storage/integration-test/pom.xml b/engine/storage/integration-test/pom.xml
index 7636cfc0b27b..e969772c06e3 100644
--- a/engine/storage/integration-test/pom.xml
+++ b/engine/storage/integration-test/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/engine/storage/pom.xml b/engine/storage/pom.xml
index 5f0d8a65c4bd..a0d21934d1c4 100644
--- a/engine/storage/pom.xml
+++ b/engine/storage/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/engine/storage/snapshot/pom.xml b/engine/storage/snapshot/pom.xml
index 5c7a70922b68..9da6811b0bd5 100644
--- a/engine/storage/snapshot/pom.xml
+++ b/engine/storage/snapshot/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/engine/storage/volume/pom.xml b/engine/storage/volume/pom.xml
index e554935738fa..e6a0b5163c58 100644
--- a/engine/storage/volume/pom.xml
+++ b/engine/storage/volume/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloud-engine
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/framework/cluster/pom.xml b/framework/cluster/pom.xml
index 002b5ad4469f..9033e521374d 100644
--- a/framework/cluster/pom.xml
+++ b/framework/cluster/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack-framework
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/framework/config/pom.xml b/framework/config/pom.xml
index 021e60ddd72d..d70c2166be48 100644
--- a/framework/config/pom.xml
+++ b/framework/config/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack-framework
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/framework/db/pom.xml b/framework/db/pom.xml
index a7d3cb803013..094ff3ff4745 100644
--- a/framework/db/pom.xml
+++ b/framework/db/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack-framework
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/framework/events/pom.xml b/framework/events/pom.xml
index 210b1e8856fc..d7ce8f1f4472 100644
--- a/framework/events/pom.xml
+++ b/framework/events/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack-framework
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/framework/ipc/pom.xml b/framework/ipc/pom.xml
index 0452a609b2ec..c9484762ecbb 100644
--- a/framework/ipc/pom.xml
+++ b/framework/ipc/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-framework
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/framework/jobs/pom.xml b/framework/jobs/pom.xml
index db5477382104..9e6e5f8fbd4d 100644
--- a/framework/jobs/pom.xml
+++ b/framework/jobs/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-framework
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/framework/managed-context/pom.xml b/framework/managed-context/pom.xml
index 9e76b5fbf6f5..20f4ed4c77e8 100644
--- a/framework/managed-context/pom.xml
+++ b/framework/managed-context/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloud-maven-standard
- 4.8.0
+ 4.8.0.1
../../maven-standard/pom.xml
diff --git a/framework/pom.xml b/framework/pom.xml
index a94e676cba1a..dd3f0153c9ef 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
install
diff --git a/framework/quota/pom.xml b/framework/quota/pom.xml
index 4222def00028..4f0ae09482ab 100644
--- a/framework/quota/pom.xml
+++ b/framework/quota/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-framework
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/framework/rest/pom.xml b/framework/rest/pom.xml
index 39fc3267e68f..c693a4fc6813 100644
--- a/framework/rest/pom.xml
+++ b/framework/rest/pom.xml
@@ -22,7 +22,7 @@
org.apache.cloudstack
cloudstack-framework
- 4.8.0
+ 4.8.0.1
../pom.xml
cloud-framework-rest
diff --git a/framework/security/pom.xml b/framework/security/pom.xml
index cfd4779536c0..9f954548b8f1 100644
--- a/framework/security/pom.xml
+++ b/framework/security/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-framework
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/framework/spring/lifecycle/pom.xml b/framework/spring/lifecycle/pom.xml
index db8234b35af2..d93236452011 100644
--- a/framework/spring/lifecycle/pom.xml
+++ b/framework/spring/lifecycle/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloud-maven-standard
- 4.8.0
+ 4.8.0.1
../../../maven-standard/pom.xml
diff --git a/framework/spring/module/pom.xml b/framework/spring/module/pom.xml
index 795478b58dd5..5f9712a8fb66 100644
--- a/framework/spring/module/pom.xml
+++ b/framework/spring/module/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloud-maven-standard
- 4.8.0
+ 4.8.0.1
../../../maven-standard/pom.xml
diff --git a/maven-standard/pom.xml b/maven-standard/pom.xml
index a8031b6b367b..3bf77616e8a3 100644
--- a/maven-standard/pom.xml
+++ b/maven-standard/pom.xml
@@ -25,7 +25,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/plugins/acl/static-role-based/pom.xml b/plugins/acl/static-role-based/pom.xml
index e052655db69e..bb3207989730 100644
--- a/plugins/acl/static-role-based/pom.xml
+++ b/plugins/acl/static-role-based/pom.xml
@@ -26,7 +26,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/affinity-group-processors/explicit-dedication/pom.xml b/plugins/affinity-group-processors/explicit-dedication/pom.xml
index f3c7af69a70a..772867bdeb37 100644
--- a/plugins/affinity-group-processors/explicit-dedication/pom.xml
+++ b/plugins/affinity-group-processors/explicit-dedication/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/affinity-group-processors/host-anti-affinity/pom.xml b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
index 2232ea0c452c..7d5723b488eb 100644
--- a/plugins/affinity-group-processors/host-anti-affinity/pom.xml
+++ b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/alert-handlers/snmp-alerts/pom.xml b/plugins/alert-handlers/snmp-alerts/pom.xml
index 7e6f7f156886..ddb0d1803e20 100644
--- a/plugins/alert-handlers/snmp-alerts/pom.xml
+++ b/plugins/alert-handlers/snmp-alerts/pom.xml
@@ -22,7 +22,7 @@
cloudstack-plugins
org.apache.cloudstack
- 4.8.0
+ 4.8.0.1
../../pom.xml
4.0.0
diff --git a/plugins/alert-handlers/syslog-alerts/pom.xml b/plugins/alert-handlers/syslog-alerts/pom.xml
index a1509f247ff3..3e3195055313 100644
--- a/plugins/alert-handlers/syslog-alerts/pom.xml
+++ b/plugins/alert-handlers/syslog-alerts/pom.xml
@@ -22,7 +22,7 @@
cloudstack-plugins
org.apache.cloudstack
- 4.8.0
+ 4.8.0.1
../../pom.xml
4.0.0
diff --git a/plugins/api/discovery/pom.xml b/plugins/api/discovery/pom.xml
index 9b5e8e81d691..9bedfe9651bc 100644
--- a/plugins/api/discovery/pom.xml
+++ b/plugins/api/discovery/pom.xml
@@ -26,7 +26,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/api/rate-limit/pom.xml b/plugins/api/rate-limit/pom.xml
index 3b5dad7e9be2..feb5f8480e3c 100644
--- a/plugins/api/rate-limit/pom.xml
+++ b/plugins/api/rate-limit/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/api/solidfire-intg-test/pom.xml b/plugins/api/solidfire-intg-test/pom.xml
index 8f1aacd7d6f9..44afff282bc4 100644
--- a/plugins/api/solidfire-intg-test/pom.xml
+++ b/plugins/api/solidfire-intg-test/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/database/mysql-ha/pom.xml b/plugins/database/mysql-ha/pom.xml
index 16126ae6ff84..9231ab9de895 100644
--- a/plugins/database/mysql-ha/pom.xml
+++ b/plugins/database/mysql-ha/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/database/quota/pom.xml b/plugins/database/quota/pom.xml
index 213fa94f8c0c..8206c09ba566 100644
--- a/plugins/database/quota/pom.xml
+++ b/plugins/database/quota/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/dedicated-resources/pom.xml b/plugins/dedicated-resources/pom.xml
index 995b553ae7b6..b7a93334e9cc 100644
--- a/plugins/dedicated-resources/pom.xml
+++ b/plugins/dedicated-resources/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/plugins/deployment-planners/implicit-dedication/pom.xml b/plugins/deployment-planners/implicit-dedication/pom.xml
index 1e73bc3ebe99..e69034b07e04 100644
--- a/plugins/deployment-planners/implicit-dedication/pom.xml
+++ b/plugins/deployment-planners/implicit-dedication/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/deployment-planners/user-concentrated-pod/pom.xml b/plugins/deployment-planners/user-concentrated-pod/pom.xml
index 498cddfb823b..d9c604e3d4e9 100644
--- a/plugins/deployment-planners/user-concentrated-pod/pom.xml
+++ b/plugins/deployment-planners/user-concentrated-pod/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/deployment-planners/user-dispersing/pom.xml b/plugins/deployment-planners/user-dispersing/pom.xml
index bf770d6f7432..f2365abe2603 100644
--- a/plugins/deployment-planners/user-dispersing/pom.xml
+++ b/plugins/deployment-planners/user-dispersing/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/event-bus/inmemory/pom.xml b/plugins/event-bus/inmemory/pom.xml
index cf1996a23688..9954aae13edb 100644
--- a/plugins/event-bus/inmemory/pom.xml
+++ b/plugins/event-bus/inmemory/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/event-bus/kafka/pom.xml b/plugins/event-bus/kafka/pom.xml
index 235b25703209..6396b4086ecb 100644
--- a/plugins/event-bus/kafka/pom.xml
+++ b/plugins/event-bus/kafka/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/event-bus/rabbitmq/pom.xml b/plugins/event-bus/rabbitmq/pom.xml
index 3c7727bfe620..658723859705 100644
--- a/plugins/event-bus/rabbitmq/pom.xml
+++ b/plugins/event-bus/rabbitmq/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/file-systems/netapp/pom.xml b/plugins/file-systems/netapp/pom.xml
index 51ce8d2f4327..c6a2a13f3ce4 100644
--- a/plugins/file-systems/netapp/pom.xml
+++ b/plugins/file-systems/netapp/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/ha-planners/skip-heurestics/pom.xml b/plugins/ha-planners/skip-heurestics/pom.xml
index 0c3a9e7adb3c..f203162ea539 100644
--- a/plugins/ha-planners/skip-heurestics/pom.xml
+++ b/plugins/ha-planners/skip-heurestics/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/host-allocators/random/pom.xml b/plugins/host-allocators/random/pom.xml
index b8c5b3457a54..f56988dec08a 100644
--- a/plugins/host-allocators/random/pom.xml
+++ b/plugins/host-allocators/random/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/hypervisors/baremetal/pom.xml b/plugins/hypervisors/baremetal/pom.xml
index a39cdc963e5c..5f50c04ac3b0 100755
--- a/plugins/hypervisors/baremetal/pom.xml
+++ b/plugins/hypervisors/baremetal/pom.xml
@@ -21,7 +21,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
cloud-plugin-hypervisor-baremetal
diff --git a/plugins/hypervisors/hyperv/pom.xml b/plugins/hypervisors/hyperv/pom.xml
index e6f7e8d81683..810a62302d88 100644
--- a/plugins/hypervisors/hyperv/pom.xml
+++ b/plugins/hypervisors/hyperv/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/hypervisors/kvm/pom.xml b/plugins/hypervisors/kvm/pom.xml
index 06beaee56654..d0ada0e4526e 100644
--- a/plugins/hypervisors/kvm/pom.xml
+++ b/plugins/hypervisors/kvm/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/hypervisors/ovm/pom.xml b/plugins/hypervisors/ovm/pom.xml
index 912482aa8e0b..82f2062cd56d 100644
--- a/plugins/hypervisors/ovm/pom.xml
+++ b/plugins/hypervisors/ovm/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index f6cb13bc2dbf..59f4653044f3 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/hypervisors/simulator/pom.xml b/plugins/hypervisors/simulator/pom.xml
index d0f38566d289..6d36e6245774 100644
--- a/plugins/hypervisors/simulator/pom.xml
+++ b/plugins/hypervisors/simulator/pom.xml
@@ -22,7 +22,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
cloud-plugin-hypervisor-simulator
diff --git a/plugins/hypervisors/ucs/pom.xml b/plugins/hypervisors/ucs/pom.xml
index 6279543ca1d8..7740e03f3038 100755
--- a/plugins/hypervisors/ucs/pom.xml
+++ b/plugins/hypervisors/ucs/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
cloud-plugin-hypervisor-ucs
diff --git a/plugins/hypervisors/vmware/pom.xml b/plugins/hypervisors/vmware/pom.xml
index 2ff3b92aa594..d2ee07794319 100644
--- a/plugins/hypervisors/vmware/pom.xml
+++ b/plugins/hypervisors/vmware/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/hypervisors/xenserver/pom.xml b/plugins/hypervisors/xenserver/pom.xml
index 65f4a6d46fa5..9a3b20ffa962 100644
--- a/plugins/hypervisors/xenserver/pom.xml
+++ b/plugins/hypervisors/xenserver/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/bigswitch/pom.xml b/plugins/network-elements/bigswitch/pom.xml
index 25c55c2d4af9..72e492068136 100644
--- a/plugins/network-elements/bigswitch/pom.xml
+++ b/plugins/network-elements/bigswitch/pom.xml
@@ -25,7 +25,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/brocade-vcs/pom.xml b/plugins/network-elements/brocade-vcs/pom.xml
index 27472aae5586..3c232247df71 100644
--- a/plugins/network-elements/brocade-vcs/pom.xml
+++ b/plugins/network-elements/brocade-vcs/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/cisco-vnmc/pom.xml b/plugins/network-elements/cisco-vnmc/pom.xml
index 38674a332227..9502f8015604 100644
--- a/plugins/network-elements/cisco-vnmc/pom.xml
+++ b/plugins/network-elements/cisco-vnmc/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/dns-notifier/pom.xml b/plugins/network-elements/dns-notifier/pom.xml
index 5077b5af80e1..ba44556aa4ec 100644
--- a/plugins/network-elements/dns-notifier/pom.xml
+++ b/plugins/network-elements/dns-notifier/pom.xml
@@ -22,7 +22,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
cloud-plugin-example-dns-notifier
diff --git a/plugins/network-elements/elastic-loadbalancer/pom.xml b/plugins/network-elements/elastic-loadbalancer/pom.xml
index 3c3e7c841a29..0ece20894bbd 100644
--- a/plugins/network-elements/elastic-loadbalancer/pom.xml
+++ b/plugins/network-elements/elastic-loadbalancer/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/f5/pom.xml b/plugins/network-elements/f5/pom.xml
index ae8c6ca9223c..7da821cce23a 100644
--- a/plugins/network-elements/f5/pom.xml
+++ b/plugins/network-elements/f5/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/globodns/pom.xml b/plugins/network-elements/globodns/pom.xml
index 9285cfe542bc..aec21dfc8f22 100644
--- a/plugins/network-elements/globodns/pom.xml
+++ b/plugins/network-elements/globodns/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/internal-loadbalancer/pom.xml b/plugins/network-elements/internal-loadbalancer/pom.xml
index 11a384d270df..9b4d94303440 100644
--- a/plugins/network-elements/internal-loadbalancer/pom.xml
+++ b/plugins/network-elements/internal-loadbalancer/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/juniper-contrail/pom.xml b/plugins/network-elements/juniper-contrail/pom.xml
index a74303e70aa3..28c817b4de21 100644
--- a/plugins/network-elements/juniper-contrail/pom.xml
+++ b/plugins/network-elements/juniper-contrail/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/juniper-srx/pom.xml b/plugins/network-elements/juniper-srx/pom.xml
index 7a8b5910b547..1f7bc9405f67 100644
--- a/plugins/network-elements/juniper-srx/pom.xml
+++ b/plugins/network-elements/juniper-srx/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/midonet/pom.xml b/plugins/network-elements/midonet/pom.xml
index cd1adb304e20..f3ff6909bebd 100644
--- a/plugins/network-elements/midonet/pom.xml
+++ b/plugins/network-elements/midonet/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/netscaler/pom.xml b/plugins/network-elements/netscaler/pom.xml
index 92442189ddc9..874871c2f6f3 100644
--- a/plugins/network-elements/netscaler/pom.xml
+++ b/plugins/network-elements/netscaler/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/nicira-nvp/pom.xml b/plugins/network-elements/nicira-nvp/pom.xml
index e03eb11d4d22..c9bdccc32b3e 100644
--- a/plugins/network-elements/nicira-nvp/pom.xml
+++ b/plugins/network-elements/nicira-nvp/pom.xml
@@ -26,7 +26,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
@@ -34,7 +34,7 @@
org.apache.cloudstack
cloud-utils
- 4.8.0
+ 4.8.0.1
test-jar
test
diff --git a/plugins/network-elements/nuage-vsp/pom.xml b/plugins/network-elements/nuage-vsp/pom.xml
index e4cfcf31d264..3b12f3c4ac42 100644
--- a/plugins/network-elements/nuage-vsp/pom.xml
+++ b/plugins/network-elements/nuage-vsp/pom.xml
@@ -25,7 +25,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/opendaylight/pom.xml b/plugins/network-elements/opendaylight/pom.xml
index 73739a869234..d0820f3b9d20 100644
--- a/plugins/network-elements/opendaylight/pom.xml
+++ b/plugins/network-elements/opendaylight/pom.xml
@@ -25,7 +25,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/ovs/pom.xml b/plugins/network-elements/ovs/pom.xml
index 8467eaad2a70..95c295c59737 100644
--- a/plugins/network-elements/ovs/pom.xml
+++ b/plugins/network-elements/ovs/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/palo-alto/pom.xml b/plugins/network-elements/palo-alto/pom.xml
index b9fcb6af42cd..846bc84e3a89 100644
--- a/plugins/network-elements/palo-alto/pom.xml
+++ b/plugins/network-elements/palo-alto/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/stratosphere-ssp/pom.xml b/plugins/network-elements/stratosphere-ssp/pom.xml
index 5bb08a7c5007..2afc641f1f8f 100644
--- a/plugins/network-elements/stratosphere-ssp/pom.xml
+++ b/plugins/network-elements/stratosphere-ssp/pom.xml
@@ -25,7 +25,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/network-elements/vxlan/pom.xml b/plugins/network-elements/vxlan/pom.xml
index 34370606e12d..6f0dd6d6f104 100644
--- a/plugins/network-elements/vxlan/pom.xml
+++ b/plugins/network-elements/vxlan/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 7b302a448148..72f0a5d98097 100755
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -26,7 +26,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
diff --git a/plugins/storage-allocators/random/pom.xml b/plugins/storage-allocators/random/pom.xml
index 5f7d56f3f918..46cd8478a6d7 100644
--- a/plugins/storage-allocators/random/pom.xml
+++ b/plugins/storage-allocators/random/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/storage/image/default/pom.xml b/plugins/storage/image/default/pom.xml
index b56e11152199..28503bab2c9b 100644
--- a/plugins/storage/image/default/pom.xml
+++ b/plugins/storage/image/default/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../../pom.xml
diff --git a/plugins/storage/image/s3/pom.xml b/plugins/storage/image/s3/pom.xml
index 8be849e0e051..a8b8022473b3 100644
--- a/plugins/storage/image/s3/pom.xml
+++ b/plugins/storage/image/s3/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../../pom.xml
diff --git a/plugins/storage/image/sample/pom.xml b/plugins/storage/image/sample/pom.xml
index 749c2d8ba8ad..47b48303f2d7 100644
--- a/plugins/storage/image/sample/pom.xml
+++ b/plugins/storage/image/sample/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../../pom.xml
diff --git a/plugins/storage/image/swift/pom.xml b/plugins/storage/image/swift/pom.xml
index 823865c3668b..5f2bf66d8d42 100644
--- a/plugins/storage/image/swift/pom.xml
+++ b/plugins/storage/image/swift/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../../pom.xml
diff --git a/plugins/storage/volume/cloudbyte/pom.xml b/plugins/storage/volume/cloudbyte/pom.xml
index bd8691400124..e8e27decc147 100755
--- a/plugins/storage/volume/cloudbyte/pom.xml
+++ b/plugins/storage/volume/cloudbyte/pom.xml
@@ -26,7 +26,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../../pom.xml
diff --git a/plugins/storage/volume/default/pom.xml b/plugins/storage/volume/default/pom.xml
index ba3dd34f7ecd..ceda2fc2705f 100644
--- a/plugins/storage/volume/default/pom.xml
+++ b/plugins/storage/volume/default/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../../pom.xml
diff --git a/plugins/storage/volume/nexenta/pom.xml b/plugins/storage/volume/nexenta/pom.xml
index 66e9d7f7edb5..bbffec6531b8 100644
--- a/plugins/storage/volume/nexenta/pom.xml
+++ b/plugins/storage/volume/nexenta/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../../pom.xml
diff --git a/plugins/storage/volume/sample/pom.xml b/plugins/storage/volume/sample/pom.xml
index 9d8d51555535..f0e148397237 100644
--- a/plugins/storage/volume/sample/pom.xml
+++ b/plugins/storage/volume/sample/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../../pom.xml
diff --git a/plugins/storage/volume/solidfire/pom.xml b/plugins/storage/volume/solidfire/pom.xml
index f3ed4228e1db..a712def00341 100644
--- a/plugins/storage/volume/solidfire/pom.xml
+++ b/plugins/storage/volume/solidfire/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../../pom.xml
diff --git a/plugins/user-authenticators/ldap/pom.xml b/plugins/user-authenticators/ldap/pom.xml
index f1525673ff25..bcbc29d99ae6 100644
--- a/plugins/user-authenticators/ldap/pom.xml
+++ b/plugins/user-authenticators/ldap/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/user-authenticators/md5/pom.xml b/plugins/user-authenticators/md5/pom.xml
index 1d9abc46dd87..4fdd9333cd67 100644
--- a/plugins/user-authenticators/md5/pom.xml
+++ b/plugins/user-authenticators/md5/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/user-authenticators/pbkdf2/pom.xml b/plugins/user-authenticators/pbkdf2/pom.xml
index fe50a46e1062..3436fc3b3266 100644
--- a/plugins/user-authenticators/pbkdf2/pom.xml
+++ b/plugins/user-authenticators/pbkdf2/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/user-authenticators/plain-text/pom.xml b/plugins/user-authenticators/plain-text/pom.xml
index 2621322a34ae..bafe86920866 100644
--- a/plugins/user-authenticators/plain-text/pom.xml
+++ b/plugins/user-authenticators/plain-text/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/user-authenticators/saml2/pom.xml b/plugins/user-authenticators/saml2/pom.xml
index cc5dd0be27d4..ced80a1ac0f8 100644
--- a/plugins/user-authenticators/saml2/pom.xml
+++ b/plugins/user-authenticators/saml2/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/plugins/user-authenticators/sha256salted/pom.xml b/plugins/user-authenticators/sha256salted/pom.xml
index 85a510052a56..4f8915d49134 100644
--- a/plugins/user-authenticators/sha256salted/pom.xml
+++ b/plugins/user-authenticators/sha256salted/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-plugins
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/pom.xml b/pom.xml
index e8197a2b8d5c..106e4538032b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
pom
Apache CloudStack
Apache CloudStack is an IaaS (“Infrastructure as a Service”) cloud orchestration platform.
diff --git a/quickcloud/pom.xml b/quickcloud/pom.xml
index 52a6a1a0376a..782cdaf6141a 100644
--- a/quickcloud/pom.xml
+++ b/quickcloud/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloud-maven-standard
- 4.8.0
+ 4.8.0.1
../maven-standard/pom.xml
diff --git a/server/pom.xml b/server/pom.xml
index 3e0a0463f7dc..155942e456a1 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index e5ae09725b37..689ae9c67520 100644
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -993,17 +993,11 @@ public ResponseObject loginUser(final HttpSession session, final String username
final Map requestParameters) throws CloudAuthenticationException {
// We will always use domainId first. If that does not exist, we will use domain name. If THAT doesn't exist
// we will default to ROOT
- if (domainId == null) {
- if (domainPath == null || domainPath.trim().length() == 0) {
- domainId = Domain.ROOT_DOMAIN;
- } else {
- final Domain domainObj = _domainMgr.findDomainByPath(domainPath);
- if (domainObj != null) {
- domainId = domainObj.getId();
- } else { // if an unknown path is passed in, fail the login call
- throw new CloudAuthenticationException("Unable to find the domain from the path " + domainPath);
- }
- }
+ final Domain userDomain = _domainMgr.findDomainByIdOrPath(domainId, domainPath);
+ if (userDomain == null || userDomain.getId() < 1L) {
+ throw new CloudAuthenticationException("Unable to find the domain from the path " + domainPath);
+ } else {
+ domainId = userDomain.getId();
}
final UserAccount userAcct = _accountMgr.authenticateUser(username, password, domainId, loginIpAddress, requestParameters);
diff --git a/server/src/com/cloud/api/auth/DefaultLoginAPIAuthenticatorCmd.java b/server/src/com/cloud/api/auth/DefaultLoginAPIAuthenticatorCmd.java
index d6eac7864d48..c83e7080edc3 100644
--- a/server/src/com/cloud/api/auth/DefaultLoginAPIAuthenticatorCmd.java
+++ b/server/src/com/cloud/api/auth/DefaultLoginAPIAuthenticatorCmd.java
@@ -16,6 +16,9 @@
// under the License.
package com.cloud.api.auth;
+import com.cloud.domain.Domain;
+import com.cloud.user.User;
+import com.cloud.user.UserAccount;
import org.apache.cloudstack.api.ApiServerService;
import com.cloud.api.response.ApiResponseSerializer;
import com.cloud.exception.CloudAuthenticationException;
@@ -156,6 +159,16 @@ public String authenticate(String command, Map params, HttpSes
if (username != null) {
final String pwd = ((password == null) ? null : password[0]);
try {
+ final Domain userDomain = _domainService.findDomainByIdOrPath(domainId, domain);
+ if (userDomain != null) {
+ domainId = userDomain.getId();
+ } else {
+ throw new CloudAuthenticationException("Unable to find the domain from the path " + domain);
+ }
+ final UserAccount userAccount = _accountService.getActiveUserAccount(username[0], domainId);
+ if (userAccount == null || !(User.Source.UNKNOWN.equals(userAccount.getSource()) || User.Source.LDAP.equals(userAccount.getSource()))) {
+ throw new CloudAuthenticationException("User is not allowed CloudStack login");
+ }
return ApiResponseSerializer.toSerializedString(_apiServer.loginUser(session, username[0], pwd, domainId, domain, remoteAddress, params),
responseType);
} catch (final CloudAuthenticationException ex) {
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index a87d9fb1f0d6..99f210f1db96 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -3054,9 +3054,9 @@ private Pair, Integer> searchForTemplatesInternal(ListTempl
boolean listAll = false;
if (templateFilter != null && templateFilter == TemplateFilter.all) {
- if (caller.getType() == Account.ACCOUNT_TYPE_NORMAL) {
+ if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
throw new InvalidParameterValueException("Filter " + TemplateFilter.all
- + " can be specified by admin only");
+ + " can be specified by root admin only");
}
listAll = true;
}
diff --git a/server/src/com/cloud/user/DomainManagerImpl.java b/server/src/com/cloud/user/DomainManagerImpl.java
index 912aa8b73adb..71f9b6726e07 100644
--- a/server/src/com/cloud/user/DomainManagerImpl.java
+++ b/server/src/com/cloud/user/DomainManagerImpl.java
@@ -73,6 +73,7 @@
import com.cloud.utils.net.NetUtils;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.ReservationContextImpl;
+import com.google.common.base.Strings;
@Component
public class DomainManagerImpl extends ManagerBase implements DomainManager, DomainService {
@@ -218,6 +219,25 @@ public DomainVO findDomainByPath(String domainPath) {
return _domainDao.findDomainByPath(domainPath);
}
+ @Override
+ public Domain findDomainByIdOrPath(final Long id, final String domainPath) {
+ Long domainId = id;
+ if (domainId == null || domainId < 1L) {
+ if (Strings.isNullOrEmpty(domainPath) || domainPath.trim().isEmpty()) {
+ domainId = Domain.ROOT_DOMAIN;
+ } else {
+ final Domain domainVO = findDomainByPath(domainPath.trim());
+ if (domainVO != null) {
+ return domainVO;
+ }
+ }
+ }
+ if (domainId != null && domainId > 0L) {
+ return _domainDao.findById(domainId);
+ }
+ return null;
+ }
+
@Override
public Set getDomainParentIds(long domainId) {
return _domainDao.getDomainParentIds(domainId);
diff --git a/server/test/com/cloud/user/DomainManagerImplTest.java b/server/test/com/cloud/user/DomainManagerImplTest.java
new file mode 100644
index 000000000000..82d54912b5ea
--- /dev/null
+++ b/server/test/com/cloud/user/DomainManagerImplTest.java
@@ -0,0 +1,137 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package com.cloud.user;
+
+import com.cloud.configuration.dao.ResourceCountDao;
+import com.cloud.configuration.dao.ResourceLimitDao;
+import com.cloud.dc.dao.DedicatedResourceDao;
+import com.cloud.domain.DomainVO;
+import com.cloud.domain.dao.DomainDao;
+import com.cloud.network.dao.NetworkDomainDao;
+import com.cloud.projects.ProjectManager;
+import com.cloud.projects.dao.ProjectDao;
+import com.cloud.service.dao.ServiceOfferingDao;
+import com.cloud.storage.dao.DiskOfferingDao;
+import com.cloud.user.dao.AccountDao;
+import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.cloudstack.framework.messagebus.MessageBus;
+import org.apache.cloudstack.region.RegionManager;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import javax.inject.Inject;
+import java.lang.reflect.Field;
+
+@RunWith(MockitoJUnitRunner.class)
+public class DomainManagerImplTest {
+ @Mock
+ DomainDao _domainDao;
+ @Mock
+ AccountManager _accountMgr;
+ @Mock
+ ResourceCountDao _resourceCountDao;
+ @Mock
+ AccountDao _accountDao;
+ @Mock
+ DiskOfferingDao _diskOfferingDao;
+ @Mock
+ ServiceOfferingDao _offeringsDao;
+ @Mock
+ ProjectDao _projectDao;
+ @Mock
+ ProjectManager _projectMgr;
+ @Mock
+ RegionManager _regionMgr;
+ @Mock
+ ResourceLimitDao _resourceLimitDao;
+ @Mock
+ DedicatedResourceDao _dedicatedDao;
+ @Mock
+ NetworkOrchestrationService _networkMgr;
+ @Mock
+ NetworkDomainDao _networkDomainDao;
+ @Mock
+ MessageBus _messageBus;
+
+ DomainManagerImpl domainManager;
+
+ @Before
+ public void setup() throws NoSuchFieldException, SecurityException,
+ IllegalArgumentException, IllegalAccessException {
+ domainManager = new DomainManagerImpl();
+ for (Field field : DomainManagerImpl.class.getDeclaredFields()) {
+ if (field.getAnnotation(Inject.class) != null) {
+ field.setAccessible(true);
+ try {
+ Field mockField = this.getClass().getDeclaredField(
+ field.getName());
+ field.set(domainManager, mockField.get(this));
+ } catch (Exception ignored) {
+ }
+ }
+ }
+ }
+
+ @Test
+ public void testFindDomainByIdOrPathNullOrEmpty() {
+ final DomainVO domain = new DomainVO("someDomain", 123, 1L, "network.domain");
+ Mockito.when(_domainDao.findById(1L)).thenReturn(domain);
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(null, null));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(0L, ""));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(-1L, " "));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(null, " "));
+ }
+
+ @Test
+ public void testFindDomainByIdOrPathValidPathAndInvalidId() {
+ final DomainVO domain = new DomainVO("someDomain", 123, 1L, "network.domain");
+ Mockito.when(_domainDao.findDomainByPath(Mockito.eq("/someDomain/"))).thenReturn(domain);
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(null, "/someDomain/"));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(0L, " /someDomain/"));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(-1L, "/someDomain/ "));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(null, " /someDomain/ "));
+ }
+
+ @Test
+ public void testFindDomainByIdOrPathInvalidPathAndInvalidId() {
+ Mockito.when(_domainDao.findDomainByPath(Mockito.anyString())).thenReturn(null);
+ Assert.assertNull(domainManager.findDomainByIdOrPath(null, "/nonExistingDomain/"));
+ Assert.assertNull(domainManager.findDomainByIdOrPath(0L, " /nonExistingDomain/"));
+ Assert.assertNull(domainManager.findDomainByIdOrPath(-1L, "/nonExistingDomain/ "));
+ Assert.assertNull(domainManager.findDomainByIdOrPath(null, " /nonExistingDomain/ "));
+ }
+
+
+ @Test
+ public void testFindDomainByIdOrPathValidId() {
+ final DomainVO domain = new DomainVO("someDomain", 123, 1L, "network.domain");
+ Mockito.when(_domainDao.findById(1L)).thenReturn(domain);
+ Mockito.when(_domainDao.findDomainByPath(Mockito.eq("/validDomain/"))).thenReturn(new DomainVO());
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(1L, null));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(1L, ""));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(1L, " "));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(1L, " "));
+ Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(1L, "/validDomain/"));
+ }
+
+}
diff --git a/server/test/com/cloud/user/MockDomainManagerImpl.java b/server/test/com/cloud/user/MockDomainManagerImpl.java
index cdae887cee6e..394c3e227190 100644
--- a/server/test/com/cloud/user/MockDomainManagerImpl.java
+++ b/server/test/com/cloud/user/MockDomainManagerImpl.java
@@ -91,6 +91,11 @@ public DomainVO findDomainByPath(String domainPath) {
return null;
}
+ @Override
+ public DomainVO findDomainByIdOrPath(Long id, String domainPath) {
+ return null;
+ }
+
@Override
public Set getDomainParentIds(long domainId) {
// TODO Auto-generated method stub
diff --git a/services/console-proxy-rdp/rdpconsole/pom.xml b/services/console-proxy-rdp/rdpconsole/pom.xml
index f34a19856aa7..a59dafd5bbc4 100755
--- a/services/console-proxy-rdp/rdpconsole/pom.xml
+++ b/services/console-proxy-rdp/rdpconsole/pom.xml
@@ -27,7 +27,7 @@
org.apache.cloudstack
cloudstack-services
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/services/console-proxy/plugin/pom.xml b/services/console-proxy/plugin/pom.xml
index fc202564e4a4..d58db46e2405 100644
--- a/services/console-proxy/plugin/pom.xml
+++ b/services/console-proxy/plugin/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-service-console-proxy
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/services/console-proxy/pom.xml b/services/console-proxy/pom.xml
index c95a36954f8b..2dd968f7e0fb 100644
--- a/services/console-proxy/pom.xml
+++ b/services/console-proxy/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack-services
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/services/console-proxy/server/pom.xml b/services/console-proxy/server/pom.xml
index aab7ad5df875..df8799d48197 100644
--- a/services/console-proxy/server/pom.xml
+++ b/services/console-proxy/server/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-service-console-proxy
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/services/iam/plugin/pom.xml b/services/iam/plugin/pom.xml
index 61ede969fb97..5418aefdceac 100644
--- a/services/iam/plugin/pom.xml
+++ b/services/iam/plugin/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-service-iam
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/services/iam/server/pom.xml b/services/iam/server/pom.xml
index 20c0eb6f0e0f..e87433067bc3 100644
--- a/services/iam/server/pom.xml
+++ b/services/iam/server/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-service-iam
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/services/pom.xml b/services/pom.xml
index 2cb33d00d978..70b5dd1e8a7c 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/services/secondary-storage/controller/pom.xml b/services/secondary-storage/controller/pom.xml
index 1d0fb96c095e..94efe59f0e98 100644
--- a/services/secondary-storage/controller/pom.xml
+++ b/services/secondary-storage/controller/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-service-secondary-storage
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/services/secondary-storage/pom.xml b/services/secondary-storage/pom.xml
index 3786ce622432..a055bbfbe8a4 100644
--- a/services/secondary-storage/pom.xml
+++ b/services/secondary-storage/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack-services
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/services/secondary-storage/server/pom.xml b/services/secondary-storage/server/pom.xml
index 4f7a173f455d..e97190a94d81 100644
--- a/services/secondary-storage/server/pom.xml
+++ b/services/secondary-storage/server/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack-service-secondary-storage
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/systemvm/pom.xml b/systemvm/pom.xml
index 7d9a849fb1b6..6286238e52ab 100644
--- a/systemvm/pom.xml
+++ b/systemvm/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/test/integration/component/test_templates.py b/test/integration/component/test_templates.py
index b1e7e7c6546f..c8384d97c896 100644
--- a/test/integration/component/test_templates.py
+++ b/test/integration/component/test_templates.py
@@ -22,6 +22,7 @@
from marvin.cloudstackAPI import listZones
from marvin.lib.utils import (cleanup_resources)
from marvin.lib.base import (Account,
+ Domain,
Template,
ServiceOffering,
VirtualMachine,
@@ -51,6 +52,7 @@ def __init__(self):
# username
"password": "password",
},
+ "testdomain": {"name": "test"},
"service_offering": {
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
@@ -602,3 +604,77 @@ def test_04_template_from_snapshot(self):
"Check the state of VM created from Template"
)
return
+
+
+class TestListTemplate(cloudstackTestCase):
+
+ def setUp(self):
+ self.apiclient = self.testClient.getApiClient()
+ self.hypervisor = self.testClient.getHypervisorInfo()
+ self.dbclient = self.testClient.getDbConnection()
+ self.cleanup = []
+
+ self.services = Services().services
+ # Get Zone, Domain and templates
+ self.domain = get_domain(self.apiclient)
+ self.account = Account.create(
+ self.apiclient,
+ self.services["account"],
+ domainid=self.domain.id
+ )
+ self.newdomain = Domain.create(
+ self.apiclient,
+ self.services["testdomain"],
+ parentdomainid=self.domain.id
+ )
+ self.newdomain_account = Account.create(
+ self.apiclient,
+ self.services["account"],
+ admin=True,
+ domainid=self.newdomain.id
+ )
+ self.cleanup = [
+ self.account,
+ self.newdomain_account,
+ self.newdomain,
+ ]
+
+
+ def tearDown(self):
+ try:
+ # Clean up, terminate the created templates
+ cleanup_resources(self.apiclient, self.cleanup)
+ except Exception as e:
+ raise Exception("Warning: Exception during cleanup : %s" % e)
+
+
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"], required_hardware="false")
+ def test_01_list_templates_with_templatefilter_all_normal_user(self):
+ """
+ Test list templates with templatefilter=all is not permitted for normal user
+ """
+
+ user_api_client = self.testClient.getUserApiClient(
+ UserName=self.account.name,
+ DomainName=self.account.domain)
+ try:
+ list_template_response = Template.list(self.user_api_client, templatefilter='all')
+ self.fail("Regular User is able to use templatefilter='all' in listTemplates API call")
+ except Exception as e:
+ self.debug("ListTemplates API with templatefilter='all' is not permitted for normal user")
+
+
+ @attr(tags=["devcloud", "advanced", "advancedns", "smoke", "basic", "sg"], required_hardware="false")
+ def test_02_list_templates_with_templatefilter_all_domain_admin(self):
+ """
+ Test list templates with templatefilter=all is not permitted for domain admin
+ """
+
+ domain_user_api_client = self.testClient.getUserApiClient(
+ UserName=self.newdomain_account.name,
+ DomainName=self.newdomain_account.domain)
+ try:
+ list_template_response = Template.list(self.domain_user_api_client, templatefilter='all')
+ self.fail("Domain admin is able to use templatefilter='all' in listTemplates API call")
+ except Exception as e:
+ self.debug("ListTemplates API with templatefilter='all' is not permitted for domain admin user")
diff --git a/test/integration/smoke/test_login.py b/test/integration/smoke/test_login.py
new file mode 100644
index 000000000000..5855feabd9fe
--- /dev/null
+++ b/test/integration/smoke/test_login.py
@@ -0,0 +1,145 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+from nose.plugins.attrib import attr
+from marvin.cloudstackTestCase import *
+from marvin.cloudstackAPI import *
+from marvin.lib.utils import *
+from marvin.lib.base import *
+from marvin.lib.common import *
+
+import requests
+
+
+class TestLogin(cloudstackTestCase):
+ """
+ Tests default login API handler
+ """
+
+ def setUp(self):
+ self.apiclient = self.testClient.getApiClient()
+ self.dbclient = self.testClient.getDbConnection()
+ self.server_details = self.config.__dict__["mgtSvr"][0].__dict__
+ self.server_url = "http://%s:8080/client/api" % self.server_details['mgtSvrIp']
+ self.testdata = {
+ "account": {
+ "email": "login-user@test.cloud",
+ "firstname": "TestLoginFirstName",
+ "lastname": "TestLoginLastName",
+ "username": "testloginuser-",
+ "password": "password123",
+ }
+ }
+ self.cleanup = []
+
+
+ def tearDown(self):
+ try:
+ cleanup_resources(self.apiclient, self.cleanup)
+ except Exception as e:
+ raise Exception("Warning: Exception during cleanup : %s" % e)
+
+
+ def login(self, username, password, domain="/"):
+ """
+ Logs in and returns a session to be used for subsequent API calls
+ """
+ args = {}
+ args["command"] = 'login'
+ args["username"] = username
+ args["password"] = password
+ args["domain"] = domain
+ args["response"] = "json"
+
+ session = requests.Session()
+
+ try:
+ resp = session.post(self.server_url, params=args, verify=False)
+ except requests.exceptions.ConnectionError, e:
+ self.fail("Failed to attempt login request to mgmt server")
+ return None, None
+
+ return resp, session
+
+
+ @attr(tags = ["devcloud", "advanced", "advancedns", "advancedsg", "smoke",
+ "basic", "sg"], required_hardware="false")
+ def login_test_saml_user(self):
+ """
+ Tests that SAML users are not allowed CloudStack local log in
+
+ Creates account across various account types and converts them to
+ a SAML user and tests that they are not able to log in; then
+ converts them back as a CloudStack user account and verifies that
+ they are allowed to log in and make API requests
+ """
+ # Tests across various account types: 0=User, 1=Root Admin, 2=Domain Admin
+ for account_type in range(0, 3):
+ account = Account.create(
+ self.apiclient,
+ self.testdata['account'],
+ admin=account_type
+ )
+ self.cleanup.append(account)
+
+ username = account.user[0].username
+ password = self.testdata['account']['password']
+
+ # Convert newly created account user to SAML user
+ user_id = self.dbclient.execute("select id from user where uuid='%s'" % account.user[0].id)[0][0]
+ self.dbclient.execute("update user set source='SAML2' where id=%d" % user_id)
+
+ response, session = self.login(username, password)
+ self.assertEqual(
+ response.json()['loginresponse']['errorcode'],
+ 531,
+ "SAML user should not be allowed to log in, error code 531 not returned"
+ )
+ self.assertEqual(
+ response.json()['loginresponse']['errortext'],
+ "User is not allowed CloudStack login",
+ "Invalid error message returned, SAML user should not be allowed to log in"
+ )
+
+ # Convert newly created account user back to normal source
+ self.dbclient.execute("update user set source='UNKNOWN' where id=%d" % user_id)
+
+ response, session = self.login(username, password)
+ self.assertEqual(
+ response.status_code,
+ 200,
+ "Login response code was not 200"
+ )
+ self.assertTrue(
+ len(response.json()['loginresponse']['sessionkey']) > 0,
+ "Invalid session key received"
+ )
+
+ args = {}
+ args["command"] = 'listUsers'
+ args["listall"] = 'true'
+ args["response"] = "json"
+ response = session.get(self.server_url, params=args)
+ self.assertEqual(
+ response.status_code,
+ 200,
+ "listUsers response code was not 200"
+ )
+ self.assertTrue(
+ len(response.json()['listusersresponse']['user']) > 0,
+ "listUsers list is empty or zero"
+ )
diff --git a/test/pom.xml b/test/pom.xml
index 00d979e30273..3c43d1708b51 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -23,7 +23,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
diff --git a/tools/apidoc/pom.xml b/tools/apidoc/pom.xml
index 3daec4f1372f..4fc7b19d0530 100644
--- a/tools/apidoc/pom.xml
+++ b/tools/apidoc/pom.xml
@@ -17,7 +17,7 @@
org.apache.cloudstack
cloud-tools
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/tools/checkstyle/pom.xml b/tools/checkstyle/pom.xml
index fda3a68c5fee..f6497db0eaa8 100644
--- a/tools/checkstyle/pom.xml
+++ b/tools/checkstyle/pom.xml
@@ -24,7 +24,7 @@
Apache CloudStack Developer Tools - Checkstyle Configuration
org.apache.cloudstack
checkstyle
- 4.8.0
+ 4.8.0.1
diff --git a/tools/devcloud-kvm/pom.xml b/tools/devcloud-kvm/pom.xml
index 3999b48fa5af..a5922e5ea8f0 100644
--- a/tools/devcloud-kvm/pom.xml
+++ b/tools/devcloud-kvm/pom.xml
@@ -17,7 +17,7 @@
org.apache.cloudstack
cloud-tools
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/tools/devcloud/pom.xml b/tools/devcloud/pom.xml
index 51b6583d3625..79eb843f8d06 100644
--- a/tools/devcloud/pom.xml
+++ b/tools/devcloud/pom.xml
@@ -17,7 +17,7 @@
org.apache.cloudstack
cloud-tools
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/tools/devcloud4/pom.xml b/tools/devcloud4/pom.xml
index 5f73ce6e37a3..2c92b6be2d84 100644
--- a/tools/devcloud4/pom.xml
+++ b/tools/devcloud4/pom.xml
@@ -17,7 +17,7 @@
org.apache.cloudstack
cloud-tools
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/tools/marvin/pom.xml b/tools/marvin/pom.xml
index bca2ec4965cd..244d16fce75e 100644
--- a/tools/marvin/pom.xml
+++ b/tools/marvin/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloud-tools
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/tools/marvin/setup.py b/tools/marvin/setup.py
index f1e7d7c2f169..869b2aac004f 100644
--- a/tools/marvin/setup.py
+++ b/tools/marvin/setup.py
@@ -27,7 +27,7 @@
raise RuntimeError("python setuptools is required to build Marvin")
-VERSION = "4.8.0"
+VERSION = "4.8.0.1"
setup(name="Marvin",
version=VERSION,
diff --git a/tools/pom.xml b/tools/pom.xml
index f362ee9f2a4a..9a5ba3704f1a 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -27,7 +27,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/tools/wix-cloudstack-maven-plugin/pom.xml b/tools/wix-cloudstack-maven-plugin/pom.xml
index 54595888a3a8..5baf06cba6bb 100644
--- a/tools/wix-cloudstack-maven-plugin/pom.xml
+++ b/tools/wix-cloudstack-maven-plugin/pom.xml
@@ -16,7 +16,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
../../pom.xml
diff --git a/usage/pom.xml b/usage/pom.xml
index 658397af9454..5ca49c36e30d 100644
--- a/usage/pom.xml
+++ b/usage/pom.xml
@@ -15,7 +15,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
diff --git a/utils/pom.xml b/utils/pom.xml
index 7efd1b7400a1..f62659116125 100755
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -26,7 +26,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1
../pom.xml
diff --git a/vmware-base/pom.xml b/vmware-base/pom.xml
index 56a705be15cb..bb9d0bd02886 100644
--- a/vmware-base/pom.xml
+++ b/vmware-base/pom.xml
@@ -24,7 +24,7 @@
org.apache.cloudstack
cloudstack
- 4.8.0
+ 4.8.0.1