@@ -144,9 +144,16 @@ var (
144144 AppID : appID ,
145145 ManifestHash : manifestHash ,
146146 Metadata : map [string ]string {
147- "net.oasis.deployment.orc.ref" : fmt .Sprintf ("%s@%s" , deployment .OCIRepository , ociDigest ),
147+ scheduler . MetadataKeyORCReference : fmt .Sprintf ("%s@%s" , deployment .OCIRepository , ociDigest ),
148148 },
149149 }
150+ if len (machine .Permissions ) > 0 {
151+ perms , err := resolveAndMarshalPermissions (npa , machine .Permissions )
152+ if err != nil {
153+ cobra .CheckErr (fmt .Sprintf ("Failed to marshal permissions: %s" , err ))
154+ }
155+ machineDeployment .Metadata [scheduler .MetadataKeyPermissions ] = perms
156+ }
150157
151158 obtainMachine := func () (* buildRofl.Machine , * roflmarket.Instance , error ) {
152159 if deployOffer != "" {
@@ -446,6 +453,22 @@ func term2str(term roflmarket.Term) string {
446453 }
447454}
448455
456+ func resolveAndMarshalPermissions (npa * common.NPASelection , permissions map [string ][]string ) (string , error ) {
457+ perms := make (scheduler.Permissions )
458+ for action , addresses := range permissions {
459+ perms [action ] = make ([]types.Address , len (addresses ))
460+ for i , rawAddr := range addresses {
461+ addr , _ , err := common .ResolveLocalAccountOrAddress (npa .Network , rawAddr )
462+ if err != nil {
463+ return "" , err
464+ }
465+
466+ perms [action ][i ] = * addr
467+ }
468+ }
469+ return scheduler .MarshalPermissions (perms ), nil
470+ }
471+
449472func init () {
450473 providerFlags := flag .NewFlagSet ("" , flag .ContinueOnError )
451474 // Default to Testnet playground provider.
0 commit comments