Skip to content

Commit

Permalink
Merge pull request #783 from awalvie/yaml-support-config-template-create
Browse files Browse the repository at this point in the history
incus/config_template: Add file support config template create
  • Loading branch information
stgraber authored Apr 24, 2024
2 parents d9d13ef + 101ec89 commit 033fd36
Show file tree
Hide file tree
Showing 12 changed files with 293 additions and 184 deletions.
19 changes: 18 additions & 1 deletion cmd/incus/config_template.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ func (c *cmdConfigTemplateCreate) Command() *cobra.Command {
cmd.Short = i18n.G("Create new instance file templates")
cmd.Long = cli.FormatSection(i18n.G("Description"), i18n.G(
`Create new instance file templates`))
cmd.Example = cli.FormatSection("", i18n.G(`incus config template create u1 t1
incus config template create u1 t1 < config.tpl
Create template t1 for instance u1 from config.tpl`))

cmd.RunE = c.Run

Expand All @@ -80,12 +84,25 @@ func (c *cmdConfigTemplateCreate) Command() *cobra.Command {
}

func (c *cmdConfigTemplateCreate) Run(cmd *cobra.Command, args []string) error {
var stdinData io.ReadSeeker

// Quick checks.
exit, err := c.global.CheckArgs(cmd, args, 2, 2)
if exit {
return err
}

// If stdin isn't a terminal, read text from it
if !termios.IsTerminal(getStdinFd()) {
contents, err := io.ReadAll(os.Stdin)
if err != nil {
return err
}

// Reset the seek position
stdinData = bytes.NewReader(contents)
}

// Parse remote
resources, err := c.global.ParseServers(args[0])
if err != nil {
Expand All @@ -99,7 +116,7 @@ func (c *cmdConfigTemplateCreate) Run(cmd *cobra.Command, args []string) error {
}

// Create instance file template
return resource.server.CreateInstanceTemplateFile(resource.name, args[1], nil)
return resource.server.CreateInstanceTemplateFile(resource.name, args[1], stdinData)
}

// Delete.
Expand Down
42 changes: 25 additions & 17 deletions po/de.po
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: LXD\n"
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
"POT-Creation-Date: 2024-04-24 13:37+0200\n"
"POT-Creation-Date: 2024-04-24 15:45+0200\n"
"PO-Revision-Date: 2024-01-25 23:01+0000\n"
"Last-Translator: Dklfajsjfi49wefklsf32 <nlincus@users.noreply.hosted.weblate."
"org>\n"
Expand Down Expand Up @@ -2011,7 +2011,7 @@ msgstr ""
msgid "Delete images"
msgstr ""

#: cmd/incus/config_template.go:116 cmd/incus/config_template.go:117
#: cmd/incus/config_template.go:133 cmd/incus/config_template.go:134
#, fuzzy
msgid "Delete instance file templates"
msgstr "Anhalten des Containers fehlgeschlagen!"
Expand Down Expand Up @@ -2129,8 +2129,8 @@ msgstr ""
#: cmd/incus/config_device.go:843 cmd/incus/config_metadata.go:26
#: cmd/incus/config_metadata.go:54 cmd/incus/config_metadata.go:187
#: cmd/incus/config_template.go:26 cmd/incus/config_template.go:66
#: cmd/incus/config_template.go:117 cmd/incus/config_template.go:171
#: cmd/incus/config_template.go:271 cmd/incus/config_template.go:339
#: cmd/incus/config_template.go:134 cmd/incus/config_template.go:188
#: cmd/incus/config_template.go:288 cmd/incus/config_template.go:356
#: cmd/incus/config_trust.go:36 cmd/incus/config_trust.go:91
#: cmd/incus/config_trust.go:171 cmd/incus/config_trust.go:275
#: cmd/incus/config_trust.go:400 cmd/incus/config_trust.go:584
Expand Down Expand Up @@ -2489,7 +2489,7 @@ msgstr "kann nicht zum selben Container Namen kopieren"
msgid "Edit image properties"
msgstr ""

#: cmd/incus/config_template.go:170 cmd/incus/config_template.go:171
#: cmd/incus/config_template.go:187 cmd/incus/config_template.go:188
#, fuzzy
msgid "Edit instance file templates"
msgstr "Anhalten des Containers fehlgeschlagen!"
Expand Down Expand Up @@ -2665,7 +2665,7 @@ msgstr "Fehler beim hinzufügen des Alias %s\n"
msgid "Error unsetting property: %v"
msgstr ""

#: cmd/incus/config_template.go:236
#: cmd/incus/config_template.go:253
#, fuzzy, c-format
msgid "Error updating template file: %s"
msgstr "Fehler beim hinzufügen des Alias %s\n"
Expand Down Expand Up @@ -2827,7 +2827,7 @@ msgstr ""
msgid "FAILURE DOMAIN"
msgstr ""

#: cmd/incus/config_template.go:322
#: cmd/incus/config_template.go:339
msgid "FILENAME"
msgstr ""

Expand Down Expand Up @@ -3257,7 +3257,7 @@ msgid ""
msgstr ""

#: cmd/incus/alias.go:113 cmd/incus/cluster.go:125 cmd/incus/cluster.go:964
#: cmd/incus/cluster_group.go:441 cmd/incus/config_template.go:273
#: cmd/incus/cluster_group.go:441 cmd/incus/config_template.go:290
#: cmd/incus/config_trust.go:422 cmd/incus/config_trust.go:586
#: cmd/incus/image.go:1100 cmd/incus/image_alias.go:157 cmd/incus/list.go:133
#: cmd/incus/network.go:1015 cmd/incus/network.go:1114
Expand Down Expand Up @@ -4128,7 +4128,7 @@ msgstr ""
msgid "List instance devices"
msgstr "kann nicht zum selben Container Namen kopieren"

#: cmd/incus/config_template.go:270 cmd/incus/config_template.go:271
#: cmd/incus/config_template.go:287 cmd/incus/config_template.go:288
#, fuzzy
msgid "List instance file templates"
msgstr "Anhalten des Containers fehlgeschlagen!"
Expand Down Expand Up @@ -4825,9 +4825,9 @@ msgid "Missing cluster member name"
msgstr "der Name des Ursprung Containers muss angegeben werden"

#: cmd/incus/config_metadata.go:110 cmd/incus/config_metadata.go:219
#: cmd/incus/config_template.go:98 cmd/incus/config_template.go:153
#: cmd/incus/config_template.go:207 cmd/incus/config_template.go:304
#: cmd/incus/config_template.go:375 cmd/incus/profile.go:140
#: cmd/incus/config_template.go:115 cmd/incus/config_template.go:170
#: cmd/incus/config_template.go:224 cmd/incus/config_template.go:321
#: cmd/incus/config_template.go:392 cmd/incus/profile.go:140
#: cmd/incus/profile.go:221 cmd/incus/profile.go:807 cmd/incus/rebuild.go:59
#, fuzzy
msgid "Missing instance name"
Expand Down Expand Up @@ -5637,7 +5637,7 @@ msgstr ""

#: cmd/incus/cluster.go:860 cmd/incus/cluster_group.go:397
#: cmd/incus/config.go:277 cmd/incus/config.go:352
#: cmd/incus/config_metadata.go:155 cmd/incus/config_template.go:237
#: cmd/incus/config_metadata.go:155 cmd/incus/config_template.go:254
#: cmd/incus/config_trust.go:354 cmd/incus/image.go:484
#: cmd/incus/network.go:763 cmd/incus/network_acl.go:697
#: cmd/incus/network_forward.go:717 cmd/incus/network_integration.go:289
Expand Down Expand Up @@ -6810,7 +6810,7 @@ msgstr ""
msgid "Show cluster group configurations"
msgstr "Profil %s erstellt\n"

#: cmd/incus/config_template.go:338 cmd/incus/config_template.go:339
#: cmd/incus/config_template.go:355 cmd/incus/config_template.go:356
#, fuzzy
msgid "Show content of instance file templates"
msgstr "Anhalten des Containers fehlgeschlagen!"
Expand Down Expand Up @@ -8540,7 +8540,7 @@ msgstr ""

#: cmd/incus/config_device.go:320 cmd/incus/config_device.go:752
#: cmd/incus/config_metadata.go:52 cmd/incus/config_metadata.go:185
#: cmd/incus/config_template.go:269 cmd/incus/console.go:35
#: cmd/incus/config_template.go:286 cmd/incus/console.go:35
#: cmd/incus/snapshot.go:286
#, fuzzy
msgid "[<remote>:]<instance>"
Expand Down Expand Up @@ -8643,8 +8643,8 @@ msgstr ""
"Entfernt einen Container (oder Sicherungspunkt) und alle dazugehörigen\n"
"Daten (Konfiguration, Sicherungspunkte, ...).\n"

#: cmd/incus/config_template.go:64 cmd/incus/config_template.go:114
#: cmd/incus/config_template.go:169 cmd/incus/config_template.go:337
#: cmd/incus/config_template.go:64 cmd/incus/config_template.go:131
#: cmd/incus/config_template.go:186 cmd/incus/config_template.go:354
#, fuzzy
msgid "[<remote>:]<instance> <template>"
msgstr ""
Expand Down Expand Up @@ -9612,6 +9612,14 @@ msgid ""
" Will have the server listen on IPv4 and IPv6 port 8443."
msgstr ""

#: cmd/incus/config_template.go:68
msgid ""
"incus config template create u1 t1\n"
"\n"
"incus config template create u1 t1 < config.tpl\n"
" Create template t1 for instance u1 from config.tpl"
msgstr ""

#: cmd/incus/create.go:43
msgid ""
"incus create images:ubuntu/22.04 u1\n"
Expand Down
42 changes: 25 additions & 17 deletions po/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: lxd\n"
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
"POT-Creation-Date: 2024-04-24 13:37+0200\n"
"POT-Creation-Date: 2024-04-24 15:45+0200\n"
"PO-Revision-Date: 2023-06-16 20:55+0000\n"
"Last-Translator: Francisco Serrador <fserrador@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/linux-containers/"
Expand Down Expand Up @@ -1945,7 +1945,7 @@ msgstr "Eliminar alias de imagen"
msgid "Delete images"
msgstr "Eliminar imágenes"

#: cmd/incus/config_template.go:116 cmd/incus/config_template.go:117
#: cmd/incus/config_template.go:133 cmd/incus/config_template.go:134
msgid "Delete instance file templates"
msgstr ""

Expand Down Expand Up @@ -2059,8 +2059,8 @@ msgstr ""
#: cmd/incus/config_device.go:843 cmd/incus/config_metadata.go:26
#: cmd/incus/config_metadata.go:54 cmd/incus/config_metadata.go:187
#: cmd/incus/config_template.go:26 cmd/incus/config_template.go:66
#: cmd/incus/config_template.go:117 cmd/incus/config_template.go:171
#: cmd/incus/config_template.go:271 cmd/incus/config_template.go:339
#: cmd/incus/config_template.go:134 cmd/incus/config_template.go:188
#: cmd/incus/config_template.go:288 cmd/incus/config_template.go:356
#: cmd/incus/config_trust.go:36 cmd/incus/config_trust.go:91
#: cmd/incus/config_trust.go:171 cmd/incus/config_trust.go:275
#: cmd/incus/config_trust.go:400 cmd/incus/config_trust.go:584
Expand Down Expand Up @@ -2403,7 +2403,7 @@ msgstr ""
msgid "Edit image properties"
msgstr ""

#: cmd/incus/config_template.go:170 cmd/incus/config_template.go:171
#: cmd/incus/config_template.go:187 cmd/incus/config_template.go:188
msgid "Edit instance file templates"
msgstr ""

Expand Down Expand Up @@ -2572,7 +2572,7 @@ msgstr "Error actualizando el archivo de plantilla: %s"
msgid "Error unsetting property: %v"
msgstr ""

#: cmd/incus/config_template.go:236
#: cmd/incus/config_template.go:253
#, c-format
msgid "Error updating template file: %s"
msgstr "Error actualizando el archivo de plantilla: %s"
Expand Down Expand Up @@ -2725,7 +2725,7 @@ msgstr "Exportando la imagen: %s"
msgid "FAILURE DOMAIN"
msgstr ""

#: cmd/incus/config_template.go:322
#: cmd/incus/config_template.go:339
msgid "FILENAME"
msgstr ""

Expand Down Expand Up @@ -3152,7 +3152,7 @@ msgid ""
msgstr ""

#: cmd/incus/alias.go:113 cmd/incus/cluster.go:125 cmd/incus/cluster.go:964
#: cmd/incus/cluster_group.go:441 cmd/incus/config_template.go:273
#: cmd/incus/cluster_group.go:441 cmd/incus/config_template.go:290
#: cmd/incus/config_trust.go:422 cmd/incus/config_trust.go:586
#: cmd/incus/image.go:1100 cmd/incus/image_alias.go:157 cmd/incus/list.go:133
#: cmd/incus/network.go:1015 cmd/incus/network.go:1114
Expand Down Expand Up @@ -4007,7 +4007,7 @@ msgstr ""
msgid "List instance devices"
msgstr ""

#: cmd/incus/config_template.go:270 cmd/incus/config_template.go:271
#: cmd/incus/config_template.go:287 cmd/incus/config_template.go:288
msgid "List instance file templates"
msgstr ""

Expand Down Expand Up @@ -4661,9 +4661,9 @@ msgid "Missing cluster member name"
msgstr "Nombre del Miembro del Cluster"

#: cmd/incus/config_metadata.go:110 cmd/incus/config_metadata.go:219
#: cmd/incus/config_template.go:98 cmd/incus/config_template.go:153
#: cmd/incus/config_template.go:207 cmd/incus/config_template.go:304
#: cmd/incus/config_template.go:375 cmd/incus/profile.go:140
#: cmd/incus/config_template.go:115 cmd/incus/config_template.go:170
#: cmd/incus/config_template.go:224 cmd/incus/config_template.go:321
#: cmd/incus/config_template.go:392 cmd/incus/profile.go:140
#: cmd/incus/profile.go:221 cmd/incus/profile.go:807 cmd/incus/rebuild.go:59
#, fuzzy
msgid "Missing instance name"
Expand Down Expand Up @@ -5454,7 +5454,7 @@ msgstr ""

#: cmd/incus/cluster.go:860 cmd/incus/cluster_group.go:397
#: cmd/incus/config.go:277 cmd/incus/config.go:352
#: cmd/incus/config_metadata.go:155 cmd/incus/config_template.go:237
#: cmd/incus/config_metadata.go:155 cmd/incus/config_template.go:254
#: cmd/incus/config_trust.go:354 cmd/incus/image.go:484
#: cmd/incus/network.go:763 cmd/incus/network_acl.go:697
#: cmd/incus/network_forward.go:717 cmd/incus/network_integration.go:289
Expand Down Expand Up @@ -6589,7 +6589,7 @@ msgstr ""
msgid "Show cluster group configurations"
msgstr "Perfil %s creado"

#: cmd/incus/config_template.go:338 cmd/incus/config_template.go:339
#: cmd/incus/config_template.go:355 cmd/incus/config_template.go:356
msgid "Show content of instance file templates"
msgstr ""

Expand Down Expand Up @@ -8158,7 +8158,7 @@ msgstr "No se puede proveer el nombre del container a la lista"

#: cmd/incus/config_device.go:320 cmd/incus/config_device.go:752
#: cmd/incus/config_metadata.go:52 cmd/incus/config_metadata.go:185
#: cmd/incus/config_template.go:269 cmd/incus/console.go:35
#: cmd/incus/config_template.go:286 cmd/incus/console.go:35
#: cmd/incus/snapshot.go:286
#, fuzzy
msgid "[<remote>:]<instance>"
Expand Down Expand Up @@ -8219,8 +8219,8 @@ msgstr "No se puede proveer el nombre del container a la lista"
msgid "[<remote>:]<instance> <snapshot>"
msgstr "No se puede proveer el nombre del container a la lista"

#: cmd/incus/config_template.go:64 cmd/incus/config_template.go:114
#: cmd/incus/config_template.go:169 cmd/incus/config_template.go:337
#: cmd/incus/config_template.go:64 cmd/incus/config_template.go:131
#: cmd/incus/config_template.go:186 cmd/incus/config_template.go:354
#, fuzzy
msgid "[<remote>:]<instance> <template>"
msgstr "No se puede proveer el nombre del container a la lista"
Expand Down Expand Up @@ -8856,6 +8856,14 @@ msgid ""
" Will have the server listen on IPv4 and IPv6 port 8443."
msgstr ""

#: cmd/incus/config_template.go:68
msgid ""
"incus config template create u1 t1\n"
"\n"
"incus config template create u1 t1 < config.tpl\n"
" Create template t1 for instance u1 from config.tpl"
msgstr ""

#: cmd/incus/create.go:43
msgid ""
"incus create images:ubuntu/22.04 u1\n"
Expand Down
Loading

0 comments on commit 033fd36

Please sign in to comment.