Skip to content

Commit 52aa479

Browse files
Fixed #877, also added better error translating for Required Flags, and unknown command args
1 parent 8c11ada commit 52aa479

17 files changed

Lines changed: 60 additions & 51 deletions

bin/goi18n2

100644100755
File mode changed.

plugin/commands/block/volume_count_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ var _ = Describe("Volume cancel", func() {
4646
It("return error", func() {
4747
err := testhelpers.RunCobraCommand(cliCommand.Command, "1234")
4848
Expect(err).To(HaveOccurred())
49-
Expect(err.Error()).To(ContainSubstring("unknown command 1234 for volume-count"))
49+
Expect(err.Error()).To(ContainSubstring("Incorrect Usage: invalid argument 1234 for volume-count"))
5050
})
5151
})
5252
Context("Volume Count Happy Path", func() {

plugin/commands/file/volume_count_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ var _ = Describe("Volume cancel", func() {
4646
It("return error", func() {
4747
err := testhelpers.RunCobraCommand(cliCommand.Command, "1234")
4848
Expect(err).To(HaveOccurred())
49-
Expect(err.Error()).To(ContainSubstring("unknown command 1234 for volume-count"))
49+
Expect(err.Error()).To(ContainSubstring("Incorrect Usage: invalid argument 1234 for volume-count"))
5050
})
5151
})
5252
Context("Volume Count Happy Path", func() {

plugin/commands/tags/set.go

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@ func NewSetCommand(sl *metadata.SoftlayerCommand) (cmd *SetCommand) {
2626
cobraCmd := &cobra.Command{
2727
Use: "set",
2828
Short: T("Set Tags."),
29-
Long: T(`${COMMAND_NAME} sl tags set [OPTIONS]
30-
31-
EXAMPLE:
29+
Long: T(`EXAMPLE:
3230
${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456
3331
`),
3432
Args: metadata.NoArgs,
@@ -40,7 +38,9 @@ EXAMPLE:
4038
cobraCmd.Flags().StringVar(&thisCmd.Tags, "tags", "", T("Comma seperated list of tags, enclosed in quotes. 'tag1,tag2' [required]"))
4139
cobraCmd.Flags().StringVar(&thisCmd.KeyName, "key-name", "", T("Key name of a tag type e.g. GUEST, HARDWARE. See slcli tags taggable output. [required]"))
4240
cobraCmd.Flags().IntVar(&thisCmd.ResourceId, "resource-id", 0, T("ID of the object being tagged [required]"))
43-
41+
cobraCmd.MarkFlagRequired("tags") //#nosec G104 -- This is a false positive
42+
cobraCmd.MarkFlagRequired("key-name") //#nosec G104 -- This is a false positive
43+
cobraCmd.MarkFlagRequired("resource-id") //#nosec G104 -- This is a false positive
4444
thisCmd.Command = cobraCmd
4545
return thisCmd
4646
}
@@ -49,17 +49,6 @@ func (cmd *SetCommand) Run(args []string) error {
4949
tags := cmd.Tags
5050
keyName := cmd.KeyName
5151
resourceId := cmd.ResourceId
52-
53-
if tags == "" {
54-
return errors.NewMissingInputError("--tags")
55-
}
56-
if keyName == "" {
57-
return errors.NewMissingInputError("--key-name")
58-
}
59-
if resourceId == 0 {
60-
return errors.NewMissingInputError("--resource-id")
61-
}
62-
6352
response, err := cmd.TagsManager.SetTags(tags, keyName, resourceId)
6453
if err != nil {
6554
return errors.NewAPIError(T("Failed to set tags."), err.Error(), 2)

plugin/commands/tags/set_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,19 @@ var _ = Describe("tags set", func() {
3737
It("Set command without required --tags option", func() {
3838
err := testhelpers.RunCobraCommand(cliCommand.Command, "--key-name=HARDWARE", "--resource-id=123456")
3939
Expect(err).To(HaveOccurred())
40-
Expect(err.Error()).To(ContainSubstring("Incorrect Usage: '--tags' is required"))
40+
Expect(err.Error()).To(ContainSubstring(`required flag(s) "tags" not set`))
4141
})
4242

4343
It("Set command without required --key-name option", func() {
4444
err := testhelpers.RunCobraCommand(cliCommand.Command, "--tags='tag1,tag2'", "--resource-id=123456")
4545
Expect(err).To(HaveOccurred())
46-
Expect(err.Error()).To(ContainSubstring("Incorrect Usage: '--key-name' is required"))
46+
Expect(err.Error()).To(ContainSubstring(`required flag(s) "key-name" not set`))
4747
})
4848

4949
It("Set command without required --resource-id option", func() {
5050
err := testhelpers.RunCobraCommand(cliCommand.Command, "--tags='tag1,tag2'", "--key-name=HARDWARE")
5151
Expect(err).To(HaveOccurred())
52-
Expect(err.Error()).To(ContainSubstring("Incorrect Usage: '--resource-id' is required"))
52+
Expect(err.Error()).To(ContainSubstring(`required flag(s) "resource-id" not set`))
5353
})
5454

5555
It("Set invalid resource-id option", func() {

plugin/i18n/v2Resources/active.de_DE.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,8 @@
269269
"${COMMAND_NAME} sl subnet lookup IP_ADDRESS [OPTIONS]\n\t\nEXAMPLE:\n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n This command finds the IP address record with IP address 9.125.235.255 and displays its subnet and device information.": {
270270
"other": "${COMMAND_NAME} sl subnet lookup IP_ADDRESS [OPTIONEN]\n\t\nBEISPIEL: \n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n Dieser Befehl sucht nach dem IP-Adressdatensatz mit der IP-Adresse 9.125.235.255 und zeigt sein Teilnetz und die Gerätedaten an."
271271
},
272-
"${COMMAND_NAME} sl tags set [OPTIONS]\n\nEXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
273-
"other": "${COMMAND_NAME} sl tags set [OPTIONEN]\n\nBEISPIEL:\n${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
272+
"EXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
273+
"other": "BEISPIEL:\n${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
274274
},
275275
"${COMMAND_NAME} sl ticket attach TICKETID [OPTIONS]\n \nEXAMPLE:\n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 ": {
276276
"other": "${COMMAND_NAME} sl ticket attach TICKETID [OPTIONEN]\n \nBeispiel: \n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 "

plugin/i18n/v2Resources/active.en-US.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -278,9 +278,6 @@
278278
"${COMMAND_NAME} sl subnet lookup IP_ADDRESS [OPTIONS]\n\t\nEXAMPLE:\n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n This command finds the IP address record with IP address 9.125.235.255 and displays its subnet and device information.": {
279279
"other": "${COMMAND_NAME} sl subnet lookup IP_ADDRESS [OPTIONS]\n\t\nEXAMPLE:\n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n This command finds the IP address record with IP address 9.125.235.255 and displays its subnet and device information."
280280
},
281-
"${COMMAND_NAME} sl tags set [OPTIONS]\n\nEXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
282-
"other": "${COMMAND_NAME} sl tags set [OPTIONS]\n\nEXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
283-
},
284281
"${COMMAND_NAME} sl ticket attach TICKETID [OPTIONS]\n \nEXAMPLE:\n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 ": {
285282
"other": "${COMMAND_NAME} sl ticket attach TICKETID [OPTIONS]\n \nEXAMPLE:\n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 "
286283
},
@@ -1886,6 +1883,9 @@
18861883
"Duplicate Volume Properties": {
18871884
"other": "Duplicate Volume Properties"
18881885
},
1886+
"EXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
1887+
"other": "EXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
1888+
},
18891889
"EXAMPLE:\n ${COMMAND_NAME} sl {{.storageType}} access-authorize 12345678 --virtual-id 87654321\n This command authorizes virtual server with ID 87654321 to access volume with ID 12345678.": {
18901890
"other": "EXAMPLE:\n ${COMMAND_NAME} sl {{.storageType}} access-authorize 12345678 --virtual-id 87654321\n This command authorizes virtual server with ID 87654321 to access volume with ID 12345678."
18911891
},
@@ -3998,6 +3998,9 @@
39983998
"Incorrect Usage: ": {
39993999
"other": "Incorrect Usage: "
40004000
},
4001+
"Incorrect Usage: '{{.CMD}}' is required": {
4002+
"other": "Incorrect Usage: '{{.CMD}}' is required"
4003+
},
40014004
"Incorrect complex type: {{.Type}}": {
40024005
"other": "Incorrect complex type: {{.Type}}"
40034006
},
@@ -7802,9 +7805,6 @@
78027805
"type": {
78037806
"other": "type"
78047807
},
7805-
"unknown command {{.Arg}} for {{.Command}}": {
7806-
"other": "unknown command {{.Arg}} for {{.Command}}"
7807-
},
78087808
"updated": {
78097809
"other": "updated"
78107810
},

plugin/i18n/v2Resources/active.es_ES.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,8 @@
269269
"${COMMAND_NAME} sl subnet lookup IP_ADDRESS [OPTIONS]\n\t\nEXAMPLE:\n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n This command finds the IP address record with IP address 9.125.235.255 and displays its subnet and device information.": {
270270
"other": "${COMMAND_NAME} sl subnet lookup IP_ADDRESS [OPTIONS]\n\t\nEJEMPLO:\n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n Este mandato encuentra el registro de dirección IP con la dirección IP 9.125.235.255 y muestra la información del dispositivo y la subred."
271271
},
272-
"${COMMAND_NAME} sl tags set [OPTIONS]\n\nEXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
273-
"other": "${COMMAND_NAME} sl tags set [OPTIONS]\n\nEJEMPLO:\n${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
272+
"EXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
273+
"other": "EJEMPLO:\n${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
274274
},
275275
"${COMMAND_NAME} sl ticket attach TICKETID [OPTIONS]\n \nEXAMPLE:\n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 ": {
276276
"other": "${COMMAND_NAME} sl ticket attach TICKETID [OPTIONS]\n \nEJEMPLO:\n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 "

plugin/i18n/v2Resources/active.fr_FR.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,8 @@
269269
"${COMMAND_NAME} sl subnet lookup IP_ADDRESS [OPTIONS]\n\t\nEXAMPLE:\n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n This command finds the IP address record with IP address 9.125.235.255 and displays its subnet and device information.": {
270270
"other": "${COMMAND_NAME} sl subnet lookup ADRESSE_IP [OPTIONS]\n\t\nEXEMPLE :\n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n Cette commande recherche l'enregistrement d'adresse IP avec l'adresse IP 9.125.235.255 et affiche les informations sur son sous-réseau et ses périphériques."
271271
},
272-
"${COMMAND_NAME} sl tags set [OPTIONS]\n\nEXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
273-
"other": "${COMMAND_NAME} sl tags set [OPTIONS]\n\nEXEMPLE :\n${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
272+
"EXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
273+
"other": "EXEMPLE :\n${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
274274
},
275275
"${COMMAND_NAME} sl ticket attach TICKETID [OPTIONS]\n \nEXAMPLE:\n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 ": {
276276
"other": "${COMMAND_NAME} sl ticket attach TICKETID [OPTIONS]\n \nEXEMPLE :\n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 "

plugin/i18n/v2Resources/active.it_IT.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,8 @@
269269
"${COMMAND_NAME} sl subnet lookup IP_ADDRESS [OPTIONS]\n\t\nEXAMPLE:\n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n This command finds the IP address record with IP address 9.125.235.255 and displays its subnet and device information.": {
270270
"other": "${COMMAND_NAME} sl subnet lookup INDIRIZZO_IP [OPZIONI]\n\t\nESEMPIO:\n ${COMMAND_NAME} sl subnet lookup 9.125.235.255\n Questo comando trova il record dell'indirizzo IP con l'indirizzo IP 9.125.235.255 e visualizza le informazioni relative a sottorete e dispositivo."
271271
},
272-
"${COMMAND_NAME} sl tags set [OPTIONS]\n\nEXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
273-
"other": "${COMMAND_NAME} sl tags set [OPZIONI]\n\nESEMPIO:\n${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
272+
"EXAMPLE:\n\t${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n": {
273+
"other": "ESEMPIO:\n${COMMAND_NAME} sl tags set --tags 'tag1,tag2' --key-name HARDWARE --resource-id 123456\n"
274274
},
275275
"${COMMAND_NAME} sl ticket attach TICKETID [OPTIONS]\n \nEXAMPLE:\n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 ": {
276276
"other": "${COMMAND_NAME} sl ticket attach IDTICKET [OPZIONI]\n \nESEMPIO:\n ${COMMAND_NAME} sl ticket attach 7676767 --hardware 8675654 \n ${COMMAND_NAME} sl ticket attach 7676767 --virtual 1234567 "

0 commit comments

Comments
 (0)