Skip to content
This repository has been archived by the owner on Jan 11, 2023. It is now read-only.

Extract common utils to separate packages #2010

Merged
merged 1 commit into from Jan 9, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 3 additions & 2 deletions cmd/deploy.go
Expand Up @@ -16,6 +16,7 @@ import (
"encoding/json"

"github.com/Azure/acs-engine/pkg/acsengine"
"github.com/Azure/acs-engine/pkg/acsengine/transform"
"github.com/Azure/acs-engine/pkg/api"
"github.com/Azure/acs-engine/pkg/armhelpers"
"github.com/Azure/acs-engine/pkg/i18n"
Expand Down Expand Up @@ -261,11 +262,11 @@ func (dc *deployCmd) run() error {
os.Exit(1)
}

if template, err = acsengine.PrettyPrintArmTemplate(template); err != nil {
if template, err = transform.PrettyPrintArmTemplate(template); err != nil {
log.Fatalf("error pretty printing template: %s \n", err.Error())
}
var parametersFile string
if parametersFile, err = acsengine.BuildAzureParametersFile(parameters); err != nil {
if parametersFile, err = transform.BuildAzureParametersFile(parameters); err != nil {
log.Fatalf("error pretty printing template parameters: %s \n", err.Error())
}

Expand Down
5 changes: 3 additions & 2 deletions cmd/generate.go
Expand Up @@ -8,6 +8,7 @@ import (
"path"

"github.com/Azure/acs-engine/pkg/acsengine"
"github.com/Azure/acs-engine/pkg/acsengine/transform"
"github.com/Azure/acs-engine/pkg/api"
"github.com/Azure/acs-engine/pkg/i18n"
"github.com/leonelquinteros/gotext"
Expand Down Expand Up @@ -150,10 +151,10 @@ func (gc *generateCmd) run() error {
}

if !gc.noPrettyPrint {
if template, err = acsengine.PrettyPrintArmTemplate(template); err != nil {
if template, err = transform.PrettyPrintArmTemplate(template); err != nil {
log.Fatalf("error pretty printing template: %s \n", err.Error())
}
if parameters, err = acsengine.BuildAzureParametersFile(parameters); err != nil {
if parameters, err = transform.BuildAzureParametersFile(parameters); err != nil {
log.Fatalf("error pretty printing template parameters: %s \n", err.Error())
}
}
Expand Down
10 changes: 6 additions & 4 deletions cmd/scale.go
Expand Up @@ -12,8 +12,10 @@ import (
"time"

"github.com/Azure/acs-engine/pkg/acsengine"
"github.com/Azure/acs-engine/pkg/acsengine/transform"
"github.com/Azure/acs-engine/pkg/api"
"github.com/Azure/acs-engine/pkg/armhelpers"
"github.com/Azure/acs-engine/pkg/armhelpers/utils"
"github.com/Azure/acs-engine/pkg/i18n"
"github.com/Azure/acs-engine/pkg/operations"
"github.com/leonelquinteros/gotext"
Expand Down Expand Up @@ -189,7 +191,7 @@ func (sc *scaleCmd) run(cmd *cobra.Command, args []string) error {
}
for _, vm := range *vms.Value {

poolName, nameSuffix, index, err := armhelpers.K8sLinuxVMNameParts(*vm.Name)
poolName, nameSuffix, index, err := utils.K8sLinuxVMNameParts(*vm.Name)
if err != nil || !strings.EqualFold(poolName, sc.agentPoolToScale) || !strings.EqualFold(nameSuffix, sc.nameSuffix) {
continue
}
Expand Down Expand Up @@ -249,7 +251,7 @@ func (sc *scaleCmd) run(cmd *cobra.Command, args []string) error {
log.Fatalln("failed to get vmss list in the resource group. Error: %s", err.Error())
}
for _, vmss := range *vmssList.Value {
poolName, nameSuffix, err := armhelpers.VmssNameParts(*vmss.Name)
poolName, nameSuffix, err := utils.VmssNameParts(*vmss.Name)
if err != nil || !strings.EqualFold(poolName, sc.agentPoolToScale) || !strings.EqualFold(nameSuffix, sc.nameSuffix) {
continue
}
Expand All @@ -276,7 +278,7 @@ func (sc *scaleCmd) run(cmd *cobra.Command, args []string) error {
os.Exit(1)
}

if template, err = acsengine.PrettyPrintArmTemplate(template); err != nil {
if template, err = transform.PrettyPrintArmTemplate(template); err != nil {
log.Fatalf("error pretty printing template: %s \n", err.Error())
}

Expand All @@ -293,7 +295,7 @@ func (sc *scaleCmd) run(cmd *cobra.Command, args []string) error {
log.Fatalln(err)
}

transformer := acsengine.Transformer{Translator: ctx.Translator}
transformer := transform.Transformer{Translator: ctx.Translator}
// Our templates generate a range of nodes based on a count and offset, it is possible for there to be holes in the template
// So we need to set the count in the template to get enough nodes for the range, if there are holes that number will be larger than the desired count
countForTemplate := sc.newDesiredAgentCount
Expand Down
9 changes: 5 additions & 4 deletions pkg/acsengine/engine_test.go
Expand Up @@ -10,6 +10,7 @@ import (
"strings"
"testing"

"github.com/Azure/acs-engine/pkg/acsengine/transform"
"github.com/Azure/acs-engine/pkg/api"
"github.com/Azure/acs-engine/pkg/api/v20160330"
"github.com/Azure/acs-engine/pkg/api/vlabs"
Expand Down Expand Up @@ -80,14 +81,14 @@ func TestExpected(t *testing.T) {
continue
}

expectedPpArmTemplate, e1 := PrettyPrintArmTemplate(armTemplate)
expectedPpArmTemplate, e1 := transform.PrettyPrintArmTemplate(armTemplate)
if e1 != nil {
t.Error(armTemplate)
t.Error(fmt.Errorf("error in file %s: %s", tuple.APIModelFilename, e1.Error()))
break
}

expectedPpParams, e2 := PrettyPrintJSON(params)
expectedPpParams, e2 := transform.PrettyPrintJSON(params)
if e2 != nil {
t.Error(fmt.Errorf("error in file %s: %s", tuple.APIModelFilename, e2.Error()))
continue
Expand All @@ -103,13 +104,13 @@ func TestExpected(t *testing.T) {
t.Error(fmt.Errorf("error in file %s: %s", tuple.APIModelFilename, err.Error()))
continue
}
generatedPpArmTemplate, e1 := PrettyPrintArmTemplate(armTemplate)
generatedPpArmTemplate, e1 := transform.PrettyPrintArmTemplate(armTemplate)
if e1 != nil {
t.Error(fmt.Errorf("error in file %s: %s", tuple.APIModelFilename, e1.Error()))
continue
}

generatedPpParams, e2 := PrettyPrintJSON(params)
generatedPpParams, e2 := transform.PrettyPrintJSON(params)
if e2 != nil {
t.Error(fmt.Errorf("error in file %s: %s", tuple.APIModelFilename, e2.Error()))
continue
Expand Down
4 changes: 1 addition & 3 deletions pkg/acsengine/json.go → pkg/acsengine/transform/json.go
@@ -1,8 +1,6 @@
package acsengine
package transform

import (
// "fmt"

"encoding/json"
"strings"

Expand Down
@@ -1,12 +1,11 @@
package acsengine
package transform

import (
"fmt"
"log"
"sort"
"strings"

"github.com/Azure/acs-engine/pkg/i18n"
"github.com/Azure/azure-sdk-for-go/arm/compute"
"github.com/sirupsen/logrus"
)
Expand Down Expand Up @@ -42,9 +41,21 @@ const (
rtID = "routeTableID"
)

// Translator defines all required interfaces for i18n.Translator.
type Translator interface {
// T translates a text string, based on GNU's gettext library.
T(msgid string, vars ...interface{}) string
// NT translates a text string into the appropriate plural form, based on GNU's gettext library.
NT(msgid, msgidPlural string, n int, vars ...interface{}) string
// Errorf produces an error with a translated error string.
Errorf(msgid string, vars ...interface{}) error
// NErrorf produces an error with a translated error string in the appropriate plural form.
NErrorf(msgid, msgidPlural string, n int, vars ...interface{}) error
}

// Transformer represents the object that transforms template
type Transformer struct {
Translator *i18n.Translator
Translator Translator
}

// NormalizeForVMSSScaling takes a template and removes elements that are unwanted in a VMSS scale up/down case
Expand Down
@@ -1,4 +1,4 @@
package acsengine
package transform

import (
"encoding/json"
Expand Down
2 changes: 1 addition & 1 deletion pkg/armhelpers/util.go → pkg/armhelpers/utils/util.go
@@ -1,4 +1,4 @@
package armhelpers
package utils

import (
"fmt"
Expand Down
@@ -1,4 +1,4 @@
package armhelpers
package utils

import (
"fmt"
Expand Down
5 changes: 3 additions & 2 deletions pkg/operations/deletevm.go
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"

"github.com/Azure/acs-engine/pkg/armhelpers"
"github.com/Azure/acs-engine/pkg/armhelpers/utils"
log "github.com/sirupsen/logrus"
)

Expand Down Expand Up @@ -31,7 +32,7 @@ func CleanDeleteVirtualMachine(az armhelpers.ACSEngineClient, logger *log.Entry,
if nicID == nil {
logger.Warnf("NIC ID is not set for VM (%s/%s)", resourceGroup, name)
} else {
nicName, err = armhelpers.ResourceName(*nicID)
nicName, err = utils.ResourceName(*nicID)
if err != nil {
return err
}
Expand All @@ -56,7 +57,7 @@ func CleanDeleteVirtualMachine(az armhelpers.ACSEngineClient, logger *log.Entry,
}

if vhd != nil {
accountName, vhdContainer, vhdBlob, err := armhelpers.SplitBlobURI(*vhd.URI)
accountName, vhdContainer, vhdBlob, err := utils.SplitBlobURI(*vhd.URI)
if err != nil {
return err
}
Expand Down
5 changes: 3 additions & 2 deletions pkg/operations/kubernetesupgrade/upgradecluster.go
Expand Up @@ -8,6 +8,7 @@ import (

"github.com/Azure/acs-engine/pkg/api"
"github.com/Azure/acs-engine/pkg/armhelpers"
"github.com/Azure/acs-engine/pkg/armhelpers/utils"
"github.com/Azure/acs-engine/pkg/i18n"
"github.com/Azure/azure-sdk-for-go/arm/compute"
uuid "github.com/satori/go.uuid"
Expand Down Expand Up @@ -209,7 +210,7 @@ func (uc *UpgradeCluster) addVMToAgentPool(vm compute.VirtualMachine, isUpgradab
}

if vm.StorageProfile.OsDisk.OsType == compute.Linux {
poolIdentifier, poolPrefix, _, err = armhelpers.K8sLinuxVMNameParts(*vm.Name)
poolIdentifier, poolPrefix, _, err = utils.K8sLinuxVMNameParts(*vm.Name)
if err != nil {
uc.Logger.Errorf(err.Error())
return err
Expand All @@ -221,7 +222,7 @@ func (uc *UpgradeCluster) addVMToAgentPool(vm compute.VirtualMachine, isUpgradab
return nil
}
} else if vm.StorageProfile.OsDisk.OsType == compute.Windows {
poolPrefix, acsStr, poolIndex, _, err := armhelpers.WindowsVMNameParts(*vm.Name)
poolPrefix, acsStr, poolIndex, _, err := utils.WindowsVMNameParts(*vm.Name)
if err != nil {
uc.Logger.Errorf(err.Error())
return err
Expand Down
16 changes: 9 additions & 7 deletions pkg/operations/kubernetesupgrade/upgrader.go
Expand Up @@ -5,8 +5,10 @@ import (
"time"

"github.com/Azure/acs-engine/pkg/acsengine"
"github.com/Azure/acs-engine/pkg/acsengine/transform"
"github.com/Azure/acs-engine/pkg/api"
"github.com/Azure/acs-engine/pkg/armhelpers"
"github.com/Azure/acs-engine/pkg/armhelpers/utils"
"github.com/Azure/acs-engine/pkg/i18n"
"github.com/sirupsen/logrus"
)
Expand Down Expand Up @@ -76,7 +78,7 @@ func (ku *Upgrader) upgradeMasterNodes() error {

ku.logger.Infof("Prepping master nodes for upgrade...")

transformer := &acsengine.Transformer{
transformer := &transform.Transformer{
Translator: ku.Translator,
}
if err := transformer.NormalizeResourcesForK8sMasterUpgrade(ku.logger, templateMap, ku.DataModel.Properties.MasterProfile.IsManagedDisks(), nil); err != nil {
Expand Down Expand Up @@ -120,14 +122,14 @@ func (ku *Upgrader) upgradeMasterNodes() error {

for _, vm := range *ku.ClusterTopology.UpgradedMasterVMs {
ku.logger.Infof("Master VM: %s is upgraded to expected orchestrator version", *vm.Name)
masterIndex, _ := armhelpers.GetVMNameIndex(vm.StorageProfile.OsDisk.OsType, *vm.Name)
masterIndex, _ := utils.GetVMNameIndex(vm.StorageProfile.OsDisk.OsType, *vm.Name)
upgradedMastersIndex[masterIndex] = true
}

for _, vm := range *ku.ClusterTopology.MasterVMs {
ku.logger.Infof("Upgrading Master VM: %s", *vm.Name)

masterIndex, _ := armhelpers.GetVMNameIndex(vm.StorageProfile.OsDisk.OsType, *vm.Name)
masterIndex, _ := utils.GetVMNameIndex(vm.StorageProfile.OsDisk.OsType, *vm.Name)

err := upgradeMasterNode.DeleteNode(vm.Name, false)
if err != nil {
Expand Down Expand Up @@ -201,7 +203,7 @@ func (ku *Upgrader) upgradeAgentPools() error {
ku.logger.Infof("Prepping agent pool '%s' for upgrade...", *agentPool.Name)

preservePools := map[string]bool{*agentPool.Name: true}
transformer := &acsengine.Transformer{
transformer := &transform.Transformer{
Translator: ku.Translator,
}
var isMasterManagedDisk bool
Expand Down Expand Up @@ -263,7 +265,7 @@ func (ku *Upgrader) upgradeAgentPools() error {
if vm.VirtualMachineProperties != nil && vm.VirtualMachineProperties.ProvisioningState != nil {
vmProvisioningState = *vm.VirtualMachineProperties.ProvisioningState
}
agentIndex, _ := armhelpers.GetVMNameIndex(vm.StorageProfile.OsDisk.OsType, *vm.Name)
agentIndex, _ := utils.GetVMNameIndex(vm.StorageProfile.OsDisk.OsType, *vm.Name)

switch vmProvisioningState {
case "Creating", "Updating", "Succeeded":
Expand All @@ -287,7 +289,7 @@ func (ku *Upgrader) upgradeAgentPools() error {
}

for _, vm := range *agentPool.AgentVMs {
agentIndex, _ := armhelpers.GetVMNameIndex(vm.StorageProfile.OsDisk.OsType, *vm.Name)
agentIndex, _ := utils.GetVMNameIndex(vm.StorageProfile.OsDisk.OsType, *vm.Name)
agentVMs[agentIndex] = &vmInfo{*vm.Name, vmStatusNotUpgraded}
}
toBeUpgradedCount := len(*agentPool.AgentVMs)
Expand All @@ -303,7 +305,7 @@ func (ku *Upgrader) upgradeAgentPools() error {
for upgradedCount+toBeUpgradedCount < agentCount {
agentIndex := getAvailableIndex(agentVMs)

vmName, err := armhelpers.GetK8sVMName(agentOsType, ku.DataModel.Properties.HostedMasterProfile != nil,
vmName, err := utils.GetK8sVMName(agentOsType, ku.DataModel.Properties.HostedMasterProfile != nil,
ku.NameSuffix, agentPoolName, agentPoolIndex, agentIndex)
if err != nil {
ku.logger.Errorf("Error reconstructing agent VM name with index %d: %v", agentIndex, err)
Expand Down