Skip to content

Commit 02fe173

Browse files
committed
Migrated to types imported from Ggr
1 parent 38ae0e0 commit 02fe173

File tree

6 files changed

+47
-74
lines changed

6 files changed

+47
-74
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
*.iml
33
sctl
44
vendor
5+
coverage.*

cmd/data.go

+13-51
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,29 @@
11
package cmd
22

3-
import "encoding/xml"
4-
5-
// Input data
6-
7-
type JsonHost struct {
3+
type Host struct {
84
Port int `json:"port"`
95
Count int `json:"count"`
106
Username string `json:"username"`
117
Password string `json:"password"`
128
}
139

14-
type JsonRegion map[string]JsonHost
15-
16-
type JsonRegions map[string]JsonRegion
17-
18-
type JsonHosts map[string]JsonRegions
19-
20-
type JsonVersions map[string]string
21-
22-
type JsonBrowser struct {
23-
DefaultVersion string `json:"defaultVersion"`
24-
Versions JsonVersions `json:"versions"`
25-
}
26-
27-
type JsonQuota map[string]JsonBrowser
10+
type Region map[string]Host
2811

29-
type JsonInput struct {
30-
Hosts JsonHosts `json:"hosts"`
31-
Quota map[string]JsonQuota `json:"quota"`
32-
Aliases map[string][]string `json:"aliases"`
33-
}
12+
type Regions map[string]Region
3413

35-
// Output data
14+
type Hosts map[string]Regions
3615

37-
type XmlBrowsers struct {
38-
XMLName xml.Name `xml:"qa:browsers"`
39-
XmlNS string `xml:"xmlns:qa,attr"`
40-
Browsers []XmlBrowser `xml:"browser"`
41-
}
16+
type Versions map[string]string
4217

43-
type XmlBrowser struct {
44-
Name string `xml:"name,attr"`
45-
DefaultVersion string `xml:"defaultVersion,attr"`
46-
Versions []XmlVersion `xml:"version"`
18+
type Browser struct {
19+
DefaultVersion string `json:"defaultVersion"`
20+
Versions Versions `json:"versions"`
4721
}
4822

49-
type XmlVersion struct {
50-
Number string `xml:"number,attr"`
51-
Regions []XmlRegion `xml:"region"`
52-
}
53-
54-
type XmlHosts []XmlHost
55-
56-
type XmlRegion struct {
57-
Name string `xml:"name,attr"`
58-
Hosts XmlHosts `xml:"host"`
59-
}
23+
type Quota map[string]Browser
6024

61-
type XmlHost struct {
62-
Name string `xml:"name,attr"`
63-
Port int `xml:"port,attr"`
64-
Count int `xml:"count,attr"`
65-
Username string `xml:"username,attr,omitempty"`
66-
Password string `xml:"password,attr,omitempty"`
25+
type Input struct {
26+
Hosts Hosts `json:"hosts"`
27+
Quota map[string]Quota `json:"quota"`
28+
Aliases map[string][]string `json:"aliases"`
6729
}

cmd/generate.go

+21-21
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"encoding/xml"
66
"errors"
77
"fmt"
8+
ggr "github.com/aerokube/ggr/config"
89
"github.com/spf13/cobra"
910
"io/ioutil"
1011
"os"
@@ -53,8 +54,8 @@ func init() {
5354
generateCmd.PersistentFlags().BoolVar(&dryRun, "dryRun", false, "whether to send output to stdout instead of writing files")
5455
}
5556

56-
func convert(input JsonInput) map[string]XmlBrowsers {
57-
ret := make(map[string]XmlBrowsers)
57+
func convert(input Input) map[string]ggr.Browsers {
58+
ret := make(map[string]ggr.Browsers)
5859
hostsMap := input.Hosts
5960
quotaMap := input.Quota
6061
aliasesMap := input.Aliases
@@ -74,14 +75,14 @@ func convert(input JsonInput) map[string]XmlBrowsers {
7475
return ret
7576
}
7677

77-
func createQuota(quotaName string, hostsMap JsonHosts, quota JsonQuota) XmlBrowsers {
78-
browsers := []XmlBrowser{}
78+
func createQuota(quotaName string, hostsMap Hosts, quota Quota) ggr.Browsers {
79+
var browsers []ggr.Browser
7980
for browserName, browser := range quota {
80-
xmlVersions := []XmlVersion{}
81+
var xmlVersions []ggr.Version
8182
for versionName, hostsRef := range browser.Versions {
8283
regions := hostsMap[hostsRef]
8384
if regions != nil {
84-
xmlVersion := XmlVersion{
85+
xmlVersion := ggr.Version{
8586
Number: versionName,
8687
Regions: jsonRegionsToXmlRegions(regions),
8788
}
@@ -91,27 +92,26 @@ func createQuota(quotaName string, hostsMap JsonHosts, quota JsonQuota) XmlBrows
9192
os.Exit(1)
9293
}
9394
}
94-
xmlBrowser := XmlBrowser{
95+
xmlBrowser := ggr.Browser{
9596
Name: browserName,
9697
DefaultVersion: browser.DefaultVersion,
9798
Versions: xmlVersions,
9899
}
99100
browsers = append(browsers, xmlBrowser)
100101
}
101-
return XmlBrowsers{
102+
return ggr.Browsers{
102103
Browsers: browsers,
103-
XmlNS: "urn:config.gridrouter.qatools.ru",
104104
}
105105
}
106106

107-
func jsonRegionsToXmlRegions(regions JsonRegions) []XmlRegion {
108-
xmlRegions := []XmlRegion{}
107+
func jsonRegionsToXmlRegions(regions Regions) []ggr.Region {
108+
var xmlRegions []ggr.Region
109109
for regionName, region := range regions {
110-
xmlHosts := XmlHosts{}
110+
xmlHosts := ggr.Hosts{}
111111
for hostPattern, host := range region {
112112
hostNames := parseHostPattern(hostPattern)
113113
for _, hostName := range hostNames {
114-
xmlHosts = append(xmlHosts, XmlHost{
114+
xmlHosts = append(xmlHosts, ggr.Host{
115115
Name: hostName,
116116
Port: host.Port,
117117
Count: host.Count,
@@ -120,31 +120,31 @@ func jsonRegionsToXmlRegions(regions JsonRegions) []XmlRegion {
120120
})
121121
}
122122
}
123-
xmlRegions = append(xmlRegions, XmlRegion{
123+
xmlRegions = append(xmlRegions, ggr.Region{
124124
Name: regionName,
125125
Hosts: xmlHosts,
126126
})
127127
}
128128
return xmlRegions
129129
}
130130

131-
func parseInputFile(filePath string) (*JsonInput, error) {
131+
func parseInputFile(filePath string) (*Input, error) {
132132
bytes, err := ioutil.ReadFile(filePath)
133133
if err != nil {
134134
return nil, errors.New(fmt.Sprintf("error reading input file [%s]: %v", filePath, err))
135135
}
136-
input := new(JsonInput)
136+
input := new(Input)
137137
if err := json.Unmarshal(bytes, input); err != nil {
138138
return nil, errors.New(fmt.Sprintf("error parsing input file [%s]: %v", filePath, err))
139139
}
140140
return input, nil
141141
}
142142

143-
func marshalBrowsers(browsers XmlBrowsers) ([]byte, error) {
143+
func marshalBrowsers(browsers ggr.Browsers) ([]byte, error) {
144144
return xml.MarshalIndent(browsers, "", " ")
145145
}
146146

147-
func output(quotaName string, browsers XmlBrowsers, outputDirectory string) error {
147+
func output(quotaName string, browsers ggr.Browsers, outputDirectory string) error {
148148
filePath := path.Join(outputDirectory, quotaName+".xml")
149149
if dryRun {
150150
return printOutputFile(filePath, browsers)
@@ -153,7 +153,7 @@ func output(quotaName string, browsers XmlBrowsers, outputDirectory string) erro
153153
}
154154
}
155155

156-
func printOutputFile(filePath string, browsers XmlBrowsers) error {
156+
func printOutputFile(filePath string, browsers ggr.Browsers) error {
157157
bytes, err := marshalBrowsers(browsers)
158158
if err != nil {
159159
return err
@@ -165,7 +165,7 @@ func printOutputFile(filePath string, browsers XmlBrowsers) error {
165165
return nil
166166
}
167167

168-
func saveOutputFile(filePath string, browsers XmlBrowsers) error {
168+
func saveOutputFile(filePath string, browsers ggr.Browsers) error {
169169
bytes, err := marshalBrowsers(browsers)
170170
if err != nil {
171171
return err
@@ -195,4 +195,4 @@ func parseHostPattern(pattern string) []string {
195195
}
196196
}
197197
return []string{pattern}
198-
}
198+
}

cmd/stat.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func init() {
2626
statCmd.PersistentFlags().StringVar(&quotaName, "quotaName", "", "quota name")
2727
}
2828

29-
func printStat(input JsonInput, quotaName string) {
29+
func printStat(input Input, quotaName string) {
3030
hostsMap := input.Hosts
3131
quotaMap := input.Quota
3232
aliasesMap := input.Aliases
@@ -57,7 +57,7 @@ func printStat(input JsonInput, quotaName string) {
5757

5858
}
5959

60-
func processJsonQuota(quotaName string, quota JsonQuota, hostsMap JsonHosts) {
60+
func processJsonQuota(quotaName string, quota Quota, hostsMap Hosts) {
6161
fmt.Println(quotaName)
6262
fmt.Println("---")
6363
for browserName, browser := range quota {

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module github.com/seleniumkit/sctl
22

33
require (
44
github.com/aandryashin/matchers v0.0.0-20161126170413-435295ea180e
5+
github.com/aerokube/ggr v0.0.0-20181115182236-8957bfa069df
56
github.com/inconshreveable/mousetrap v1.0.0 // indirect
67
github.com/spf13/cobra v0.0.0-20161014222036-856b96dcb49d
78
github.com/spf13/pflag v0.0.0-20161011120826-bf8481a6aebc // indirect

go.sum

+9
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
1+
github.com/aandryashin/matchers v0.0.0-20160729131923-5eb67beb188b/go.mod h1:cbmYNkm9xeQlNoWEPtOUcvNok2gSD7ErMnYkRW+eHi8=
12
github.com/aandryashin/matchers v0.0.0-20161126170413-435295ea180e h1:ogUKYFNcdYUIBSLibE4+EjbTJazoHr5JsWWx21Lpn8c=
23
github.com/aandryashin/matchers v0.0.0-20161126170413-435295ea180e/go.mod h1:cbmYNkm9xeQlNoWEPtOUcvNok2gSD7ErMnYkRW+eHi8=
4+
github.com/aandryashin/reloader v0.0.0-20161127125235-da4f1b43ce40/go.mod h1:gvg2/m9OQ4ZwK4Qk/mnfgokCb4qDN4BGyle+QGw4VOc=
5+
github.com/abbot/go-http-auth v0.0.0-20161224193827-d45c47bedec7/go.mod h1:Cz6ARTIzApMJDzh5bRMSUou6UMSp0IEXg9km/ci7TJM=
6+
github.com/aerokube/ggr v0.0.0-20181115182236-8957bfa069df h1:OGZ+YIqvdaJDdgYBF7UAWvHLWYNRUc8zyRS+Ar4O6tY=
7+
github.com/aerokube/ggr v0.0.0-20181115182236-8957bfa069df/go.mod h1:c4gg5wIR9PyppUSe4swKbNiSLO0vivf7THFs3rkcBIU=
8+
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
39
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
410
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
511
github.com/spf13/cobra v0.0.0-20161014222036-856b96dcb49d h1:3DcijoKnes3z4/+YyF/0relm9aJJ8ypfyHHz0OWz1Z8=
612
github.com/spf13/cobra v0.0.0-20161014222036-856b96dcb49d/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
713
github.com/spf13/pflag v0.0.0-20161011120826-bf8481a6aebc h1:WqY+0ieFwdU1nXJJPuhI6mqTo5mIUaPNM+xFvFK9RcA=
814
github.com/spf13/pflag v0.0.0-20161011120826-bf8481a6aebc/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
15+
golang.org/x/crypto v0.0.0-20161221235747-f6b343c37ca8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
16+
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
17+
golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=

0 commit comments

Comments
 (0)