Skip to content

Commit c7395bf

Browse files
committed
add new flags to export and import
1 parent 49f17c1 commit c7395bf

File tree

2 files changed

+106
-56
lines changed

2 files changed

+106
-56
lines changed

cmd/export.go

Lines changed: 47 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ import (
1212
"strconv"
1313
)
1414

15+
var exportPath string
16+
var fCollections bool
17+
var fMetadata bool
18+
var fExpirationAlerts bool
19+
var fIssuedAlerts bool
20+
var fDeniedAlerts bool
21+
var fPendingAlerts bool
22+
var fNetworks bool
23+
var fWorkflowDefinitions bool
24+
var fReports bool
25+
var fSecurityRoles bool
26+
var fAll bool
27+
1528
type exportModelsReport struct {
1629
Id *int32 `json:"-"`
1730
Scheduled *int32 `json:"Scheduled,omitempty"`
@@ -93,35 +106,48 @@ var exportCmd = &cobra.Command{
93106
SecurityRoles: []api.CreateSecurityRoleArg{},
94107
}
95108
exportPath := cmd.Flag("file").Value.String()
96-
if cmd.Flag("collections").Value.String() == "true" {
109+
if cmd.Flag("all").Value.String() == "true" {
97110
out.Collections = getCollections()
98-
}
99-
if cmd.Flag("metadata").Value.String() == "true" {
100111
out.MetadataFields = getMetadata()
101-
}
102-
if cmd.Flag("expiration-alerts").Value.String() == "true" {
103112
out.ExpirationAlerts = getExpirationAlerts()
104-
}
105-
if cmd.Flag("issued-alerts").Value.String() == "true" {
106113
out.IssuedCertAlerts = getIssuedAlerts()
107-
}
108-
if cmd.Flag("denied-alerts").Value.String() == "true" {
109114
out.DeniedCertAlerts = getDeniedAlerts()
110-
}
111-
if cmd.Flag("pending-alerts").Value.String() == "true" {
112115
out.PendingCertAlerts = getPendingAlerts()
113-
}
114-
if cmd.Flag("networks").Value.String() == "true" {
115116
out.Networks = getSslNetworks()
116-
}
117-
if cmd.Flag("workflow-definitions").Value.String() == "true" {
118117
out.WorkflowDefinitions = getWorkflowDefinitions()
119-
}
120-
if cmd.Flag("reports").Value.String() == "true" {
121118
out.BuiltInReports, out.CustomReports = getReports()
122-
}
123-
if cmd.Flag("security-roles").Value.String() == "true" {
124119
out.SecurityRoles = getRoles()
120+
} else {
121+
if cmd.Flag("collections").Value.String() == "true" {
122+
out.Collections = getCollections()
123+
}
124+
if cmd.Flag("metadata").Value.String() == "true" {
125+
out.MetadataFields = getMetadata()
126+
}
127+
if cmd.Flag("expiration-alerts").Value.String() == "true" {
128+
out.ExpirationAlerts = getExpirationAlerts()
129+
}
130+
if cmd.Flag("issued-alerts").Value.String() == "true" {
131+
out.IssuedCertAlerts = getIssuedAlerts()
132+
}
133+
if cmd.Flag("denied-alerts").Value.String() == "true" {
134+
out.DeniedCertAlerts = getDeniedAlerts()
135+
}
136+
if cmd.Flag("pending-alerts").Value.String() == "true" {
137+
out.PendingCertAlerts = getPendingAlerts()
138+
}
139+
if cmd.Flag("networks").Value.String() == "true" {
140+
out.Networks = getSslNetworks()
141+
}
142+
if cmd.Flag("workflow-definitions").Value.String() == "true" {
143+
out.WorkflowDefinitions = getWorkflowDefinitions()
144+
}
145+
if cmd.Flag("reports").Value.String() == "true" {
146+
out.BuiltInReports, out.CustomReports = getReports()
147+
}
148+
if cmd.Flag("security-roles").Value.String() == "true" {
149+
out.SecurityRoles = getRoles()
150+
}
125151
}
126152
exportToJSON(out, exportPath)
127153
},
@@ -370,23 +396,13 @@ func getRoles() []api.CreateSecurityRoleArg {
370396
}
371397

372398
func init() {
373-
var exportPath string
374-
var fCollections bool
375-
var fMetadata bool
376-
var fExpirationAlerts bool
377-
var fIssuedAlerts bool
378-
var fDeniedAlerts bool
379-
var fPendingAlerts bool
380-
var fNetworks bool
381-
var fWorkflowDefinitions bool
382-
var fReports bool
383-
var fSecurityRoles bool
384-
385399
RootCmd.AddCommand(exportCmd)
386400

387401
exportCmd.Flags().StringVarP(&exportPath, "file", "f", "", "export JSON to a specified filepath")
388402
exportCmd.MarkFlagRequired("file")
389403

404+
exportCmd.Flags().BoolVarP(&fAll, "all", "a", false, "export all exportable data to JSON file")
405+
exportCmd.Flags().Lookup("all").NoOptDefVal = "true"
390406
exportCmd.Flags().BoolVarP(&fCollections, "collections", "c", false, "export collections to JSON file")
391407
exportCmd.Flags().Lookup("collections").NoOptDefVal = "true"
392408
exportCmd.Flags().BoolVarP(&fMetadata, "metadata", "m", false, "export metadata to JSON file")

cmd/import.go

Lines changed: 59 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
"os"
1313
)
1414

15-
// TODO import flags --all (export too)
1615
var importCmd = &cobra.Command{
1716
Use: "import",
1817
Short: "Keyfactor instance import utilities.",
@@ -33,36 +32,49 @@ var importCmd = &cobra.Command{
3332
log.Fatalf("Error: %s", jErr)
3433
}
3534
kfClient := initGenClient()
36-
if len(out.Collections) != 0 {
35+
oldKfClient, _ := initClient()
36+
if cmd.Flag("all").Value.String() == "true" {
3737
importCollections(out.Collections, kfClient)
38-
}
39-
if len(out.MetadataFields) != 0 {
4038
importMetadataFields(out.MetadataFields, kfClient)
41-
}
42-
if len(out.IssuedCertAlerts) != 0 {
4339
importIssuedCertAlerts(out.IssuedCertAlerts, kfClient)
44-
}
45-
if len(out.DeniedCertAlerts) != 0 {
4640
importDeniedCertAlerts(out.DeniedCertAlerts, kfClient)
47-
}
48-
if len(out.PendingCertAlerts) != 0 {
4941
importPendingCertAlerts(out.PendingCertAlerts, kfClient)
50-
}
51-
if len(out.Networks) != 0 {
5242
importNetworks(out.Networks, kfClient)
53-
}
54-
if len(out.WorkflowDefinitions) != 0 {
5543
importWorkflowDefinitions(out.WorkflowDefinitions, kfClient)
56-
}
57-
if len(out.BuiltInReports) != 0 {
5844
importBuiltInReports(out.BuiltInReports, kfClient)
59-
}
60-
if len(out.CustomReports) != 0 {
6145
importCustomReports(out.CustomReports, kfClient)
62-
}
63-
if len(out.SecurityRoles) != 0 {
64-
kfClient, _ := initClient()
65-
importSecurityRoles(out.SecurityRoles, kfClient)
46+
importSecurityRoles(out.SecurityRoles, oldKfClient)
47+
} else {
48+
if len(out.Collections) != 0 && cmd.Flag("collections").Value.String() == "true" {
49+
importCollections(out.Collections, kfClient)
50+
}
51+
if len(out.MetadataFields) != 0 && cmd.Flag("metadata").Value.String() == "true" {
52+
importMetadataFields(out.MetadataFields, kfClient)
53+
}
54+
if len(out.IssuedCertAlerts) != 0 && cmd.Flag("issued-alerts").Value.String() == "true" {
55+
importIssuedCertAlerts(out.IssuedCertAlerts, kfClient)
56+
}
57+
if len(out.DeniedCertAlerts) != 0 && cmd.Flag("denied-alerts").Value.String() == "true" {
58+
importDeniedCertAlerts(out.DeniedCertAlerts, kfClient)
59+
}
60+
if len(out.PendingCertAlerts) != 0 && cmd.Flag("pending-alerts").Value.String() == "true" {
61+
importPendingCertAlerts(out.PendingCertAlerts, kfClient)
62+
}
63+
if len(out.Networks) != 0 && cmd.Flag("networks").Value.String() == "true" {
64+
importNetworks(out.Networks, kfClient)
65+
}
66+
if len(out.WorkflowDefinitions) != 0 && cmd.Flag("workflow-definitions").Value.String() == "true" {
67+
importWorkflowDefinitions(out.WorkflowDefinitions, kfClient)
68+
}
69+
if len(out.BuiltInReports) != 0 && cmd.Flag("reports").Value.String() == "true" {
70+
importBuiltInReports(out.BuiltInReports, kfClient)
71+
}
72+
if len(out.CustomReports) != 0 && cmd.Flag("reports").Value.String() == "true" {
73+
importCustomReports(out.CustomReports, kfClient)
74+
}
75+
if len(out.SecurityRoles) != 0 && cmd.Flag("security-roles").Value.String() == "true" {
76+
importSecurityRoles(out.SecurityRoles, oldKfClient)
77+
}
6678
}
6779
},
6880
}
@@ -254,10 +266,32 @@ func importSecurityRoles(roles []api.CreateSecurityRoleArg, kfClient *api.Client
254266
}
255267

256268
func init() {
257-
var exportPath string
258-
259269
RootCmd.AddCommand(importCmd)
260270

261-
importCmd.Flags().StringVarP(&exportPath, "file", "f", "", "export JSON to a specified filepath")
271+
importCmd.Flags().StringVarP(&exportPath, "file", "f", "", "import JSON to a specified filepath")
262272
importCmd.MarkFlagRequired("file")
273+
274+
importCmd.Flags().BoolVarP(&fAll, "all", "a", false, "import all importable data to JSON file")
275+
importCmd.Flags().Lookup("all").NoOptDefVal = "true"
276+
277+
importCmd.Flags().BoolVarP(&fCollections, "collections", "c", false, "import collections to JSON file")
278+
importCmd.Flags().Lookup("collections").NoOptDefVal = "true"
279+
importCmd.Flags().BoolVarP(&fMetadata, "metadata", "m", false, "import metadata to JSON file")
280+
importCmd.Flags().Lookup("metadata").NoOptDefVal = "true"
281+
importCmd.Flags().BoolVarP(&fExpirationAlerts, "expiration-alerts", "e", false, "import expiration cert alerts to JSON file")
282+
importCmd.Flags().Lookup("expiration-alerts").NoOptDefVal = "true"
283+
importCmd.Flags().BoolVarP(&fIssuedAlerts, "issued-alerts", "i", false, "import issued cert alerts to JSON file")
284+
importCmd.Flags().Lookup("issued-alerts").NoOptDefVal = "true"
285+
importCmd.Flags().BoolVarP(&fDeniedAlerts, "denied-alerts", "d", false, "import denied cert alerts to JSON file")
286+
importCmd.Flags().Lookup("denied-alerts").NoOptDefVal = "true"
287+
importCmd.Flags().BoolVarP(&fPendingAlerts, "pending-alerts", "p", false, "import pending cert alerts to JSON file")
288+
importCmd.Flags().Lookup("pending-alerts").NoOptDefVal = "true"
289+
importCmd.Flags().BoolVarP(&fNetworks, "networks", "n", false, "import SSL networks to JSON file")
290+
importCmd.Flags().Lookup("networks").NoOptDefVal = "true"
291+
importCmd.Flags().BoolVarP(&fWorkflowDefinitions, "workflow-definitions", "w", false, "import workflow definitions to JSON file")
292+
importCmd.Flags().Lookup("workflow-definitions").NoOptDefVal = "true"
293+
importCmd.Flags().BoolVarP(&fReports, "reports", "r", false, "import reports to JSON file")
294+
importCmd.Flags().Lookup("reports").NoOptDefVal = "true"
295+
importCmd.Flags().BoolVarP(&fSecurityRoles, "security-roles", "s", false, "import security roles to JSON file")
296+
importCmd.Flags().Lookup("security-roles").NoOptDefVal = "true"
263297
}

0 commit comments

Comments
 (0)