veyron/services/mgmt/device: Add arm and x86 profiles.
Add device profiles for linux-arm and linux-x86 to start testing on
raspberry pi and edison.
Change-Id: I06010b02e7907eb540acf852bb404806a7a782be
diff --git a/services/mgmt/device/deviced/commands.go b/services/mgmt/device/deviced/commands.go
index 1022747..90372cc 100644
--- a/services/mgmt/device/deviced/commands.go
+++ b/services/mgmt/device/deviced/commands.go
@@ -141,5 +141,11 @@
return err
}
fmt.Fprintf(cmd.Stdout(), "Profile: %#v\n", spec)
+ desc, err := impl.Describe()
+ if err != nil {
+ vlog.Errorf("Describe failed: %v", err)
+ return err
+ }
+ fmt.Fprintf(cmd.Stdout(), "Description: %#v\n", desc)
return nil
}
diff --git a/services/mgmt/device/impl/device_service.go b/services/mgmt/device/impl/device_service.go
index f976242..d53a10d 100644
--- a/services/mgmt/device/impl/device_service.go
+++ b/services/mgmt/device/impl/device_service.go
@@ -144,7 +144,7 @@
}
func (*deviceService) Describe(ipc.ServerContext) (device.Description, error) {
- return describe()
+ return Describe()
}
func (*deviceService) IsRunnable(_ ipc.ServerContext, description binary.Description) (bool, error) {
diff --git a/services/mgmt/device/impl/only_for_test.go b/services/mgmt/device/impl/only_for_test.go
index a0fc4a2..082fc25 100644
--- a/services/mgmt/device/impl/only_for_test.go
+++ b/services/mgmt/device/impl/only_for_test.go
@@ -42,7 +42,7 @@
}
isSetuid = possiblyMockIsSetuid
- describe = func() (descr device.Description, err error) {
+ Describe = func() (descr device.Description, err error) {
return device.Description{Profiles: map[string]struct{}{"test-profile": struct{}{}}}, nil
}
}
diff --git a/services/mgmt/device/impl/profile.go b/services/mgmt/device/impl/profile.go
index 4e784af..6410f3a 100644
--- a/services/mgmt/device/impl/profile.go
+++ b/services/mgmt/device/impl/profile.go
@@ -154,7 +154,21 @@
OS: build.Linux,
Format: build.ELF,
},
- // TODO(caprita): Add profiles for Mac, Pi, etc.
+ {
+ Label: "linux-x86",
+ Description: "",
+ Arch: build.X86,
+ OS: build.Linux,
+ Format: build.ELF,
+ },
+ {
+ Label: "linux-arm",
+ Description: "",
+ Arch: build.ARM,
+ OS: build.Linux,
+ Format: build.ELF,
+ },
+ // TODO(caprita): Add other profiles for Mac, Pi, etc.
}, nil
// TODO(jsimsa): This function assumes the existence of a profile
@@ -213,10 +227,10 @@
return result
}
-// describe returns a Description containing the profile that matches the
+// Describe returns a Description containing the profile that matches the
// current device. It's declared as a variable so we can override it for
// testing.
-var describe = func() (device.Description, error) {
+var Describe = func() (device.Description, error) {
empty := device.Description{}
deviceProfile, err := ComputeDeviceProfile()
if err != nil {
diff --git a/services/mgmt/device/impl/util.go b/services/mgmt/device/impl/util.go
index 09fa70a..b98f4cc 100644
--- a/services/mgmt/device/impl/util.go
+++ b/services/mgmt/device/impl/util.go
@@ -41,7 +41,7 @@
stub := repository.ApplicationClient(origin)
// TODO(jsimsa): Include logic that computes the set of supported
// profiles.
- profilesSet, err := describe()
+ profilesSet, err := Describe()
if err != nil {
vlog.Errorf("Failed to obtain profile labels: %v", err)
return nil, verror2.Make(ErrOperationFailed, ctx)