You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ap...@apache.org on 2013/12/11 11:10:14 UTC
[1/2] git commit: updated refs/heads/master to ab025f0
Updated Branches:
refs/heads/master a3b7248a1 -> ab025f026
CLOUDSTACK-5375 :ldapconfig and ldapRemove api's are not working Added support for 4.2 ldap apis
Signed-off-by: Abhinandan Prateek <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/db8f83d7
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/db8f83d7
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/db8f83d7
Branch: refs/heads/master
Commit: db8f83d71b97774552c7c2b66285771bd63d2424
Parents: a3b7248
Author: Rajani Karuturi <ra...@gmail.com>
Authored: Tue Dec 10 13:36:35 2013 +0530
Committer: Abhinandan Prateek <ap...@apache.org>
Committed: Wed Dec 11 15:30:03 2013 +0530
----------------------------------------------------------------------
.../cloudstack/api/command/LDAPConfigCmd.java | 261 +++++++++++++++++++
.../cloudstack/api/command/LDAPRemoveCmd.java | 77 ++++++
.../api/response/LDAPConfigResponse.java | 115 ++++++++
.../api/response/LDAPRemoveResponse.java | 30 +++
.../apache/cloudstack/ldap/LdapManagerImpl.java | 17 +-
5 files changed, 489 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/db8f83d7/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPConfigCmd.java
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPConfigCmd.java b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPConfigCmd.java
new file mode 100644
index 0000000..3faf8b7
--- /dev/null
+++ b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPConfigCmd.java
@@ -0,0 +1,261 @@
+// 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 org.apache.cloudstack.api.command;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.cloudstack.api.*;
+import org.apache.cloudstack.api.response.LDAPConfigResponse;
+import org.apache.cloudstack.api.response.LdapConfigurationResponse;
+import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
+import org.apache.cloudstack.ldap.LdapConfiguration;
+import org.apache.cloudstack.ldap.LdapConfigurationVO;
+import org.apache.cloudstack.ldap.LdapManager;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.log4j.Logger;
+
+import com.cloud.exception.*;
+import com.cloud.user.Account;
+import com.cloud.utils.Pair;
+
+/**
+ * @deprecated as of 4.3 use the new api {@link LdapAddConfigurationCmd}
+ */
+@Deprecated
+@APICommand(name = "ldapConfig", description = "Configure the LDAP context for this site.", responseObject = LDAPConfigResponse.class, since = "3.0.0")
+public class LDAPConfigCmd extends BaseCmd {
+ public static final Logger s_logger = Logger.getLogger(LDAPConfigCmd.class.getName());
+
+ private static final String s_name = "ldapconfigresponse";
+
+ @Inject
+ private ConfigurationDao _configDao;
+
+ @Inject
+ private LdapManager _ldapManager;
+
+ @Inject
+ private LdapConfiguration _ldapConfiguration;
+
+ /////////////////////////////////////////////////////
+ //////////////// API parameters /////////////////////
+ /////////////////////////////////////////////////////
+ @Parameter(name = ApiConstants.LIST_ALL, type = CommandType.BOOLEAN, description = "If true return current LDAP configuration")
+ private Boolean listAll;
+
+ @Parameter(name = ApiConstants.HOST_NAME, type = CommandType.STRING, description = "Hostname or ip address of the ldap server eg: my.ldap.com")
+ private String hostname;
+
+ @Parameter(name = ApiConstants.PORT, type = CommandType.INTEGER, description = "Specify the LDAP port if required, default is 389.")
+ private Integer port = 0;
+
+ @Parameter(name = ApiConstants.USE_SSL, type = CommandType.BOOLEAN, description = "Check Use SSL if the external LDAP server is configured for LDAP over SSL.")
+ private Boolean useSSL;
+
+ @Parameter(name = ApiConstants.SEARCH_BASE, type = CommandType.STRING, description = "The search base defines the starting point for the search in the directory tree Example: dc=cloud,dc=com.")
+ private String searchBase;
+
+ @Parameter(name = ApiConstants.QUERY_FILTER, type = CommandType.STRING, description = "You specify a query filter here, which narrows down the users, who can be part of this domain.")
+ private String queryFilter;
+
+ @Parameter(name = ApiConstants.BIND_DN, type = CommandType.STRING, description = "Specify the distinguished name of a user with the search permission on the directory.")
+ private String bindDN;
+
+ @Parameter(name = ApiConstants.BIND_PASSWORD, type = CommandType.STRING, description = "Enter the password.")
+ private String bindPassword;
+
+ @Parameter(name = ApiConstants.TRUST_STORE, type = CommandType.STRING, description = "Enter the path to trust certificates store.")
+ private String trustStore;
+
+ @Parameter(name = ApiConstants.TRUST_STORE_PASSWORD, type = CommandType.STRING, description = "Enter the password for trust store.")
+ private String trustStorePassword;
+
+ public Boolean getListAll() {
+ return listAll == null ? Boolean.FALSE : listAll;
+ }
+
+ public String getBindPassword() {
+ return bindPassword;
+ }
+
+ public String getBindDN() {
+ return bindDN;
+ }
+
+ public void setBindDN(String bdn) {
+ this.bindDN = bdn;
+ }
+
+ public String getQueryFilter() {
+ return queryFilter;
+ }
+
+ public void setQueryFilter(String queryFilter) {
+ this.queryFilter = StringEscapeUtils.unescapeHtml(queryFilter);
+ }
+
+ public String getSearchBase() {
+ return searchBase;
+ }
+
+ public void setSearchBase(String searchBase) {
+ this.searchBase = searchBase;
+ }
+
+ public Boolean getUseSSL() {
+ return useSSL == null ? Boolean.FALSE : useSSL;
+ }
+
+ public void setUseSSL(Boolean useSSL) {
+ this.useSSL = useSSL;
+ }
+
+ public String getHostname() {
+ return hostname;
+ }
+
+ public void setHostname(String hostname) {
+ this.hostname = hostname;
+ }
+
+ public Integer getPort() {
+ return port <= 0 ? 389 : port;
+ }
+
+ public void setPort(Integer port) {
+ this.port = port;
+ }
+
+ public String getTrustStore() {
+ return trustStore;
+ }
+
+ public void setTrustStore(String trustStore) {
+ this.trustStore = trustStore;
+ }
+
+ public String getTrustStorePassword() {
+ return trustStorePassword;
+ }
+
+ /////////////////////////////////////////////////////
+ /////////////// API Implementation///////////////////
+ /////////////////////////////////////////////////////
+
+ @Override
+ public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException {
+ if (getListAll()) {
+ // return the existing conf
+
+ LdapListConfigurationCmd listConfigurationCmd = new LdapListConfigurationCmd(_ldapManager);
+ Pair<List<? extends LdapConfigurationVO>, Integer> result = _ldapManager.listConfigurations(listConfigurationCmd);
+ ListResponse<LDAPConfigResponse> response = new ListResponse<LDAPConfigResponse>();
+ List<LDAPConfigResponse> responses = new ArrayList<LDAPConfigResponse>();
+
+ if (result.second() > 0) {
+ boolean useSSlConfig = _ldapConfiguration.getSSLStatus();
+ String searchBaseConfig = _ldapConfiguration.getBaseDn();
+ String bindDnConfig = _ldapConfiguration.getBindPrincipal();
+ for (LdapConfigurationVO ldapConfigurationVO : result.first()) {
+ responses.add(this.createLDAPConfigResponse(ldapConfigurationVO.getHostname(), ldapConfigurationVO.getPort(), useSSlConfig, null, searchBaseConfig,
+ bindDnConfig));
+ }
+ }
+ response.setResponses(responses);
+ response.setResponseName(getCommandName());
+ this.setResponseObject(response);
+ } else if (getHostname() == null || getPort() == null) {
+ throw new InvalidParameterValueException("You need to provide hostname, port to configure your LDAP server");
+ } else {
+ boolean result = this.updateLDAP();
+ if (result) {
+ LDAPConfigResponse lr = this.createLDAPConfigResponse(getHostname(), getPort(), getUseSSL(), getQueryFilter(), getSearchBase(), getBindDN());
+ lr.setResponseName(getCommandName());
+ this.setResponseObject(lr);
+ }
+ }
+
+ }
+
+ private LDAPConfigResponse createLDAPConfigResponse(String hostname, Integer port, Boolean useSSL, String queryFilter, String searchBase, String bindDN) {
+ LDAPConfigResponse lr = new LDAPConfigResponse();
+ lr.setHostname(hostname);
+ lr.setPort(port.toString());
+ lr.setUseSSL(useSSL.toString());
+ lr.setQueryFilter(queryFilter);
+ lr.setBindDN(bindDN);
+ lr.setSearchBase(searchBase);
+ lr.setObjectName("ldapconfig");
+ return lr;
+ }
+
+ private boolean updateLDAP() {
+ LdapConfigurationResponse response = _ldapManager.addConfiguration(hostname, port);
+
+ /**
+ * There is no query filter now. It is derived from ldap.user.object and ldap.search.group.principle
+ */
+// ConfigurationVO cvo = _configDao.findByName(LDAPParams.queryfilter.toString());
+// _configDao.update(cvo.getName(),cvo.getCategory(),getQueryFilter());
+
+ ConfigurationVO cvo = _configDao.findByName("ldap.basedn");
+ _configDao.update(cvo.getName(), cvo.getCategory(), getSearchBase());
+
+ /**
+ * There is no ssl now. it is derived from the presence of trust store and password
+ */
+// cvo = _configDao.findByName(LDAPParams.usessl.toString());
+// _configDao.update(cvo.getName(),cvo.getCategory(),getUseSSL().toString());
+
+ cvo = _configDao.findByName("ldap.bind.principal");
+ _configDao.update(cvo.getName(), cvo.getCategory(), getBindDN());
+
+ cvo = _configDao.findByName("ldap.bind.password");
+ _configDao.update(cvo.getName(), cvo.getCategory(), getBindPassword());
+
+ cvo = _configDao.findByName("ldap.truststore");
+ _configDao.update(cvo.getName(), cvo.getCategory(), getTrustStore());
+
+ cvo = _configDao.findByName("ldap.truststore.password");
+ _configDao.update(cvo.getName(), cvo.getCategory(), getTrustStorePassword());
+
+ return true;
+ }
+
+ private List<? extends LdapConfigurationVO> listLDAPConfig() {
+
+ LdapListConfigurationCmd listConfigurationCmd = new LdapListConfigurationCmd(_ldapManager);
+ Pair<List<? extends LdapConfigurationVO>, Integer> result = _ldapManager.listConfigurations(listConfigurationCmd);
+ return result.first();
+ }
+
+ @Override
+ public String getCommandName() {
+ return s_name;
+ }
+
+ @Override
+ public long getEntityOwnerId() {
+ return Account.ACCOUNT_ID_SYSTEM;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/db8f83d7/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPRemoveCmd.java
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPRemoveCmd.java b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPRemoveCmd.java
new file mode 100644
index 0000000..535a545
--- /dev/null
+++ b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPRemoveCmd.java
@@ -0,0 +1,77 @@
+// 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 org.apache.cloudstack.api.command;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.response.LDAPConfigResponse;
+import org.apache.cloudstack.api.response.LDAPRemoveResponse;
+import org.apache.cloudstack.ldap.LdapConfigurationVO;
+import org.apache.cloudstack.ldap.LdapManager;
+import org.apache.log4j.Logger;
+
+import com.cloud.user.Account;
+import com.cloud.utils.Pair;
+
+/**
+ * @deprecated as of 4.3 use the new api {@link LdapDeleteConfigurationCmd}
+ */
+@Deprecated
+@APICommand(name = "ldapRemove", description = "Remove the LDAP context for this site.", responseObject = LDAPConfigResponse.class, since = "3.0.1")
+public class LDAPRemoveCmd extends BaseCmd {
+ public static final Logger s_logger = Logger.getLogger(LDAPRemoveCmd.class.getName());
+
+ @Inject
+ private LdapManager _ldapManager;
+
+ private static final String s_name = "ldapremoveresponse";
+
+ @Override
+ public void execute() {
+ boolean result = this.removeLDAP();
+ if (result) {
+ LDAPRemoveResponse lr = new LDAPRemoveResponse();
+ lr.setObjectName("ldapremove");
+ lr.setResponseName(getCommandName());
+ this.setResponseObject(lr);
+ }
+ }
+
+ private boolean removeLDAP() {
+ LdapListConfigurationCmd listConfigurationCmd = new LdapListConfigurationCmd(_ldapManager);
+ Pair<List<? extends LdapConfigurationVO>, Integer> result = _ldapManager.listConfigurations(listConfigurationCmd);
+ for (LdapConfigurationVO config : result.first()) {
+ _ldapManager.deleteConfiguration(config.getHostname());
+ }
+ return true;
+ }
+
+ @Override
+ public String getCommandName() {
+ return s_name;
+ }
+
+ @Override
+ public long getEntityOwnerId() {
+ return Account.ACCOUNT_ID_SYSTEM;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/db8f83d7/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/response/LDAPConfigResponse.java
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/response/LDAPConfigResponse.java b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/response/LDAPConfigResponse.java
new file mode 100644
index 0000000..8570bac
--- /dev/null
+++ b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/response/LDAPConfigResponse.java
@@ -0,0 +1,115 @@
+// 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 org.apache.cloudstack.api.response;
+
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseResponse;
+
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+
+/**
+ * @deprecated as of 4.3 along with the api {@link org.apache.cloudstack.api.command.LDAPConfigCmd}
+ */
+@Deprecated
+public class LDAPConfigResponse extends BaseResponse {
+
+ @SerializedName(ApiConstants.HOST_NAME)
+ @Param(description = "Hostname or ip address of the ldap server eg: my.ldap.com")
+ private String hostname;
+
+ @SerializedName(ApiConstants.PORT)
+ @Param(description = "Specify the LDAP port if required, default is 389")
+ private String port;
+
+ @SerializedName(ApiConstants.USE_SSL)
+ @Param(description = "Check Use SSL if the external LDAP server is configured for LDAP over SSL")
+ private String useSSL;
+
+ @SerializedName(ApiConstants.SEARCH_BASE)
+ @Param(description = "The search base defines the starting point for the search in the directory tree Example: dc=cloud,dc=com")
+ private String searchBase;
+
+ @SerializedName(ApiConstants.QUERY_FILTER)
+ @Param(description = "You specify a query filter here, which narrows down the users, who can be part of this domain")
+ private String queryFilter;
+
+ @SerializedName(ApiConstants.BIND_DN)
+ @Param(description = "Specify the distinguished name of a user with the search permission on the directory")
+ private String bindDN;
+
+ @SerializedName(ApiConstants.BIND_PASSWORD)
+ @Param(description = "DN password")
+ private String bindPassword;
+
+ public String getHostname() {
+ return hostname;
+ }
+
+ public void setHostname(String hostname) {
+ this.hostname = hostname;
+ }
+
+ public String getPort() {
+ return port;
+ }
+
+ public void setPort(String port) {
+ this.port = port;
+ }
+
+ public String getUseSSL() {
+ return useSSL;
+ }
+
+ public void setUseSSL(String useSSL) {
+ this.useSSL = useSSL;
+ }
+
+ public String getSearchBase() {
+ return searchBase;
+ }
+
+ public void setSearchBase(String searchBase) {
+ this.searchBase = searchBase;
+ }
+
+ public String getQueryFilter() {
+ return queryFilter;
+ }
+
+ public void setQueryFilter(String queryFilter) {
+ this.queryFilter = queryFilter;
+ }
+
+ public String getBindDN() {
+ return bindDN;
+ }
+
+ public void setBindDN(String bindDN) {
+ this.bindDN = bindDN;
+ }
+
+ public String getBindPassword() {
+ return bindPassword;
+ }
+
+ public void setBindPassword(String bindPassword) {
+ this.bindPassword = bindPassword;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/db8f83d7/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/response/LDAPRemoveResponse.java
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/response/LDAPRemoveResponse.java b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/response/LDAPRemoveResponse.java
new file mode 100644
index 0000000..9b473d2
--- /dev/null
+++ b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/response/LDAPRemoveResponse.java
@@ -0,0 +1,30 @@
+// 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 org.apache.cloudstack.api.response;
+
+import org.apache.cloudstack.api.BaseResponse;
+
+/**
+ * @deprecated as of 4.3 along with the api {@link org.apache.cloudstack.api.command.LDAPRemoveCmd}
+ */
+@Deprecated
+public class LDAPRemoveResponse extends BaseResponse {
+
+ public LDAPRemoveResponse() {
+ super();
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/db8f83d7/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapManagerImpl.java b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapManagerImpl.java
index f41bd3a..578ebce 100644
--- a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapManagerImpl.java
+++ b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapManagerImpl.java
@@ -24,20 +24,13 @@ import javax.inject.Inject;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
import org.apache.cloudstack.api.LdapValidator;
-import org.apache.cloudstack.api.command.LdapAddConfigurationCmd;
-import org.apache.cloudstack.api.command.LdapCreateAccountCmd;
-import org.apache.cloudstack.api.command.LdapDeleteConfigurationCmd;
-import org.apache.cloudstack.api.command.LdapImportUsersCmd;
-import org.apache.cloudstack.api.command.LdapListConfigurationCmd;
-import org.apache.cloudstack.api.command.LdapListUsersCmd;
-import org.apache.cloudstack.api.command.LdapUserSearchCmd;
+import org.apache.cloudstack.api.command.*;
import org.apache.cloudstack.api.response.LdapConfigurationResponse;
import org.apache.cloudstack.api.response.LdapUserResponse;
import org.apache.cloudstack.ldap.dao.LdapConfigurationDao;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.utils.Pair;
@@ -153,6 +146,8 @@ public class LdapManagerImpl implements LdapManager, LdapValidator {
cmdList.add(LdapListConfigurationCmd.class);
cmdList.add(LdapCreateAccountCmd.class);
cmdList.add(LdapImportUsersCmd.class);
+ cmdList.add(LDAPConfigCmd.class);
+ cmdList.add(LDAPRemoveCmd.class);
return cmdList;
}
@@ -224,4 +219,4 @@ public class LdapManagerImpl implements LdapManager, LdapValidator {
closeContext(context);
}
}
-}
\ No newline at end of file
+}
[2/2] git commit: updated refs/heads/master to ab025f0
Posted by ap...@apache.org.
Fixed CLOUDSTACK-5436
Fixed few RAT issues reported for new additions of files to repo.
Signed-off-by: Santhosh Edukulla <Sa...@citrix.com>
Signed-off-by: Abhinandan Prateek <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ab025f02
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ab025f02
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ab025f02
Branch: refs/heads/master
Commit: ab025f02692bbbf5d0d27e7126d7f2b37271d380
Parents: db8f83d
Author: Santhosh Edukulla <Sa...@citrix.com>
Authored: Tue Dec 10 05:23:40 2013 +0530
Committer: Abhinandan Prateek <ap...@apache.org>
Committed: Wed Dec 11 15:33:52 2013 +0530
----------------------------------------------------------------------
tools/marvin/marvin/misc/build/CI.md | 18 ++++++++++++++++++
tools/marvin/marvin/misc/build/README.md | 18 ++++++++++++++++++
tools/marvin/marvin/misc/build/advanced_env.py | 7 +++++--
tools/marvin/marvin/misc/build/asf_test.cfg | 18 ++++++++++++++++++
tools/marvin/marvin/misc/build/bashUtils.py | 18 ++++++++++++++++++
.../marvin/marvin/misc/build/buildGenerator.py | 18 ++++++++++++++++++
tools/marvin/marvin/misc/build/configure.py | 17 +++++++++++++++++
tools/marvin/marvin/misc/build/hudson.sh | 17 +++++++++++++++++
tools/marvin/marvin/misc/build/kvm.cfg | 20 +++++++++++++++++++-
tools/marvin/marvin/misc/build/openport.py | 18 ++++++++++++++++++
tools/marvin/marvin/misc/build/redeploy.sh | 19 +++++++++++++++++++
tools/marvin/marvin/misc/build/restartMgmt.py | 17 +++++++++++++++++
.../marvin/marvin/misc/build/system.properties | 19 ++++++++++++++++++-
.../marvin/misc/build/testSetupSuccess.py | 17 +++++++++++++++++
tools/marvin/marvin/misc/build/vm-start.sh | 18 ++++++++++++++++++
tools/marvin/marvin/misc/build/vm-uninstall.sh | 17 +++++++++++++++++
tools/marvin/marvin/misc/build/xen.cfg | 20 +++++++++++++++++++-
tools/marvin/marvin/misc/build/xunitmp/setup.py | 9 +++++----
.../misc/build/xunitmp/xunitmultiprocess.py | 16 ++++++++++++++++
19 files changed, 312 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/CI.md
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/CI.md b/tools/marvin/marvin/misc/build/CI.md
index c320125..0daa597 100644
--- a/tools/marvin/marvin/misc/build/CI.md
+++ b/tools/marvin/marvin/misc/build/CI.md
@@ -1,3 +1,21 @@
+# 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.
+
+
about
=====
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/README.md
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/README.md b/tools/marvin/marvin/misc/build/README.md
index bf0e03c..8dd30db 100644
--- a/tools/marvin/marvin/misc/build/README.md
+++ b/tools/marvin/marvin/misc/build/README.md
@@ -1,3 +1,21 @@
+#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.
+
+
#Cloud AutoDeploy
Scripts here are used to refresh the builds of the management server with those
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/advanced_env.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/advanced_env.py b/tools/marvin/marvin/misc/build/advanced_env.py
index b01e912..07991f1 100644
--- a/tools/marvin/marvin/misc/build/advanced_env.py
+++ b/tools/marvin/marvin/misc/build/advanced_env.py
@@ -1,3 +1,4 @@
+
#!/usr/bin/env python
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -6,15 +7,17 @@
# 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.
+
+
'''
############################################################
# Experimental state of scripts
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/asf_test.cfg
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/asf_test.cfg b/tools/marvin/marvin/misc/build/asf_test.cfg
index b75827d..658afee 100644
--- a/tools/marvin/marvin/misc/build/asf_test.cfg
+++ b/tools/marvin/marvin/misc/build/asf_test.cfg
@@ -1,3 +1,21 @@
+# 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.
+
+
{
"zones": [
{
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/bashUtils.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/bashUtils.py b/tools/marvin/marvin/misc/build/bashUtils.py
index f1bf471..d4e74f3 100644
--- a/tools/marvin/marvin/misc/build/bashUtils.py
+++ b/tools/marvin/marvin/misc/build/bashUtils.py
@@ -1,3 +1,21 @@
+# 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 optparse import OptionParser
from signal import alarm, signal, SIGALRM, SIGKILL
from subprocess import PIPE, Popen
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/buildGenerator.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/buildGenerator.py b/tools/marvin/marvin/misc/build/buildGenerator.py
index 6964943..5794067 100644
--- a/tools/marvin/marvin/misc/build/buildGenerator.py
+++ b/tools/marvin/marvin/misc/build/buildGenerator.py
@@ -1,5 +1,23 @@
#!/usr/bin/env python
+# 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 ConfigParser import ConfigParser
from jenkinsapi import api, jenkins, job
from time import sleep as delay
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/configure.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/configure.py b/tools/marvin/marvin/misc/build/configure.py
index 796ab2d..b571f53 100644
--- a/tools/marvin/marvin/misc/build/configure.py
+++ b/tools/marvin/marvin/misc/build/configure.py
@@ -1,3 +1,20 @@
+# 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 ConfigParser import ConfigParser
from bashUtils import bash
from marvin import configGenerator
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/hudson.sh
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/hudson.sh b/tools/marvin/marvin/misc/build/hudson.sh
index d5ece96..d4eb53b 100644
--- a/tools/marvin/marvin/misc/build/hudson.sh
+++ b/tools/marvin/marvin/misc/build/hudson.sh
@@ -1,3 +1,20 @@
+# 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.
+
hypervisor="kvm"
#Isolate the run into a virtualenv
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/kvm.cfg
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/kvm.cfg b/tools/marvin/marvin/misc/build/kvm.cfg
index d02eefa..630ccba 100644
--- a/tools/marvin/marvin/misc/build/kvm.cfg
+++ b/tools/marvin/marvin/misc/build/kvm.cfg
@@ -1,3 +1,21 @@
+# 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.
+
+
{
"zones": [
{
@@ -222,4 +240,4 @@
"port": 8096
}
]
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/openport.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/openport.py b/tools/marvin/marvin/misc/build/openport.py
index ab2726d..0c40b0a 100644
--- a/tools/marvin/marvin/misc/build/openport.py
+++ b/tools/marvin/marvin/misc/build/openport.py
@@ -1,3 +1,21 @@
+# 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 marvin import dbConnection
def _openIntegrationPort():
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/redeploy.sh
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/redeploy.sh b/tools/marvin/marvin/misc/build/redeploy.sh
index 4ddd302..a9c13cc 100755
--- a/tools/marvin/marvin/misc/build/redeploy.sh
+++ b/tools/marvin/marvin/misc/build/redeploy.sh
@@ -1,4 +1,23 @@
+
#!/bin/bash
+
+# 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.
+
#set -x
usage() {
printf "Usage: %s:\n
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/restartMgmt.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/restartMgmt.py b/tools/marvin/marvin/misc/build/restartMgmt.py
index fd005a8..be5c76a 100644
--- a/tools/marvin/marvin/misc/build/restartMgmt.py
+++ b/tools/marvin/marvin/misc/build/restartMgmt.py
@@ -1,3 +1,20 @@
+# 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 ConfigParser import ConfigParser
from optparse import OptionParser
import marvin
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/system.properties
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/system.properties b/tools/marvin/marvin/misc/build/system.properties
index a4e1e0f..07aa84e 100644
--- a/tools/marvin/marvin/misc/build/system.properties
+++ b/tools/marvin/marvin/misc/build/system.properties
@@ -1,3 +1,20 @@
+# 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.
+
[cobbler]
#nic=network,gateway,cobbler_gateway
eth0=10.223.75.0/25,10.223.75.1,10.223.75.10
@@ -22,4 +39,4 @@ acs-qa-h11=d0:67:e5:ef:e0:1b,password,10.223.75.20
acs-qa-h20=d0:67:e5:ef:e0:ff,password,10.223.78.20
acs-qa-h21=d0:67:e5:ef:e0:2d,password,10.223.78.140
acs-qa-h23=d0:67:e5:f1:b1:36,password,10.223.75.21
-acs-qa-jenkins-slave=9e:2f:91:31:f4:8d,password,10.223.75.11
\ No newline at end of file
+acs-qa-jenkins-slave=9e:2f:91:31:f4:8d,password,10.223.75.11
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/testSetupSuccess.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/testSetupSuccess.py b/tools/marvin/marvin/misc/build/testSetupSuccess.py
index ed167a1..1bf2510 100644
--- a/tools/marvin/marvin/misc/build/testSetupSuccess.py
+++ b/tools/marvin/marvin/misc/build/testSetupSuccess.py
@@ -1,3 +1,20 @@
+# 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.
+
import marvin
import unittest
from marvin.cloudstackTestCase import *
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/vm-start.sh
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/vm-start.sh b/tools/marvin/marvin/misc/build/vm-start.sh
index 48878fb..e23f434 100755
--- a/tools/marvin/marvin/misc/build/vm-start.sh
+++ b/tools/marvin/marvin/misc/build/vm-start.sh
@@ -1,3 +1,21 @@
+# 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.
+
+
#!/bin/bash
# Starts a vm on the xenserver with a predefined MAC and name-label
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/vm-uninstall.sh
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/vm-uninstall.sh b/tools/marvin/marvin/misc/build/vm-uninstall.sh
index 48f2d74..3746050 100755
--- a/tools/marvin/marvin/misc/build/vm-uninstall.sh
+++ b/tools/marvin/marvin/misc/build/vm-uninstall.sh
@@ -1,4 +1,21 @@
+
#!/bin/bash
+# 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.
# Uninstalls a given VM
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/xen.cfg
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/xen.cfg b/tools/marvin/marvin/misc/build/xen.cfg
index bdeacda..5e9464b 100644
--- a/tools/marvin/marvin/misc/build/xen.cfg
+++ b/tools/marvin/marvin/misc/build/xen.cfg
@@ -1,3 +1,21 @@
+# 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.
+
+
{
"zones": [
{
@@ -222,4 +240,4 @@
"port": 8096
}
]
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/xunitmp/setup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/xunitmp/setup.py b/tools/marvin/marvin/misc/build/xunitmp/setup.py
index b5ad6d8..f27cbfd 100644
--- a/tools/marvin/marvin/misc/build/xunitmp/setup.py
+++ b/tools/marvin/marvin/misc/build/xunitmp/setup.py
@@ -2,12 +2,12 @@
# 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 .0 (the
+# 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-.0
-#
+#
+# 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
@@ -15,6 +15,7 @@
# specific language governing permissions and limitations
# under the License.
+
import os
from setuptools import setup
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab025f02/tools/marvin/marvin/misc/build/xunitmp/xunitmultiprocess.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/misc/build/xunitmp/xunitmultiprocess.py b/tools/marvin/marvin/misc/build/xunitmp/xunitmultiprocess.py
index 950a2e3..e119752 100644
--- a/tools/marvin/marvin/misc/build/xunitmp/xunitmultiprocess.py
+++ b/tools/marvin/marvin/misc/build/xunitmp/xunitmultiprocess.py
@@ -1,3 +1,19 @@
+# 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.
"""This plugin provides test results in the standard XUnit XML format.