1+ // This Source Code Form is subject to the terms of the Mozilla Public
2+ // License, v. 2.0. If a copy of the MPL was not distributed with this
3+ // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4+
15package main
26
37import (
@@ -30,7 +34,7 @@ func DirectoryTask(world state.State, path string) {
3034 err error
3135 )
3236
33- if parent , err = world .WatchFor (ctx , PathResourceType , base , state .WithEventTypes (state .Created , state .Updated )); err != nil {
37+ if parent , err = world .WatchFor (ctx , resource . NewMetadata ( defaultNs , PathResourceType , base , resource . VersionUndefined ) , state .WithEventTypes (state .Created , state .Updated )); err != nil {
3438 log .Fatal (err )
3539 }
3640
@@ -40,43 +44,46 @@ func DirectoryTask(world state.State, path string) {
4044 log .Fatal (err )
4145 }
4246
43- self := NewPathResource (path )
47+ self := NewPathResource (defaultNs , path )
4448
45- if err = world .Create (self ); err != nil {
49+ if err = world .Create (ctx , self ); err != nil {
4650 log .Fatal (err )
4751 }
4852
4953 log .Printf ("%q: created %q" , path , path )
5054
51- if parent , err = world .UpdateWithConflicts (parent , func (r resource.Resource ) error {
55+ if parent , err = world .UpdateWithConflicts (ctx , parent , func (r resource.Resource ) error {
5256 r .(* PathResource ).AddDependent (self )
5357
5458 return nil
5559 }); err != nil {
5660 log .Fatal (err )
5761 }
5862
59- log .Printf ("%q: %q.dependents = %q" , path , parent .ID (), parent .(* PathResource ).dependents )
63+ log .Printf ("%q: %q.dependents = %q" , path , parent .Metadata (). ID (), parent .(* PathResource ). spec .dependents )
6064
6165 // doing something useful here <>
6266
6367 log .Printf ("%q: watching for teardown %q" , path , base )
6468
65- if parent , err = world .WatchFor (ctx , PathResourceType , base , state .WithEventTypes (state .Destroyed , state .Torndown )); err != nil {
69+ if parent , err = world .WatchFor (ctx , resource . NewMetadata ( defaultNs , PathResourceType , base , resource . VersionUndefined ) , state .WithEventTypes (state .Destroyed , state .Torndown )); err != nil {
6670 log .Fatal (err )
6771 }
6872
6973 log .Printf ("%q: teardown self" , path )
7074
71- if err = world .Teardown (self ); err != nil {
75+ if err = world .Teardown (ctx , self . Metadata () ); err != nil {
7276 log .Fatal (err )
7377 }
7478
7579 log .Printf ("%q: watching for dependents to vanish %q" , path , path )
7680
77- if _ , err = world .WatchFor (ctx , PathResourceType , path , state .WithEventTypes (state .Created , state .Updated , state .Torndown ), state .WithCondition (func (r resource.Resource ) (bool , error ) {
78- return len (r .(* PathResource ).dependents ) == 0 , nil
79- })); err != nil {
81+ if _ , err = world .WatchFor (ctx ,
82+ resource .NewMetadata (defaultNs , PathResourceType , path , resource .VersionUndefined ),
83+ state .WithEventTypes (state .Created , state .Updated , state .Torndown ),
84+ state .WithCondition (func (r resource.Resource ) (bool , error ) {
85+ return len (r .(* PathResource ).spec .dependents ) == 0 , nil
86+ })); err != nil {
8087 log .Fatal (err )
8188 }
8289
@@ -86,24 +93,27 @@ func DirectoryTask(world state.State, path string) {
8693 log .Fatal (err )
8794 }
8895
89- if _ , err = world .UpdateWithConflicts (parent , func (r resource.Resource ) error {
96+ if _ , err = world .UpdateWithConflicts (ctx , parent , func (r resource.Resource ) error {
9097 r .(* PathResource ).DropDependent (self )
9198
9299 return nil
93100 }); err != nil {
94101 log .Fatal (err )
95102 }
96103
97- if err = world .Destroy (self ); err != nil {
104+ if err = world .Destroy (ctx , self . Metadata () ); err != nil {
98105 log .Fatal (err )
99106 }
100107}
101108
109+ const defaultNs = "default"
110+
102111func main () {
103- world := state .WrapCore (local .NewState ())
112+ ctx := context .Background ()
113+ world := state .WrapCore (local .NewState (defaultNs ))
104114
105- root := NewPathResource ("." )
106- if err := world .Create (root ); err != nil {
115+ root := NewPathResource (defaultNs , "." )
116+ if err := world .Create (ctx , root ); err != nil {
107117 log .Fatal (err )
108118 }
109119
@@ -127,7 +137,7 @@ func main() {
127137
128138 time .Sleep (2 * time .Second )
129139
130- if err := world .Teardown (root ); err != nil {
140+ if err := world .Teardown (ctx , root . Metadata () ); err != nil {
131141 log .Fatal (err )
132142 }
133143
0 commit comments