)]}'
{"cmd/phase/run.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"d4e452093ec37501773fd00d481e862b33995589","unresolved":false,"context_lines":[{"line_number":80,"context_line":"\tflags.StringVar("},{"line_number":81,"context_line":"\t\t// Default kubeconfig is target kubeconfig"},{"line_number":82,"context_line":"\t\t\u0026p.KubeFlags.Path,"},{"line_number":83,"context_line":"\t\t\"phase-kubeconfig\","},{"line_number":84,"context_line":"\t\t\"\","},{"line_number":85,"context_line":"\t\t\"Path to kubeconfig file to be used with phase related commands\","},{"line_number":86,"context_line":"\t)"}],"source_content_type":"text/x-go","patch_set":12,"id":"9f560f44_79dfff0b","line":83,"range":{"start_line":83,"start_character":3,"end_line":83,"end_character":19},"updated":"2020-08-17 13:56:25.000000000","message":"i\u0027d propose to have --kubeconfig instead of --phase-kubeconfig  which means we have to replace global flag kubeconfig. So I\u0027d propose to move this change to a separate CR","commit_id":"9baa249e10609c83b72732a76daee14af30879fc"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"55717b4464d4b7493da6fe483f2e04ff9b921299","unresolved":false,"context_lines":[{"line_number":80,"context_line":"\tflags.StringVar("},{"line_number":81,"context_line":"\t\t// Default kubeconfig is target kubeconfig"},{"line_number":82,"context_line":"\t\t\u0026p.KubeFlags.Path,"},{"line_number":83,"context_line":"\t\t\"phase-kubeconfig\","},{"line_number":84,"context_line":"\t\t\"\","},{"line_number":85,"context_line":"\t\t\"Path to kubeconfig file to be used with phase related commands\","},{"line_number":86,"context_line":"\t)"}],"source_content_type":"text/x-go","patch_set":12,"id":"9f560f44_f40cb63a","line":83,"range":{"start_line":83,"start_character":3,"end_line":83,"end_character":19},"in_reply_to":"9f560f44_79dfff0b","updated":"2020-08-17 14:05:57.000000000","message":"this is more to save code, i demo with this.","commit_id":"9baa249e10609c83b72732a76daee14af30879fc"}],"pkg/api/v1alpha1/kubeconfig_types.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"d4e452093ec37501773fd00d481e862b33995589","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\tConfig            clientcmdapi.Config `json:\"config,omitempty\"`"},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"// KubeConfigReference defines how to get kubeconfig from a document bundle"},{"line_number":32,"context_line":"type KubeConfigReference struct {"},{"line_number":33,"context_line":"\t// TODO consider adding selectors as alternative to name + namespace"},{"line_number":34,"context_line":"\tName      string `json:\"name,omitempty\"`"},{"line_number":35,"context_line":"\tNamespace string `json:\"namespace,omitempty\"`"},{"line_number":36,"context_line":"\t// Selector can be used to select kubeconfig instead of referencing it by name and namespace"},{"line_number":37,"context_line":"\tSelector metav1.LabelSelector `json:\"labelSelector,omitempty\"`"},{"line_number":38,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":12,"id":"9f560f44_59f31b9f","line":38,"range":{"start_line":31,"start_character":0,"end_line":38,"end_character":1},"updated":"2020-08-17 13:56:25.000000000","message":"why do not use ObjectReference struct ?\nsee https://godoc.org/k8s.io/api/core/v1#ObjectReference","commit_id":"9baa249e10609c83b72732a76daee14af30879fc"}],"pkg/api/v1alpha1/kubernetes_apply_types.go":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"eb34fe90d3540bc3f88d57cfa96df954cb7a87de","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\tConfig ApplyConfig `json:\"config,omitempty\"`"},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"// ApplyConfig provides instructions on how to apply resources to kubernetes cluster"},{"line_number":32,"context_line":"type ApplyConfig struct {"},{"line_number":33,"context_line":"\tWaitOptions  ApplyWaitOptions  `json:\"waitOptions,omitempty\"`"},{"line_number":34,"context_line":"\tPruneOptions ApplyPruneOptions `json:\"pruneOptions,omitempty\"`"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_51b55d7d","line":31,"range":{"start_line":31,"start_character":66,"end_line":31,"end_character":76},"updated":"2020-08-21 16:08:18.000000000","message":"kubernetes","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d80cce4b3dd9282ee9c0ac30ad5f53f7826ea484","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\tConfig ApplyConfig `json:\"config,omitempty\"`"},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"// ApplyConfig provides instructions on how to apply resources to kubernetes cluster"},{"line_number":32,"context_line":"type ApplyConfig struct {"},{"line_number":33,"context_line":"\tWaitOptions  ApplyWaitOptions  `json:\"waitOptions,omitempty\"`"},{"line_number":34,"context_line":"\tPruneOptions ApplyPruneOptions `json:\"pruneOptions,omitempty\"`"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_eca018f7","line":31,"range":{"start_line":31,"start_character":66,"end_line":31,"end_character":76},"in_reply_to":"9f560f44_51b55d7d","updated":"2020-08-21 17:22:15.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"eb34fe90d3540bc3f88d57cfa96df954cb7a87de","unresolved":false,"context_lines":[{"line_number":34,"context_line":"\tPruneOptions ApplyPruneOptions `json:\"pruneOptions,omitempty\"`"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"// ApplyWaitOptions provides instructions how to wait for kubernets resources"},{"line_number":38,"context_line":"type ApplyWaitOptions struct {"},{"line_number":39,"context_line":"\t// Timeout in seconds"},{"line_number":40,"context_line":"\tTimeout int `json:\"timeout,omitempty\"`"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_31ba696d","line":37,"range":{"start_line":37,"start_character":67,"end_line":37,"end_character":68},"updated":"2020-08-21 16:08:18.000000000","message":"kubernetes","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d80cce4b3dd9282ee9c0ac30ad5f53f7826ea484","unresolved":false,"context_lines":[{"line_number":34,"context_line":"\tPruneOptions ApplyPruneOptions `json:\"pruneOptions,omitempty\"`"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"// ApplyWaitOptions provides instructions how to wait for kubernets resources"},{"line_number":38,"context_line":"type ApplyWaitOptions struct {"},{"line_number":39,"context_line":"\t// Timeout in seconds"},{"line_number":40,"context_line":"\tTimeout int `json:\"timeout,omitempty\"`"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_4ca2e4fd","line":37,"range":{"start_line":37,"start_character":67,"end_line":37,"end_character":68},"in_reply_to":"9f560f44_31ba696d","updated":"2020-08-21 17:22:15.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"eb34fe90d3540bc3f88d57cfa96df954cb7a87de","unresolved":false,"context_lines":[{"line_number":40,"context_line":"\tTimeout int `json:\"timeout,omitempty\"`"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"// ApplyPruneOptions provides instructions how to prune for kubernets resources"},{"line_number":44,"context_line":"type ApplyPruneOptions struct {"},{"line_number":45,"context_line":"\tPrune bool `json:\"prune,omitempty\"`"},{"line_number":46,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_91b25593","line":43,"range":{"start_line":43,"start_character":60,"end_line":43,"end_character":69},"updated":"2020-08-21 16:08:18.000000000","message":"kubernetes","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d80cce4b3dd9282ee9c0ac30ad5f53f7826ea484","unresolved":false,"context_lines":[{"line_number":40,"context_line":"\tTimeout int `json:\"timeout,omitempty\"`"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"// ApplyPruneOptions provides instructions how to prune for kubernets resources"},{"line_number":44,"context_line":"type ApplyPruneOptions struct {"},{"line_number":45,"context_line":"\tPrune bool `json:\"prune,omitempty\"`"},{"line_number":46,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_2ca7b00d","line":43,"range":{"start_line":43,"start_character":60,"end_line":43,"end_character":69},"in_reply_to":"9f560f44_91b25593","updated":"2020-08-21 17:22:15.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"}],"pkg/api/v1alpha1/phase_types.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"d4e452093ec37501773fd00d481e862b33995589","unresolved":false,"context_lines":[{"line_number":34,"context_line":"\tExecutorRef        *corev1.ObjectReference `json:\"executorRef\"`"},{"line_number":35,"context_line":"\tDocumentEntryPoint string                  `json:\"documentEntryPoint\"`"},{"line_number":36,"context_line":"\t// Name to identify a cluster that the phase belongs to"},{"line_number":37,"context_line":"\tClusterName string `json:\"clusterName\"`"},{"line_number":38,"context_line":"\t// ClusterNamespace to identify a cluster that the phase belongs to"},{"line_number":39,"context_line":"\tClusterNamespace    string              `json:\"clusterNamespace\"`"},{"line_number":40,"context_line":"\tKubeConfigReference KubeConfigReference `json:\"kubeConfigRef\"`"},{"line_number":41,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":12,"id":"9f560f44_9961333d","line":40,"range":{"start_line":37,"start_character":0,"end_line":40,"end_character":63},"updated":"2020-08-17 13:56:25.000000000","message":"we can use object reference for both kubeconfig and cluster (if we\u0027re going to use Cluster resource from CAPI)","commit_id":"9baa249e10609c83b72732a76daee14af30879fc"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"eb34fe90d3540bc3f88d57cfa96df954cb7a87de","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\tDocumentEntryPoint string                  `json:\"documentEntryPoint\"`"},{"line_number":36,"context_line":"\t// Name to identify a cluster that the phase belongs to"},{"line_number":37,"context_line":"\tClusterName string `json:\"clusterName\"`"},{"line_number":38,"context_line":"\t// ClusterNamespace to identify a cluster that the phase belongs to"},{"line_number":39,"context_line":"\tClusterNamespace string `json:\"clusterNamespace\"`"},{"line_number":40,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_516a7dec","line":38,"range":{"start_line":38,"start_character":4,"end_line":38,"end_character":68},"updated":"2020-08-21 16:08:18.000000000","message":"is this right? I think this could be reworded. Something like \"ClusterNamespace identifies the namespace that the phase belongs to\"","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d80cce4b3dd9282ee9c0ac30ad5f53f7826ea484","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\tDocumentEntryPoint string                  `json:\"documentEntryPoint\"`"},{"line_number":36,"context_line":"\t// Name to identify a cluster that the phase belongs to"},{"line_number":37,"context_line":"\tClusterName string `json:\"clusterName\"`"},{"line_number":38,"context_line":"\t// ClusterNamespace to identify a cluster that the phase belongs to"},{"line_number":39,"context_line":"\tClusterNamespace string `json:\"clusterNamespace\"`"},{"line_number":40,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_8c987cc0","line":38,"range":{"start_line":38,"start_character":4,"end_line":38,"end_character":68},"in_reply_to":"9f560f44_516a7dec","updated":"2020-08-21 17:22:15.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"11965e2fec9db33878307849843f52fe89a8b959","unresolved":false,"context_lines":[{"line_number":33,"context_line":"type PhaseConfig struct {"},{"line_number":34,"context_line":"\tExecutorRef        *corev1.ObjectReference `json:\"executorRef\"`"},{"line_number":35,"context_line":"\tDocumentEntryPoint string                  `json:\"documentEntryPoint\"`"},{"line_number":36,"context_line":"\t// Name used to identify a cluster that the phase belongs to"},{"line_number":37,"context_line":"\tClusterName string `json:\"clusterName\"`"},{"line_number":38,"context_line":"\t// ClusterNamespace identifies the namespace that the phase belongs to"},{"line_number":39,"context_line":"\tClusterNamespace string `json:\"clusterNamespace\"`"}],"source_content_type":"text/x-go","patch_set":22,"id":"9f560f44_a7163b48","line":36,"range":{"start_line":36,"start_character":4,"end_line":36,"end_character":8},"updated":"2020-08-21 17:19:25.000000000","message":"ClusterName","commit_id":"85abf1897a37a853905689a196f5808b80538479"}],"pkg/k8s/applier/executor.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"6cf235fb5a78ea44b6157d9f3680df44fd5fb3f0","unresolved":false,"context_lines":[{"line_number":115,"context_line":"\treturn e.Options.ExecutorBundle.Write(w)"},{"line_number":116,"context_line":"}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"// Wait for documents to become ready"},{"line_number":119,"context_line":"func (e *Executor) Wait(ch chan events.Event, opts ifc.WaitOptions) {"},{"line_number":120,"context_line":"\tdefer close(ch)"},{"line_number":121,"context_line":"\tch \u003c- events.Event{"},{"line_number":122,"context_line":"\t\tType: events.ErrorType,"},{"line_number":123,"context_line":"\t\tErrorEvent: events.ErrorEvent{"},{"line_number":124,"context_line":"\t\t\tError: errors.ErrNotImplemented{},"},{"line_number":125,"context_line":"\t\t},"},{"line_number":126,"context_line":"\t}"},{"line_number":127,"context_line":"\treturn"},{"line_number":128,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":18,"id":"9f560f44_0ead899a","line":128,"range":{"start_line":118,"start_character":0,"end_line":128,"end_character":1},"updated":"2020-08-21 10:24:25.000000000","message":"nit: this is not a part of executor interaface so far","commit_id":"ad76c75ad1105bff117c9d17b8c1ae0c639ac761"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"eb34fe90d3540bc3f88d57cfa96df954cb7a87de","unresolved":false,"context_lines":[{"line_number":63,"context_line":"}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"// Run executor, should be performed in separate go routine"},{"line_number":66,"context_line":"func (e *Executor) Run(ch chan events.Event, ro ifc.RunOptions) {"},{"line_number":67,"context_line":"\tapplier, filteredBundle, err :\u003d e.prepareApplier(ch)"},{"line_number":68,"context_line":"\tif err !\u003d nil {"},{"line_number":69,"context_line":"\t\thandleError(ch, err)"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_912535c5","line":66,"range":{"start_line":66,"start_character":45,"end_line":66,"end_character":47},"updated":"2020-08-21 16:08:18.000000000","message":"could we call this \"runOpts\"","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d80cce4b3dd9282ee9c0ac30ad5f53f7826ea484","unresolved":false,"context_lines":[{"line_number":63,"context_line":"}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"// Run executor, should be performed in separate go routine"},{"line_number":66,"context_line":"func (e *Executor) Run(ch chan events.Event, ro ifc.RunOptions) {"},{"line_number":67,"context_line":"\tapplier, filteredBundle, err :\u003d e.prepareApplier(ch)"},{"line_number":68,"context_line":"\tif err !\u003d nil {"},{"line_number":69,"context_line":"\t\thandleError(ch, err)"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_ecee5820","line":66,"range":{"start_line":66,"start_character":45,"end_line":66,"end_character":47},"in_reply_to":"9f560f44_912535c5","updated":"2020-08-21 17:22:15.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"495304b7245982bf4ddc4124b7440e401d8785f9","unresolved":false,"context_lines":[{"line_number":82,"context_line":"\t\tWaitTimeout:    time.Second * time.Duration(e.apiObject.Config.WaitOptions.Timeout),"},{"line_number":83,"context_line":"\t}"},{"line_number":84,"context_line":"\tapplier.ApplyBundle(filteredBundle, applyOptions)"},{"line_number":85,"context_line":"\treturn"},{"line_number":86,"context_line":"}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"func (e *Executor) prepareApplier(ch chan events.Event) (*Applier, document.Bundle, error) {"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_f16591b6","line":85,"range":{"start_line":85,"start_character":1,"end_line":85,"end_character":7},"updated":"2020-08-21 15:39:36.000000000","message":"is this statement necessary?","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"124f5e2c5d4915a4f2f4db9c821e5152f155473b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"\t\tWaitTimeout:    time.Second * time.Duration(e.apiObject.Config.WaitOptions.Timeout),"},{"line_number":83,"context_line":"\t}"},{"line_number":84,"context_line":"\tapplier.ApplyBundle(filteredBundle, applyOptions)"},{"line_number":85,"context_line":"\treturn"},{"line_number":86,"context_line":"}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"func (e *Executor) prepareApplier(ch chan events.Event) (*Applier, document.Bundle, error) {"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_f11f5169","line":85,"range":{"start_line":85,"start_character":1,"end_line":85,"end_character":7},"in_reply_to":"9f560f44_f16591b6","updated":"2020-08-21 16:04:49.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"eb34fe90d3540bc3f88d57cfa96df954cb7a87de","unresolved":false,"context_lines":[{"line_number":94,"context_line":"\tif e.Options.ExecutorBundle \u003d\u003d nil {"},{"line_number":95,"context_line":"\t\treturn nil, nil, ErrApplyNilBundle{}"},{"line_number":96,"context_line":"\t}"},{"line_number":97,"context_line":"\tlog.Debug(\"Filtering out documents that shouldn\u0027t be applied to kubernetes from document the bundle\")"},{"line_number":98,"context_line":"\tb, err :\u003d e.Options.ExecutorBundle.SelectBundle(document.NewDeployToK8sSelector())"},{"line_number":99,"context_line":"\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\tcleanup()"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_0c00ec00","line":97,"range":{"start_line":97,"start_character":76,"end_line":97,"end_character":100},"updated":"2020-08-21 16:08:18.000000000","message":"I\u0027m not sure what this is trying to say","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d80cce4b3dd9282ee9c0ac30ad5f53f7826ea484","unresolved":false,"context_lines":[{"line_number":94,"context_line":"\tif e.Options.ExecutorBundle \u003d\u003d nil {"},{"line_number":95,"context_line":"\t\treturn nil, nil, ErrApplyNilBundle{}"},{"line_number":96,"context_line":"\t}"},{"line_number":97,"context_line":"\tlog.Debug(\"Filtering out documents that shouldn\u0027t be applied to kubernetes from document the bundle\")"},{"line_number":98,"context_line":"\tb, err :\u003d e.Options.ExecutorBundle.SelectBundle(document.NewDeployToK8sSelector())"},{"line_number":99,"context_line":"\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\tcleanup()"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_cce39433","line":97,"range":{"start_line":97,"start_character":76,"end_line":97,"end_character":100},"in_reply_to":"9f560f44_0c00ec00","updated":"2020-08-21 17:22:15.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"eb34fe90d3540bc3f88d57cfa96df954cb7a87de","unresolved":false,"context_lines":[{"line_number":95,"context_line":"\t\treturn nil, nil, ErrApplyNilBundle{}"},{"line_number":96,"context_line":"\t}"},{"line_number":97,"context_line":"\tlog.Debug(\"Filtering out documents that shouldn\u0027t be applied to kubernetes from document the bundle\")"},{"line_number":98,"context_line":"\tb, err :\u003d e.Options.ExecutorBundle.SelectBundle(document.NewDeployToK8sSelector())"},{"line_number":99,"context_line":"\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\tcleanup()"},{"line_number":101,"context_line":"\t\treturn nil, nil, err"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_ec049817","line":98,"range":{"start_line":98,"start_character":1,"end_line":98,"end_character":2},"updated":"2020-08-21 16:08:18.000000000","message":"lets call this \"bundle\"","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d80cce4b3dd9282ee9c0ac30ad5f53f7826ea484","unresolved":false,"context_lines":[{"line_number":95,"context_line":"\t\treturn nil, nil, ErrApplyNilBundle{}"},{"line_number":96,"context_line":"\t}"},{"line_number":97,"context_line":"\tlog.Debug(\"Filtering out documents that shouldn\u0027t be applied to kubernetes from document the bundle\")"},{"line_number":98,"context_line":"\tb, err :\u003d e.Options.ExecutorBundle.SelectBundle(document.NewDeployToK8sSelector())"},{"line_number":99,"context_line":"\tif err !\u003d nil {"},{"line_number":100,"context_line":"\t\tcleanup()"},{"line_number":101,"context_line":"\t\treturn nil, nil, err"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_ace0e027","line":98,"range":{"start_line":98,"start_character":1,"end_line":98,"end_character":2},"in_reply_to":"9f560f44_ec049817","updated":"2020-08-21 17:22:15.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"eb34fe90d3540bc3f88d57cfa96df954cb7a87de","unresolved":false,"context_lines":[{"line_number":103,"context_line":"\t// set up cleanup only if all calls up to here were successful"},{"line_number":104,"context_line":"\te.cleanup \u003d cleanup"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"\tf :\u003d utils.FactoryFromKubeConfigPath(path)"},{"line_number":107,"context_line":"\ts :\u003d utils.Streams()"},{"line_number":108,"context_line":"\treturn NewApplier(ch, f, s), b, nil"},{"line_number":109,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_4c06641e","line":106,"range":{"start_line":106,"start_character":1,"end_line":106,"end_character":2},"updated":"2020-08-21 16:08:18.000000000","message":"call this \"factory\"","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d80cce4b3dd9282ee9c0ac30ad5f53f7826ea484","unresolved":false,"context_lines":[{"line_number":103,"context_line":"\t// set up cleanup only if all calls up to here were successful"},{"line_number":104,"context_line":"\te.cleanup \u003d cleanup"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"\tf :\u003d utils.FactoryFromKubeConfigPath(path)"},{"line_number":107,"context_line":"\ts :\u003d utils.Streams()"},{"line_number":108,"context_line":"\treturn NewApplier(ch, f, s), b, nil"},{"line_number":109,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_2cce90b3","line":106,"range":{"start_line":106,"start_character":1,"end_line":106,"end_character":2},"in_reply_to":"9f560f44_4c06641e","updated":"2020-08-21 17:22:15.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"eb34fe90d3540bc3f88d57cfa96df954cb7a87de","unresolved":false,"context_lines":[{"line_number":104,"context_line":"\te.cleanup \u003d cleanup"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"\tf :\u003d utils.FactoryFromKubeConfigPath(path)"},{"line_number":107,"context_line":"\ts :\u003d utils.Streams()"},{"line_number":108,"context_line":"\treturn NewApplier(ch, f, s), b, nil"},{"line_number":109,"context_line":"}"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_6c10884f","line":107,"range":{"start_line":107,"start_character":1,"end_line":107,"end_character":2},"updated":"2020-08-21 16:08:18.000000000","message":"call this \"streams\"","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d80cce4b3dd9282ee9c0ac30ad5f53f7826ea484","unresolved":false,"context_lines":[{"line_number":104,"context_line":"\te.cleanup \u003d cleanup"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"\tf :\u003d utils.FactoryFromKubeConfigPath(path)"},{"line_number":107,"context_line":"\ts :\u003d utils.Streams()"},{"line_number":108,"context_line":"\treturn NewApplier(ch, f, s), b, nil"},{"line_number":109,"context_line":"}"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-go","patch_set":20,"id":"9f560f44_8cc6bc99","line":107,"range":{"start_line":107,"start_character":1,"end_line":107,"end_character":2},"in_reply_to":"9f560f44_6c10884f","updated":"2020-08-21 17:22:15.000000000","message":"Done","commit_id":"02b2353d7e19433069d9268a1dedaa21f312762a"}],"pkg/k8s/applier/executor_test.go":[{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"11965e2fec9db33878307849843f52fe89a8b959","unresolved":false,"context_lines":[{"line_number":140,"context_line":"\t}"},{"line_number":141,"context_line":"}"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"// TODO We need valid test that checks that actuall bundle has arrived to applier"},{"line_number":144,"context_line":"// for that we need a way to inject fake applier, which is not doable with `black box` test currently"},{"line_number":145,"context_line":"// since we tests are in different package from executor"},{"line_number":146,"context_line":"func TestExecutorRun(t *testing.T) {"}],"source_content_type":"text/x-go","patch_set":22,"id":"9f560f44_e7a033f7","line":143,"range":{"start_line":143,"start_character":44,"end_line":143,"end_character":51},"updated":"2020-08-21 17:19:25.000000000","message":"actual","commit_id":"85abf1897a37a853905689a196f5808b80538479"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"11965e2fec9db33878307849843f52fe89a8b959","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"// TODO We need valid test that checks that actuall bundle has arrived to applier"},{"line_number":144,"context_line":"// for that we need a way to inject fake applier, which is not doable with `black box` test currently"},{"line_number":145,"context_line":"// since we tests are in different package from executor"},{"line_number":146,"context_line":"func TestExecutorRun(t *testing.T) {"},{"line_number":147,"context_line":"\ttests :\u003d []struct {"},{"line_number":148,"context_line":"\t\tname        string"}],"source_content_type":"text/x-go","patch_set":22,"id":"9f560f44_a7b2bb47","line":145,"range":{"start_line":145,"start_character":3,"end_line":145,"end_character":56},"updated":"2020-08-21 17:19:25.000000000","message":"this sentence looks a bit messy","commit_id":"85abf1897a37a853905689a196f5808b80538479"}],"pkg/phase/ifc/executor.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"d4e452093ec37501773fd00d481e862b33995589","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"// ExecutorConfig provides all nessary objects for executor to run"},{"line_number":56,"context_line":"type ExecutorConfig struct {"},{"line_number":57,"context_line":"\tPhaseV1          *v1alpha1.Phase"},{"line_number":58,"context_line":"\tExecutorDocument document.Document"},{"line_number":59,"context_line":"\tExecutorBundle   document.Bundle"},{"line_number":60,"context_line":"\tAirshipClient    client.Interface"}],"source_content_type":"text/x-go","patch_set":12,"id":"9f560f44_99c65316","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":33},"updated":"2020-08-17 13:56:25.000000000","message":"why do we need link to phase ?","commit_id":"9baa249e10609c83b72732a76daee14af30879fc"}]}
