Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D516C200BD4 for ; Thu, 1 Dec 2016 15:51:48 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id D3B13160B0F; Thu, 1 Dec 2016 14:51:48 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id A3CB1160B0B for ; Thu, 1 Dec 2016 15:51:47 +0100 (CET) Received: (qmail 36116 invoked by uid 500); 1 Dec 2016 14:50:00 -0000 Mailing-List: contact issues-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list issues@cloudstack.apache.org Received: (qmail 36026 invoked by uid 500); 1 Dec 2016 14:50:00 -0000 Delivered-To: apmail-incubator-cloudstack-issues@incubator.apache.org Received: (qmail 36009 invoked by uid 99); 1 Dec 2016 14:50:00 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Dec 2016 14:50:00 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 3FFD32C1F56 for ; Thu, 1 Dec 2016 14:50:00 +0000 (UTC) Date: Thu, 1 Dec 2016 14:50:00 +0000 (UTC) From: "ASF GitHub Bot (JIRA)" To: cloudstack-issues@incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CLOUDSTACK-9403) Nuage VSP Plugin : Support for SharedNetwork fuctionality including Marvin test coverage MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Thu, 01 Dec 2016 14:51:49 -0000 [ https://issues.apache.org/jira/browse/CLOUDSTACK-9403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15712170#comment-15712170 ] ASF GitHub Bot commented on CLOUDSTACK-9403: -------------------------------------------- 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`? > Nuage VSP Plugin : Support for SharedNetwork fuctionality including Marvin test coverage > ---------------------------------------------------------------------------------------- > > Key: CLOUDSTACK-9403 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9403 > Project: CloudStack > Issue Type: Task > Security Level: Public(Anyone can view this level - this is the default.) > Components: Automation, Network Controller > Reporter: Rahul Singal > Assignee: Nick Livens > > 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. > - Public accessible of shared Network. > With the current implementation with NuageVsp plugin, It support over-lapping of Ip address, Public Access and also adding Ip ranges in 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. > - For public shared Network it will also create a floating ip subnet pool in VSD along with all the things mentioned in above point. > PR contents: > 1) Support for shared networks with tenant isolation on master with Nuage VSP SDN Plugin. > 2) Support of shared network with publicly accessible ip ranges. > 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. > 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 -- This message was sent by Atlassian JIRA (v6.3.4#6332)