MCPcopy Index your code
hub / github.com/koding/kite / Get

Method Get

kontrol/postgres.go:127–241  ·  view source on GitHub ↗
(query *protocol.KontrolQuery)

Source from the content-addressed store, hash-verified

125}
126
127func (p *Postgres) Get(query *protocol.KontrolQuery) (Kites, error) {
128 // only let query with usernames, otherwise the whole tree will be fetched
129 // which is not good for us
130 sqlQuery, args, err := selectQuery(query)
131 if err != nil {
132 return nil, err
133 }
134
135 var hasVersionConstraint bool // does query contains a constraint on version?
136 var keyRest string // query key after the version field
137 var versionConstraint version.Constraints
138 // NewVersion returns an error if it's a constraint, like: ">= 1.0, < 1.4"
139 _, err = version.NewVersion(query.Version)
140 if err != nil && query.Version != "" {
141 // now parse our constraint
142 versionConstraint, err = version.NewConstraint(query.Version)
143 if err != nil {
144 // version is a malformed, just return the error
145 return nil, err
146 }
147
148 hasVersionConstraint = true
149 nameQuery := &protocol.KontrolQuery{
150 Username: query.Username,
151 Environment: query.Environment,
152 Name: query.Name,
153 }
154
155 // We will make a get request to all nodes under this name
156 // and filter the result later.
157 sqlQuery, args, err = selectQuery(nameQuery)
158 if err != nil {
159 return nil, err
160 }
161
162 // Rest of the key after version field
163 keyRest = "/" + strings.TrimRight(
164 query.Region+"/"+query.Hostname+"/"+query.ID, "/")
165 }
166
167 rows, err := p.DB.Query(sqlQuery, args...)
168 if err != nil {
169 return nil, err
170 }
171 defer rows.Close()
172
173 var (
174 username string
175 environment string
176 kitename string
177 version string
178 region string
179 hostname string
180 id string
181 url string
182 updated_at time.Time
183 created_at time.Time
184 keyId string

Callers

nothing calls this directly

Calls 5

selectQueryFunction · 0.85
QueryMethod · 0.80
FilterMethod · 0.80
ShuffleMethod · 0.80
CloseMethod · 0.45

Tested by

no test coverage detected