Return-Path: X-Original-To: apmail-cloudstack-issues-archive@www.apache.org Delivered-To: apmail-cloudstack-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0DE2E1920C for ; Thu, 14 Apr 2016 17:15:27 +0000 (UTC) Received: (qmail 49412 invoked by uid 500); 14 Apr 2016 17:15:26 -0000 Delivered-To: apmail-cloudstack-issues-archive@cloudstack.apache.org Received: (qmail 49292 invoked by uid 500); 14 Apr 2016 17:15:26 -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 49081 invoked by uid 500); 14 Apr 2016 17:15:25 -0000 Delivered-To: apmail-incubator-cloudstack-issues@incubator.apache.org Received: (qmail 49070 invoked by uid 99); 14 Apr 2016 17:15:25 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Apr 2016 17:15:25 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id BC3FE2C1F5A for ; Thu, 14 Apr 2016 17:15:25 +0000 (UTC) Date: Thu, 14 Apr 2016 17:15:25 +0000 (UTC) From: "ASF GitHub Bot (JIRA)" To: cloudstack-issues@incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CLOUDSTACK-9003) Make VM naming services injectable and in their own module MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CLOUDSTACK-9003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15241526#comment-15241526 ] ASF GitHub Bot commented on CLOUDSTACK-9003: -------------------------------------------- Github user jburwell commented on the pull request: https://github.com/apache/cloudstack/pull/1492#issuecomment-210055791 @DaanHoogland -1 to counters -- the require coordination across all nodes in the cluster. In multi-region configurations, they would require coordination across multi-regions. (Database sequences are incredibly expensive in clustered configurations) We have enough technical debt with our sequence based counters in the database. > Make VM naming services injectable and in their own module > ---------------------------------------------------------- > > Key: CLOUDSTACK-9003 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9003 > Project: CloudStack > Issue Type: Improvement > Security Level: Public(Anyone can view this level - this is the default.) > Reporter: Jeffrey Hair > Priority: Minor > > Proposal: Make the various classes/code that give VMs and other resources hostnames, hypervisor guest names, and UUIDs into their classes as injectable dependencies in their own module under the core or backend module. > This proposal originally only concerned the VirtualMachineName class and can be broken down into several parts: > * Make the VirtualMachineName class an injectable dependency instead of being full of static methods. > * Refactor the generateHostName method in UserVmManagerImpl to be backed by an injectable service which generates host names. > * Move the UUIDManagerImpl from the core module to a new module (grouped with the other 2 ideally). > Rationale: > * VirtualMachineName is one of the few remaining classes that has static methods tangled like spaghetti throughout the code. This change will put it in line with the rest of the management server codebase and opens the door to extensibility. Which brings us to... > * Extensibility: The ultimate goal of this feature is to provide 3rd party developers the option of changing default instance/resource naming policies. Currently this is possible in a very limited fashion with the instance.name global setting, but this proposal makes it much more extensible. > By moving the naming-related services (VirtualMachineName, UUIDManager, and more as added/discovered) to their own module, the module can be excluded by modules.properties and different ones substituted in. Alternatively, it could use the adapter model that other classes use, and the user can configure which adapters are active and also provide custom ones. > A good use case for this functionality is using a different style naming to emulate other cloud providers such as AWS (i-abc123) or GCE. -- This message was sent by Atlassian JIRA (v6.3.4#6332)