You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by nlivens <gi...@git.apache.org> on 2016/06/02 10:15:07 UTC

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

GitHub user nlivens opened a pull request:

    https://github.com/apache/cloudstack/pull/1579

    CLOUDSTACK-9403 : Support for shared networks in Nuage VSP plugin

    Test Results are:-
    Valiate that ROOT admin is NOT able to deploy a VM for a user in ROOT domain in a shared network with ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for a admin user in a shared network with ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_differentdomain | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for admin user in the same domain but in a ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for user in the same domain but in a different ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_domainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for regular user in a shared network with scope=account ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_user | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for user in ROOT domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for a domain admin users in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for other users in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_domainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for admin user in a domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for any user in a subdomain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain admin user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for domain admin user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for domain user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_domainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain admin user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for sub domain admin user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for sub domain user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for domain admin user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for domain user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_domainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain admin user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_parentdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_parentdomainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for subdomain admin user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for subdomain user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for an regular user in ROOT domain in a shared network with scope=account ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able NOT able to deploy a VM for an regular user from a differnt domain in a shared network with scope=account ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_differentdomain | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for an admin user in the same domain but belonging ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in the same domain but belonging to a ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for an regular user in a shared network with scope=account ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_user | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in other domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_crossdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for a domain admin user in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for a domain user in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for a sub domain admin user in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for a sub domain user in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for domain admin user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for domain user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_domainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy VM for parent domain admin user in shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for parent domain user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for sub domain admin user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for sub domain user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for admin user in domain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for regular user in domain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_domainuser | Status : SUCCESS ===
    ok
    Validate that Domain admin is NOT able to deploy VM for admin user in parent domain in shared network with scope=Domain subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_parentdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin NOT able to deploy VM for regular user in parent domain in shared network with scope=Domain subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_parentdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for admin user in subdomain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for regular user in subdomain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that regular user is able NOT able to deploy a VM for another user in the same domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_regularuser_scope_all_anotherusersamedomain | Status : SUCCESS ===
    ok
    Valiate that regular user is able NOT able to deploy a VM for another user in a different domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_regularuser_scope_all_crossdomain | Status : SUCCESS ===
    ok
    ----------------------------------------------------------------------
    Ran 51 tests in 3192.356s
    OK
    For monitoring useCase test runs are:-
    Valiate that Normal user in the same domain able to add NIC in a shared network with scope=all ... === TestName: test_01_addNic_in_sharedNetwork_scope_all_as_domainuser | Status : SUCCESS ===
    ok
    Valiate that Parent domain admin is able to add a NIC in a shared network with scope=all ... === TestName: test_02_addNic_in_sharedNetwork_scope_all_as_domain_parentAdmin | Status : SUCCESS ===
    ok
    Valiate that User can enable staticNat on VPC NIC where second nicn is in a shared network with scope=all ... === TestName: test_03_staticNat_in_VPC_secondNic_sharedNetwork_scope_all | Status : SUCCESS ===
    ok
    Validate that reboot VM is done successfully without any Error ... === TestName: test_04_rebootVM_after_sharedNetwork_nic | Status : SUCCESS ===
    ok
    Validate that restart Tier Network is done successfully with cleanup ... === TestName: test_05_restart_Tier_VPC_Network_sharedNetwork_nic | Status : SUCCESS ===
    ok
    Validate that restart Shared Network is done successfully without any Error ... === TestName: test_06_restart_sharedNetwork_scope_all | Status : SUCCESS ===
    ok
    Valiate that Normal user in the same domain able to remove NIC in a shared network which is added by Parent Domain Admin ... === TestName: test_07_removeNic_in_sharedNetwork_scope_all_as_domainuser | Status : SUCCESS ===
    ok
    Valiate that Parent domain admin is able to remove a NIC which is added by child domain user ... === TestName: test_08_removeNic_in_sharedNetwork_scope_all_as_domain_parentAdmin | Status : SUCCESS ===
    ok
    Valiate that Normal user in the same domain able to add NIC in a shared network with scope=domain without subdomain Access ... === TestName: test_09_addNic_in_sharedNetwork_scope_domain_as_domainuser | Status : SUCCESS ===
    ok
    Valiate that Normal user in the same domain able to add NIC in a shared network with scope=domain with subdomain Access ... === TestName: test_10_addNic_in_sharedNetwork_scope_domain_subdomain_as_domainuser | Status : SUCCESS ===
    ok
    ----------------------------------------------------------------------
    Ran 10 tests in 744.354s
    OK

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nlivens/cloudstack nuage_vsp_shared_networks

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cloudstack/pull/1579.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1579
    
----
commit c86ab936f03b9815debaa535065df10dc724149f
Author: Eric Waegeman <er...@nuagenetworks.net>
Date:   2016-05-26T09:37:52Z

    CLOUDSTACK-9401 : Support for Internal DNS in Nuage VSP plugin

commit 064646de7604ffb58a4ae7ecc3db103e4e067fbf
Author: rahul singal <ra...@alcatel-lucent.com>
Date:   2016-06-02T09:30:25Z

    CLOUDSTACK-9401 : Marvin tests for Internal DNS verification with NuageVsp

commit 65c7c42de5aad8a0de3b45072e2f143ba0b38ae9
Author: Nick Livens <ni...@nuagenetworks.net>
Date:   2016-04-28T14:24:50Z

    CLOUDSTACK-9403 : Support for shared networks in Nuage VSP plugin

commit 65391675fcd41827ded12dab39c5198d1ca4c528
Author: rahul singal <ra...@alcatel-lucent.com>
Date:   2016-06-01T15:31:24Z

    CLOUDSTACK-9403 : Marvin tests for shared networks verification with NuageVsp

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd a Trillian-Jenkins test job (centos7 mgmt + vmware-55u3) has been kicked to run smoke tests


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd a Trillian-Jenkins matrix job (centos6 mgmt + xs65sp1, centos7 mgmt + vmware55u3, centos7 mgmt + kvmcentos7) has been kicked to run smoke tests


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by fmaximus <gi...@git.apache.org>.
Github user fmaximus commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90623476
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    +    private static final String NAME = "name";
    +    private static final String GUID = "guid";
    +    private static final String ZONE_ID = "zoneid";
    +    private static final String HOST_NAME = "hostname";
    +    private static final String CMS_USER = "cmsuser";
    +    private static final String CMS_USER_PASSWORD = "cmsuserpass";
    +    private static final String PORT = "port";
    +    private static final String API_VERSION = "apiversion";
    +    private static final String API_RELATIVE_PATH = "apirelativepath";
    +    private static final String RETRY_COUNT = "retrycount";
    +    private static final String RETRY_INTERVAL = "retryinterval";
    +    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
    +
    +    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
    +
    +    private String _name;
    +    private String _guid;
    +    private String _zoneId;
    +    private String _hostName;
    +    private String _cmsUser;
    +    private String _cmsUserPassword;
    +    private String _port;
    +    private String _apiVersion;
    +    private String _apiRelativePath;
    +    private String _retryCount;
    +    private String _retryInterval;
    +    private String _nuageVspCmsId;
    +
    +    public String name() {
    +        return _name;
    +    }
    +
    +    public String guid() {
    +        return this._guid;
    +    }
    +
    +    public NuageVspResourceConfiguration guid(String guid) {
    +        this._guid = guid;
    +        return this;
    +    }
    +
    +    public String zoneId() {
    +        return this._zoneId;
    +    }
    +
    +    public NuageVspResourceConfiguration zoneId(String zoneId) {
    +        this._zoneId = zoneId;
    +        return this;
    +    }
    +
    +    public String hostName() {
    +        return this._hostName;
    +    }
    +
    +    public NuageVspResourceConfiguration hostName(String hostName) {
    +        this._hostName = hostName;
    +        this._name = "Nuage VSD - " + _hostName;
    +        return this;
    +    }
    +
    +    public String cmsUser() {
    +        return this._cmsUser;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUser(String cmsUser) {
    +        this._cmsUser = cmsUser;
    +        return this;
    +    }
    +
    +    public String cmsUserPassword() {
    +        return this._cmsUserPassword;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUserPassword(String cmsUserPassword) {
    +        this._cmsUserPassword = cmsUserPassword;
    +        return this;
    +    }
    +
    +    public String port() {
    +        return this._port;
    +    }
    +
    +    public NuageVspResourceConfiguration port(String port) {
    +        this._port = port;
    +        return this;
    +    }
    +
    +    public String apiVersion() {
    +        return this._apiVersion;
    +    }
    +
    +    public NuageVspResourceConfiguration apiVersion(String apiVersion) {
    +        this._apiVersion = apiVersion;
    +        return this;
    +    }
    +
    +    public String apiRelativePath() {
    +        return this._apiRelativePath;
    +    }
    +
    +    public NuageVspResourceConfiguration apiRelativePath(String apiRelativePath) {
    +        this._apiRelativePath = apiRelativePath;
    +        return this;
    +    }
    +
    +    public String retryCount() {
    +        return this._retryCount;
    +    }
    +
    +    public NuageVspResourceConfiguration retryCount(String retryCount) {
    +        this._retryCount = retryCount;
    +        return this;
    +    }
    +
    +    public String retryInterval() {
    +        return this._retryInterval;
    +    }
    +
    +    public NuageVspResourceConfiguration retryInterval(String retryInterval) {
    +        this._retryInterval = retryInterval;
    +        return this;
    +    }
    +
    +    public String nuageVspCmsId() {
    +        return this._nuageVspCmsId;
    +    }
    +
    +    public NuageVspResourceConfiguration nuageVspCmsId(String nuageVspCmsId) {
    +        this._nuageVspCmsId = nuageVspCmsId;
    +        return this;
    +    }
    +
    +    public String getRootPath(){
    --- End diff --
    
    NuageVspResourceConfiguration is used as a field in UpdateNuageVspDeviceCommand.
    As this might be (de)serialized to Json is the resource is on a different management server in the cluster, and URI doesn't have a Gson TypeAdapter.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @prashanthvarma we're waiting for a final LGTM from @murali-reddy can you do a `push -f` to re-kick Travis. (though I checked the failure is not due to your PR). @murali-reddy can you please review this, let's merge this asap (likely by eod tomorrow/today).


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90451387
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/UpdateNuageVspDeviceCommand.java ---
    @@ -0,0 +1,43 @@
    +//
    +// 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.agent.api.manager;
    +
    +import com.cloud.agent.api.Command;
    +import com.cloud.network.resource.NuageVspResourceConfiguration;
    +
    +public class UpdateNuageVspDeviceCommand extends Command {
    +
    +    NuageVspResourceConfiguration configuration;
    --- End diff --
    
    Why isn't this attribute declared `private`?  Also, could it be declared `final`?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by krissterckx <gi...@git.apache.org>.
Github user krissterckx commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    LGTM


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by sgoeminn <gi...@git.apache.org>.
Github user sgoeminn commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90509963
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java ---
    @@ -387,41 +400,39 @@ public boolean canEnableIndividualServices() {
     
         @Override
         public boolean destroy(Network network, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException {
    -        if (!canHandle(network, Service.Connectivity)) {
    -            return false;
    -        }
    -
    -        return true;
    +        return canHandle(network, Service.Connectivity);
         }
     
         @Override
         public boolean verifyServicesCombination(Set<Service> services) {
    --- End diff --
    
    We added a Preconditions.checkNotNull check on services.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/cloudstack/pull/1579


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90455021
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspRequestWrapper.java ---
    @@ -0,0 +1,78 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.Hashtable;
    +import java.util.Set;
    +
    +import org.reflections.Reflections;
    +
    +import com.cloud.agent.api.Answer;
    +import com.cloud.agent.api.Command;
    +import com.cloud.resource.CommandWrapper;
    +import com.cloud.resource.RequestWrapper;
    +import com.cloud.resource.ServerResource;
    +
    +public class NuageVspRequestWrapper extends RequestWrapper {
    +
    +    private static NuageVspRequestWrapper instance;
    +
    +    static {
    +        instance = new NuageVspRequestWrapper();
    +    }
    +
    +    Reflections baseWrappers = new Reflections("com.cloud.network.vsp.resource.wrapper");
    +
    +    @SuppressWarnings("rawtypes")
    +    Set<Class<? extends CommandWrapper>> baseSet = baseWrappers.getSubTypesOf(CommandWrapper.class);
    --- End diff --
    
    Per previous comment, this attribute seems like it could be `private static final`.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    <b>Trillian test result (tid-584)</b>
    Environment: vmware-55u3 (x2), Advanced Networking with Mgmt server 7
    Total time taken: 41829 seconds
    Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1579-t584-vmware-55u3.zip
    Test completed. 48 look ok, 1 have error(s)
    
    
    Test | Result | Time (s) | Test File
    --- | --- | --- | ---
    test_01_vpc_site2site_vpn | `Error` | 582.72 | test_vpc_vpn.py
    test_01_redundant_vpc_site2site_vpn | `Error` | 738.70 | test_vpc_vpn.py
    test_01_vpc_remote_access_vpn | Success | 186.91 | test_vpc_vpn.py
    test_02_VPC_default_routes | Success | 446.26 | test_vpc_router_nics.py
    test_01_VPC_nics_after_destroy | Success | 718.54 | test_vpc_router_nics.py
    test_05_rvpc_multi_tiers | Success | 696.81 | test_vpc_redundant.py
    test_04_rvpc_network_garbage_collector_nics | Success | 1540.80 | test_vpc_redundant.py
    test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers | Success | 741.13 | test_vpc_redundant.py
    test_02_redundant_VPC_default_routes | Success | 797.51 | test_vpc_redundant.py
    test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Success | 1418.36 | test_vpc_redundant.py
    test_09_delete_detached_volume | Success | 30.97 | test_volumes.py
    test_06_download_detached_volume | Success | 90.76 | test_volumes.py
    test_05_detach_volume | Success | 110.33 | test_volumes.py
    test_04_delete_attached_volume | Success | 15.25 | test_volumes.py
    test_03_download_attached_volume | Success | 20.34 | test_volumes.py
    test_02_attach_volume | Success | 53.81 | test_volumes.py
    test_01_create_volume | Success | 531.24 | test_volumes.py
    test_03_delete_vm_snapshots | Success | 280.24 | test_vm_snapshots.py
    test_02_revert_vm_snapshots | Success | 232.41 | test_vm_snapshots.py
    test_01_test_vm_volume_snapshot | Success | 212.01 | test_vm_snapshots.py
    test_01_create_vm_snapshots | Success | 167.15 | test_vm_snapshots.py
    test_deploy_vm_multiple | Success | 298.80 | test_vm_life_cycle.py
    test_deploy_vm | Success | 0.03 | test_vm_life_cycle.py
    test_advZoneVirtualRouter | Success | 0.03 | test_vm_life_cycle.py
    test_10_attachAndDetach_iso | Success | 27.09 | test_vm_life_cycle.py
    test_09_expunge_vm | Success | 125.27 | test_vm_life_cycle.py
    test_08_migrate_vm | Success | 81.31 | test_vm_life_cycle.py
    test_07_restore_vm | Success | 0.11 | test_vm_life_cycle.py
    test_06_destroy_vm | Success | 10.16 | test_vm_life_cycle.py
    test_03_reboot_vm | Success | 5.15 | test_vm_life_cycle.py
    test_02_start_vm | Success | 25.30 | test_vm_life_cycle.py
    test_01_stop_vm | Success | 10.15 | test_vm_life_cycle.py
    test_CreateTemplateWithDuplicateName | Success | 367.43 | test_templates.py
    test_08_list_system_templates | Success | 0.04 | test_templates.py
    test_07_list_public_templates | Success | 0.04 | test_templates.py
    test_05_template_permissions | Success | 0.06 | test_templates.py
    test_04_extract_template | Success | 25.50 | test_templates.py
    test_03_delete_template | Success | 5.11 | test_templates.py
    test_02_edit_template | Success | 90.16 | test_templates.py
    test_01_create_template | Success | 146.06 | test_templates.py
    test_10_destroy_cpvm | Success | 297.40 | test_ssvm.py
    test_09_destroy_ssvm | Success | 273.98 | test_ssvm.py
    test_08_reboot_cpvm | Success | 157.04 | test_ssvm.py
    test_07_reboot_ssvm | Success | 158.62 | test_ssvm.py
    test_06_stop_cpvm | Success | 237.05 | test_ssvm.py
    test_05_stop_ssvm | Success | 209.20 | test_ssvm.py
    test_04_cpvm_internals | Success | 1.24 | test_ssvm.py
    test_03_ssvm_internals | Success | 4.41 | test_ssvm.py
    test_02_list_cpvm_vm | Success | 0.14 | test_ssvm.py
    test_01_list_sec_storage_vm | Success | 0.14 | test_ssvm.py
    test_01_snapshot_root_disk | Success | 96.79 | test_snapshots.py
    test_04_change_offering_small | Success | 132.33 | test_service_offerings.py
    test_03_delete_service_offering | Success | 0.04 | test_service_offerings.py
    test_02_edit_service_offering | Success | 0.09 | test_service_offerings.py
    test_01_create_service_offering | Success | 0.12 | test_service_offerings.py
    test_02_sys_template_ready | Success | 0.14 | test_secondary_storage.py
    test_01_sys_vm_start | Success | 0.19 | test_secondary_storage.py
    test_09_reboot_router | Success | 166.11 | test_routers.py
    test_08_start_router | Success | 146.01 | test_routers.py
    test_07_stop_router | Success | 20.23 | test_routers.py
    test_06_router_advanced | Success | 0.06 | test_routers.py
    test_05_router_basic | Success | 0.04 | test_routers.py
    test_04_restart_network_wo_cleanup | Success | 5.66 | test_routers.py
    test_03_restart_network_cleanup | Success | 196.87 | test_routers.py
    test_02_router_internal_adv | Success | 1.07 | test_routers.py
    test_01_router_internal_basic | Success | 0.54 | test_routers.py
    test_router_dns_guestipquery | Success | 79.22 | test_router_dns.py
    test_router_dns_externalipquery | Success | 0.06 | test_router_dns.py
    test_router_dhcphosts | Success | 166.13 | test_router_dhcphosts.py
    test_router_dhcp_opts | Success | 21.72 | test_router_dhcphosts.py
    test_01_updatevolumedetail | Success | 0.10 | test_resource_detail.py
    test_01_reset_vm_on_reboot | Success | 75.68 | test_reset_vm_on_reboot.py
    test_createRegion | Success | 0.04 | test_regions.py
    test_create_pvlan_network | Success | 5.22 | test_pvlan.py
    test_dedicatePublicIpRange | Success | 0.46 | test_public_ip_range.py
    test_04_rvpc_privategw_static_routes | Success | 1288.20 | test_privategw_acl.py
    test_03_vpc_privategw_restart_vpc_cleanup | Success | 1292.54 | test_privategw_acl.py
    test_02_vpc_privategw_static_routes | Success | 881.08 | test_privategw_acl.py
    test_01_vpc_privategw_acl | Success | 208.94 | test_privategw_acl.py
    test_01_primary_storage_nfs | Success | 38.67 | test_primary_storage.py
    test_createPortablePublicIPRange | Success | 15.22 | test_portable_publicip.py
    test_createPortablePublicIPAcquire | Success | 15.46 | test_portable_publicip.py
    test_isolate_network_password_server | Success | 97.80 | test_password_server.py
    test_UpdateStorageOverProvisioningFactor | Success | 0.15 | test_over_provisioning.py
    test_oobm_zchange_password | Success | 30.72 | test_outofbandmanagement.py
    test_oobm_multiple_mgmt_server_ownership | Success | 16.32 | test_outofbandmanagement.py
    test_oobm_issue_power_status | Success | 10.24 | test_outofbandmanagement.py
    test_oobm_issue_power_soft | Success | 15.34 | test_outofbandmanagement.py
    test_oobm_issue_power_reset | Success | 10.38 | test_outofbandmanagement.py
    test_oobm_issue_power_on | Success | 15.44 | test_outofbandmanagement.py
    test_oobm_issue_power_off | Success | 15.36 | test_outofbandmanagement.py
    test_oobm_issue_power_cycle | Success | 15.44 | test_outofbandmanagement.py
    test_oobm_enabledisable_across_clusterzones | Success | 78.29 | test_outofbandmanagement.py
    test_oobm_enable_feature_valid | Success | 0.14 | test_outofbandmanagement.py
    test_oobm_enable_feature_invalid | Success | 0.10 | test_outofbandmanagement.py
    test_oobm_disable_feature_valid | Success | 0.17 | test_outofbandmanagement.py
    test_oobm_disable_feature_invalid | Success | 0.13 | test_outofbandmanagement.py
    test_oobm_configure_invalid_driver | Success | 0.08 | test_outofbandmanagement.py
    test_oobm_configure_default_driver | Success | 0.08 | test_outofbandmanagement.py
    test_oobm_background_powerstate_sync | Success | 29.53 | test_outofbandmanagement.py
    test_extendPhysicalNetworkVlan | Success | 15.35 | test_non_contigiousvlan.py
    test_01_nic | Success | 672.50 | test_nic.py
    test_releaseIP | Success | 440.60 | test_network.py
    test_reboot_router | Success | 640.87 | test_network.py
    test_public_ip_user_account | Success | 10.42 | test_network.py
    test_public_ip_admin_account | Success | 40.35 | test_network.py
    test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Success | 76.90 | test_network.py
    test_network_rules_acquired_public_ip_2_nat_rule | Success | 61.86 | test_network.py
    test_network_rules_acquired_public_ip_1_static_nat_rule | Success | 125.72 | test_network.py
    test_delete_account | Success | 359.70 | test_network.py
    test_02_port_fwd_on_non_src_nat | Success | 55.68 | test_network.py
    test_01_port_fwd_on_src_nat | Success | 111.82 | test_network.py
    test_nested_virtualization_vmware | Success | 439.99 | test_nested_virtualization.py
    test_nic_secondaryip_add_remove | Success | 435.01 | test_multipleips_per_nic.py
    login_test_saml_user | Success | 25.04 | test_login.py
    test_assign_and_removal_lb | Success | 148.87 | test_loadbalance.py
    test_02_create_lb_rule_non_nat | Success | 208.12 | test_loadbalance.py
    test_01_create_lb_rule_src_nat | Success | 210.15 | test_loadbalance.py
    test_03_list_snapshots | Success | 0.09 | test_list_ids_parameter.py
    test_02_list_templates | Success | 0.04 | test_list_ids_parameter.py
    test_01_list_volumes | Success | 0.03 | test_list_ids_parameter.py
    test_07_list_default_iso | Success | 0.06 | test_iso.py
    test_05_iso_permissions | Success | 0.07 | test_iso.py
    test_04_extract_Iso | Success | 5.29 | test_iso.py
    test_03_delete_iso | Success | 95.18 | test_iso.py
    test_02_edit_iso | Success | 0.09 | test_iso.py
    test_01_create_iso | Success | 21.91 | test_iso.py
    test_04_rvpc_internallb_haproxy_stats_on_all_interfaces | Success | 692.43 | test_internal_lb.py
    test_03_vpc_internallb_haproxy_stats_on_all_interfaces | Success | 556.22 | test_internal_lb.py
    test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80 | Success | 1215.74 | test_internal_lb.py
    test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Success | 921.21 | test_internal_lb.py
    test_dedicateGuestVlanRange | Success | 10.35 | test_guest_vlan_range.py
    test_UpdateConfigParamWithScope | Success | 0.14 | test_global_settings.py
    test_rolepermission_lifecycle_update | Success | 7.17 | test_dynamicroles.py
    test_rolepermission_lifecycle_list | Success | 6.89 | test_dynamicroles.py
    test_rolepermission_lifecycle_delete | Success | 6.76 | test_dynamicroles.py
    test_rolepermission_lifecycle_create | Success | 6.78 | test_dynamicroles.py
    test_rolepermission_lifecycle_concurrent_updates | Success | 7.02 | test_dynamicroles.py
    test_role_lifecycle_update_role_inuse | Success | 6.85 | test_dynamicroles.py
    test_role_lifecycle_update | Success | 6.86 | test_dynamicroles.py
    test_role_lifecycle_list | Success | 6.78 | test_dynamicroles.py
    test_role_lifecycle_delete | Success | 11.96 | test_dynamicroles.py
    test_role_lifecycle_create | Success | 6.86 | test_dynamicroles.py
    test_role_inuse_deletion | Success | 6.77 | test_dynamicroles.py
    test_role_account_acls_multiple_mgmt_servers | Success | 9.12 | test_dynamicroles.py
    test_role_account_acls | Success | 9.21 | test_dynamicroles.py
    test_default_role_deletion | Success | 6.87 | test_dynamicroles.py
    test_04_create_fat_type_disk_offering | Success | 0.07 | test_disk_offerings.py
    test_03_delete_disk_offering | Success | 0.04 | test_disk_offerings.py
    test_02_edit_disk_offering | Success | 0.05 | test_disk_offerings.py
    test_02_create_sparse_type_disk_offering | Success | 0.08 | test_disk_offerings.py
    test_01_create_disk_offering | Success | 0.37 | test_disk_offerings.py
    test_deployvm_userdispersing | Success | 60.85 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userconcentrated | Success | 126.25 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_firstfit | Success | 221.69 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userdata_post | Success | 25.57 | test_deploy_vm_with_userdata.py
    test_deployvm_userdata | Success | 171.61 | test_deploy_vm_with_userdata.py
    test_02_deploy_vm_root_resize | Success | 6.77 | test_deploy_vm_root_resize.py
    test_01_deploy_vm_root_resize | Success | 6.76 | test_deploy_vm_root_resize.py
    test_00_deploy_vm_root_resize | Success | 6.90 | test_deploy_vm_root_resize.py
    test_deploy_vm_from_iso | Success | 258.75 | test_deploy_vm_iso.py
    test_3d_gpu_support | Success | 536.56 | test_deploy_vgpu_enabled_vm.py
    test_DeployVmAntiAffinityGroup | Success | 267.26 | test_affinity_groups.py
    test_08_resize_volume | Skipped | 5.11 | test_volumes.py
    test_07_resize_fail | Skipped | 10.29 | test_volumes.py
    test_06_copy_template | Skipped | 0.00 | test_templates.py
    test_static_role_account_acls | Skipped | 0.03 | test_staticroles.py
    test_11_ss_nfs_version_on_ssvm | Skipped | 0.04 | test_ssvm.py
    test_01_scale_vm | Skipped | 66.56 | test_scale_vm.py
    test_01_primary_storage_iscsi | Skipped | 0.04 | test_primary_storage.py
    test_06_copy_iso | Skipped | 0.00 | test_iso.py
    test_deploy_vgpu_enabled_vm | Skipped | 2.00 | test_deploy_vgpu_enabled_vm.py



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @jburwell @rhtyd We want to get this PR merged in after merging in PR #1580 as there are some feature interactions and dependencies. Thus, we will rebase this PR on top of the PR #1580 (2 dev + 2 test commits) and let you know.
    
    Let me know, if this is fine with you.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorangutan test


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by sgoeminn <gi...@git.apache.org>.
Github user sgoeminn commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90510516
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java ---
    @@ -387,41 +400,39 @@ public boolean canEnableIndividualServices() {
     
         @Override
         public boolean destroy(Network network, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException {
    -        if (!canHandle(network, Service.Connectivity)) {
    -            return false;
    -        }
    -
    -        return true;
    +        return canHandle(network, Service.Connectivity);
         }
     
         @Override
         public boolean verifyServicesCombination(Set<Service> services) {
    -        // This element can only function in a NuageVsp based
    -        // SDN network, so Connectivity needs to be present here
    -        if (!services.contains(Service.Connectivity)) {
    -            s_logger.warn("Unable to support services combination without Connectivity service provided by Nuage VSP.");
    -            return false;
    +        final Sets.SetView<Service> missingServices = Sets.difference(REQUIRED_SERVICES, services);
    +        final Sets.SetView<Service> unsupportedServices = Sets.intersection(UNSUPPORTED_SERVICES, services);
    +        final Sets.SetView<Service> wantedServices = Sets.intersection(NUAGE_ONLY_SERVICES, new HashSet<>());
    +
    +        if (!missingServices.isEmpty()) {
    +            throw new UnsupportedServiceException("Provider " + Provider.NuageVsp + " requires services: " + missingServices);
             }
     
    -        if (!services.contains(Service.SourceNat)) {
    -            s_logger.warn("Unable to support services combination without SourceNat service provided by Nuage VSP.");
    +        if (!unsupportedServices.isEmpty()) {
    +            // NuageVsp doesn't implement any of these services.
    +            // So if these services are requested, we can't handle it.
    +            s_logger.debug("Unable to support services combination. The services " + unsupportedServices + " are not supported by Nuage VSP.");
    --- End diff --
    
    It's a user action that can cause this logging. We don't want this message to show up as a warning in the server logs, because for example it would be troublesome for system admins who get notified of each warning.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @jburwell @rhtyd I have rebased this PR with latest master, and squashed commits.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Thank you all for helping us in merging this PR, much appreciated !!


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by sgoeminn <gi...@git.apache.org>.
Github user sgoeminn commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90510701
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/CleanUpDomainCommand.java ---
    @@ -0,0 +1,63 @@
    +//
    +// 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.agent.api.manager;
    +
    +import com.cloud.agent.api.Command;
    +import net.nuage.vsp.acs.client.api.model.VspDomainCleanUp;
    +
    +public class CleanUpDomainCommand extends Command {
    +
    +    private final VspDomainCleanUp _domainCleanUp;
    +
    +    public CleanUpDomainCommand(VspDomainCleanUp domainCleanUp) {
    --- End diff --
    
    We added a null check (Preconditions.checkNotNull(domainCleanUp);).


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by krissterckx <gi...@git.apache.org>.
Github user krissterckx commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Thanks @rhtyd , I resubmitted


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorangutan package


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd We have now resolved all your review comments including adding of the requested unit test coverage, and we have rebased this PR with the latest master (i.e. contains PR #1801 fix).
    
    Here is my analysis regarding the following regression test failures:
    
    1) test_06_download_detached_volume -> Failed to access SSVM to extractVolume download info.
    
    Above failing test case tries to download a volume unattached to a VM by extracting its download info from SSVM, which fails due to failed access/connection with SSVM. 
    
    This test case passes in other test environments (e.g. KVM and VMware). Thus, most likely, its a test environment (intermittent) issue.
    
    2) test_01_create_template -> Failed to delete the created template during test case tearDown
    
    Above failing test case creates a template (adds to cleanup list), does some assertions on the returned list of templates, and goes to test case tearDown (deletes objects in cleanup list). 
    
    Similar tests pass in other test cases of the same test script "test-templates.py" and in other test environments (e.g. xenserver and VMware). One major difference between the failing test case and others is that the deletion of template is happening right after its creation (bit too quick). Thus, most likely, it is a timing related (intermittent) issue.
    
    Let me know, if you need anything from our side.
    
    cc: @jburwell 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90457477
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    +    private static final String NAME = "name";
    +    private static final String GUID = "guid";
    +    private static final String ZONE_ID = "zoneid";
    +    private static final String HOST_NAME = "hostname";
    +    private static final String CMS_USER = "cmsuser";
    +    private static final String CMS_USER_PASSWORD = "cmsuserpass";
    +    private static final String PORT = "port";
    +    private static final String API_VERSION = "apiversion";
    +    private static final String API_RELATIVE_PATH = "apirelativepath";
    +    private static final String RETRY_COUNT = "retrycount";
    +    private static final String RETRY_INTERVAL = "retryinterval";
    +    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
    +
    +    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
    +
    +    private String _name;
    +    private String _guid;
    +    private String _zoneId;
    +    private String _hostName;
    +    private String _cmsUser;
    +    private String _cmsUserPassword;
    +    private String _port;
    +    private String _apiVersion;
    +    private String _apiRelativePath;
    +    private String _retryCount;
    +    private String _retryInterval;
    +    private String _nuageVspCmsId;
    +
    +    public String name() {
    +        return _name;
    +    }
    +
    +    public String guid() {
    +        return this._guid;
    +    }
    +
    +    public NuageVspResourceConfiguration guid(String guid) {
    +        this._guid = guid;
    +        return this;
    +    }
    +
    +    public String zoneId() {
    +        return this._zoneId;
    +    }
    +
    +    public NuageVspResourceConfiguration zoneId(String zoneId) {
    +        this._zoneId = zoneId;
    +        return this;
    +    }
    +
    +    public String hostName() {
    +        return this._hostName;
    +    }
    +
    +    public NuageVspResourceConfiguration hostName(String hostName) {
    +        this._hostName = hostName;
    +        this._name = "Nuage VSD - " + _hostName;
    +        return this;
    +    }
    +
    +    public String cmsUser() {
    +        return this._cmsUser;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUser(String cmsUser) {
    +        this._cmsUser = cmsUser;
    +        return this;
    +    }
    +
    +    public String cmsUserPassword() {
    +        return this._cmsUserPassword;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUserPassword(String cmsUserPassword) {
    +        this._cmsUserPassword = cmsUserPassword;
    +        return this;
    +    }
    +
    +    public String port() {
    +        return this._port;
    +    }
    +
    +    public NuageVspResourceConfiguration port(String port) {
    +        this._port = port;
    +        return this;
    +    }
    +
    +    public String apiVersion() {
    +        return this._apiVersion;
    +    }
    +
    +    public NuageVspResourceConfiguration apiVersion(String apiVersion) {
    +        this._apiVersion = apiVersion;
    +        return this;
    +    }
    +
    +    public String apiRelativePath() {
    +        return this._apiRelativePath;
    +    }
    +
    +    public NuageVspResourceConfiguration apiRelativePath(String apiRelativePath) {
    +        this._apiRelativePath = apiRelativePath;
    +        return this;
    +    }
    +
    +    public String retryCount() {
    +        return this._retryCount;
    +    }
    +
    +    public NuageVspResourceConfiguration retryCount(String retryCount) {
    +        this._retryCount = retryCount;
    +        return this;
    +    }
    +
    +    public String retryInterval() {
    +        return this._retryInterval;
    +    }
    +
    +    public NuageVspResourceConfiguration retryInterval(String retryInterval) {
    +        this._retryInterval = retryInterval;
    +        return this;
    +    }
    +
    +    public String nuageVspCmsId() {
    +        return this._nuageVspCmsId;
    +    }
    +
    +    public NuageVspResourceConfiguration nuageVspCmsId(String nuageVspCmsId) {
    +        this._nuageVspCmsId = nuageVspCmsId;
    +        return this;
    +    }
    +
    +    public String getRootPath(){
    +        return "https://" + _hostName + ":" + _port + "/nuage";
    +    }
    +
    +    public String getApiPath() {
    +            return "https://" + _hostName + ":" + _port + "/nuage/api/" + _apiVersion;
    +    }
    +
    +    public NuageVspApiVersion getApiVersion() throws ConfigurationException {
    +        try {
    +            if(_apiVersion != null) {
    +                return NuageVspApiVersion.fromString(_apiVersion);
    +            }
    +            return null;
    +        } catch (IllegalArgumentException e) {
    +            throw new ConfigurationException("Incorrect API version");
    +        }
    +    }
    +
    +    public Map<String, String> build() {
    +        Map<String, String> map = new HashMap<>();
    +        if (_guid != null) map.put(GUID, _guid);
    +        if (_zoneId != null) map.put(ZONE_ID, _zoneId);
    +        if (_hostName != null) map.put(HOST_NAME, _hostName);
    +        if (_cmsUser != null) map.put(CMS_USER, _cmsUser);
    +        if (_cmsUserPassword != null) map.put(CMS_USER_PASSWORD, _cmsUserPassword);
    +        if (_port != null) map.put(PORT, _port);
    +        if (_apiVersion != null) map.put(API_VERSION, _apiVersion);
    +        if (_apiRelativePath != null) map.put(API_RELATIVE_PATH, _apiRelativePath);
    +        if (_retryCount != null) map.put(RETRY_COUNT, _retryCount);
    +        if (_retryInterval != null) map.put(RETRY_INTERVAL, _retryInterval);
    +        if (_nuageVspCmsId != null) map.put(NUAGE_VSP_CMS_ID, _nuageVspCmsId);
    +        return  map;
    +    }
    +
    +    public static NuageVspResourceConfiguration fromConfiguration(Map<String, ?> configuration) {
    +        return new NuageVspResourceConfiguration()
    +                .guid((String)configuration.get(GUID))
    +                .zoneId((String)configuration.get(ZONE_ID))
    +                .hostName((String)configuration.get(HOST_NAME))
    +                .cmsUser((String)configuration.get(CMS_USER))
    +                .cmsUserPassword((String)configuration.get(CMS_USER_PASSWORD))
    +                .port((String)configuration.get(PORT))
    +                .apiVersion((String)configuration.get(API_VERSION))
    +                .apiRelativePath((String)configuration.get(API_RELATIVE_PATH))
    +                .retryCount((String)configuration.get(RETRY_COUNT))
    +                .retryInterval((String)configuration.get(RETRY_INTERVAL))
    +                .nuageVspCmsId((String)configuration.get(NUAGE_VSP_CMS_ID));
    +    }
    +
    +    private void verifyNotNull(String name, String value) throws ConfigurationException {
    +        if (value == null) {
    +            throw new ConfigurationException("Unable to find " + name);
    +        }
    +    }
    +
    +    private void verifyNotEmpty(String name, String value) throws ConfigurationException {
    +        if (org.apache.commons.lang.StringUtils.isEmpty(value)) {
    +            throw new ConfigurationException("Unable to find " + name);
    +        }
    +    }
    +
    +    public void validate() throws ConfigurationException {
    +        verifyNotNull("name", _name);
    +        verifyNotNull("guid", _guid);
    +        verifyNotNull("zone", _zoneId);
    +        verifyNotNull("hostname", _hostName);
    +        verifyNotNull("CMS username", _cmsUser);
    +        verifyNotNull("CMS password", _cmsUserPassword);
    +
    +        if (org.apache.commons.lang.StringUtils.isBlank(_apiVersion)) {
    +            throw new ConfigurationException("Unable to find API version");
    +        }
    --- End diff --
    
    Why not use the `verifyNotEmpty` method to perform this check?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90451924
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java ---
    @@ -387,41 +400,39 @@ public boolean canEnableIndividualServices() {
     
         @Override
         public boolean destroy(Network network, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException {
    -        if (!canHandle(network, Service.Connectivity)) {
    -            return false;
    -        }
    -
    -        return true;
    +        return canHandle(network, Service.Connectivity);
         }
     
         @Override
         public boolean verifyServicesCombination(Set<Service> services) {
    --- End diff --
    
    The method assumes that `services` is not `null`.  Therefore, please consider adding a `Preconditions.checkArgument` check to verify that `services` is not `null`


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by fmaximus <gi...@git.apache.org>.
Github user fmaximus commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90236739
  
    --- Diff: api/src/com/cloud/network/Network.java ---
    @@ -215,6 +216,8 @@ public static Provider getProvider(String providerName) {
             public static final Capability DistributedRouter = new Capability("DistributedRouter");
             public static final Capability StretchedL2Subnet = new Capability("StretchedL2Subnet");
             public static final Capability RegionLevelVpc = new Capability("RegionLevelVpc");
    +        public static final Capability NoVlan = new Capability("NoVlan");
    +        public static final Capability PublicAccess = new Capability("PublicAccess");
    --- End diff --
    
    NoVlan is a Capability we're currently using when adding a new IP range to an existing shared network. Without this, the Broadcast URI would become vlan://untagged, while the shared network has a Broadcast URI of vsp://network-uuid. When the CIDR of the new ip range is the same as one of the already existing ip ranges, it would still not be allowed as the vlan id is different. 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Packaging result: \u2716centos6 \u2714centos7 \u2714debian. JID-327


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90438888
  
    --- Diff: server/src/com/cloud/network/NetworkModelImpl.java ---
    @@ -1558,6 +1558,32 @@ public boolean checkIpForService(IpAddress userIp, Service service, Long network
         }
     
         @Override
    +    public boolean providerSupportsCapability(Set<Provider> providers, Service service, Capability cap) {
    --- End diff --
    
    @rhtyd  Unit test coverage added for this at  server/test/com/cloud/network/MockNetworkModelImpl.java 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorganutan package


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by fmaximus <gi...@git.apache.org>.
Github user fmaximus commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90623492
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    +    private static final String NAME = "name";
    +    private static final String GUID = "guid";
    +    private static final String ZONE_ID = "zoneid";
    +    private static final String HOST_NAME = "hostname";
    +    private static final String CMS_USER = "cmsuser";
    +    private static final String CMS_USER_PASSWORD = "cmsuserpass";
    +    private static final String PORT = "port";
    +    private static final String API_VERSION = "apiversion";
    +    private static final String API_RELATIVE_PATH = "apirelativepath";
    +    private static final String RETRY_COUNT = "retrycount";
    +    private static final String RETRY_INTERVAL = "retryinterval";
    +    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
    +
    +    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
    +
    +    private String _name;
    +    private String _guid;
    +    private String _zoneId;
    +    private String _hostName;
    +    private String _cmsUser;
    +    private String _cmsUserPassword;
    +    private String _port;
    +    private String _apiVersion;
    +    private String _apiRelativePath;
    +    private String _retryCount;
    +    private String _retryInterval;
    +    private String _nuageVspCmsId;
    +
    +    public String name() {
    +        return _name;
    +    }
    +
    +    public String guid() {
    +        return this._guid;
    +    }
    +
    +    public NuageVspResourceConfiguration guid(String guid) {
    +        this._guid = guid;
    +        return this;
    +    }
    +
    +    public String zoneId() {
    +        return this._zoneId;
    +    }
    +
    +    public NuageVspResourceConfiguration zoneId(String zoneId) {
    +        this._zoneId = zoneId;
    +        return this;
    +    }
    +
    +    public String hostName() {
    +        return this._hostName;
    +    }
    +
    +    public NuageVspResourceConfiguration hostName(String hostName) {
    +        this._hostName = hostName;
    +        this._name = "Nuage VSD - " + _hostName;
    +        return this;
    +    }
    +
    +    public String cmsUser() {
    +        return this._cmsUser;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUser(String cmsUser) {
    +        this._cmsUser = cmsUser;
    +        return this;
    +    }
    +
    +    public String cmsUserPassword() {
    +        return this._cmsUserPassword;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUserPassword(String cmsUserPassword) {
    +        this._cmsUserPassword = cmsUserPassword;
    +        return this;
    +    }
    +
    +    public String port() {
    +        return this._port;
    +    }
    +
    +    public NuageVspResourceConfiguration port(String port) {
    +        this._port = port;
    +        return this;
    +    }
    +
    +    public String apiVersion() {
    +        return this._apiVersion;
    +    }
    +
    +    public NuageVspResourceConfiguration apiVersion(String apiVersion) {
    +        this._apiVersion = apiVersion;
    +        return this;
    +    }
    +
    +    public String apiRelativePath() {
    +        return this._apiRelativePath;
    +    }
    +
    +    public NuageVspResourceConfiguration apiRelativePath(String apiRelativePath) {
    +        this._apiRelativePath = apiRelativePath;
    +        return this;
    +    }
    +
    +    public String retryCount() {
    +        return this._retryCount;
    +    }
    +
    +    public NuageVspResourceConfiguration retryCount(String retryCount) {
    +        this._retryCount = retryCount;
    +        return this;
    +    }
    +
    +    public String retryInterval() {
    +        return this._retryInterval;
    +    }
    +
    +    public NuageVspResourceConfiguration retryInterval(String retryInterval) {
    +        this._retryInterval = retryInterval;
    +        return this;
    +    }
    +
    +    public String nuageVspCmsId() {
    +        return this._nuageVspCmsId;
    +    }
    +
    +    public NuageVspResourceConfiguration nuageVspCmsId(String nuageVspCmsId) {
    +        this._nuageVspCmsId = nuageVspCmsId;
    +        return this;
    +    }
    +
    +    public String getRootPath(){
    +        return "https://" + _hostName + ":" + _port + "/nuage";
    +    }
    +
    +    public String getApiPath() {
    --- End diff --
    
    NuageVspResourceConfiguration is used as a field in UpdateNuageVspDeviceCommand.
    As this might be (de)serialized to Json is the resource is on a different management server in the cluster, and URI doesn't have a Gson TypeAdapter.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90450669
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java ---
    @@ -128,6 +135,26 @@
     
         private static final Map<Service, Map<Capability, String>> capabilities = setCapabilities();
     
    +    private static final Set<Service> REQUIRED_SERVICES = Sets.newHashSet(
    +            Service.Connectivity,
    +            Service.Dhcp
    +    );
    +    private static final Set<Service> NUAGE_ONLY_SERVICES = Sets.newHashSet(
    +            Service.SourceNat,
    +            Service.StaticNat,
    +            Service.Gateway
    +    );
    +    private static final Set<Service> UNSUPPORTED_SERVICES = Sets.newHashSet(
    +            Service.Vpn,
    +            Service.Dns,
    +            Service.PortForwarding,
    +            Service.SecurityGroup
    +    );
    +    private static final Set<Pair<Service, Service>> ANY_REQUIRED_SERVICES = Sets.newHashSet(
    --- End diff --
    
    Since this value is constant, please use ``ImmutableSet`` rather than ``HashSet``.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90221150
  
    --- Diff: server/src/com/cloud/network/NetworkModelImpl.java ---
    @@ -1558,6 +1558,32 @@ public boolean checkIpForService(IpAddress userIp, Service service, Long network
         }
     
         @Override
    +    public boolean providerSupportsCapability(Set<Provider> providers, Service service, Capability cap) {
    --- End diff --
    
    Can we have a unit test for this?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Packaging result: \u2714centos6 \u2714centos7 \u2714debian. JID-322


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorangutan test


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by sgoeminn <gi...@git.apache.org>.
Github user sgoeminn commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90520113
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    --- End diff --
    
    It's conceptual far more clear with the current class. Furthermore, this class is not only a wrapper around a Map but also contains a Builder.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorangutan test centos7 vmware-55u3


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90220227
  
    --- Diff: api/src/org/apache/cloudstack/api/ApiConstants.java ---
    @@ -639,6 +639,7 @@
         public static final String READ_ONLY = "readonly";
         public static final String SUPPORTS_REGION_LEVEL_VPC = "supportsregionLevelvpc";
         public static final String SUPPORTS_STRECHED_L2_SUBNET = "supportsstrechedl2subnet";
    +    public static final String SUPPORTS_PUBLIC_ACCESS = "supportspublicaccess";
    --- End diff --
    
    Guest VM's with public network access is possible by checking default egress rule. Without adding this new notion of a 'public access', networks can reuse the `Egress Default Policy`.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by fmaximus <gi...@git.apache.org>.
Github user fmaximus commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90619259
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    --- End diff --
    
    It's like that in all other plugins.
    If needed we can rename all packages,
    but let's not do it now anymore, 
    as we want to get it still in, in 4.10
    We would have to requalify everything.
    Let's discuss, and fix it in a next PR.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by krissterckx <gi...@git.apache.org>.
Github user krissterckx commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd Travis is happy
    findbugs fails at globodns though (not due to this PR)


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90227580
  
    --- Diff: client/pom.xml ---
    @@ -168,6 +168,11 @@
         </dependency>
         <dependency>
           <groupId>org.apache.cloudstack</groupId>
    +      <artifactId>cloud-plugin-network-vsp</artifactId>
    --- End diff --
    
    Thanks for confirming @fmaximus 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90451456
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/UpdateNuageVspDeviceCommand.java ---
    @@ -0,0 +1,43 @@
    +//
    +// 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.agent.api.manager;
    --- End diff --
    
    This class appears to be Nuage specific.  Why is is being added to core CloudStack and not the Nuage plugin?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @krissterckx Yes. Though, Travis failed due to failure in one of the component tests, please see `test_volumes` https://travis-ci.org/apache/cloudstack/jobs/180954289
    This may be an intermittent issue, please push -f to re-kick Travis.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by krissterckx <gi...@git.apache.org>.
Github user krissterckx commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Volumes test (test_create_volume_under_domain) is only failure ; unrelated to this PR
    
    LGTM


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd @jburwell 
    
    UPDATE: We are currently re-qualifying this PR (internally, re-based with latest master and commits squashed) as we hit the issue "systemvm: Fix regression from 825935" in our weekend regression runs on this PR, which was fixed yesterday on master.
    
    Took us some time to find the root cause :)
    
    Anyhow, once all our internal regression runs and added Marvin tests in this PR pass, we will update this PR accordingly (re-based with latest master and commits squashed).
    
    Let me know, if you need anything from my side.
    
    Thank you for your support !!
    



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @murali-reddy @rhtyd is there an ETA on the `test_create_volume_under_domain` fix?  The current Travis build is failing on the following test cases:
    
       * `test_volumes` 
       * `test_vpc_network` 
       * `test_vpc_offerings`
    
    I would like to understand the root cause of these failures before merging.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorangutan package


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90455401
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    --- End diff --
    
    Why is package namespaced to a core package when it is part of the Nuage package?  From a reporting/logging perspective, it makes finding the code less intuitive.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90457155
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    +    private static final String NAME = "name";
    +    private static final String GUID = "guid";
    +    private static final String ZONE_ID = "zoneid";
    +    private static final String HOST_NAME = "hostname";
    +    private static final String CMS_USER = "cmsuser";
    +    private static final String CMS_USER_PASSWORD = "cmsuserpass";
    +    private static final String PORT = "port";
    +    private static final String API_VERSION = "apiversion";
    +    private static final String API_RELATIVE_PATH = "apirelativepath";
    +    private static final String RETRY_COUNT = "retrycount";
    +    private static final String RETRY_INTERVAL = "retryinterval";
    +    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
    +
    +    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
    +
    +    private String _name;
    +    private String _guid;
    +    private String _zoneId;
    +    private String _hostName;
    +    private String _cmsUser;
    +    private String _cmsUserPassword;
    +    private String _port;
    +    private String _apiVersion;
    +    private String _apiRelativePath;
    +    private String _retryCount;
    +    private String _retryInterval;
    +    private String _nuageVspCmsId;
    +
    +    public String name() {
    +        return _name;
    +    }
    +
    +    public String guid() {
    +        return this._guid;
    +    }
    +
    +    public NuageVspResourceConfiguration guid(String guid) {
    +        this._guid = guid;
    +        return this;
    +    }
    +
    +    public String zoneId() {
    +        return this._zoneId;
    +    }
    +
    +    public NuageVspResourceConfiguration zoneId(String zoneId) {
    +        this._zoneId = zoneId;
    +        return this;
    +    }
    +
    +    public String hostName() {
    +        return this._hostName;
    +    }
    +
    +    public NuageVspResourceConfiguration hostName(String hostName) {
    +        this._hostName = hostName;
    +        this._name = "Nuage VSD - " + _hostName;
    +        return this;
    +    }
    +
    +    public String cmsUser() {
    +        return this._cmsUser;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUser(String cmsUser) {
    +        this._cmsUser = cmsUser;
    +        return this;
    +    }
    +
    +    public String cmsUserPassword() {
    +        return this._cmsUserPassword;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUserPassword(String cmsUserPassword) {
    +        this._cmsUserPassword = cmsUserPassword;
    +        return this;
    +    }
    +
    +    public String port() {
    +        return this._port;
    +    }
    +
    +    public NuageVspResourceConfiguration port(String port) {
    +        this._port = port;
    +        return this;
    +    }
    +
    +    public String apiVersion() {
    +        return this._apiVersion;
    +    }
    +
    +    public NuageVspResourceConfiguration apiVersion(String apiVersion) {
    +        this._apiVersion = apiVersion;
    +        return this;
    +    }
    +
    +    public String apiRelativePath() {
    +        return this._apiRelativePath;
    +    }
    +
    +    public NuageVspResourceConfiguration apiRelativePath(String apiRelativePath) {
    +        this._apiRelativePath = apiRelativePath;
    +        return this;
    +    }
    +
    +    public String retryCount() {
    +        return this._retryCount;
    +    }
    +
    +    public NuageVspResourceConfiguration retryCount(String retryCount) {
    +        this._retryCount = retryCount;
    +        return this;
    +    }
    +
    +    public String retryInterval() {
    +        return this._retryInterval;
    +    }
    +
    +    public NuageVspResourceConfiguration retryInterval(String retryInterval) {
    +        this._retryInterval = retryInterval;
    +        return this;
    +    }
    +
    +    public String nuageVspCmsId() {
    +        return this._nuageVspCmsId;
    +    }
    +
    +    public NuageVspResourceConfiguration nuageVspCmsId(String nuageVspCmsId) {
    +        this._nuageVspCmsId = nuageVspCmsId;
    +        return this;
    +    }
    +
    +    public String getRootPath(){
    +        return "https://" + _hostName + ":" + _port + "/nuage";
    +    }
    +
    +    public String getApiPath() {
    +            return "https://" + _hostName + ":" + _port + "/nuage/api/" + _apiVersion;
    +    }
    +
    +    public NuageVspApiVersion getApiVersion() throws ConfigurationException {
    +        try {
    +            if(_apiVersion != null) {
    +                return NuageVspApiVersion.fromString(_apiVersion);
    +            }
    +            return null;
    +        } catch (IllegalArgumentException e) {
    +            throw new ConfigurationException("Incorrect API version");
    +        }
    +    }
    +
    +    public Map<String, String> build() {
    +        Map<String, String> map = new HashMap<>();
    +        if (_guid != null) map.put(GUID, _guid);
    +        if (_zoneId != null) map.put(ZONE_ID, _zoneId);
    +        if (_hostName != null) map.put(HOST_NAME, _hostName);
    +        if (_cmsUser != null) map.put(CMS_USER, _cmsUser);
    +        if (_cmsUserPassword != null) map.put(CMS_USER_PASSWORD, _cmsUserPassword);
    +        if (_port != null) map.put(PORT, _port);
    +        if (_apiVersion != null) map.put(API_VERSION, _apiVersion);
    +        if (_apiRelativePath != null) map.put(API_RELATIVE_PATH, _apiRelativePath);
    +        if (_retryCount != null) map.put(RETRY_COUNT, _retryCount);
    +        if (_retryInterval != null) map.put(RETRY_INTERVAL, _retryInterval);
    +        if (_nuageVspCmsId != null) map.put(NUAGE_VSP_CMS_ID, _nuageVspCmsId);
    +        return  map;
    +    }
    +
    +    public static NuageVspResourceConfiguration fromConfiguration(Map<String, ?> configuration) {
    +        return new NuageVspResourceConfiguration()
    +                .guid((String)configuration.get(GUID))
    +                .zoneId((String)configuration.get(ZONE_ID))
    +                .hostName((String)configuration.get(HOST_NAME))
    +                .cmsUser((String)configuration.get(CMS_USER))
    +                .cmsUserPassword((String)configuration.get(CMS_USER_PASSWORD))
    +                .port((String)configuration.get(PORT))
    +                .apiVersion((String)configuration.get(API_VERSION))
    +                .apiRelativePath((String)configuration.get(API_RELATIVE_PATH))
    +                .retryCount((String)configuration.get(RETRY_COUNT))
    +                .retryInterval((String)configuration.get(RETRY_INTERVAL))
    +                .nuageVspCmsId((String)configuration.get(NUAGE_VSP_CMS_ID));
    +    }
    +
    +    private void verifyNotNull(String name, String value) throws ConfigurationException {
    +        if (value == null) {
    +            throw new ConfigurationException("Unable to find " + name);
    +        }
    +    }
    +
    +    private void verifyNotEmpty(String name, String value) throws ConfigurationException {
    +        if (org.apache.commons.lang.StringUtils.isEmpty(value)) {
    --- End diff --
    
    Why not import the `org.apache.commons.lang` package and avoid some clutter?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @nlivens I can run tests on this PR if you can rebase, fix conflicts and squash your changes. Thanks.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90220849
  
    --- Diff: api/src/com/cloud/network/Network.java ---
    @@ -215,6 +216,8 @@ public static Provider getProvider(String providerName) {
             public static final Capability DistributedRouter = new Capability("DistributedRouter");
             public static final Capability StretchedL2Subnet = new Capability("StretchedL2Subnet");
             public static final Capability RegionLevelVpc = new Capability("RegionLevelVpc");
    +        public static final Capability NoVlan = new Capability("NoVlan");
    +        public static final Capability PublicAccess = new Capability("PublicAccess");
    --- End diff --
    
    Can you check if an untagged capability can be used, and default egress policy can be used; instead of introducing these two capabilities?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Test LGTM. 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90221096
  
    --- Diff: server/src/com/cloud/configuration/ConfigurationManagerImpl.java ---
    @@ -2968,8 +2939,45 @@ public Vlan doInTransaction(final TransactionStatus status) {
                 throw new InvalidParameterValueException("The gateway ip should not be the part of the ip range being added.");
             }
     
    -        final Pair<Boolean, Pair<String, String>> result = new Pair<Boolean, Pair<String, String>>(sameSubnet, vlanDetails);
    -        return result;
    +        return new Pair<Boolean, Pair<String, String>>(sameSubnet, vlanDetails);
    +    }
    +
    +    private boolean hasSameSubnet(boolean ipv4, String vlanGateway, String vlanNetmask, String newVlanGateway, String newVlanNetmask, String newStartIp, String newEndIp,
    --- End diff --
    
    Do we have a unit test for this method?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    I'm seeing no new errors except for `test_06_download_detached_volume` and `test_01_create_template`. @prashanthvarma can you have a look, they may be intermittent in nature.
    
    @jburwell can you finish code review on this and give lgtm in which case I can merge this?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by mike-tutkowski <gi...@git.apache.org>.
Github user mike-tutkowski commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r101596817
  
    --- Diff: server/src/com/cloud/configuration/ConfigurationManagerImpl.java ---
    @@ -2909,51 +2911,21 @@ public Vlan doInTransaction(final TransactionStatus status) {
             String vlanGateway = null;
             String vlanNetmask = null;
             boolean sameSubnet = false;
    -        if (vlans != null && vlans.size() > 0) {
    +        if (CollectionUtils.isNotEmpty(vlans)) {
                 for (final VlanVO vlan : vlans) {
    -                if (ipv4) {
    -                    vlanGateway = vlan.getVlanGateway();
    -                    vlanNetmask = vlan.getVlanNetmask();
    -                    // check if subset or super set or neither.
    -                    final NetUtils.SupersetOrSubset val = checkIfSubsetOrSuperset(newVlanGateway, newVlanNetmask, vlan, startIP, endIP);
    -                    if (val == NetUtils.SupersetOrSubset.isSuperset) {
    -                        // this means that new cidr is a superset of the
    -                        // existing subnet.
    -                        throw new InvalidParameterValueException("The subnet you are trying to add is a superset of the existing subnet having gateway" + vlan.getVlanGateway()
    -                                + " and netmask  " + vlan.getVlanNetmask());
    -                    } else if (val == NetUtils.SupersetOrSubset.neitherSubetNorSuperset) {
    -                        // this implies the user is trying to add a new subnet
    -                        // which is not a superset or subset of this subnet.
    -                        // checking with the other subnets.
    -                        continue;
    -                    } else if (val == NetUtils.SupersetOrSubset.isSubset) {
    -                        // this means he is trying to add to the same subnet.
    -                        throw new InvalidParameterValueException("The subnet you are trying to add is a subset of the existing subnet having gateway" + vlan.getVlanGateway()
    -                                + " and netmask  " + vlan.getVlanNetmask());
    -                    } else if (val == NetUtils.SupersetOrSubset.sameSubnet) {
    -                        sameSubnet = true;
    -                        //check if the gateway provided by the user is same as that of the subnet.
    -                        if (newVlanGateway != null && !newVlanGateway.equals(vlanGateway)) {
    -                            throw new InvalidParameterValueException("The gateway of the subnet should be unique. The subnet alreaddy has a gateway " + vlanGateway);
    -                        }
    -                        break;
    -                    }
    -                }
    -                if (ipv6) {
    -                    if (ip6Gateway != null && !ip6Gateway.equals(network.getIp6Gateway())) {
    -                        throw new InvalidParameterValueException("The input gateway " + ip6Gateway + " is not same as network gateway " + network.getIp6Gateway());
    -                    }
    -                    if (ip6Cidr != null && !ip6Cidr.equals(network.getIp6Cidr())) {
    -                        throw new InvalidParameterValueException("The input cidr " + ip6Cidr + " is not same as network ciddr " + network.getIp6Cidr());
    -                    }
    -                    ip6Gateway = network.getIp6Gateway();
    -                    ip6Cidr = network.getIp6Cidr();
    -                    _networkModel.checkIp6Parameters(startIPv6, endIPv6, ip6Gateway, ip6Cidr);
    -                    sameSubnet = true;
    -                }
    +                vlanGateway = vlan.getVlanGateway();
    +                vlanNetmask = vlan.getVlanNetmask();
    +                sameSubnet = hasSameSubnet(ipv4, vlanGateway, vlanNetmask, newVlanGateway, newVlanNetmask, startIP, endIP,
    +                        ipv6, ip6Gateway, ip6Cidr, startIPv6, endIPv6, network);
    +                if (sameSubnet) break;
                 }
    +        } else {
    +            vlanGateway = network.getGateway();
    +            vlanNetmask = NetUtils.getCidrNetmask(network.getCidr());
    --- End diff --
    
    I believe this is the root of the following blocker for 4.10: https://issues.apache.org/jira/browse/CLOUDSTACK-9790


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90451522
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/UpdateNuageVspDeviceCommand.java ---
    @@ -0,0 +1,43 @@
    +//
    +// 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.agent.api.manager;
    +
    +import com.cloud.agent.api.Command;
    +import com.cloud.network.resource.NuageVspResourceConfiguration;
    +
    +public class UpdateNuageVspDeviceCommand extends Command {
    --- End diff --
    
    Please add `equals`, `hashCode`, and `toString` implementations.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @prashanthvarma please squash all commits down into one logical commit for the enhancement.  Multiple commits for the same feature muddy the long term history.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by nlivens <gi...@git.apache.org>.
GitHub user nlivens reopened a pull request:

    https://github.com/apache/cloudstack/pull/1579

    CLOUDSTACK-9403 : Support for shared networks in Nuage VSP plugin

    This is first phase of support of Shared Network in cloudstack through NuageVsp Network Plugin. A shared network is a type of virtual network that is shared between multiple accounts i.e. a shared network can be accessed by virtual machines that belong to many different accounts. This basic functionality will be supported with the below common use case:
    - shared network can be used for monitoring purposes. A shared network can be assigned to a domain and can be used for monitoring VMs belonging to all accounts in that domain.
    
    With the current implementation with NuageVsp plugin, Each shared network needs its unique IP address range, and can not overlap with another shared network. 
    In VSD, it is implemented in below manner:
    - In order to have tenant isolation for shared networks, we will have to create a Shared L3 Subnet for each shared network, and instantiate it across the relevant enterprises. A shared network will only exist under an enterprise when it is needed, so when the first VM is spinned under that ACS domain inside that shared network.
    
    PR contents:
    1) Support for shared networks with tenant isolation on master with Nuage VSP SDN Plugin.
    2) Marvin test coverage for shared networks on master with Nuage VSP SDN Plugin.
    3) Enhancements on our exiting Marvin test code (nuagevsp plugins directory).
    4) PEP8 & PyFlakes compliance with our Marvin test code.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nlivens/cloudstack nuage_vsp_shared_networks

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cloudstack/pull/1579.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1579
    
----
commit 22fb8acf90d12925790375738f74c7c1ec4f6e63
Author: Eric Waegeman <er...@nuagenetworks.net>
Date:   2016-05-26T09:37:52Z

    CLOUDSTACK-9401 : Support for Internal DNS in Nuage VSP plugin

commit 57117e05a0e46a9f49b8065f9a7704a2eaeb86d3
Author: Rahul Singal <ra...@nuagenetworks.net>
Date:   2016-07-01T13:22:50Z

    CLOUDSTACK-9401 : Marvin tests for Internal DNS verification with NuageVsp

commit 62b48f93118665288e3229180078448bb7aab3d5
Author: Nick Livens <ni...@nuagenetworks.net>
Date:   2016-04-28T14:24:50Z

    CLOUDSTACK-9403 : Support for shared networks in Nuage VSP plugin

commit 596a4332a5e51f766e2b2519125864b9b745dbef
Author: rahul singal <ra...@alcatel-lucent.com>
Date:   2016-06-01T15:31:24Z

    CLOUDSTACK-9403 : Marvin tests for shared networks verification with NuageVsp

commit ea3a72da6836b63d5b1d4ccf9aa6faf7c0492fd3
Author: Nick Livens <ni...@nuagenetworks.net>
Date:   2016-07-01T14:14:55Z

    CLOUDSTACK-9403 : Support for shared networks in Nuage VSP plugin
    
    Phase 2: Public Access

commit d66de5e8c0a5bc854557f8465dc3ed954b38e3f2
Author: Frank Maximus <fr...@nuagenetworks.net>
Date:   2016-06-22T13:22:25Z

    CLOUDSTACK-9403 : Support for shared networks in Nuage VSP plugin
    
    Phase 2: Public Access

commit 5d41ba44d5455fe6fce3040367955fcbd96fab2b
Author: Rahul Singal <ra...@nuagenetworks.net>
Date:   2016-07-01T14:20:58Z

    CLOUDSTACK-9403 : Marvin tests for shared networks verification with NuageVsp
    
    Phase 2: Public Access

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90452834
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java ---
    @@ -317,20 +368,28 @@ private void updateDhcpOptionsForExistingVms(Network network, HostVO nuageVspHos
             if(s_logger.isDebugEnabled()) {
                 s_logger.debug(String.format("DomainRouter is added to an existing network: %s in state: %s", network.getName(), network.getState()));
             }
    -        List<VspDhcpVMOption> dhcpOptions = Lists.newLinkedList();
    -        for (NicVO userNic :_nicDao.listByNetworkId(network.getId())) {
    -            if (userNic.getVmType() != VirtualMachine.Type.DomainRouter) {
    -                boolean defaultHasDns = getDefaultHasDns(networkHasDnsCache, userNic);
    -                dhcpOptions.add(_nuageVspEntityBuilder.buildVmDhcpOption(userNic, defaultHasDns, networkHasDns));
    -            }
    +
    +        List<NicVO> userNics = _nicDao.listByNetworkId(network.getId());
    +        LinkedListMultimap<Long, VspDhcpVMOption> dhcpOptionsPerDomain = LinkedListMultimap.create();
    +
    +        for (NicVO userNic : userNics) {
    +            if (userNic.getVmType() == VirtualMachine.Type.DomainRouter) continue;
    --- End diff --
    
    Per our coding standards, all `if` blocks must be wrapped in curly braces.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Nuage VSP SDN plugin specific Marvin test code PEP8 & PyFlakes Compliance:
    CloudStack$ 
    CloudStack$ pep8 test/integration/plugins/nuagevsp/*.py
    CloudStack$ 
    CloudStack$ pyflakes test/integration/plugins/nuagevsp/*.py
    
    
    Nuage VSP SDN plugin specific Marvin test results:
    
    | Marvin Test Script                              | PASSED Testcases | SKIPPED Testcases | FAILED Testcases | ERROR Testcases | Total Number of Testcases |
    |-------------------------------------------------|------------------|-------------------|------------------|-----------------|---------------------------|
    | test_nuage_internal_dns.py                      | 6                | 0                 | 0                | 0               | 6                         |
    | test_nuage_non_public_sharednetwork_ip_range.py | 5                | 0                 | 0                | 0               | 5                         |
    | test_nuage_password_reset.py                    | 1                | 0                 | 0                | 0               | 1                         |
    | test_nuage_public_sharednetwork_ip_range.py     | 8                | 0                 | 0                | 0               | 8                         |
    | test_nuage_publicsharednetwork.py               | 13               | 0                 | 0                | 0               | 13                        |
    | test_nuage_public_sharednetwork_userdata.py     | 51               | 0                 | 0                | 0               | 51                        |
    | test_nuage_sharednetwork_deployVM.py            | 51               | 0                 | 0                | 0               | 51                        |
    | test_nuage_sharednetwork_vpc_vm_monitor.py      | 10               | 0                 | 0                | 0               | 10                        |
    | test_nuage_source_nat.py                        | 2                | 6                 | 0                | 0               | 8                         |
    | test_nuage_static_nat.py                        | 10               | 0                 | 0                | 0               | 10                        |
    | test_nuage_vpc_internal_lb.py                   | 7                | 0                 | 1                | 0               | 8                         |
    | test_nuage_vpc_network.py                       | 1                | 1                 | 0                | 0               | 2                         |
    | test_nuage_vsp.py                               | 2                | 0                 | 0                | 0               | 2                         |
    | TOTAL RESULTS:                                  | 167              | 7                 | 1                | 0               | 175                       |
    
    
    Nuage VSP SDN plugin specific Marvin Test Run Logs:
    
    test_nuage_internal_dns.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/6/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/5/runinfo.txt)
    test_nuage_non_public_sharednetwork_ip_range.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/7/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/8/runinfo.txt)
    test_nuage_password_reset.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/10/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/9/runinfo.txt)
    test_nuage_public_sharednetwork_ip_range.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/12/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/11/runinfo.txt)
    test_nuage_publicsharednetwork.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/15/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/16/runinfo.txt)
    test_nuage_public_sharednetwork_userdata.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/17/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/18/runinfo.txt)
    test_nuage_sharednetwork_deployVM.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/19/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/20/runinfo.txt)
    test_nuage_sharednetwork_vpc_vm_monitor.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/25/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/26/runinfo.txt)
    test_nuage_source_nat.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/28/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/27/runinfo.txt)
    test_nuage_static_nat.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/30/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/29/runinfo.txt)
    test_nuage_vpc_internal_lb.py:
    [failed_plus_exceptions.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/32/failed_plus_exceptions.txt)
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/31/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/33/runinfo.txt)
    test_nuage_vpc_network.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/35/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/33/runinfo.txt)
    test_nuage_vsp.py:
    [results.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/38/results.txt)
    [runinfo.txt](https://github.mv.usa.alcatel.com/CloudStack/CloudStack/files/36/runinfo.txt)
    
    
    Failure Analysis:
    
    Failed test case "test_05_nuage_internallb_traffic" in test script "test_nuage_vpc_internal_lb.py" is an expected failure due to a missing requirement (Port 8080 should be opened on the HTTP web-server running on the guest VMs) in our guest VM template used for running the above tests.
    
    Anyhow, we will re-run the above failed test case and share the results after fixing this issue in our guest VM. template.
    
    cc: @rhtyd @jburwell 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorangutan package


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by sgoeminn <gi...@git.apache.org>.
Github user sgoeminn commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90510869
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/UpdateNuageVspDeviceCommand.java ---
    @@ -0,0 +1,43 @@
    +//
    +// 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.agent.api.manager;
    +
    +import com.cloud.agent.api.Command;
    +import com.cloud.network.resource.NuageVspResourceConfiguration;
    +
    +public class UpdateNuageVspDeviceCommand extends Command {
    --- End diff --
    
    We added it.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Packaging result: \u2714centos6 \u2714centos7 \u2714debian. JID-284


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90452488
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java ---
    @@ -255,7 +284,30 @@ public void reserve(NicProfile nic, Network network, VirtualMachineProfile vm, D
                 }
     
                 HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(network.getPhysicalNetworkId());
    -            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network, false);
    +            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(vm.getVirtualMachine().getDomainId(), network);
    +
    +            if (vspNetwork.isShared()) {
    +                vspNetwork = _nuageVspEntityBuilder.updateVspNetworkByPublicIp(vspNetwork, network, nic.getIPv4Address());
    +
    +                if (VirtualMachine.Type.DomainRouter.equals(vm.getType()) && !nic.getIPv4Address().equals(vspNetwork.getVirtualRouterIp())) {
    +                    s_logger.debug("VR got spawned with a different IP, releasing the previously allocated public IP " + nic.getIPv4Address());
    --- End diff --
    
    Please wrap this `DEBUG` log statement in an `if (s_logger.isDebugEnabled())` block to avoid unnecessary string concatenation when `DEBUG` logging is not enabled.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Travis is failing due to an env issue in their VMs, I'm investigating it with #1806 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90451135
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/CleanUpDomainCommand.java ---
    @@ -0,0 +1,63 @@
    +//
    +// 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.agent.api.manager;
    +
    +import com.cloud.agent.api.Command;
    +import net.nuage.vsp.acs.client.api.model.VspDomainCleanUp;
    +
    +public class CleanUpDomainCommand extends Command {
    +
    +    private final VspDomainCleanUp _domainCleanUp;
    +
    +    public CleanUpDomainCommand(VspDomainCleanUp domainCleanUp) {
    --- End diff --
    
    Is it acceptable for `domainCleanup` to be `null`?  If not, please consider adding a `Preconditions.checkArgument` check to verify that the `domainCleanup` is not `null`.  You may also be to remove `null` checks from the `equals` and `hashCode` methods if this precondition is added.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90394494
  
    --- Diff: api/src/com/cloud/network/Network.java ---
    @@ -215,6 +216,8 @@ public static Provider getProvider(String providerName) {
             public static final Capability DistributedRouter = new Capability("DistributedRouter");
             public static final Capability StretchedL2Subnet = new Capability("StretchedL2Subnet");
             public static final Capability RegionLevelVpc = new Capability("RegionLevelVpc");
    +        public static final Capability NoVlan = new Capability("NoVlan");
    +        public static final Capability PublicAccess = new Capability("PublicAccess");
    --- End diff --
    
    Thanks for explaining @fmaximus 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    <b>Trillian test result (tid-507)</b>
    Environment: vmware-55u3 (x2), Advanced Networking with Mgmt server 7
    Total time taken: 40678 seconds
    Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1579-t507-vmware-55u3.zip
    Test completed. 45 look ok, 4 have error(s)
    
    
    Test | Result | Time (s) | Test File
    --- | --- | --- | ---
    test_router_dhcp_opts | `Failure` | 25.94 | test_router_dhcphosts.py
    test_01_vpc_site2site_vpn | `Error` | 561.48 | test_vpc_vpn.py
    test_01_redundant_vpc_site2site_vpn | `Error` | 772.69 | test_vpc_vpn.py
    test_06_download_detached_volume | `Error` | 80.57 | test_volumes.py
    test_nested_virtualization_vmware | `Error` | 382.41 | test_nested_virtualization.py
    test_01_vpc_remote_access_vpn | Success | 216.47 | test_vpc_vpn.py
    test_02_VPC_default_routes | Success | 375.40 | test_vpc_router_nics.py
    test_01_VPC_nics_after_destroy | Success | 820.98 | test_vpc_router_nics.py
    test_05_rvpc_multi_tiers | Success | 730.46 | test_vpc_redundant.py
    test_04_rvpc_network_garbage_collector_nics | Success | 1527.52 | test_vpc_redundant.py
    test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers | Success | 757.55 | test_vpc_redundant.py
    test_02_redundant_VPC_default_routes | Success | 764.31 | test_vpc_redundant.py
    test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Success | 1418.41 | test_vpc_redundant.py
    test_09_delete_detached_volume | Success | 35.81 | test_volumes.py
    test_05_detach_volume | Success | 105.22 | test_volumes.py
    test_04_delete_attached_volume | Success | 15.17 | test_volumes.py
    test_03_download_attached_volume | Success | 20.32 | test_volumes.py
    test_02_attach_volume | Success | 60.53 | test_volumes.py
    test_01_create_volume | Success | 517.97 | test_volumes.py
    test_03_delete_vm_snapshots | Success | 275.18 | test_vm_snapshots.py
    test_02_revert_vm_snapshots | Success | 224.06 | test_vm_snapshots.py
    test_01_test_vm_volume_snapshot | Success | 271.48 | test_vm_snapshots.py
    test_01_create_vm_snapshots | Success | 166.66 | test_vm_snapshots.py
    test_deploy_vm_multiple | Success | 257.49 | test_vm_life_cycle.py
    test_deploy_vm | Success | 0.02 | test_vm_life_cycle.py
    test_advZoneVirtualRouter | Success | 0.02 | test_vm_life_cycle.py
    test_10_attachAndDetach_iso | Success | 167.35 | test_vm_life_cycle.py
    test_09_expunge_vm | Success | 125.14 | test_vm_life_cycle.py
    test_08_migrate_vm | Success | 81.07 | test_vm_life_cycle.py
    test_07_restore_vm | Success | 0.07 | test_vm_life_cycle.py
    test_06_destroy_vm | Success | 10.11 | test_vm_life_cycle.py
    test_03_reboot_vm | Success | 5.10 | test_vm_life_cycle.py
    test_02_start_vm | Success | 25.19 | test_vm_life_cycle.py
    test_01_stop_vm | Success | 10.12 | test_vm_life_cycle.py
    test_CreateTemplateWithDuplicateName | Success | 281.95 | test_templates.py
    test_08_list_system_templates | Success | 0.02 | test_templates.py
    test_07_list_public_templates | Success | 0.03 | test_templates.py
    test_05_template_permissions | Success | 0.04 | test_templates.py
    test_04_extract_template | Success | 25.53 | test_templates.py
    test_03_delete_template | Success | 5.08 | test_templates.py
    test_02_edit_template | Success | 90.16 | test_templates.py
    test_01_create_template | Success | 125.71 | test_templates.py
    test_10_destroy_cpvm | Success | 266.57 | test_ssvm.py
    test_09_destroy_ssvm | Success | 268.86 | test_ssvm.py
    test_08_reboot_cpvm | Success | 156.28 | test_ssvm.py
    test_07_reboot_ssvm | Success | 188.42 | test_ssvm.py
    test_06_stop_cpvm | Success | 176.65 | test_ssvm.py
    test_05_stop_ssvm | Success | 213.57 | test_ssvm.py
    test_04_cpvm_internals | Success | 1.03 | test_ssvm.py
    test_03_ssvm_internals | Success | 4.34 | test_ssvm.py
    test_02_list_cpvm_vm | Success | 0.09 | test_ssvm.py
    test_01_list_sec_storage_vm | Success | 0.10 | test_ssvm.py
    test_01_snapshot_root_disk | Success | 66.43 | test_snapshots.py
    test_04_change_offering_small | Success | 128.25 | test_service_offerings.py
    test_03_delete_service_offering | Success | 0.03 | test_service_offerings.py
    test_02_edit_service_offering | Success | 0.06 | test_service_offerings.py
    test_01_create_service_offering | Success | 0.08 | test_service_offerings.py
    test_02_sys_template_ready | Success | 0.10 | test_secondary_storage.py
    test_01_sys_vm_start | Success | 0.13 | test_secondary_storage.py
    test_09_reboot_router | Success | 175.85 | test_routers.py
    test_08_start_router | Success | 155.79 | test_routers.py
    test_07_stop_router | Success | 20.17 | test_routers.py
    test_06_router_advanced | Success | 0.04 | test_routers.py
    test_05_router_basic | Success | 0.03 | test_routers.py
    test_04_restart_network_wo_cleanup | Success | 5.55 | test_routers.py
    test_03_restart_network_cleanup | Success | 196.02 | test_routers.py
    test_02_router_internal_adv | Success | 0.90 | test_routers.py
    test_01_router_internal_basic | Success | 0.46 | test_routers.py
    test_router_dns_guestipquery | Success | 82.36 | test_router_dns.py
    test_router_dns_externalipquery | Success | 0.06 | test_router_dns.py
    test_router_dhcphosts | Success | 171.53 | test_router_dhcphosts.py
    test_01_updatevolumedetail | Success | 0.06 | test_resource_detail.py
    test_01_reset_vm_on_reboot | Success | 35.29 | test_reset_vm_on_reboot.py
    test_createRegion | Success | 0.05 | test_regions.py
    test_create_pvlan_network | Success | 5.16 | test_pvlan.py
    test_dedicatePublicIpRange | Success | 0.30 | test_public_ip_range.py
    test_04_rvpc_privategw_static_routes | Success | 1379.32 | test_privategw_acl.py
    test_03_vpc_privategw_restart_vpc_cleanup | Success | 1212.73 | test_privategw_acl.py
    test_02_vpc_privategw_static_routes | Success | 801.71 | test_privategw_acl.py
    test_01_vpc_privategw_acl | Success | 248.09 | test_privategw_acl.py
    test_01_primary_storage_nfs | Success | 36.48 | test_primary_storage.py
    test_createPortablePublicIPRange | Success | 15.14 | test_portable_publicip.py
    test_createPortablePublicIPAcquire | Success | 15.39 | test_portable_publicip.py
    test_isolate_network_password_server | Success | 97.04 | test_password_server.py
    test_UpdateStorageOverProvisioningFactor | Success | 0.09 | test_over_provisioning.py
    test_oobm_zchange_password | Success | 25.51 | test_outofbandmanagement.py
    test_oobm_multiple_mgmt_server_ownership | Success | 16.25 | test_outofbandmanagement.py
    test_oobm_issue_power_status | Success | 5.15 | test_outofbandmanagement.py
    test_oobm_issue_power_soft | Success | 15.55 | test_outofbandmanagement.py
    test_oobm_issue_power_reset | Success | 15.24 | test_outofbandmanagement.py
    test_oobm_issue_power_on | Success | 15.26 | test_outofbandmanagement.py
    test_oobm_issue_power_off | Success | 15.29 | test_outofbandmanagement.py
    test_oobm_issue_power_cycle | Success | 15.31 | test_outofbandmanagement.py
    test_oobm_enabledisable_across_clusterzones | Success | 82.29 | test_outofbandmanagement.py
    test_oobm_enable_feature_valid | Success | 5.12 | test_outofbandmanagement.py
    test_oobm_enable_feature_invalid | Success | 0.07 | test_outofbandmanagement.py
    test_oobm_disable_feature_valid | Success | 0.11 | test_outofbandmanagement.py
    test_oobm_disable_feature_invalid | Success | 0.08 | test_outofbandmanagement.py
    test_oobm_configure_invalid_driver | Success | 0.08 | test_outofbandmanagement.py
    test_oobm_configure_default_driver | Success | 0.06 | test_outofbandmanagement.py
    test_oobm_background_powerstate_sync | Success | 29.32 | test_outofbandmanagement.py
    test_extendPhysicalNetworkVlan | Success | 15.22 | test_non_contigiousvlan.py
    test_01_nic | Success | 677.88 | test_nic.py
    test_releaseIP | Success | 277.85 | test_network.py
    test_reboot_router | Success | 739.94 | test_network.py
    test_public_ip_user_account | Success | 10.21 | test_network.py
    test_public_ip_admin_account | Success | 40.22 | test_network.py
    test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Success | 76.43 | test_network.py
    test_network_rules_acquired_public_ip_2_nat_rule | Success | 61.36 | test_network.py
    test_network_rules_acquired_public_ip_1_static_nat_rule | Success | 155.25 | test_network.py
    test_delete_account | Success | 347.96 | test_network.py
    test_02_port_fwd_on_non_src_nat | Success | 55.54 | test_network.py
    test_01_port_fwd_on_src_nat | Success | 111.80 | test_network.py
    test_nic_secondaryip_add_remove | Success | 237.75 | test_multipleips_per_nic.py
    login_test_saml_user | Success | 21.36 | test_login.py
    test_assign_and_removal_lb | Success | 148.64 | test_loadbalance.py
    test_02_create_lb_rule_non_nat | Success | 207.67 | test_loadbalance.py
    test_01_create_lb_rule_src_nat | Success | 207.91 | test_loadbalance.py
    test_03_list_snapshots | Success | 0.05 | test_list_ids_parameter.py
    test_02_list_templates | Success | 0.03 | test_list_ids_parameter.py
    test_01_list_volumes | Success | 0.02 | test_list_ids_parameter.py
    test_07_list_default_iso | Success | 0.04 | test_iso.py
    test_05_iso_permissions | Success | 0.04 | test_iso.py
    test_04_extract_Iso | Success | 5.19 | test_iso.py
    test_03_delete_iso | Success | 95.14 | test_iso.py
    test_02_edit_iso | Success | 0.09 | test_iso.py
    test_01_create_iso | Success | 21.29 | test_iso.py
    test_04_rvpc_internallb_haproxy_stats_on_all_interfaces | Success | 690.59 | test_internal_lb.py
    test_03_vpc_internallb_haproxy_stats_on_all_interfaces | Success | 408.65 | test_internal_lb.py
    test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80 | Success | 1107.26 | test_internal_lb.py
    test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Success | 815.93 | test_internal_lb.py
    test_dedicateGuestVlanRange | Success | 10.20 | test_guest_vlan_range.py
    test_UpdateConfigParamWithScope | Success | 0.11 | test_global_settings.py
    test_rolepermission_lifecycle_update | Success | 6.37 | test_dynamicroles.py
    test_rolepermission_lifecycle_list | Success | 6.33 | test_dynamicroles.py
    test_rolepermission_lifecycle_delete | Success | 6.17 | test_dynamicroles.py
    test_rolepermission_lifecycle_create | Success | 6.18 | test_dynamicroles.py
    test_rolepermission_lifecycle_concurrent_updates | Success | 6.27 | test_dynamicroles.py
    test_role_lifecycle_update_role_inuse | Success | 6.18 | test_dynamicroles.py
    test_role_lifecycle_update | Success | 11.27 | test_dynamicroles.py
    test_role_lifecycle_list | Success | 6.44 | test_dynamicroles.py
    test_role_lifecycle_delete | Success | 11.22 | test_dynamicroles.py
    test_role_lifecycle_create | Success | 6.17 | test_dynamicroles.py
    test_role_inuse_deletion | Success | 6.18 | test_dynamicroles.py
    test_role_account_acls_multiple_mgmt_servers | Success | 7.64 | test_dynamicroles.py
    test_role_account_acls | Success | 7.68 | test_dynamicroles.py
    test_default_role_deletion | Success | 6.26 | test_dynamicroles.py
    test_04_create_fat_type_disk_offering | Success | 0.05 | test_disk_offerings.py
    test_03_delete_disk_offering | Success | 0.03 | test_disk_offerings.py
    test_02_edit_disk_offering | Success | 0.04 | test_disk_offerings.py
    test_02_create_sparse_type_disk_offering | Success | 0.05 | test_disk_offerings.py
    test_01_create_disk_offering | Success | 0.09 | test_disk_offerings.py
    test_deployvm_userdispersing | Success | 70.65 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userconcentrated | Success | 90.74 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_firstfit | Success | 241.73 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userdata_post | Success | 30.36 | test_deploy_vm_with_userdata.py
    test_deployvm_userdata | Success | 161.02 | test_deploy_vm_with_userdata.py
    test_02_deploy_vm_root_resize | Success | 6.15 | test_deploy_vm_root_resize.py
    test_01_deploy_vm_root_resize | Success | 6.14 | test_deploy_vm_root_resize.py
    test_00_deploy_vm_root_resize | Success | 6.25 | test_deploy_vm_root_resize.py
    test_deploy_vm_from_iso | Success | 248.26 | test_deploy_vm_iso.py
    test_3d_gpu_support | Success | 479.23 | test_deploy_vgpu_enabled_vm.py
    test_DeployVmAntiAffinityGroup | Success | 306.93 | test_affinity_groups.py
    test_08_resize_volume | Skipped | 5.08 | test_volumes.py
    test_07_resize_fail | Skipped | 10.19 | test_volumes.py
    test_06_copy_template | Skipped | 0.00 | test_templates.py
    test_static_role_account_acls | Skipped | 0.02 | test_staticroles.py
    test_11_ss_nfs_version_on_ssvm | Skipped | 0.02 | test_ssvm.py
    test_01_scale_vm | Skipped | 66.37 | test_scale_vm.py
    test_01_primary_storage_iscsi | Skipped | 0.03 | test_primary_storage.py
    test_06_copy_iso | Skipped | 0.00 | test_iso.py
    test_deploy_vgpu_enabled_vm | Skipped | 1.34 | test_deploy_vgpu_enabled_vm.py



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90221275
  
    --- Diff: setup/db/db/schema-4910to41000.sql ---
    @@ -45,4 +45,6 @@ CREATE TABLE `cloud`.`vlan_details` (
       `display` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Should detail be displayed to the end user',
       PRIMARY KEY (`id`),
       CONSTRAINT `fk_vlan_details__vlan_id` FOREIGN KEY `fk_vlan_details__vlan_id`(`vlan_id`) REFERENCES `vlan`(`id`) ON DELETE CASCADE
    -) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    \ No newline at end of file
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    +
    +ALTER TABLE `cloud`.`network_offerings` ADD COLUMN supports_public_access boolean default false;
    --- End diff --
    
    By reusing the default egress policy column, this new column can be avoided.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by fmaximus <gi...@git.apache.org>.
Github user fmaximus commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90624351
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    --- End diff --
    
    We also want to keep the specifics of resource configuration
    which are stored in host details out of the client library.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90453232
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java ---
    @@ -339,34 +398,63 @@ private void updateDhcpOptionsForExistingVms(Network network, HostVO nuageVspHos
             }
         }
     
    +    private void checkMultipleSubnetsCombinedWithUseData(Network network){
    +        if (_ntwkOfferingSrvcDao.listServicesForNetworkOffering(network.getNetworkOfferingId()).contains(Network.Service.UserData.getName()) && _vlanDao.listVlansByNetworkId(network.getId()).size() > 1) {
    --- End diff --
    
    Please consider using `isEmpty` rather than a size check to determine whether or not a list has elements.  It is more idiomatic/expressive and less error-prone.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90458374
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    --- End diff --
    
    What is the purpose of this class?  It seems that a Map<String, String> with a static validation function on `VspHostBuilder` would accomplish the same thing with less code and higher cohesion.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by krissterckx <gi...@git.apache.org>.
Github user krissterckx commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Hi @rhtyd 
    as #1806 got merged, can a travis re-run be initiated ?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @nlivens @prashanthvarma @singalrahul please squash your changes, fix conflicts, rebase against latest master. Pending lgtm/review is requested. /cc @jburwell 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90454905
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspRequestWrapper.java ---
    @@ -0,0 +1,78 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.Hashtable;
    +import java.util.Set;
    +
    +import org.reflections.Reflections;
    +
    +import com.cloud.agent.api.Answer;
    +import com.cloud.agent.api.Command;
    +import com.cloud.resource.CommandWrapper;
    +import com.cloud.resource.RequestWrapper;
    +import com.cloud.resource.ServerResource;
    +
    +public class NuageVspRequestWrapper extends RequestWrapper {
    +
    +    private static NuageVspRequestWrapper instance;
    +
    +    static {
    +        instance = new NuageVspRequestWrapper();
    +    }
    +
    +    Reflections baseWrappers = new Reflections("com.cloud.network.vsp.resource.wrapper");
    --- End diff --
    
    Why isn't this attribute declared `private static final`?  My understanding of reflections, it only needs to instantiated once to scan a package path.  It seems unnecessary/expensive to spin it up every time `NuageVspRequestWrapper` is instantiated.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @prashanthvarma can you squash the commits please, I see 4 here. At least squash the ones related, i.e. one for the feature and one for the integration test.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd I have re-kicked Travis, but it still fails due to the following exception (test environment and/or code issue) while running the test "test_create_volume_under_domain":
    
    CloudstackAPIException: Execute cmd: createvolume failed, due to: errorCode: 431, errorText:This disk offering requires a custom size specified\n
    
    Anyhow, this issue has nothing to do with the code changes in this PR. 
    
    In between, @borisroman reviewed this PR, and gave a LGTM.
    
    Let me know, if you need us to do anything from our side.
    
    CC: @jburwell @murali-reddy  


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    LGTM 
    
    From our internal code review and regression run results (including our added Nuage VSP SDN plugin specific Marvin tests, refer the previous comment for their corresponding test results).
    
    @rhtyd @jburwell You can now kick off a regression run via blueorangutan, and code review this PR.
    
    Let me know, if you need anything from our side


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by krissterckx <gi...@git.apache.org>.
Github user krissterckx commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd can we merge in ? Thanks


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90451818
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java ---
    @@ -387,41 +400,39 @@ public boolean canEnableIndividualServices() {
     
         @Override
         public boolean destroy(Network network, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException {
    -        if (!canHandle(network, Service.Connectivity)) {
    -            return false;
    -        }
    -
    -        return true;
    +        return canHandle(network, Service.Connectivity);
         }
     
         @Override
         public boolean verifyServicesCombination(Set<Service> services) {
    -        // This element can only function in a NuageVsp based
    -        // SDN network, so Connectivity needs to be present here
    -        if (!services.contains(Service.Connectivity)) {
    -            s_logger.warn("Unable to support services combination without Connectivity service provided by Nuage VSP.");
    -            return false;
    +        final Sets.SetView<Service> missingServices = Sets.difference(REQUIRED_SERVICES, services);
    +        final Sets.SetView<Service> unsupportedServices = Sets.intersection(UNSUPPORTED_SERVICES, services);
    +        final Sets.SetView<Service> wantedServices = Sets.intersection(NUAGE_ONLY_SERVICES, new HashSet<>());
    +
    +        if (!missingServices.isEmpty()) {
    +            throw new UnsupportedServiceException("Provider " + Provider.NuageVsp + " requires services: " + missingServices);
             }
     
    -        if (!services.contains(Service.SourceNat)) {
    -            s_logger.warn("Unable to support services combination without SourceNat service provided by Nuage VSP.");
    +        if (!unsupportedServices.isEmpty()) {
    +            // NuageVsp doesn't implement any of these services.
    +            // So if these services are requested, we can't handle it.
    +            s_logger.debug("Unable to support services combination. The services " + unsupportedServices + " are not supported by Nuage VSP.");
    --- End diff --
    
    Should this message logged as at `WARN` instead of `DEBUG`?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90450632
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java ---
    @@ -128,6 +135,26 @@
     
         private static final Map<Service, Map<Capability, String>> capabilities = setCapabilities();
     
    +    private static final Set<Service> REQUIRED_SERVICES = Sets.newHashSet(
    +            Service.Connectivity,
    +            Service.Dhcp
    +    );
    +    private static final Set<Service> NUAGE_ONLY_SERVICES = Sets.newHashSet(
    +            Service.SourceNat,
    +            Service.StaticNat,
    +            Service.Gateway
    +    );
    +    private static final Set<Service> UNSUPPORTED_SERVICES = Sets.newHashSet(
    --- End diff --
    
    Since this value is constant, please use ``ImmutableSet`` rather than ``HashSet``.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @jburwell @murali-reddy I'll work on the Travis issue separately, this is an intermittent issue with Travis/simulator. The only failing test is `test_create_volume_under_domain` in components/test_volumes.py. In our recent component tests run, out of 1000s of tests some 800 have passed (to give you a ballpark figure); after blocking PRs are merged, we'll work towards fixing tests/code to get all green on the branches.
    
    Given the effort invested in this PR with respect to testing and reviewing, we've enough LGTMs. I'll proceed with merging this now. Thank you everyone involved.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @prashanthvarma @fmaximus @nlivens thanks, I've kicked some tests. I'll be willing to merge the PR once they pass and we've no outstanding review items.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd a Trillian-Jenkins test job (centos7 mgmt + xenserver-65sp1) has been kicked to run smoke tests


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by nlivens <gi...@git.apache.org>.
GitHub user nlivens reopened a pull request:

    https://github.com/apache/cloudstack/pull/1579

    CLOUDSTACK-9403 : Support for shared networks in Nuage VSP plugin

    This is first phase of support of Shared Network in cloudstack through NuageVsp Network Plugin. A shared network is a type of virtual network that is shared between multiple accounts i.e. a shared network can be accessed by virtual machines that belong to many different accounts. This basic functionality will be supported with the below common use case:
    - shared network can be used for monitoring purposes. A shared network can be assigned to a domain and can be used for monitoring VMs belonging to all accounts in that domain.
    
    With the current implementation with NuageVsp plugin, Each shared network needs its unique IP address range, and can not overlap with another shared network. 
    In VSD, it is implemented in below manner:
    - In order to have tenant isolation for shared networks, we will have to create a Shared L3 Subnet for each shared network, and instantiate it across the relevant enterprises. A shared network will only exist under an enterprise when it is needed, so when the first VM is spinned under that ACS domain inside that shared network.
    
    PR contents:
    1) Support for shared networks with tenant isolation on master with Nuage VSP SDN Plugin.
    2) Marvin test coverage for shared networks on master with Nuage VSP SDN Plugin.
    3) Enhancements on our exiting Marvin test code (nuagevsp plugins directory).
    4) PEP8 & PyFlakes compliance with our Marvin test code.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nlivens/cloudstack nuage_vsp_shared_networks

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cloudstack/pull/1579.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1579
    
----
commit f316851375678b048e95d082a9df7035c7de0fa9
Author: Eric Waegeman <er...@nuagenetworks.net>
Date:   2016-05-26T09:37:52Z

    CLOUDSTACK-9401 : Support for Internal DNS in Nuage VSP plugin

commit b10af67fef96607f7bf4defc8ccdb5e679f9fdc2
Author: Rahul Singal <ra...@nuagenetworks.net>
Date:   2016-07-01T13:22:50Z

    CLOUDSTACK-9401 : Marvin tests for Internal DNS verification with NuageVsp

commit b6b9589a6b452a1aec7185d26662f24554adf938
Author: Nick Livens <ni...@nuagenetworks.net>
Date:   2016-04-28T14:24:50Z

    CLOUDSTACK-9403 : Support for shared networks in Nuage VSP plugin

commit 09ee14e3917c69dfcbd5cf182ba44e77f2a31007
Author: rahul singal <ra...@alcatel-lucent.com>
Date:   2016-06-01T15:31:24Z

    CLOUDSTACK-9403 : Marvin tests for shared networks verification with NuageVsp

commit 9b4af844ff2d2ce008b7b8ec315754c2d9712964
Author: Nick Livens <ni...@nuagenetworks.net>
Date:   2016-07-01T14:14:55Z

    CLOUDSTACK-9403 : Support for shared networks in Nuage VSP plugin

commit 381b1ea79abe5712a346bf917326344abfa7a571
Author: Rahul Singal <ra...@nuagenetworks.net>
Date:   2016-07-01T14:20:58Z

    CLOUDSTACK-9403 : Marvin tests for shared networks verification with NuageVsp
    
    Phase 2: Public Access

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by murali-reddy <gi...@git.apache.org>.
Github user murali-reddy commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    code changes LGTM
    
    Travis run has been failing due to test 'test_create_volume_under_domain' for all the PR's. Lets wait till we fix the test or disable this component test.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Marvin test code PEP8 & PyFlakes compliance:
    CloudStack$
    CloudStack$ pep8 test/integration/plugins/nuagevsp/*.py
    CloudStack$
    CloudStack$ pyflakes test/integration/plugins/nuagevsp/*.py
    CloudStack$


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    <b>Trillian test result (tid-585)</b>
    Environment: xenserver-65sp1 (x2), Advanced Networking with Mgmt server 7
    Total time taken: 35923 seconds
    Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1579-t585-xenserver-65sp1.zip
    Test completed. 47 look ok, 2 have error(s)
    
    
    Test | Result | Time (s) | Test File
    --- | --- | --- | ---
    test_05_rvpc_multi_tiers | `Failure` | 642.60 | test_vpc_redundant.py
    test_04_rvpc_network_garbage_collector_nics | `Failure` | 1355.28 | test_vpc_redundant.py
    test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | `Failure` | 587.49 | test_vpc_redundant.py
    ContextSuite context=TestRVPCSite2SiteVpn>:setup | `Error` | 0.00 | test_vpc_vpn.py
    test_05_rvpc_multi_tiers | `Error` | 838.87 | test_vpc_redundant.py
    ContextSuite context=TestVPCRedundancy>:teardown | `Error` | 843.98 | test_vpc_redundant.py
    test_01_vpc_site2site_vpn | Success | 365.40 | test_vpc_vpn.py
    test_01_vpc_remote_access_vpn | Success | 136.50 | test_vpc_vpn.py
    test_02_VPC_default_routes | Success | 348.87 | test_vpc_router_nics.py
    test_01_VPC_nics_after_destroy | Success | 691.97 | test_vpc_router_nics.py
    test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers | Success | 839.57 | test_vpc_redundant.py
    test_02_redundant_VPC_default_routes | Success | 1119.72 | test_vpc_redundant.py
    test_09_delete_detached_volume | Success | 15.68 | test_volumes.py
    test_08_resize_volume | Success | 85.61 | test_volumes.py
    test_07_resize_fail | Success | 95.65 | test_volumes.py
    test_06_download_detached_volume | Success | 20.25 | test_volumes.py
    test_05_detach_volume | Success | 100.23 | test_volumes.py
    test_04_delete_attached_volume | Success | 10.15 | test_volumes.py
    test_03_download_attached_volume | Success | 15.20 | test_volumes.py
    test_02_attach_volume | Success | 10.71 | test_volumes.py
    test_01_create_volume | Success | 393.83 | test_volumes.py
    test_03_delete_vm_snapshots | Success | 280.21 | test_vm_snapshots.py
    test_02_revert_vm_snapshots | Success | 224.39 | test_vm_snapshots.py
    test_01_create_vm_snapshots | Success | 100.73 | test_vm_snapshots.py
    test_deploy_vm_multiple | Success | 237.47 | test_vm_life_cycle.py
    test_deploy_vm | Success | 0.02 | test_vm_life_cycle.py
    test_advZoneVirtualRouter | Success | 0.02 | test_vm_life_cycle.py
    test_10_attachAndDetach_iso | Success | 36.74 | test_vm_life_cycle.py
    test_09_expunge_vm | Success | 125.16 | test_vm_life_cycle.py
    test_08_migrate_vm | Success | 65.99 | test_vm_life_cycle.py
    test_07_restore_vm | Success | 0.07 | test_vm_life_cycle.py
    test_06_destroy_vm | Success | 10.11 | test_vm_life_cycle.py
    test_03_reboot_vm | Success | 10.12 | test_vm_life_cycle.py
    test_02_start_vm | Success | 15.15 | test_vm_life_cycle.py
    test_01_stop_vm | Success | 30.20 | test_vm_life_cycle.py
    test_CreateTemplateWithDuplicateName | Success | 181.28 | test_templates.py
    test_08_list_system_templates | Success | 0.02 | test_templates.py
    test_07_list_public_templates | Success | 0.03 | test_templates.py
    test_05_template_permissions | Success | 0.08 | test_templates.py
    test_04_extract_template | Success | 5.15 | test_templates.py
    test_03_delete_template | Success | 5.09 | test_templates.py
    test_02_edit_template | Success | 90.11 | test_templates.py
    test_01_create_template | Success | 80.88 | test_templates.py
    test_10_destroy_cpvm | Success | 231.75 | test_ssvm.py
    test_09_destroy_ssvm | Success | 198.93 | test_ssvm.py
    test_08_reboot_cpvm | Success | 151.88 | test_ssvm.py
    test_07_reboot_ssvm | Success | 144.06 | test_ssvm.py
    test_06_stop_cpvm | Success | 196.72 | test_ssvm.py
    test_05_stop_ssvm | Success | 168.90 | test_ssvm.py
    test_04_cpvm_internals | Success | 1.13 | test_ssvm.py
    test_03_ssvm_internals | Success | 3.37 | test_ssvm.py
    test_02_list_cpvm_vm | Success | 0.09 | test_ssvm.py
    test_01_list_sec_storage_vm | Success | 0.10 | test_ssvm.py
    test_01_snapshot_root_disk | Success | 16.23 | test_snapshots.py
    test_04_change_offering_small | Success | 91.20 | test_service_offerings.py
    test_03_delete_service_offering | Success | 0.05 | test_service_offerings.py
    test_02_edit_service_offering | Success | 0.04 | test_service_offerings.py
    test_01_create_service_offering | Success | 0.06 | test_service_offerings.py
    test_02_sys_template_ready | Success | 0.11 | test_secondary_storage.py
    test_01_sys_vm_start | Success | 0.12 | test_secondary_storage.py
    test_01_scale_vm | Success | 5.13 | test_scale_vm.py
    test_09_reboot_router | Success | 80.44 | test_routers.py
    test_08_start_router | Success | 55.32 | test_routers.py
    test_07_stop_router | Success | 15.14 | test_routers.py
    test_06_router_advanced | Success | 0.04 | test_routers.py
    test_05_router_basic | Success | 0.03 | test_routers.py
    test_04_restart_network_wo_cleanup | Success | 5.47 | test_routers.py
    test_03_restart_network_cleanup | Success | 115.69 | test_routers.py
    test_02_router_internal_adv | Success | 0.81 | test_routers.py
    test_01_router_internal_basic | Success | 0.44 | test_routers.py
    test_router_dns_guestipquery | Success | 49.00 | test_router_dns.py
    test_router_dns_externalipquery | Success | 0.04 | test_router_dns.py
    test_router_dhcphosts | Success | 102.31 | test_router_dhcphosts.py
    test_router_dhcp_opts | Success | 31.26 | test_router_dhcphosts.py
    test_01_updatevolumedetail | Success | 0.06 | test_resource_detail.py
    test_01_reset_vm_on_reboot | Success | 115.70 | test_reset_vm_on_reboot.py
    test_createRegion | Success | 0.03 | test_regions.py
    test_create_pvlan_network | Success | 5.15 | test_pvlan.py
    test_dedicatePublicIpRange | Success | 0.30 | test_public_ip_range.py
    test_04_rvpc_privategw_static_routes | Success | 972.56 | test_privategw_acl.py
    test_03_vpc_privategw_restart_vpc_cleanup | Success | 956.75 | test_privategw_acl.py
    test_02_vpc_privategw_static_routes | Success | 777.53 | test_privategw_acl.py
    test_01_vpc_privategw_acl | Success | 162.57 | test_privategw_acl.py
    test_01_primary_storage_nfs | Success | 39.04 | test_primary_storage.py
    test_01_primary_storage_iscsi | Success | 79.37 | test_primary_storage.py
    test_createPortablePublicIPRange | Success | 15.13 | test_portable_publicip.py
    test_createPortablePublicIPAcquire | Success | 15.31 | test_portable_publicip.py
    test_isolate_network_password_server | Success | 66.52 | test_password_server.py
    test_UpdateStorageOverProvisioningFactor | Success | 0.11 | test_over_provisioning.py
    test_oobm_zchange_password | Success | 30.57 | test_outofbandmanagement.py
    test_oobm_multiple_mgmt_server_ownership | Success | 16.53 | test_outofbandmanagement.py
    test_oobm_issue_power_status | Success | 10.21 | test_outofbandmanagement.py
    test_oobm_issue_power_soft | Success | 15.23 | test_outofbandmanagement.py
    test_oobm_issue_power_reset | Success | 15.25 | test_outofbandmanagement.py
    test_oobm_issue_power_on | Success | 15.25 | test_outofbandmanagement.py
    test_oobm_issue_power_off | Success | 15.28 | test_outofbandmanagement.py
    test_oobm_issue_power_cycle | Success | 10.21 | test_outofbandmanagement.py
    test_oobm_enabledisable_across_clusterzones | Success | 87.44 | test_outofbandmanagement.py
    test_oobm_enable_feature_valid | Success | 5.12 | test_outofbandmanagement.py
    test_oobm_enable_feature_invalid | Success | 0.07 | test_outofbandmanagement.py
    test_oobm_disable_feature_valid | Success | 0.12 | test_outofbandmanagement.py
    test_oobm_disable_feature_invalid | Success | 0.08 | test_outofbandmanagement.py
    test_oobm_configure_invalid_driver | Success | 0.07 | test_outofbandmanagement.py
    test_oobm_configure_default_driver | Success | 0.06 | test_outofbandmanagement.py
    test_oobm_background_powerstate_sync | Success | 29.46 | test_outofbandmanagement.py
    test_extendPhysicalNetworkVlan | Success | 15.45 | test_non_contigiousvlan.py
    test_01_nic | Success | 651.19 | test_nic.py
    test_releaseIP | Success | 358.75 | test_network.py
    test_reboot_router | Success | 524.73 | test_network.py
    test_public_ip_user_account | Success | 10.23 | test_network.py
    test_public_ip_admin_account | Success | 40.22 | test_network.py
    test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Success | 86.48 | test_network.py
    test_network_rules_acquired_public_ip_2_nat_rule | Success | 76.39 | test_network.py
    test_network_rules_acquired_public_ip_1_static_nat_rule | Success | 100.89 | test_network.py
    test_delete_account | Success | 313.26 | test_network.py
    test_02_port_fwd_on_non_src_nat | Success | 70.57 | test_network.py
    test_01_port_fwd_on_src_nat | Success | 83.92 | test_network.py
    test_nic_secondaryip_add_remove | Success | 303.00 | test_multipleips_per_nic.py
    login_test_saml_user | Success | 21.47 | test_login.py
    test_assign_and_removal_lb | Success | 149.18 | test_loadbalance.py
    test_02_create_lb_rule_non_nat | Success | 207.44 | test_loadbalance.py
    test_01_create_lb_rule_src_nat | Success | 209.24 | test_loadbalance.py
    test_03_list_snapshots | Success | 0.04 | test_list_ids_parameter.py
    test_02_list_templates | Success | 0.03 | test_list_ids_parameter.py
    test_01_list_volumes | Success | 0.02 | test_list_ids_parameter.py
    test_07_list_default_iso | Success | 0.04 | test_iso.py
    test_05_iso_permissions | Success | 0.05 | test_iso.py
    test_04_extract_Iso | Success | 5.16 | test_iso.py
    test_03_delete_iso | Success | 95.20 | test_iso.py
    test_02_edit_iso | Success | 0.04 | test_iso.py
    test_01_create_iso | Success | 21.33 | test_iso.py
    test_04_rvpc_internallb_haproxy_stats_on_all_interfaces | Success | 570.24 | test_internal_lb.py
    test_03_vpc_internallb_haproxy_stats_on_all_interfaces | Success | 408.60 | test_internal_lb.py
    test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80 | Success | 1057.21 | test_internal_lb.py
    test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Success | 690.97 | test_internal_lb.py
    test_dedicateGuestVlanRange | Success | 10.19 | test_guest_vlan_range.py
    test_UpdateConfigParamWithScope | Success | 0.10 | test_global_settings.py
    test_rolepermission_lifecycle_update | Success | 6.43 | test_dynamicroles.py
    test_rolepermission_lifecycle_list | Success | 6.27 | test_dynamicroles.py
    test_rolepermission_lifecycle_delete | Success | 6.20 | test_dynamicroles.py
    test_rolepermission_lifecycle_create | Success | 6.18 | test_dynamicroles.py
    test_rolepermission_lifecycle_concurrent_updates | Success | 6.29 | test_dynamicroles.py
    test_role_lifecycle_update_role_inuse | Success | 6.36 | test_dynamicroles.py
    test_role_lifecycle_update | Success | 11.28 | test_dynamicroles.py
    test_role_lifecycle_list | Success | 6.23 | test_dynamicroles.py
    test_role_lifecycle_delete | Success | 11.23 | test_dynamicroles.py
    test_role_lifecycle_create | Success | 6.19 | test_dynamicroles.py
    test_role_inuse_deletion | Success | 6.17 | test_dynamicroles.py
    test_role_account_acls_multiple_mgmt_servers | Success | 7.54 | test_dynamicroles.py
    test_role_account_acls | Success | 7.84 | test_dynamicroles.py
    test_default_role_deletion | Success | 6.24 | test_dynamicroles.py
    test_04_create_fat_type_disk_offering | Success | 0.05 | test_disk_offerings.py
    test_03_delete_disk_offering | Success | 0.03 | test_disk_offerings.py
    test_02_edit_disk_offering | Success | 0.04 | test_disk_offerings.py
    test_02_create_sparse_type_disk_offering | Success | 0.06 | test_disk_offerings.py
    test_01_create_disk_offering | Success | 0.06 | test_disk_offerings.py
    test_deployvm_userdispersing | Success | 40.52 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userconcentrated | Success | 166.10 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_firstfit | Success | 226.37 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userdata_post | Success | 30.43 | test_deploy_vm_with_userdata.py
    test_deployvm_userdata | Success | 241.92 | test_deploy_vm_with_userdata.py
    test_02_deploy_vm_root_resize | Success | 6.18 | test_deploy_vm_root_resize.py
    test_01_deploy_vm_root_resize | Success | 6.16 | test_deploy_vm_root_resize.py
    test_00_deploy_vm_root_resize | Success | 6.25 | test_deploy_vm_root_resize.py
    test_deploy_vm_from_iso | Success | 152.96 | test_deploy_vm_iso.py
    test_DeployVmAntiAffinityGroup | Success | 141.13 | test_affinity_groups.py
    test_01_test_vm_volume_snapshot | Skipped | 0.00 | test_vm_snapshots.py
    test_06_copy_template | Skipped | 0.00 | test_templates.py
    test_static_role_account_acls | Skipped | 0.02 | test_staticroles.py
    test_11_ss_nfs_version_on_ssvm | Skipped | 0.02 | test_ssvm.py
    test_nested_virtualization_vmware | Skipped | 0.00 | test_nested_virtualization.py
    test_06_copy_iso | Skipped | 0.00 | test_iso.py
    test_deploy_vgpu_enabled_vm | Skipped | 0.02 | test_deploy_vgpu_enabled_vm.py
    test_3d_gpu_support | Skipped | 0.03 | test_deploy_vgpu_enabled_vm.py



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90220265
  
    --- Diff: api/src/org/apache/cloudstack/api/response/NetworkOfferingResponse.java ---
    @@ -120,6 +120,10 @@
         @Param(description = "true if network offering supports network that span multiple zones", since = "4.4")
         private Boolean supportsStrechedL2Subnet;
     
    +    @SerializedName(ApiConstants.SUPPORTS_PUBLIC_ACCESS)
    +    @Param(description = "true if network offering supports public access for guest networks", since = "4.9.0")
    +    private Boolean supportsPublicAccess;
    --- End diff --
    
    New networks can reuse the `Egress Default Policy`?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by fmaximus <gi...@git.apache.org>.
Github user fmaximus commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Rebased and squashed all commits.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd As I mentioned in the earlier comments, this feature PR has dependency with our other open feature PR #1578. Thus, we re-based this PR (2 commits) on top of that PR (2 commits) as we don't know which PR will go in first. 
    
    One option:
    Once PR #1578 has been merged into master, we will re-base this PR with latest master. Thus, we will have only two commits in this PR. 
    
    Let me know, if you want us to do this in a different way.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    <b>Trillian test result (tid-506)</b>
    Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
    Total time taken: 29877 seconds
    Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1579-t506-kvm-centos7.zip
    Test completed. 45 look ok, 4 have error(s)
    
    
    Test | Result | Time (s) | Test File
    --- | --- | --- | ---
    test_05_rvpc_multi_tiers | `Failure` | 374.62 | test_vpc_redundant.py
    test_router_dhcp_opts | `Failure` | 21.80 | test_router_dhcphosts.py
    test_05_rvpc_multi_tiers | `Error` | 677.06 | test_vpc_redundant.py
    test_01_create_template | `Error` | 80.77 | test_templates.py
    ContextSuite context=TestSnapshotRootDisk>:teardown | `Error` | 46.69 | test_snapshots.py
    test_01_vpc_site2site_vpn | Success | 175.90 | test_vpc_vpn.py
    test_01_vpc_remote_access_vpn | Success | 71.39 | test_vpc_vpn.py
    test_01_redundant_vpc_site2site_vpn | Success | 256.11 | test_vpc_vpn.py
    test_02_VPC_default_routes | Success | 328.89 | test_vpc_router_nics.py
    test_01_VPC_nics_after_destroy | Success | 575.60 | test_vpc_router_nics.py
    test_04_rvpc_network_garbage_collector_nics | Success | 1357.26 | test_vpc_redundant.py
    test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers | Success | 638.25 | test_vpc_redundant.py
    test_02_redundant_VPC_default_routes | Success | 801.85 | test_vpc_redundant.py
    test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Success | 1396.53 | test_vpc_redundant.py
    test_09_delete_detached_volume | Success | 15.59 | test_volumes.py
    test_08_resize_volume | Success | 15.41 | test_volumes.py
    test_07_resize_fail | Success | 20.48 | test_volumes.py
    test_06_download_detached_volume | Success | 15.58 | test_volumes.py
    test_05_detach_volume | Success | 100.25 | test_volumes.py
    test_04_delete_attached_volume | Success | 10.23 | test_volumes.py
    test_03_download_attached_volume | Success | 15.45 | test_volumes.py
    test_02_attach_volume | Success | 44.53 | test_volumes.py
    test_01_create_volume | Success | 737.52 | test_volumes.py
    test_deploy_vm_multiple | Success | 268.80 | test_vm_life_cycle.py
    test_deploy_vm | Success | 0.03 | test_vm_life_cycle.py
    test_advZoneVirtualRouter | Success | 0.03 | test_vm_life_cycle.py
    test_10_attachAndDetach_iso | Success | 26.72 | test_vm_life_cycle.py
    test_09_expunge_vm | Success | 125.24 | test_vm_life_cycle.py
    test_08_migrate_vm | Success | 41.06 | test_vm_life_cycle.py
    test_07_restore_vm | Success | 0.13 | test_vm_life_cycle.py
    test_06_destroy_vm | Success | 130.93 | test_vm_life_cycle.py
    test_03_reboot_vm | Success | 130.90 | test_vm_life_cycle.py
    test_02_start_vm | Success | 10.22 | test_vm_life_cycle.py
    test_01_stop_vm | Success | 50.45 | test_vm_life_cycle.py
    test_CreateTemplateWithDuplicateName | Success | 90.78 | test_templates.py
    test_08_list_system_templates | Success | 0.03 | test_templates.py
    test_07_list_public_templates | Success | 0.04 | test_templates.py
    test_05_template_permissions | Success | 0.06 | test_templates.py
    test_04_extract_template | Success | 5.14 | test_templates.py
    test_03_delete_template | Success | 5.13 | test_templates.py
    test_02_edit_template | Success | 90.19 | test_templates.py
    test_10_destroy_cpvm | Success | 141.71 | test_ssvm.py
    test_09_destroy_ssvm | Success | 168.81 | test_ssvm.py
    test_08_reboot_cpvm | Success | 166.85 | test_ssvm.py
    test_07_reboot_ssvm | Success | 169.24 | test_ssvm.py
    test_06_stop_cpvm | Success | 136.89 | test_ssvm.py
    test_05_stop_ssvm | Success | 199.16 | test_ssvm.py
    test_04_cpvm_internals | Success | 1.25 | test_ssvm.py
    test_03_ssvm_internals | Success | 4.13 | test_ssvm.py
    test_02_list_cpvm_vm | Success | 0.13 | test_ssvm.py
    test_01_list_sec_storage_vm | Success | 0.14 | test_ssvm.py
    test_01_snapshot_root_disk | Success | 11.24 | test_snapshots.py
    test_04_change_offering_small | Success | 245.73 | test_service_offerings.py
    test_03_delete_service_offering | Success | 0.04 | test_service_offerings.py
    test_02_edit_service_offering | Success | 0.08 | test_service_offerings.py
    test_01_create_service_offering | Success | 0.12 | test_service_offerings.py
    test_02_sys_template_ready | Success | 0.18 | test_secondary_storage.py
    test_01_sys_vm_start | Success | 0.25 | test_secondary_storage.py
    test_09_reboot_router | Success | 65.69 | test_routers.py
    test_08_start_router | Success | 50.48 | test_routers.py
    test_07_stop_router | Success | 15.20 | test_routers.py
    test_06_router_advanced | Success | 0.07 | test_routers.py
    test_05_router_basic | Success | 0.04 | test_routers.py
    test_04_restart_network_wo_cleanup | Success | 5.83 | test_routers.py
    test_03_restart_network_cleanup | Success | 80.68 | test_routers.py
    test_02_router_internal_adv | Success | 1.05 | test_routers.py
    test_01_router_internal_basic | Success | 0.58 | test_routers.py
    test_router_dns_guestipquery | Success | 76.95 | test_router_dns.py
    test_router_dns_externalipquery | Success | 0.08 | test_router_dns.py
    test_router_dhcphosts | Success | 292.56 | test_router_dhcphosts.py
    test_01_updatevolumedetail | Success | 0.10 | test_resource_detail.py
    test_01_reset_vm_on_reboot | Success | 196.63 | test_reset_vm_on_reboot.py
    test_createRegion | Success | 0.14 | test_regions.py
    test_create_pvlan_network | Success | 5.26 | test_pvlan.py
    test_dedicatePublicIpRange | Success | 0.48 | test_public_ip_range.py
    test_04_rvpc_privategw_static_routes | Success | 699.86 | test_privategw_acl.py
    test_03_vpc_privategw_restart_vpc_cleanup | Success | 684.05 | test_privategw_acl.py
    test_02_vpc_privategw_static_routes | Success | 507.74 | test_privategw_acl.py
    test_01_vpc_privategw_acl | Success | 128.58 | test_privategw_acl.py
    test_01_primary_storage_nfs | Success | 35.92 | test_primary_storage.py
    test_createPortablePublicIPRange | Success | 15.22 | test_portable_publicip.py
    test_createPortablePublicIPAcquire | Success | 15.51 | test_portable_publicip.py
    test_isolate_network_password_server | Success | 89.48 | test_password_server.py
    test_UpdateStorageOverProvisioningFactor | Success | 0.14 | test_over_provisioning.py
    test_oobm_zchange_password | Success | 25.66 | test_outofbandmanagement.py
    test_oobm_multiple_mgmt_server_ownership | Success | 16.37 | test_outofbandmanagement.py
    test_oobm_issue_power_status | Success | 10.26 | test_outofbandmanagement.py
    test_oobm_issue_power_soft | Success | 15.35 | test_outofbandmanagement.py
    test_oobm_issue_power_reset | Success | 15.35 | test_outofbandmanagement.py
    test_oobm_issue_power_on | Success | 15.33 | test_outofbandmanagement.py
    test_oobm_issue_power_off | Success | 10.37 | test_outofbandmanagement.py
    test_oobm_issue_power_cycle | Success | 15.38 | test_outofbandmanagement.py
    test_oobm_enabledisable_across_clusterzones | Success | 93.12 | test_outofbandmanagement.py
    test_oobm_enable_feature_valid | Success | 5.18 | test_outofbandmanagement.py
    test_oobm_enable_feature_invalid | Success | 0.10 | test_outofbandmanagement.py
    test_oobm_disable_feature_valid | Success | 5.22 | test_outofbandmanagement.py
    test_oobm_disable_feature_invalid | Success | 0.12 | test_outofbandmanagement.py
    test_oobm_configure_invalid_driver | Success | 0.11 | test_outofbandmanagement.py
    test_oobm_configure_default_driver | Success | 0.13 | test_outofbandmanagement.py
    test_oobm_background_powerstate_sync | Success | 29.48 | test_outofbandmanagement.py
    test_extendPhysicalNetworkVlan | Success | 15.34 | test_non_contigiousvlan.py
    test_01_nic | Success | 540.99 | test_nic.py
    test_releaseIP | Success | 178.63 | test_network.py
    test_reboot_router | Success | 465.65 | test_network.py
    test_public_ip_user_account | Success | 10.29 | test_network.py
    test_public_ip_admin_account | Success | 40.28 | test_network.py
    test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Success | 66.92 | test_network.py
    test_network_rules_acquired_public_ip_2_nat_rule | Success | 61.98 | test_network.py
    test_network_rules_acquired_public_ip_1_static_nat_rule | Success | 124.34 | test_network.py
    test_delete_account | Success | 365.22 | test_network.py
    test_02_port_fwd_on_non_src_nat | Success | 55.77 | test_network.py
    test_01_port_fwd_on_src_nat | Success | 142.03 | test_network.py
    test_nic_secondaryip_add_remove | Success | 213.61 | test_multipleips_per_nic.py
    login_test_saml_user | Success | 24.66 | test_login.py
    test_assign_and_removal_lb | Success | 133.84 | test_loadbalance.py
    test_02_create_lb_rule_non_nat | Success | 187.24 | test_loadbalance.py
    test_01_create_lb_rule_src_nat | Success | 220.34 | test_loadbalance.py
    test_03_list_snapshots | Success | 0.08 | test_list_ids_parameter.py
    test_02_list_templates | Success | 0.04 | test_list_ids_parameter.py
    test_01_list_volumes | Success | 0.03 | test_list_ids_parameter.py
    test_07_list_default_iso | Success | 0.06 | test_iso.py
    test_05_iso_permissions | Success | 0.07 | test_iso.py
    test_04_extract_Iso | Success | 5.14 | test_iso.py
    test_03_delete_iso | Success | 95.21 | test_iso.py
    test_02_edit_iso | Success | 0.06 | test_iso.py
    test_01_create_iso | Success | 22.06 | test_iso.py
    test_04_rvpc_internallb_haproxy_stats_on_all_interfaces | Success | 258.73 | test_internal_lb.py
    test_03_vpc_internallb_haproxy_stats_on_all_interfaces | Success | 193.14 | test_internal_lb.py
    test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80 | Success | 604.97 | test_internal_lb.py
    test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Success | 470.78 | test_internal_lb.py
    test_dedicateGuestVlanRange | Success | 10.28 | test_guest_vlan_range.py
    test_UpdateConfigParamWithScope | Success | 0.14 | test_global_settings.py
    test_rolepermission_lifecycle_update | Success | 7.09 | test_dynamicroles.py
    test_rolepermission_lifecycle_list | Success | 7.00 | test_dynamicroles.py
    test_rolepermission_lifecycle_delete | Success | 6.77 | test_dynamicroles.py
    test_rolepermission_lifecycle_create | Success | 6.83 | test_dynamicroles.py
    test_rolepermission_lifecycle_concurrent_updates | Success | 6.93 | test_dynamicroles.py
    test_role_lifecycle_update_role_inuse | Success | 6.85 | test_dynamicroles.py
    test_role_lifecycle_update | Success | 11.95 | test_dynamicroles.py
    test_role_lifecycle_list | Success | 6.92 | test_dynamicroles.py
    test_role_lifecycle_delete | Success | 11.86 | test_dynamicroles.py
    test_role_lifecycle_create | Success | 6.89 | test_dynamicroles.py
    test_role_inuse_deletion | Success | 6.79 | test_dynamicroles.py
    test_role_account_acls_multiple_mgmt_servers | Success | 9.09 | test_dynamicroles.py
    test_role_account_acls | Success | 9.34 | test_dynamicroles.py
    test_default_role_deletion | Success | 6.92 | test_dynamicroles.py
    test_04_create_fat_type_disk_offering | Success | 0.10 | test_disk_offerings.py
    test_03_delete_disk_offering | Success | 0.04 | test_disk_offerings.py
    test_02_edit_disk_offering | Success | 0.05 | test_disk_offerings.py
    test_02_create_sparse_type_disk_offering | Success | 0.09 | test_disk_offerings.py
    test_01_create_disk_offering | Success | 0.12 | test_disk_offerings.py
    test_deployvm_userdispersing | Success | 20.61 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userconcentrated | Success | 20.60 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_firstfit | Success | 85.91 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userdata_post | Success | 35.59 | test_deploy_vm_with_userdata.py
    test_deployvm_userdata | Success | 50.71 | test_deploy_vm_with_userdata.py
    test_02_deploy_vm_root_resize | Success | 6.93 | test_deploy_vm_root_resize.py
    test_01_deploy_vm_root_resize | Success | 6.93 | test_deploy_vm_root_resize.py
    test_00_deploy_vm_root_resize | Success | 238.53 | test_deploy_vm_root_resize.py
    test_deploy_vm_from_iso | Success | 218.55 | test_deploy_vm_iso.py
    test_DeployVmAntiAffinityGroup | Success | 86.08 | test_affinity_groups.py
    test_03_delete_vm_snapshots | Skipped | 0.00 | test_vm_snapshots.py
    test_02_revert_vm_snapshots | Skipped | 0.00 | test_vm_snapshots.py
    test_01_test_vm_volume_snapshot | Skipped | 0.00 | test_vm_snapshots.py
    test_01_create_vm_snapshots | Skipped | 0.00 | test_vm_snapshots.py
    test_06_copy_template | Skipped | 0.00 | test_templates.py
    test_static_role_account_acls | Skipped | 0.03 | test_staticroles.py
    test_11_ss_nfs_version_on_ssvm | Skipped | 0.02 | test_ssvm.py
    test_01_scale_vm | Skipped | 0.00 | test_scale_vm.py
    test_01_primary_storage_iscsi | Skipped | 0.11 | test_primary_storage.py
    test_nested_virtualization_vmware | Skipped | 0.00 | test_nested_virtualization.py
    test_06_copy_iso | Skipped | 0.00 | test_iso.py
    test_deploy_vgpu_enabled_vm | Skipped | 0.03 | test_deploy_vgpu_enabled_vm.py
    test_3d_gpu_support | Skipped | 0.04 | test_deploy_vgpu_enabled_vm.py



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @prashanthvarma agreed regarding the most common causes of failures.  @murali-reddy @borisstoyanov and @abhinandanprateek have been working to address these issues as they are encountered.  To avoid timeouts, I suggest using the `utils.wait_until` when you have to wait for an operation to complete.  
    
    Please feel free to submit fixes to test cases that you see failing.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90455598
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    +    private static final String NAME = "name";
    +    private static final String GUID = "guid";
    +    private static final String ZONE_ID = "zoneid";
    +    private static final String HOST_NAME = "hostname";
    +    private static final String CMS_USER = "cmsuser";
    +    private static final String CMS_USER_PASSWORD = "cmsuserpass";
    +    private static final String PORT = "port";
    +    private static final String API_VERSION = "apiversion";
    +    private static final String API_RELATIVE_PATH = "apirelativepath";
    +    private static final String RETRY_COUNT = "retrycount";
    +    private static final String RETRY_INTERVAL = "retryinterval";
    +    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
    +
    +    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
    +
    +    private String _name;
    +    private String _guid;
    +    private String _zoneId;
    +    private String _hostName;
    +    private String _cmsUser;
    +    private String _cmsUserPassword;
    +    private String _port;
    +    private String _apiVersion;
    +    private String _apiRelativePath;
    +    private String _retryCount;
    +    private String _retryInterval;
    +    private String _nuageVspCmsId;
    +
    +    public String name() {
    +        return _name;
    +    }
    +
    +    public String guid() {
    +        return this._guid;
    +    }
    +
    +    public NuageVspResourceConfiguration guid(String guid) {
    +        this._guid = guid;
    +        return this;
    +    }
    +
    +    public String zoneId() {
    +        return this._zoneId;
    +    }
    +
    +    public NuageVspResourceConfiguration zoneId(String zoneId) {
    +        this._zoneId = zoneId;
    +        return this;
    +    }
    +
    +    public String hostName() {
    +        return this._hostName;
    +    }
    +
    +    public NuageVspResourceConfiguration hostName(String hostName) {
    +        this._hostName = hostName;
    +        this._name = "Nuage VSD - " + _hostName;
    +        return this;
    +    }
    +
    +    public String cmsUser() {
    +        return this._cmsUser;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUser(String cmsUser) {
    +        this._cmsUser = cmsUser;
    +        return this;
    +    }
    +
    +    public String cmsUserPassword() {
    +        return this._cmsUserPassword;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUserPassword(String cmsUserPassword) {
    +        this._cmsUserPassword = cmsUserPassword;
    +        return this;
    +    }
    +
    +    public String port() {
    +        return this._port;
    +    }
    +
    +    public NuageVspResourceConfiguration port(String port) {
    +        this._port = port;
    +        return this;
    +    }
    +
    +    public String apiVersion() {
    +        return this._apiVersion;
    +    }
    +
    +    public NuageVspResourceConfiguration apiVersion(String apiVersion) {
    +        this._apiVersion = apiVersion;
    +        return this;
    +    }
    +
    +    public String apiRelativePath() {
    +        return this._apiRelativePath;
    +    }
    +
    +    public NuageVspResourceConfiguration apiRelativePath(String apiRelativePath) {
    +        this._apiRelativePath = apiRelativePath;
    +        return this;
    +    }
    +
    +    public String retryCount() {
    +        return this._retryCount;
    +    }
    +
    +    public NuageVspResourceConfiguration retryCount(String retryCount) {
    +        this._retryCount = retryCount;
    +        return this;
    +    }
    +
    +    public String retryInterval() {
    +        return this._retryInterval;
    +    }
    +
    +    public NuageVspResourceConfiguration retryInterval(String retryInterval) {
    +        this._retryInterval = retryInterval;
    +        return this;
    +    }
    +
    +    public String nuageVspCmsId() {
    +        return this._nuageVspCmsId;
    +    }
    +
    +    public NuageVspResourceConfiguration nuageVspCmsId(String nuageVspCmsId) {
    +        this._nuageVspCmsId = nuageVspCmsId;
    +        return this;
    +    }
    +
    +    public String getRootPath(){
    --- End diff --
    
    Why represent a URI as a `String` instead of a `URI`?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorangutan package


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd Just to make sure, are we waiting for a LGTM to merge this PR ?
    
    May be, @jburwell can comment and/or give a LGTM as he has reviewed the PR :)


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90450802
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/CleanUpDomainCommand.java ---
    @@ -0,0 +1,63 @@
    +//
    +// 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.agent.api.manager;
    +
    +import com.cloud.agent.api.Command;
    +import net.nuage.vsp.acs.client.api.model.VspDomainCleanUp;
    +
    +public class CleanUpDomainCommand extends Command {
    +
    +    private final VspDomainCleanUp _domainCleanUp;
    +
    +    public CleanUpDomainCommand(VspDomainCleanUp domainCleanUp) {
    +        super();
    +        this._domainCleanUp = domainCleanUp;
    +    }
    +
    +    public VspDomainCleanUp getDomainCleanUp() {
    +        return _domainCleanUp;
    +    }
    +
    +    @Override
    +    public boolean executeInSequence() {
    +        return false;
    +    }
    +
    +    @Override
    +    public boolean equals(Object o) {
    +        if (this == o) return true;
    +        if (!(o instanceof CleanUpDomainCommand)) return false;
    +        if (!super.equals(o)) return false;
    --- End diff --
    
    Per our coding standards, all `if` blocks must wrapped in curly braces.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by singalrahul <gi...@git.apache.org>.
Github user singalrahul commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Added Marvin code PEP8 & PyFlakes compliance:
    cloudstack$ pep8 --max-line-length=150 test_nuage_sharednetwork_vpc_vm_monitor.py
    cloudstack$ pyflakes test_nuage_sharednetwork_vpc_vm_monitor.py
    cloudstack$ pep8 --max-line-length=150 test_nuage_sharednetwork_deployVM.py
    cloudstack$ pyflakes test_nuage_sharednetwork_deployVM.py
    cloudstack$
    
    Validations:-
    Marvin test run:
    nosetests --with-marvin --marvin-config=nuage.cfg plugins/nuagevsp/test_nuage_sharednetwork_deployVM.py
    
    Valiate that ROOT admin is NOT able to deploy a VM for a user in ROOT domain in a shared network with ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for a admin user in a shared network with ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_differentdomain | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for admin user in the same domain but in a ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for user in the same domain but in a different ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_domainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for regular user in a shared network with scope=account ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_account_user | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for user in ROOT domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for a domain admin users in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for other users in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_domainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for admin user in a domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for any user in a subdomain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain admin user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for domain admin user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for domain user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_domainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain admin user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for sub domain admin user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for sub domain user in a shared network with scope=domain with no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for domain admin user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for domain user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_domainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain admin user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_parentdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is NOT able to deploy a VM for parent domain user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_parentdomainuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for subdomain admin user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that ROOT admin is able to deploy a VM for subdomain user in a shared network with scope=domain with subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for an regular user in ROOT domain in a shared network with scope=account ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able NOT able to deploy a VM for an regular user from a differnt domain in a shared network with scope=account ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_differentdomain | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for an admin user in the same domain but belonging ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in the same domain but belonging to a ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for an regular user in a shared network with scope=account ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_user | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in other domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_crossdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for a domain admin user in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for a domain user in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for a sub domain admin user in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for a sub domain user in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for domain admin user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for domain user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_domainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy VM for parent domain admin user in shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for parent domain user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for sub domain admin user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for sub domain user in a shared network with scope=Domain and no subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_ROOTuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for admin user in domain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_domainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for regular user in domain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_domainuser | Status : SUCCESS ===
    ok
    Validate that Domain admin is NOT able to deploy VM for admin user in parent domain in shared network with scope=Domain subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_parentdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin NOT able to deploy VM for regular user in parent domain in shared network with scope=Domain subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_parentdomainuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for admin user in subdomain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_subdomainadminuser | Status : SUCCESS ===
    ok
    Valiate that Domain admin is able to deploy a VM for regular user in subdomain in a shared network with scope=Domain and subdomain access ... === TestName: test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_subdomainuser | Status : SUCCESS ===
    ok
    Valiate that regular user is able NOT able to deploy a VM for another user in the same  domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_regularuser_scope_all_anotherusersamedomain | Status : SUCCESS ===
    ok
    Valiate that regular user is able NOT able to deploy a VM for another user in a different domain in a shared network with scope=all ... === TestName: test_deployVM_in_sharedNetwork_as_regularuser_scope_all_crossdomain | Status : SUCCESS ===
    ok
    
    ----------------------------------------------------------------------
    Ran 51 tests in 3192.356s
    
    OK
    
    [runinfo.txt](https://github.com/apache/cloudstack/files/295599/runinfo.txt)
    
    nosetests --with-marvin --marvin-config=nuage.cfg plugins/nuagevsp/test_nuage_sharednetwork_vpc_vm_monitor.py
    
    Valiate that Normal user in the same domain able to add NIC in a shared network with scope=all ... === TestName: test_01_addNic_in_sharedNetwork_scope_all_as_domainuser | Status : SUCCESS ===
    ok
    Valiate that Parent domain admin is able to add a NIC  in a shared network with scope=all ... === TestName: test_02_addNic_in_sharedNetwork_scope_all_as_domain_parentAdmin | Status : SUCCESS ===
    ok
    Valiate that User can enable staticNat on VPC NIC where second nicn is in a shared network with scope=all ... === TestName: test_03_staticNat_in_VPC_secondNic_sharedNetwork_scope_all | Status : SUCCESS ===
    ok
    Validate that reboot VM is done successfully without any Error ... === TestName: test_04_rebootVM_after_sharedNetwork_nic | Status : SUCCESS ===
    ok
    Validate that restart Tier Network is done successfully with cleanup ... === TestName: test_05_restart_Tier_VPC_Network_sharedNetwork_nic | Status : SUCCESS ===
    ok
    Validate that restart Shared Network is done successfully without any Error ... === TestName: test_06_restart_sharedNetwork_scope_all | Status : SUCCESS ===
    ok
    Valiate that Normal user in the same domain able to remove NIC in a shared network which is added by Parent Domain Admin ... === TestName: test_07_removeNic_in_sharedNetwork_scope_all_as_domainuser | Status : SUCCESS ===
    ok
    Valiate that Parent domain admin is able to remove a NIC  which is added by child domain user ... === TestName: test_08_removeNic_in_sharedNetwork_scope_all_as_domain_parentAdmin | Status : SUCCESS ===
    ok
    Valiate that Normal user in the same domain able to add NIC in a shared network with scope=domain without subdomain Access ... === TestName: test_09_addNic_in_sharedNetwork_scope_domain_as_domainuser | Status : SUCCESS ===
    ok
    Valiate that Normal user in the same domain able to add NIC in a shared network with scope=domain with subdomain Access ... === TestName: test_10_addNic_in_sharedNetwork_scope_domain_subdomain_as_domainuser | Status : SUCCESS ===
    ok
    
    ----------------------------------------------------------------------
    Ran 10 tests in 744.354s
    
    OK
    
    [runinfo.txt](https://github.com/apache/cloudstack/files/295606/runinfo.txt)



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    <b>Trillian test result (tid-505)</b>
    Environment: xenserver-65sp1 (x2), Advanced Networking with Mgmt server 6
    Total time taken: 34519 seconds
    Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1579-t505-xenserver-65sp1.zip
    Test completed. 46 look ok, 3 have error(s)
    
    
    Test | Result | Time (s) | Test File
    --- | --- | --- | ---
    test_05_rvpc_multi_tiers | `Failure` | 556.81 | test_vpc_redundant.py
    test_04_rvpc_network_garbage_collector_nics | `Failure` | 1376.31 | test_vpc_redundant.py
    test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | `Failure` | 568.62 | test_vpc_redundant.py
    test_01_snapshot_root_disk | `Failure` | 16.14 | test_snapshots.py
    test_router_dhcp_opts | `Failure` | 31.02 | test_router_dhcphosts.py
    test_01_vpc_site2site_vpn | Success | 402.15 | test_vpc_vpn.py
    test_01_vpc_remote_access_vpn | Success | 177.02 | test_vpc_vpn.py
    test_01_redundant_vpc_site2site_vpn | Success | 597.55 | test_vpc_vpn.py
    test_02_VPC_default_routes | Success | 354.86 | test_vpc_router_nics.py
    test_01_VPC_nics_after_destroy | Success | 708.85 | test_vpc_router_nics.py
    test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers | Success | 869.84 | test_vpc_redundant.py
    test_02_redundant_VPC_default_routes | Success | 1121.57 | test_vpc_redundant.py
    test_09_delete_detached_volume | Success | 15.59 | test_volumes.py
    test_08_resize_volume | Success | 85.77 | test_volumes.py
    test_07_resize_fail | Success | 100.84 | test_volumes.py
    test_06_download_detached_volume | Success | 20.32 | test_volumes.py
    test_05_detach_volume | Success | 100.25 | test_volumes.py
    test_04_delete_attached_volume | Success | 10.20 | test_volumes.py
    test_03_download_attached_volume | Success | 15.30 | test_volumes.py
    test_02_attach_volume | Success | 10.66 | test_volumes.py
    test_01_create_volume | Success | 387.50 | test_volumes.py
    test_03_delete_vm_snapshots | Success | 280.21 | test_vm_snapshots.py
    test_02_revert_vm_snapshots | Success | 181.51 | test_vm_snapshots.py
    test_01_create_vm_snapshots | Success | 146.18 | test_vm_snapshots.py
    test_deploy_vm_multiple | Success | 323.35 | test_vm_life_cycle.py
    test_deploy_vm | Success | 0.02 | test_vm_life_cycle.py
    test_advZoneVirtualRouter | Success | 0.02 | test_vm_life_cycle.py
    test_10_attachAndDetach_iso | Success | 46.96 | test_vm_life_cycle.py
    test_09_expunge_vm | Success | 125.14 | test_vm_life_cycle.py
    test_08_migrate_vm | Success | 71.14 | test_vm_life_cycle.py
    test_07_restore_vm | Success | 0.10 | test_vm_life_cycle.py
    test_06_destroy_vm | Success | 10.13 | test_vm_life_cycle.py
    test_03_reboot_vm | Success | 10.14 | test_vm_life_cycle.py
    test_02_start_vm | Success | 20.20 | test_vm_life_cycle.py
    test_01_stop_vm | Success | 30.24 | test_vm_life_cycle.py
    test_CreateTemplateWithDuplicateName | Success | 110.81 | test_templates.py
    test_08_list_system_templates | Success | 0.02 | test_templates.py
    test_07_list_public_templates | Success | 0.03 | test_templates.py
    test_05_template_permissions | Success | 0.04 | test_templates.py
    test_04_extract_template | Success | 5.19 | test_templates.py
    test_03_delete_template | Success | 5.10 | test_templates.py
    test_02_edit_template | Success | 90.12 | test_templates.py
    test_01_create_template | Success | 76.20 | test_templates.py
    test_10_destroy_cpvm | Success | 201.57 | test_ssvm.py
    test_09_destroy_ssvm | Success | 229.08 | test_ssvm.py
    test_08_reboot_cpvm | Success | 151.65 | test_ssvm.py
    test_07_reboot_ssvm | Success | 143.76 | test_ssvm.py
    test_06_stop_cpvm | Success | 201.76 | test_ssvm.py
    test_05_stop_ssvm | Success | 168.89 | test_ssvm.py
    test_04_cpvm_internals | Success | 1.18 | test_ssvm.py
    test_03_ssvm_internals | Success | 3.38 | test_ssvm.py
    test_02_list_cpvm_vm | Success | 0.09 | test_ssvm.py
    test_01_list_sec_storage_vm | Success | 0.10 | test_ssvm.py
    test_04_change_offering_small | Success | 113.92 | test_service_offerings.py
    test_03_delete_service_offering | Success | 0.04 | test_service_offerings.py
    test_02_edit_service_offering | Success | 0.07 | test_service_offerings.py
    test_01_create_service_offering | Success | 0.08 | test_service_offerings.py
    test_02_sys_template_ready | Success | 0.09 | test_secondary_storage.py
    test_01_sys_vm_start | Success | 0.13 | test_secondary_storage.py
    test_01_scale_vm | Success | 5.19 | test_scale_vm.py
    test_09_reboot_router | Success | 65.43 | test_routers.py
    test_08_start_router | Success | 55.40 | test_routers.py
    test_07_stop_router | Success | 15.16 | test_routers.py
    test_06_router_advanced | Success | 0.05 | test_routers.py
    test_05_router_basic | Success | 0.03 | test_routers.py
    test_04_restart_network_wo_cleanup | Success | 5.49 | test_routers.py
    test_03_restart_network_cleanup | Success | 126.01 | test_routers.py
    test_02_router_internal_adv | Success | 1.10 | test_routers.py
    test_01_router_internal_basic | Success | 0.55 | test_routers.py
    test_router_dns_guestipquery | Success | 48.84 | test_router_dns.py
    test_router_dns_externalipquery | Success | 0.06 | test_router_dns.py
    test_router_dhcphosts | Success | 107.61 | test_router_dhcphosts.py
    test_01_updatevolumedetail | Success | 0.08 | test_resource_detail.py
    test_01_reset_vm_on_reboot | Success | 90.68 | test_reset_vm_on_reboot.py
    test_createRegion | Success | 0.04 | test_regions.py
    test_create_pvlan_network | Success | 5.20 | test_pvlan.py
    test_dedicatePublicIpRange | Success | 0.42 | test_public_ip_range.py
    test_04_rvpc_privategw_static_routes | Success | 1051.84 | test_privategw_acl.py
    test_03_vpc_privategw_restart_vpc_cleanup | Success | 1019.43 | test_privategw_acl.py
    test_02_vpc_privategw_static_routes | Success | 754.99 | test_privategw_acl.py
    test_01_vpc_privategw_acl | Success | 132.78 | test_privategw_acl.py
    test_01_primary_storage_nfs | Success | 38.90 | test_primary_storage.py
    test_01_primary_storage_iscsi | Success | 79.52 | test_primary_storage.py
    test_createPortablePublicIPRange | Success | 15.48 | test_portable_publicip.py
    test_createPortablePublicIPAcquire | Success | 15.48 | test_portable_publicip.py
    test_isolate_network_password_server | Success | 36.14 | test_password_server.py
    test_UpdateStorageOverProvisioningFactor | Success | 0.13 | test_over_provisioning.py
    test_oobm_zchange_password | Success | 30.68 | test_outofbandmanagement.py
    test_oobm_multiple_mgmt_server_ownership | Success | 16.31 | test_outofbandmanagement.py
    test_oobm_issue_power_status | Success | 10.24 | test_outofbandmanagement.py
    test_oobm_issue_power_soft | Success | 15.32 | test_outofbandmanagement.py
    test_oobm_issue_power_reset | Success | 15.30 | test_outofbandmanagement.py
    test_oobm_issue_power_on | Success | 15.31 | test_outofbandmanagement.py
    test_oobm_issue_power_off | Success | 15.32 | test_outofbandmanagement.py
    test_oobm_issue_power_cycle | Success | 15.32 | test_outofbandmanagement.py
    test_oobm_enabledisable_across_clusterzones | Success | 87.55 | test_outofbandmanagement.py
    test_oobm_enable_feature_valid | Success | 5.14 | test_outofbandmanagement.py
    test_oobm_enable_feature_invalid | Success | 0.09 | test_outofbandmanagement.py
    test_oobm_disable_feature_valid | Success | 5.16 | test_outofbandmanagement.py
    test_oobm_disable_feature_invalid | Success | 0.09 | test_outofbandmanagement.py
    test_oobm_configure_invalid_driver | Success | 0.06 | test_outofbandmanagement.py
    test_oobm_configure_default_driver | Success | 0.07 | test_outofbandmanagement.py
    test_oobm_background_powerstate_sync | Success | 18.30 | test_outofbandmanagement.py
    test_extendPhysicalNetworkVlan | Success | 15.26 | test_non_contigiousvlan.py
    test_01_nic | Success | 630.49 | test_nic.py
    test_releaseIP | Success | 328.93 | test_network.py
    test_reboot_router | Success | 579.78 | test_network.py
    test_public_ip_user_account | Success | 10.41 | test_network.py
    test_public_ip_admin_account | Success | 40.23 | test_network.py
    test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Success | 86.55 | test_network.py
    test_network_rules_acquired_public_ip_2_nat_rule | Success | 71.47 | test_network.py
    test_network_rules_acquired_public_ip_1_static_nat_rule | Success | 102.75 | test_network.py
    test_delete_account | Success | 253.50 | test_network.py
    test_02_port_fwd_on_non_src_nat | Success | 70.78 | test_network.py
    test_01_port_fwd_on_src_nat | Success | 83.72 | test_network.py
    test_nic_secondaryip_add_remove | Success | 177.60 | test_multipleips_per_nic.py
    login_test_saml_user | Success | 21.49 | test_login.py
    test_assign_and_removal_lb | Success | 148.85 | test_loadbalance.py
    test_02_create_lb_rule_non_nat | Success | 207.47 | test_loadbalance.py
    test_01_create_lb_rule_src_nat | Success | 208.25 | test_loadbalance.py
    test_03_list_snapshots | Success | 0.07 | test_list_ids_parameter.py
    test_02_list_templates | Success | 0.03 | test_list_ids_parameter.py
    test_01_list_volumes | Success | 0.02 | test_list_ids_parameter.py
    test_07_list_default_iso | Success | 0.04 | test_iso.py
    test_05_iso_permissions | Success | 0.05 | test_iso.py
    test_04_extract_Iso | Success | 5.13 | test_iso.py
    test_03_delete_iso | Success | 95.17 | test_iso.py
    test_02_edit_iso | Success | 0.05 | test_iso.py
    test_01_create_iso | Success | 21.35 | test_iso.py
    test_04_rvpc_internallb_haproxy_stats_on_all_interfaces | Success | 454.42 | test_internal_lb.py
    test_03_vpc_internallb_haproxy_stats_on_all_interfaces | Success | 285.12 | test_internal_lb.py
    test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80 | Success | 1004.16 | test_internal_lb.py
    test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Success | 690.91 | test_internal_lb.py
    test_dedicateGuestVlanRange | Success | 10.27 | test_guest_vlan_range.py
    test_UpdateConfigParamWithScope | Success | 0.13 | test_global_settings.py
    test_rolepermission_lifecycle_update | Success | 6.51 | test_dynamicroles.py
    test_rolepermission_lifecycle_list | Success | 6.32 | test_dynamicroles.py
    test_rolepermission_lifecycle_delete | Success | 6.20 | test_dynamicroles.py
    test_rolepermission_lifecycle_create | Success | 7.04 | test_dynamicroles.py
    test_rolepermission_lifecycle_concurrent_updates | Success | 6.36 | test_dynamicroles.py
    test_role_lifecycle_update_role_inuse | Success | 6.32 | test_dynamicroles.py
    test_role_lifecycle_update | Success | 6.25 | test_dynamicroles.py
    test_role_lifecycle_list | Success | 6.21 | test_dynamicroles.py
    test_role_lifecycle_delete | Success | 11.25 | test_dynamicroles.py
    test_role_lifecycle_create | Success | 6.21 | test_dynamicroles.py
    test_role_inuse_deletion | Success | 6.21 | test_dynamicroles.py
    test_role_account_acls_multiple_mgmt_servers | Success | 7.72 | test_dynamicroles.py
    test_role_account_acls | Success | 8.15 | test_dynamicroles.py
    test_default_role_deletion | Success | 6.35 | test_dynamicroles.py
    test_04_create_fat_type_disk_offering | Success | 0.06 | test_disk_offerings.py
    test_03_delete_disk_offering | Success | 0.04 | test_disk_offerings.py
    test_02_edit_disk_offering | Success | 0.04 | test_disk_offerings.py
    test_02_create_sparse_type_disk_offering | Success | 0.07 | test_disk_offerings.py
    test_01_create_disk_offering | Success | 0.09 | test_disk_offerings.py
    test_deployvm_userdispersing | Success | 50.67 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userconcentrated | Success | 116.01 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_firstfit | Success | 206.39 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userdata_post | Success | 25.38 | test_deploy_vm_with_userdata.py
    test_deployvm_userdata | Success | 121.01 | test_deploy_vm_with_userdata.py
    test_02_deploy_vm_root_resize | Success | 6.25 | test_deploy_vm_root_resize.py
    test_01_deploy_vm_root_resize | Success | 6.22 | test_deploy_vm_root_resize.py
    test_00_deploy_vm_root_resize | Success | 6.31 | test_deploy_vm_root_resize.py
    test_deploy_vm_from_iso | Success | 202.61 | test_deploy_vm_iso.py
    test_DeployVmAntiAffinityGroup | Success | 161.47 | test_affinity_groups.py
    test_01_test_vm_volume_snapshot | Skipped | 0.00 | test_vm_snapshots.py
    test_06_copy_template | Skipped | 0.00 | test_templates.py
    test_static_role_account_acls | Skipped | 0.02 | test_staticroles.py
    test_11_ss_nfs_version_on_ssvm | Skipped | 0.02 | test_ssvm.py
    test_nested_virtualization_vmware | Skipped | 0.00 | test_nested_virtualization.py
    test_06_copy_iso | Skipped | 0.00 | test_iso.py
    test_deploy_vgpu_enabled_vm | Skipped | 0.02 | test_deploy_vgpu_enabled_vm.py
    test_3d_gpu_support | Skipped | 0.03 | test_deploy_vgpu_enabled_vm.py



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @jburwell Thank you for the update, I was planning to investigate the same test failure (test_router_dhcp_opts) as unlike other test failures it looked like an actual reproducible issue from brief failure analysis. 
    
    Anyhow, you saved me some time :)
    
    Just a small remark, most of the failures in the regression tests are either test cleanup issues (e.g. failed to delete because resource is in use) (or) timeout issues (e.g. failed to SSH into VM). According to me, one can avoid such failures by refactoring/restructuring the Marvin test code in such smoke tests.
    
    We will rebase this PR with latest master once PR #1800 and PR #1801 have been merged, and update here to re-run the regression tests.
    
    @rhtyd Once we update this PR with the requested unit test coverage in the above review comments, are we good w.r.t your code review  ?



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90456898
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    +    private static final String NAME = "name";
    +    private static final String GUID = "guid";
    +    private static final String ZONE_ID = "zoneid";
    +    private static final String HOST_NAME = "hostname";
    +    private static final String CMS_USER = "cmsuser";
    +    private static final String CMS_USER_PASSWORD = "cmsuserpass";
    +    private static final String PORT = "port";
    +    private static final String API_VERSION = "apiversion";
    +    private static final String API_RELATIVE_PATH = "apirelativepath";
    +    private static final String RETRY_COUNT = "retrycount";
    +    private static final String RETRY_INTERVAL = "retryinterval";
    +    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
    +
    +    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
    +
    +    private String _name;
    +    private String _guid;
    +    private String _zoneId;
    +    private String _hostName;
    +    private String _cmsUser;
    +    private String _cmsUserPassword;
    +    private String _port;
    +    private String _apiVersion;
    +    private String _apiRelativePath;
    +    private String _retryCount;
    +    private String _retryInterval;
    +    private String _nuageVspCmsId;
    +
    +    public String name() {
    +        return _name;
    +    }
    +
    +    public String guid() {
    +        return this._guid;
    +    }
    +
    +    public NuageVspResourceConfiguration guid(String guid) {
    +        this._guid = guid;
    +        return this;
    +    }
    +
    +    public String zoneId() {
    +        return this._zoneId;
    +    }
    +
    +    public NuageVspResourceConfiguration zoneId(String zoneId) {
    +        this._zoneId = zoneId;
    +        return this;
    +    }
    +
    +    public String hostName() {
    +        return this._hostName;
    +    }
    +
    +    public NuageVspResourceConfiguration hostName(String hostName) {
    +        this._hostName = hostName;
    +        this._name = "Nuage VSD - " + _hostName;
    +        return this;
    +    }
    +
    +    public String cmsUser() {
    +        return this._cmsUser;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUser(String cmsUser) {
    +        this._cmsUser = cmsUser;
    +        return this;
    +    }
    +
    +    public String cmsUserPassword() {
    +        return this._cmsUserPassword;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUserPassword(String cmsUserPassword) {
    +        this._cmsUserPassword = cmsUserPassword;
    +        return this;
    +    }
    +
    +    public String port() {
    +        return this._port;
    +    }
    +
    +    public NuageVspResourceConfiguration port(String port) {
    +        this._port = port;
    +        return this;
    +    }
    +
    +    public String apiVersion() {
    +        return this._apiVersion;
    +    }
    +
    +    public NuageVspResourceConfiguration apiVersion(String apiVersion) {
    +        this._apiVersion = apiVersion;
    +        return this;
    +    }
    +
    +    public String apiRelativePath() {
    +        return this._apiRelativePath;
    +    }
    +
    +    public NuageVspResourceConfiguration apiRelativePath(String apiRelativePath) {
    +        this._apiRelativePath = apiRelativePath;
    +        return this;
    +    }
    +
    +    public String retryCount() {
    +        return this._retryCount;
    +    }
    +
    +    public NuageVspResourceConfiguration retryCount(String retryCount) {
    +        this._retryCount = retryCount;
    +        return this;
    +    }
    +
    +    public String retryInterval() {
    +        return this._retryInterval;
    +    }
    +
    +    public NuageVspResourceConfiguration retryInterval(String retryInterval) {
    +        this._retryInterval = retryInterval;
    +        return this;
    +    }
    +
    +    public String nuageVspCmsId() {
    +        return this._nuageVspCmsId;
    +    }
    +
    +    public NuageVspResourceConfiguration nuageVspCmsId(String nuageVspCmsId) {
    +        this._nuageVspCmsId = nuageVspCmsId;
    +        return this;
    +    }
    +
    +    public String getRootPath(){
    +        return "https://" + _hostName + ":" + _port + "/nuage";
    +    }
    +
    +    public String getApiPath() {
    +            return "https://" + _hostName + ":" + _port + "/nuage/api/" + _apiVersion;
    +    }
    +
    +    public NuageVspApiVersion getApiVersion() throws ConfigurationException {
    +        try {
    +            if(_apiVersion != null) {
    +                return NuageVspApiVersion.fromString(_apiVersion);
    +            }
    +            return null;
    +        } catch (IllegalArgumentException e) {
    +            throw new ConfigurationException("Incorrect API version");
    +        }
    +    }
    +
    +    public Map<String, String> build() {
    +        Map<String, String> map = new HashMap<>();
    +        if (_guid != null) map.put(GUID, _guid);
    +        if (_zoneId != null) map.put(ZONE_ID, _zoneId);
    +        if (_hostName != null) map.put(HOST_NAME, _hostName);
    +        if (_cmsUser != null) map.put(CMS_USER, _cmsUser);
    +        if (_cmsUserPassword != null) map.put(CMS_USER_PASSWORD, _cmsUserPassword);
    +        if (_port != null) map.put(PORT, _port);
    +        if (_apiVersion != null) map.put(API_VERSION, _apiVersion);
    +        if (_apiRelativePath != null) map.put(API_RELATIVE_PATH, _apiRelativePath);
    +        if (_retryCount != null) map.put(RETRY_COUNT, _retryCount);
    +        if (_retryInterval != null) map.put(RETRY_INTERVAL, _retryInterval);
    +        if (_nuageVspCmsId != null) map.put(NUAGE_VSP_CMS_ID, _nuageVspCmsId);
    --- End diff --
    
    Please consider creating a utility method such as the following to DRY out this code:
    
    ```
    public  static <K, V> void putWhenNotNull(final Map<K, V> map, K key, V value) {
    
         Preconditions.checkArgument(map != null);
         Preconditions.checkArgument(key != null);
    
         if (value != null) {
               map.put(key, value);
         }
    
    }
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    <b>Trillian test result (tid-575)</b>
    Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
    Total time taken: 27915 seconds
    Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1579-t575-kvm-centos7.zip
    Test completed. 48 look ok, 1 have error(s)
    
    
    Test | Result | Time (s) | Test File
    --- | --- | --- | ---
    test_05_rvpc_multi_tiers | `Failure` | 243.77 | test_vpc_redundant.py
    test_01_vpc_site2site_vpn | Success | 195.07 | test_vpc_vpn.py
    test_01_vpc_remote_access_vpn | Success | 65.86 | test_vpc_vpn.py
    test_01_redundant_vpc_site2site_vpn | Success | 290.27 | test_vpc_vpn.py
    test_02_VPC_default_routes | Success | 298.94 | test_vpc_router_nics.py
    test_01_VPC_nics_after_destroy | Success | 588.46 | test_vpc_router_nics.py
    test_04_rvpc_network_garbage_collector_nics | Success | 1461.45 | test_vpc_redundant.py
    test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers | Success | 578.02 | test_vpc_redundant.py
    test_02_redundant_VPC_default_routes | Success | 795.41 | test_vpc_redundant.py
    test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Success | 1334.15 | test_vpc_redundant.py
    test_09_delete_detached_volume | Success | 15.38 | test_volumes.py
    test_08_resize_volume | Success | 15.29 | test_volumes.py
    test_07_resize_fail | Success | 20.34 | test_volumes.py
    test_06_download_detached_volume | Success | 15.23 | test_volumes.py
    test_05_detach_volume | Success | 100.18 | test_volumes.py
    test_04_delete_attached_volume | Success | 10.16 | test_volumes.py
    test_03_download_attached_volume | Success | 15.25 | test_volumes.py
    test_02_attach_volume | Success | 44.40 | test_volumes.py
    test_01_create_volume | Success | 714.75 | test_volumes.py
    test_deploy_vm_multiple | Success | 268.48 | test_vm_life_cycle.py
    test_deploy_vm | Success | 0.02 | test_vm_life_cycle.py
    test_advZoneVirtualRouter | Success | 0.03 | test_vm_life_cycle.py
    test_10_attachAndDetach_iso | Success | 26.77 | test_vm_life_cycle.py
    test_09_expunge_vm | Success | 125.19 | test_vm_life_cycle.py
    test_08_migrate_vm | Success | 65.79 | test_vm_life_cycle.py
    test_07_restore_vm | Success | 0.08 | test_vm_life_cycle.py
    test_06_destroy_vm | Success | 131.09 | test_vm_life_cycle.py
    test_03_reboot_vm | Success | 130.68 | test_vm_life_cycle.py
    test_02_start_vm | Success | 10.15 | test_vm_life_cycle.py
    test_01_stop_vm | Success | 45.30 | test_vm_life_cycle.py
    test_CreateTemplateWithDuplicateName | Success | 65.48 | test_templates.py
    test_08_list_system_templates | Success | 0.04 | test_templates.py
    test_07_list_public_templates | Success | 0.03 | test_templates.py
    test_05_template_permissions | Success | 0.04 | test_templates.py
    test_04_extract_template | Success | 5.15 | test_templates.py
    test_03_delete_template | Success | 5.08 | test_templates.py
    test_02_edit_template | Success | 90.11 | test_templates.py
    test_01_create_template | Success | 65.48 | test_templates.py
    test_10_destroy_cpvm | Success | 166.58 | test_ssvm.py
    test_09_destroy_ssvm | Success | 168.57 | test_ssvm.py
    test_08_reboot_cpvm | Success | 136.51 | test_ssvm.py
    test_07_reboot_ssvm | Success | 138.66 | test_ssvm.py
    test_06_stop_cpvm | Success | 166.62 | test_ssvm.py
    test_05_stop_ssvm | Success | 138.71 | test_ssvm.py
    test_04_cpvm_internals | Success | 1.23 | test_ssvm.py
    test_03_ssvm_internals | Success | 3.41 | test_ssvm.py
    test_02_list_cpvm_vm | Success | 0.11 | test_ssvm.py
    test_01_list_sec_storage_vm | Success | 0.10 | test_ssvm.py
    test_01_snapshot_root_disk | Success | 16.03 | test_snapshots.py
    test_04_change_offering_small | Success | 245.09 | test_service_offerings.py
    test_03_delete_service_offering | Success | 0.03 | test_service_offerings.py
    test_02_edit_service_offering | Success | 0.06 | test_service_offerings.py
    test_01_create_service_offering | Success | 0.09 | test_service_offerings.py
    test_02_sys_template_ready | Success | 0.09 | test_secondary_storage.py
    test_01_sys_vm_start | Success | 0.13 | test_secondary_storage.py
    test_09_reboot_router | Success | 40.26 | test_routers.py
    test_08_start_router | Success | 30.25 | test_routers.py
    test_07_stop_router | Success | 15.16 | test_routers.py
    test_06_router_advanced | Success | 0.04 | test_routers.py
    test_05_router_basic | Success | 0.03 | test_routers.py
    test_04_restart_network_wo_cleanup | Success | 5.70 | test_routers.py
    test_03_restart_network_cleanup | Success | 65.44 | test_routers.py
    test_02_router_internal_adv | Success | 1.05 | test_routers.py
    test_01_router_internal_basic | Success | 0.56 | test_routers.py
    test_router_dns_guestipquery | Success | 76.77 | test_router_dns.py
    test_router_dns_externalipquery | Success | 0.04 | test_router_dns.py
    test_router_dhcphosts | Success | 287.96 | test_router_dhcphosts.py
    test_router_dhcp_opts | Success | 21.60 | test_router_dhcphosts.py
    test_01_updatevolumedetail | Success | 0.06 | test_resource_detail.py
    test_01_reset_vm_on_reboot | Success | 135.80 | test_reset_vm_on_reboot.py
    test_createRegion | Success | 0.03 | test_regions.py
    test_create_pvlan_network | Success | 5.16 | test_pvlan.py
    test_dedicatePublicIpRange | Success | 0.29 | test_public_ip_range.py
    test_04_rvpc_privategw_static_routes | Success | 580.27 | test_privategw_acl.py
    test_03_vpc_privategw_restart_vpc_cleanup | Success | 529.61 | test_privategw_acl.py
    test_02_vpc_privategw_static_routes | Success | 455.37 | test_privategw_acl.py
    test_01_vpc_privategw_acl | Success | 97.32 | test_privategw_acl.py
    test_01_primary_storage_nfs | Success | 35.72 | test_primary_storage.py
    test_createPortablePublicIPRange | Success | 15.16 | test_portable_publicip.py
    test_createPortablePublicIPAcquire | Success | 15.34 | test_portable_publicip.py
    test_isolate_network_password_server | Success | 89.35 | test_password_server.py
    test_UpdateStorageOverProvisioningFactor | Success | 0.17 | test_over_provisioning.py
    test_oobm_zchange_password | Success | 30.55 | test_outofbandmanagement.py
    test_oobm_multiple_mgmt_server_ownership | Success | 11.26 | test_outofbandmanagement.py
    test_oobm_issue_power_status | Success | 10.18 | test_outofbandmanagement.py
    test_oobm_issue_power_soft | Success | 15.25 | test_outofbandmanagement.py
    test_oobm_issue_power_reset | Success | 10.23 | test_outofbandmanagement.py
    test_oobm_issue_power_on | Success | 15.26 | test_outofbandmanagement.py
    test_oobm_issue_power_off | Success | 10.22 | test_outofbandmanagement.py
    test_oobm_issue_power_cycle | Success | 15.24 | test_outofbandmanagement.py
    test_oobm_enabledisable_across_clusterzones | Success | 87.50 | test_outofbandmanagement.py
    test_oobm_enable_feature_valid | Success | 5.12 | test_outofbandmanagement.py
    test_oobm_enable_feature_invalid | Success | 0.09 | test_outofbandmanagement.py
    test_oobm_disable_feature_valid | Success | 0.13 | test_outofbandmanagement.py
    test_oobm_disable_feature_invalid | Success | 0.09 | test_outofbandmanagement.py
    test_oobm_configure_invalid_driver | Success | 0.07 | test_outofbandmanagement.py
    test_oobm_configure_default_driver | Success | 0.06 | test_outofbandmanagement.py
    test_oobm_background_powerstate_sync | Success | 29.33 | test_outofbandmanagement.py
    test_extendPhysicalNetworkVlan | Success | 15.26 | test_non_contigiousvlan.py
    test_01_nic | Success | 554.48 | test_nic.py
    test_releaseIP | Success | 288.02 | test_network.py
    test_reboot_router | Success | 483.69 | test_network.py
    test_public_ip_user_account | Success | 10.21 | test_network.py
    test_public_ip_admin_account | Success | 40.24 | test_network.py
    test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Success | 66.80 | test_network.py
    test_network_rules_acquired_public_ip_2_nat_rule | Success | 61.67 | test_network.py
    test_network_rules_acquired_public_ip_1_static_nat_rule | Success | 125.50 | test_network.py
    test_delete_account | Success | 307.88 | test_network.py
    test_02_port_fwd_on_non_src_nat | Success | 55.51 | test_network.py
    test_01_port_fwd_on_src_nat | Success | 111.74 | test_network.py
    test_nic_secondaryip_add_remove | Success | 242.87 | test_multipleips_per_nic.py
    login_test_saml_user | Success | 21.32 | test_login.py
    test_assign_and_removal_lb | Success | 133.56 | test_loadbalance.py
    test_02_create_lb_rule_non_nat | Success | 187.68 | test_loadbalance.py
    test_01_create_lb_rule_src_nat | Success | 228.32 | test_loadbalance.py
    test_03_list_snapshots | Success | 0.04 | test_list_ids_parameter.py
    test_02_list_templates | Success | 0.03 | test_list_ids_parameter.py
    test_01_list_volumes | Success | 0.02 | test_list_ids_parameter.py
    test_07_list_default_iso | Success | 0.04 | test_iso.py
    test_05_iso_permissions | Success | 0.04 | test_iso.py
    test_04_extract_Iso | Success | 5.12 | test_iso.py
    test_03_delete_iso | Success | 95.16 | test_iso.py
    test_02_edit_iso | Success | 0.04 | test_iso.py
    test_01_create_iso | Success | 21.27 | test_iso.py
    test_04_rvpc_internallb_haproxy_stats_on_all_interfaces | Success | 277.79 | test_internal_lb.py
    test_03_vpc_internallb_haproxy_stats_on_all_interfaces | Success | 198.12 | test_internal_lb.py
    test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80 | Success | 654.32 | test_internal_lb.py
    test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Success | 487.84 | test_internal_lb.py
    test_dedicateGuestVlanRange | Success | 10.21 | test_guest_vlan_range.py
    test_UpdateConfigParamWithScope | Success | 0.11 | test_global_settings.py
    test_rolepermission_lifecycle_update | Success | 6.41 | test_dynamicroles.py
    test_rolepermission_lifecycle_list | Success | 6.32 | test_dynamicroles.py
    test_rolepermission_lifecycle_delete | Success | 6.16 | test_dynamicroles.py
    test_rolepermission_lifecycle_create | Success | 6.20 | test_dynamicroles.py
    test_rolepermission_lifecycle_concurrent_updates | Success | 6.26 | test_dynamicroles.py
    test_role_lifecycle_update_role_inuse | Success | 6.21 | test_dynamicroles.py
    test_role_lifecycle_update | Success | 11.27 | test_dynamicroles.py
    test_role_lifecycle_list | Success | 6.21 | test_dynamicroles.py
    test_role_lifecycle_delete | Success | 11.22 | test_dynamicroles.py
    test_role_lifecycle_create | Success | 6.21 | test_dynamicroles.py
    test_role_inuse_deletion | Success | 6.17 | test_dynamicroles.py
    test_role_account_acls_multiple_mgmt_servers | Success | 7.54 | test_dynamicroles.py
    test_role_account_acls | Success | 7.75 | test_dynamicroles.py
    test_default_role_deletion | Success | 6.27 | test_dynamicroles.py
    test_04_create_fat_type_disk_offering | Success | 0.05 | test_disk_offerings.py
    test_03_delete_disk_offering | Success | 0.03 | test_disk_offerings.py
    test_02_edit_disk_offering | Success | 0.04 | test_disk_offerings.py
    test_02_create_sparse_type_disk_offering | Success | 0.05 | test_disk_offerings.py
    test_01_create_disk_offering | Success | 0.08 | test_disk_offerings.py
    test_deployvm_userdispersing | Success | 20.48 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userconcentrated | Success | 20.40 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_firstfit | Success | 120.78 | test_deploy_vms_with_varied_deploymentplanners.py
    test_deployvm_userdata_post | Success | 10.28 | test_deploy_vm_with_userdata.py
    test_deployvm_userdata | Success | 95.98 | test_deploy_vm_with_userdata.py
    test_02_deploy_vm_root_resize | Success | 6.23 | test_deploy_vm_root_resize.py
    test_01_deploy_vm_root_resize | Success | 6.25 | test_deploy_vm_root_resize.py
    test_00_deploy_vm_root_resize | Success | 237.52 | test_deploy_vm_root_resize.py
    test_deploy_vm_from_iso | Success | 217.48 | test_deploy_vm_iso.py
    test_DeployVmAntiAffinityGroup | Success | 105.87 | test_affinity_groups.py
    test_03_delete_vm_snapshots | Skipped | 0.00 | test_vm_snapshots.py
    test_02_revert_vm_snapshots | Skipped | 0.00 | test_vm_snapshots.py
    test_01_test_vm_volume_snapshot | Skipped | 0.00 | test_vm_snapshots.py
    test_01_create_vm_snapshots | Skipped | 0.00 | test_vm_snapshots.py
    test_06_copy_template | Skipped | 0.00 | test_templates.py
    test_static_role_account_acls | Skipped | 0.03 | test_staticroles.py
    test_11_ss_nfs_version_on_ssvm | Skipped | 0.02 | test_ssvm.py
    test_01_scale_vm | Skipped | 0.00 | test_scale_vm.py
    test_01_primary_storage_iscsi | Skipped | 0.03 | test_primary_storage.py
    test_nested_virtualization_vmware | Skipped | 0.00 | test_nested_virtualization.py
    test_06_copy_iso | Skipped | 0.00 | test_iso.py
    test_deploy_vgpu_enabled_vm | Skipped | 0.02 | test_deploy_vgpu_enabled_vm.py
    test_3d_gpu_support | Skipped | 0.03 | test_deploy_vgpu_enabled_vm.py



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90457877
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    +    private static final String NAME = "name";
    +    private static final String GUID = "guid";
    +    private static final String ZONE_ID = "zoneid";
    +    private static final String HOST_NAME = "hostname";
    +    private static final String CMS_USER = "cmsuser";
    +    private static final String CMS_USER_PASSWORD = "cmsuserpass";
    +    private static final String PORT = "port";
    +    private static final String API_VERSION = "apiversion";
    +    private static final String API_RELATIVE_PATH = "apirelativepath";
    +    private static final String RETRY_COUNT = "retrycount";
    +    private static final String RETRY_INTERVAL = "retryinterval";
    +    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
    +
    +    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
    +
    +    private String _name;
    +    private String _guid;
    +    private String _zoneId;
    +    private String _hostName;
    +    private String _cmsUser;
    +    private String _cmsUserPassword;
    +    private String _port;
    +    private String _apiVersion;
    +    private String _apiRelativePath;
    +    private String _retryCount;
    +    private String _retryInterval;
    +    private String _nuageVspCmsId;
    +
    +    public String name() {
    +        return _name;
    +    }
    +
    +    public String guid() {
    +        return this._guid;
    +    }
    +
    +    public NuageVspResourceConfiguration guid(String guid) {
    +        this._guid = guid;
    +        return this;
    +    }
    +
    +    public String zoneId() {
    +        return this._zoneId;
    +    }
    +
    +    public NuageVspResourceConfiguration zoneId(String zoneId) {
    +        this._zoneId = zoneId;
    +        return this;
    +    }
    +
    +    public String hostName() {
    +        return this._hostName;
    +    }
    +
    +    public NuageVspResourceConfiguration hostName(String hostName) {
    +        this._hostName = hostName;
    +        this._name = "Nuage VSD - " + _hostName;
    +        return this;
    +    }
    +
    +    public String cmsUser() {
    +        return this._cmsUser;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUser(String cmsUser) {
    +        this._cmsUser = cmsUser;
    +        return this;
    +    }
    +
    +    public String cmsUserPassword() {
    +        return this._cmsUserPassword;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUserPassword(String cmsUserPassword) {
    +        this._cmsUserPassword = cmsUserPassword;
    +        return this;
    +    }
    +
    +    public String port() {
    +        return this._port;
    +    }
    +
    +    public NuageVspResourceConfiguration port(String port) {
    +        this._port = port;
    +        return this;
    +    }
    +
    +    public String apiVersion() {
    +        return this._apiVersion;
    +    }
    +
    +    public NuageVspResourceConfiguration apiVersion(String apiVersion) {
    +        this._apiVersion = apiVersion;
    +        return this;
    +    }
    +
    +    public String apiRelativePath() {
    +        return this._apiRelativePath;
    +    }
    +
    +    public NuageVspResourceConfiguration apiRelativePath(String apiRelativePath) {
    +        this._apiRelativePath = apiRelativePath;
    +        return this;
    +    }
    +
    +    public String retryCount() {
    +        return this._retryCount;
    +    }
    +
    +    public NuageVspResourceConfiguration retryCount(String retryCount) {
    +        this._retryCount = retryCount;
    +        return this;
    +    }
    +
    +    public String retryInterval() {
    +        return this._retryInterval;
    +    }
    +
    +    public NuageVspResourceConfiguration retryInterval(String retryInterval) {
    +        this._retryInterval = retryInterval;
    +        return this;
    +    }
    +
    +    public String nuageVspCmsId() {
    +        return this._nuageVspCmsId;
    +    }
    +
    +    public NuageVspResourceConfiguration nuageVspCmsId(String nuageVspCmsId) {
    +        this._nuageVspCmsId = nuageVspCmsId;
    +        return this;
    +    }
    +
    +    public String getRootPath(){
    +        return "https://" + _hostName + ":" + _port + "/nuage";
    +    }
    +
    +    public String getApiPath() {
    +            return "https://" + _hostName + ":" + _port + "/nuage/api/" + _apiVersion;
    +    }
    +
    +    public NuageVspApiVersion getApiVersion() throws ConfigurationException {
    +        try {
    +            if(_apiVersion != null) {
    +                return NuageVspApiVersion.fromString(_apiVersion);
    +            }
    +            return null;
    +        } catch (IllegalArgumentException e) {
    +            throw new ConfigurationException("Incorrect API version");
    +        }
    +    }
    +
    +    public Map<String, String> build() {
    +        Map<String, String> map = new HashMap<>();
    +        if (_guid != null) map.put(GUID, _guid);
    +        if (_zoneId != null) map.put(ZONE_ID, _zoneId);
    +        if (_hostName != null) map.put(HOST_NAME, _hostName);
    +        if (_cmsUser != null) map.put(CMS_USER, _cmsUser);
    +        if (_cmsUserPassword != null) map.put(CMS_USER_PASSWORD, _cmsUserPassword);
    +        if (_port != null) map.put(PORT, _port);
    +        if (_apiVersion != null) map.put(API_VERSION, _apiVersion);
    +        if (_apiRelativePath != null) map.put(API_RELATIVE_PATH, _apiRelativePath);
    +        if (_retryCount != null) map.put(RETRY_COUNT, _retryCount);
    +        if (_retryInterval != null) map.put(RETRY_INTERVAL, _retryInterval);
    +        if (_nuageVspCmsId != null) map.put(NUAGE_VSP_CMS_ID, _nuageVspCmsId);
    +        return  map;
    +    }
    +
    +    public static NuageVspResourceConfiguration fromConfiguration(Map<String, ?> configuration) {
    +        return new NuageVspResourceConfiguration()
    +                .guid((String)configuration.get(GUID))
    +                .zoneId((String)configuration.get(ZONE_ID))
    +                .hostName((String)configuration.get(HOST_NAME))
    +                .cmsUser((String)configuration.get(CMS_USER))
    +                .cmsUserPassword((String)configuration.get(CMS_USER_PASSWORD))
    +                .port((String)configuration.get(PORT))
    +                .apiVersion((String)configuration.get(API_VERSION))
    +                .apiRelativePath((String)configuration.get(API_RELATIVE_PATH))
    +                .retryCount((String)configuration.get(RETRY_COUNT))
    +                .retryInterval((String)configuration.get(RETRY_INTERVAL))
    +                .nuageVspCmsId((String)configuration.get(NUAGE_VSP_CMS_ID));
    +    }
    +
    +    private void verifyNotNull(String name, String value) throws ConfigurationException {
    +        if (value == null) {
    +            throw new ConfigurationException("Unable to find " + name);
    +        }
    +    }
    +
    +    private void verifyNotEmpty(String name, String value) throws ConfigurationException {
    +        if (org.apache.commons.lang.StringUtils.isEmpty(value)) {
    +            throw new ConfigurationException("Unable to find " + name);
    +        }
    +    }
    +
    +    public void validate() throws ConfigurationException {
    +        verifyNotNull("name", _name);
    +        verifyNotNull("guid", _guid);
    +        verifyNotNull("zone", _zoneId);
    +        verifyNotNull("hostname", _hostName);
    +        verifyNotNull("CMS username", _cmsUser);
    +        verifyNotNull("CMS password", _cmsUserPassword);
    +
    +        if (org.apache.commons.lang.StringUtils.isBlank(_apiVersion)) {
    +            throw new ConfigurationException("Unable to find API version");
    +        }
    +
    +        try {
    +                new NuageVspApiVersion(_apiVersion);
    +        } catch(IllegalArgumentException e) {
    +            throw new ConfigurationException("Incorrect API version");
    +        }
    +
    +        verifyNotEmpty("number of retries", _retryCount);
    +        verifyNotEmpty("retry interval", _retryInterval);
    +    }
    +
    +    public int parseRetryCount() throws ConfigurationException {
    +        verifyNotEmpty("number of retries", _retryCount);
    +        int retryCount;
    +        try {
    +            retryCount = Integer.parseInt(_retryCount);
    +        } catch (NumberFormatException ex) {
    +            throw new ConfigurationException("Number of retries has to be between 1 and 10");
    +        }
    +        if ((retryCount < 1) || (retryCount > 10)) {
    +            throw new ConfigurationException("Number of retries has to be between 1 and 10");
    +        }
    +        return retryCount;
    +
    +    }
    +
    +    public int parseRetryInterval() throws ConfigurationException {
    +        verifyNotEmpty("retry interval", _retryInterval);
    +        int retryInterval;
    +        try {
    +            retryInterval = Integer.parseInt(_retryInterval);
    +        } catch (NumberFormatException ex) {
    +            throw new ConfigurationException("Number of retries has to be between 1 and 10");
    --- End diff --
    
    This message appears to be a duplication of line 258 and doesn't match the range on line 275.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90455612
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java ---
    @@ -0,0 +1,310 @@
    +//
    +// 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.network.resource;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import javax.naming.ConfigurationException;
    +
    +import net.nuage.vsp.acs.client.api.model.NuageVspUser;
    +import net.nuage.vsp.acs.client.api.model.VspHost;
    +import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
    +
    +import org.apache.commons.lang.builder.ToStringBuilder;
    +
    +import com.cloud.util.NuageVspUtil;
    +
    +public class NuageVspResourceConfiguration {
    +    private static final String NAME = "name";
    +    private static final String GUID = "guid";
    +    private static final String ZONE_ID = "zoneid";
    +    private static final String HOST_NAME = "hostname";
    +    private static final String CMS_USER = "cmsuser";
    +    private static final String CMS_USER_PASSWORD = "cmsuserpass";
    +    private static final String PORT = "port";
    +    private static final String API_VERSION = "apiversion";
    +    private static final String API_RELATIVE_PATH = "apirelativepath";
    +    private static final String RETRY_COUNT = "retrycount";
    +    private static final String RETRY_INTERVAL = "retryinterval";
    +    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
    +
    +    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
    +
    +    private String _name;
    +    private String _guid;
    +    private String _zoneId;
    +    private String _hostName;
    +    private String _cmsUser;
    +    private String _cmsUserPassword;
    +    private String _port;
    +    private String _apiVersion;
    +    private String _apiRelativePath;
    +    private String _retryCount;
    +    private String _retryInterval;
    +    private String _nuageVspCmsId;
    +
    +    public String name() {
    +        return _name;
    +    }
    +
    +    public String guid() {
    +        return this._guid;
    +    }
    +
    +    public NuageVspResourceConfiguration guid(String guid) {
    +        this._guid = guid;
    +        return this;
    +    }
    +
    +    public String zoneId() {
    +        return this._zoneId;
    +    }
    +
    +    public NuageVspResourceConfiguration zoneId(String zoneId) {
    +        this._zoneId = zoneId;
    +        return this;
    +    }
    +
    +    public String hostName() {
    +        return this._hostName;
    +    }
    +
    +    public NuageVspResourceConfiguration hostName(String hostName) {
    +        this._hostName = hostName;
    +        this._name = "Nuage VSD - " + _hostName;
    +        return this;
    +    }
    +
    +    public String cmsUser() {
    +        return this._cmsUser;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUser(String cmsUser) {
    +        this._cmsUser = cmsUser;
    +        return this;
    +    }
    +
    +    public String cmsUserPassword() {
    +        return this._cmsUserPassword;
    +    }
    +
    +    public NuageVspResourceConfiguration cmsUserPassword(String cmsUserPassword) {
    +        this._cmsUserPassword = cmsUserPassword;
    +        return this;
    +    }
    +
    +    public String port() {
    +        return this._port;
    +    }
    +
    +    public NuageVspResourceConfiguration port(String port) {
    +        this._port = port;
    +        return this;
    +    }
    +
    +    public String apiVersion() {
    +        return this._apiVersion;
    +    }
    +
    +    public NuageVspResourceConfiguration apiVersion(String apiVersion) {
    +        this._apiVersion = apiVersion;
    +        return this;
    +    }
    +
    +    public String apiRelativePath() {
    +        return this._apiRelativePath;
    +    }
    +
    +    public NuageVspResourceConfiguration apiRelativePath(String apiRelativePath) {
    +        this._apiRelativePath = apiRelativePath;
    +        return this;
    +    }
    +
    +    public String retryCount() {
    +        return this._retryCount;
    +    }
    +
    +    public NuageVspResourceConfiguration retryCount(String retryCount) {
    +        this._retryCount = retryCount;
    +        return this;
    +    }
    +
    +    public String retryInterval() {
    +        return this._retryInterval;
    +    }
    +
    +    public NuageVspResourceConfiguration retryInterval(String retryInterval) {
    +        this._retryInterval = retryInterval;
    +        return this;
    +    }
    +
    +    public String nuageVspCmsId() {
    +        return this._nuageVspCmsId;
    +    }
    +
    +    public NuageVspResourceConfiguration nuageVspCmsId(String nuageVspCmsId) {
    +        this._nuageVspCmsId = nuageVspCmsId;
    +        return this;
    +    }
    +
    +    public String getRootPath(){
    +        return "https://" + _hostName + ":" + _port + "/nuage";
    +    }
    +
    +    public String getApiPath() {
    --- End diff --
    
    Why represent a URI as a `String` instead of a `URI`?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90453536
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java ---
    @@ -339,34 +398,63 @@ private void updateDhcpOptionsForExistingVms(Network network, HostVO nuageVspHos
             }
         }
     
    +    private void checkMultipleSubnetsCombinedWithUseData(Network network){
    +        if (_ntwkOfferingSrvcDao.listServicesForNetworkOffering(network.getNetworkOfferingId()).contains(Network.Service.UserData.getName()) && _vlanDao.listVlansByNetworkId(network.getId()).size() > 1) {
    +            List<VlanVO> vlanVOs = _vlanDao.listVlansByNetworkId(network.getId());
    +            for(VlanVO vlanVoItem : vlanVOs){
    +                for(VlanVO VlanVoItem2 : vlanVOs){
    +                    if(!vlanVoItem.equals(VlanVoItem2) && !VlanVoItem2.getVlanGateway().equals(vlanVoItem.getVlanGateway())){
    +                        s_logger.error("NuageVsp provider does not support multiple subnets in combination with user data.");
    --- End diff --
    
    Please add identifying information of the duplicated vlan/subnet and network to the error message to assist with forensic debugging.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @prashanthvarma the redundant router/VPC failures are known.  We have a fix pending for the `test_snapshot` failures in XenServer (#1800).  However, I am concerned about that`test_router_dhcp_opts` is consistently failing on KVM and XenServer.  Could you please investigate this failure?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by nlivens <gi...@git.apache.org>.
Github user nlivens closed the pull request at:

    https://github.com/apache/cloudstack/pull/1579


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90220642
  
    --- Diff: engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java ---
    @@ -142,6 +142,9 @@
         @Column(name="supports_streched_l2")
         boolean supportsStrechedL2 = false;
     
    +    @Column(name="supports_public_access")
    +    boolean supportsPublicAccess = false;
    +
    --- End diff --
    
    Can we use egress_default_policy? Justify introduction of a new column?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @nlivens @prashanthvarma @singalrahul can you please squash your commits. Pending review/lgtm is requested.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd @jburwell We have resolved all your review comments, and updated this PR. Moreover, all our internal regressions are looking good with the latest code in this PR.
    
    Let me know, if you want me to re-trigger travis (e.g. rebase this PR with latest master) once its issues are resolved. 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @jburwell @rhtyd Ok, we will rebase the PR, and let you know here. Moreover, we can re-run the added Marvin tests and share the results after the re-base.
    
    This PR has dependency from our other open PR #1578 . Thus, we included that PR commits in this PR.
    
    Generally, we have two commits in a PR, one for dev and one for test (Marvin). 
    
    Let me know, if you want us to do this in a different way.
    



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @prashanthvarma #1578 has been merged.  Can you rebase this PR and squash the commits?  Once that is done and Jenkins and Travis are green, I will kick regression tests via blueorganutan.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90450606
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java ---
    @@ -128,6 +135,26 @@
     
         private static final Map<Service, Map<Capability, String>> capabilities = setCapabilities();
     
    +    private static final Set<Service> REQUIRED_SERVICES = Sets.newHashSet(
    +            Service.Connectivity,
    +            Service.Dhcp
    +    );
    +    private static final Set<Service> NUAGE_ONLY_SERVICES = Sets.newHashSet(
    --- End diff --
    
    Since this value is constant, please use ``ImmutableSet`` rather than ``HashSet``.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by nlivens <gi...@git.apache.org>.
Github user nlivens closed the pull request at:

    https://github.com/apache/cloudstack/pull/1579


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90220410
  
    --- Diff: client/pom.xml ---
    @@ -168,6 +168,11 @@
         </dependency>
         <dependency>
           <groupId>org.apache.cloudstack</groupId>
    +      <artifactId>cloud-plugin-network-vsp</artifactId>
    --- End diff --
    
    Are nuage specific dependencies Apache 2.0 license compliant and available on maven? Only then, I would be in a favour of moving the plugin to the default build profile.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by prashanthvarma <gi...@git.apache.org>.
Github user prashanthvarma commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @rhtyd @jburwell We will rebase this PR with the latest master asap, and update you.
    
    As mentioned in the previous comments, we wanted to merge this PR after merging PR #1580 as there are some feature interactions and dependencies, which we will fix during the rebase of this PR with the latest master.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90450578
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java ---
    @@ -128,6 +135,26 @@
     
         private static final Map<Service, Map<Capability, String>> capabilities = setCapabilities();
     
    +    private static final Set<Service> REQUIRED_SERVICES = Sets.newHashSet(
    --- End diff --
    
    Since this value is constant, please use ``ImmutableSet`` rather than ``HashSet``.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack pull request #1579: CLOUDSTACK-9403 : Support for shared networks...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1579#discussion_r90450815
  
    --- Diff: plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/CleanUpDomainCommand.java ---
    @@ -0,0 +1,63 @@
    +//
    +// 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.agent.api.manager;
    +
    +import com.cloud.agent.api.Command;
    +import net.nuage.vsp.acs.client.api.model.VspDomainCleanUp;
    +
    +public class CleanUpDomainCommand extends Command {
    +
    +    private final VspDomainCleanUp _domainCleanUp;
    +
    +    public CleanUpDomainCommand(VspDomainCleanUp domainCleanUp) {
    +        super();
    +        this._domainCleanUp = domainCleanUp;
    +    }
    +
    +    public VspDomainCleanUp getDomainCleanUp() {
    +        return _domainCleanUp;
    +    }
    +
    +    @Override
    +    public boolean executeInSequence() {
    +        return false;
    +    }
    +
    +    @Override
    +    public boolean equals(Object o) {
    +        if (this == o) return true;
    +        if (!(o instanceof CleanUpDomainCommand)) return false;
    +        if (!super.equals(o)) return false;
    +
    +        CleanUpDomainCommand that = (CleanUpDomainCommand) o;
    +
    +        if (_domainCleanUp != null ? !_domainCleanUp.equals(that._domainCleanUp) : that._domainCleanUp != null)
    --- End diff --
    
    Per our coding standards, all `if` blocks must wrapped in curly braces.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @nlivens I would like to get this PR merged for 4.10.0.0.  I will code review in the next few days.  In the meantime, please rebase this PR to pick up the latest Marvin enhancements/fixes, as well as, resolve conflicts, and squash the commits.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorangutan test centos7 xenserver-65sp1


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by jburwell <gi...@git.apache.org>.
Github user jburwell commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @prashanthvarma please ignore my last comment.  It appears that we have found an issue with the `test_router_dhcp_opts` test case.  #1801 has been submitted to fix it.  Once #1800 and #1801 have been merged, I would like to have you rebase this PR and re-run the regression tests.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by blueorangutan <gi...@git.apache.org>.
Github user blueorangutan commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    Packaging result: \u2714centos6 \u2714centos7 \u2714debian. JID-214


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] cloudstack issue #1579: CLOUDSTACK-9403 : Support for shared networks in Nua...

Posted by rhtyd <gi...@git.apache.org>.
Github user rhtyd commented on the issue:

    https://github.com/apache/cloudstack/pull/1579
  
    @blueorangutan test matrix


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---