Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
packer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kristopher Ruzic
packer
Commits
c3d6366c
Commit
c3d6366c
authored
Aug 10, 2015
by
Chris Bednarski
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/mitchellh/packer
parents
27e7a02e
b81bd74a
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
27 additions
and
36 deletions
+27
-36
builder/vmware/common/ssh.go
builder/vmware/common/ssh.go
+1
-1
builder/vmware/common/step_clean_vmx.go
builder/vmware/common/step_clean_vmx.go
+5
-4
builder/vmware/common/step_clean_vmx_test.go
builder/vmware/common/step_clean_vmx_test.go
+9
-9
builder/vmware/common/step_configure_vmx.go
builder/vmware/common/step_configure_vmx.go
+2
-0
builder/vmware/common/vmx.go
builder/vmware/common/vmx.go
+4
-16
builder/vmware/vmx/step_clone_vmx.go
builder/vmware/vmx/step_clone_vmx.go
+6
-6
No files found.
builder/vmware/common/ssh.go
View file @
c3d6366c
...
@@ -39,7 +39,7 @@ func CommHost(config *SSHConfig) func(multistep.StateBag) (string, error) {
...
@@ -39,7 +39,7 @@ func CommHost(config *SSHConfig) func(multistep.StateBag) (string, error) {
var
ok
bool
var
ok
bool
macAddress
:=
""
macAddress
:=
""
if
macAddress
,
ok
=
vmxData
[
"ethernet0.address"
];
!
ok
||
macAddress
==
""
{
if
macAddress
,
ok
=
vmxData
[
"ethernet0.address"
];
!
ok
||
macAddress
==
""
{
if
macAddress
,
ok
=
vmxData
[
"ethernet0.generated
A
ddress"
];
!
ok
||
macAddress
==
""
{
if
macAddress
,
ok
=
vmxData
[
"ethernet0.generated
a
ddress"
];
!
ok
||
macAddress
==
""
{
return
""
,
errors
.
New
(
"couldn't find MAC address in VMX"
)
return
""
,
errors
.
New
(
"couldn't find MAC address in VMX"
)
}
}
}
}
...
...
builder/vmware/common/step_clean_vmx.go
View file @
c3d6366c
...
@@ -2,11 +2,12 @@ package common
...
@@ -2,11 +2,12 @@ package common
import
(
import
(
"fmt"
"fmt"
"github.com/mitchellh/multistep"
"github.com/mitchellh/packer/packer"
"log"
"log"
"regexp"
"regexp"
"strings"
"strings"
"github.com/mitchellh/multistep"
"github.com/mitchellh/packer/packer"
)
)
// This step cleans up the VMX by removing or changing this prior to
// This step cleans up the VMX by removing or changing this prior to
...
@@ -51,8 +52,8 @@ func (s StepCleanVMX) Run(state multistep.StateBag) multistep.StepAction {
...
@@ -51,8 +52,8 @@ func (s StepCleanVMX) Run(state multistep.StateBag) multistep.StepAction {
ui
.
Message
(
"Detaching ISO from CD-ROM device..."
)
ui
.
Message
(
"Detaching ISO from CD-ROM device..."
)
vmxData
[
ide
+
"device
T
ype"
]
=
"cdrom-raw"
vmxData
[
ide
+
"device
t
ype"
]
=
"cdrom-raw"
vmxData
[
ide
+
"file
N
ame"
]
=
"auto detect"
vmxData
[
ide
+
"file
n
ame"
]
=
"auto detect"
}
}
ui
.
Message
(
"Disabling VNC server..."
)
ui
.
Message
(
"Disabling VNC server..."
)
...
...
builder/vmware/common/step_clean_vmx_test.go
View file @
c3d6366c
...
@@ -61,8 +61,8 @@ func TestStepCleanVMX_floppyPath(t *testing.T) {
...
@@ -61,8 +61,8 @@ func TestStepCleanVMX_floppyPath(t *testing.T) {
Value
string
Value
string
}{
}{
{
"floppy0.present"
,
"FALSE"
},
{
"floppy0.present"
,
"FALSE"
},
{
"floppy0.file
T
ype"
,
""
},
{
"floppy0.file
t
ype"
,
""
},
{
"floppy0.file
N
ame"
,
""
},
{
"floppy0.file
n
ame"
,
""
},
}
}
for
_
,
tc
:=
range
cases
{
for
_
,
tc
:=
range
cases
{
...
@@ -109,9 +109,9 @@ func TestStepCleanVMX_isoPath(t *testing.T) {
...
@@ -109,9 +109,9 @@ func TestStepCleanVMX_isoPath(t *testing.T) {
Key
string
Key
string
Value
string
Value
string
}{
}{
{
"ide0:0.file
N
ame"
,
"auto detect"
},
{
"ide0:0.file
n
ame"
,
"auto detect"
},
{
"ide0:0.device
T
ype"
,
"cdrom-raw"
},
{
"ide0:0.device
t
ype"
,
"cdrom-raw"
},
{
"ide0:1.file
N
ame"
,
"bar"
},
{
"ide0:1.file
n
ame"
,
"bar"
},
{
"foo"
,
"bar"
},
{
"foo"
,
"bar"
},
}
}
...
@@ -130,12 +130,12 @@ func TestStepCleanVMX_isoPath(t *testing.T) {
...
@@ -130,12 +130,12 @@ func TestStepCleanVMX_isoPath(t *testing.T) {
const
testVMXFloppyPath
=
`
const
testVMXFloppyPath
=
`
floppy0.present = "TRUE"
floppy0.present = "TRUE"
floppy0.file
T
ype = "file"
floppy0.file
t
ype = "file"
`
`
const
testVMXISOPath
=
`
const
testVMXISOPath
=
`
ide0:0.device
T
ype = "cdrom-image"
ide0:0.device
t
ype = "cdrom-image"
ide0:0.file
N
ame = "foo"
ide0:0.file
n
ame = "foo"
ide0:1.file
N
ame = "bar"
ide0:1.file
n
ame = "bar"
foo = "bar"
foo = "bar"
`
`
builder/vmware/common/step_configure_vmx.go
View file @
c3d6366c
...
@@ -5,6 +5,7 @@ import (
...
@@ -5,6 +5,7 @@ import (
"io/ioutil"
"io/ioutil"
"log"
"log"
"regexp"
"regexp"
"strings"
"github.com/mitchellh/multistep"
"github.com/mitchellh/multistep"
"github.com/mitchellh/packer/packer"
"github.com/mitchellh/packer/packer"
...
@@ -52,6 +53,7 @@ func (s *StepConfigureVMX) Run(state multistep.StateBag) multistep.StepAction {
...
@@ -52,6 +53,7 @@ func (s *StepConfigureVMX) Run(state multistep.StateBag) multistep.StepAction {
// Set custom data
// Set custom data
for
k
,
v
:=
range
s
.
CustomData
{
for
k
,
v
:=
range
s
.
CustomData
{
log
.
Printf
(
"Setting VMX: '%s' = '%s'"
,
k
,
v
)
log
.
Printf
(
"Setting VMX: '%s' = '%s'"
,
k
,
v
)
k
=
strings
.
ToLower
(
k
)
vmxData
[
k
]
=
v
vmxData
[
k
]
=
v
}
}
...
...
builder/vmware/common/vmx.go
View file @
c3d6366c
...
@@ -17,7 +17,7 @@ import (
...
@@ -17,7 +17,7 @@ import (
func
ParseVMX
(
contents
string
)
map
[
string
]
string
{
func
ParseVMX
(
contents
string
)
map
[
string
]
string
{
results
:=
make
(
map
[
string
]
string
)
results
:=
make
(
map
[
string
]
string
)
lineRe
:=
regexp
.
MustCompile
(
`^(.+?)\s*=\s*"
?(.*?)"?
\s*$`
)
lineRe
:=
regexp
.
MustCompile
(
`^(.+?)\s*=\s*"
(.*?)"
\s*$`
)
for
_
,
line
:=
range
strings
.
Split
(
contents
,
"
\n
"
)
{
for
_
,
line
:=
range
strings
.
Split
(
contents
,
"
\n
"
)
{
matches
:=
lineRe
.
FindStringSubmatch
(
line
)
matches
:=
lineRe
.
FindStringSubmatch
(
line
)
...
@@ -25,7 +25,8 @@ func ParseVMX(contents string) map[string]string {
...
@@ -25,7 +25,8 @@ func ParseVMX(contents string) map[string]string {
continue
continue
}
}
results
[
matches
[
1
]]
=
matches
[
2
]
key
:=
strings
.
ToLower
(
matches
[
1
])
results
[
key
]
=
matches
[
2
]
}
}
return
results
return
results
...
@@ -42,22 +43,9 @@ func EncodeVMX(contents map[string]string) string {
...
@@ -42,22 +43,9 @@ func EncodeVMX(contents map[string]string) string {
i
++
i
++
}
}
// a list of VMX key fragments that should not be wrapped in quotes,
// fragments because multiple disks can use the virtualSSD suffix
noQuotes
:=
[]
string
{
"virtualSSD"
,
}
sort
.
Strings
(
keys
)
sort
.
Strings
(
keys
)
for
_
,
k
:=
range
keys
{
for
_
,
k
:=
range
keys
{
pat
:=
"%s =
\"
%s
\"\n
"
buf
.
WriteString
(
fmt
.
Sprintf
(
"%s =
\"
%s
\"\n
"
,
k
,
contents
[
k
]))
for
_
,
q
:=
range
noQuotes
{
if
strings
.
Contains
(
k
,
q
)
{
pat
=
"%s = %s
\n
"
break
;
}
}
buf
.
WriteString
(
fmt
.
Sprintf
(
pat
,
k
,
contents
[
k
]))
}
}
return
buf
.
String
()
return
buf
.
String
()
...
...
builder/vmware/vmx/step_clone_vmx.go
View file @
c3d6366c
...
@@ -38,14 +38,14 @@ func (s *StepCloneVMX) Run(state multistep.StateBag) multistep.StepAction {
...
@@ -38,14 +38,14 @@ func (s *StepCloneVMX) Run(state multistep.StateBag) multistep.StepAction {
}
}
var
diskName
string
var
diskName
string
if
_
,
ok
:=
vmxData
[
"scsi0:0.file
N
ame"
];
ok
{
if
_
,
ok
:=
vmxData
[
"scsi0:0.file
n
ame"
];
ok
{
diskName
=
vmxData
[
"scsi0:0.file
N
ame"
]
diskName
=
vmxData
[
"scsi0:0.file
n
ame"
]
}
}
if
_
,
ok
:=
vmxData
[
"sata0:0.file
N
ame"
];
ok
{
if
_
,
ok
:=
vmxData
[
"sata0:0.file
n
ame"
];
ok
{
diskName
=
vmxData
[
"sata0:0.file
N
ame"
]
diskName
=
vmxData
[
"sata0:0.file
n
ame"
]
}
}
if
_
,
ok
:=
vmxData
[
"ide0:0.file
N
ame"
];
ok
{
if
_
,
ok
:=
vmxData
[
"ide0:0.file
n
ame"
];
ok
{
diskName
=
vmxData
[
"ide0:0.file
N
ame"
]
diskName
=
vmxData
[
"ide0:0.file
n
ame"
]
}
}
if
diskName
==
""
{
if
diskName
==
""
{
err
:=
fmt
.
Errorf
(
"Root disk filename could not be found!"
)
err
:=
fmt
.
Errorf
(
"Root disk filename could not be found!"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment