Skip to content
This repository was 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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions cmd/deploy.go
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package acsengine
package transform

import (
// "fmt"

"encoding/json"
"strings"

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package armhelpers
package utils

import (
"fmt"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package armhelpers
package utils

import (
"fmt"
Expand Down
5 changes: 3 additions & 2 deletions pkg/operations/deletevm.go
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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