MCPcopy Create free account
hub / github.com/dbcli/mssql-cli / upload

Function upload

mssqlcli/telemetry_upload.py:131–169  ·  view source on GitHub ↗
(data_to_save, service_endpoint_uri)

Source from the content-addressed store, hash-verified

129
130@decorators.suppress_all_exceptions(raise_in_diagnostics=True)
131def upload(data_to_save, service_endpoint_uri):
132
133 client = build_vortex_telemetry_client(service_endpoint_uri)
134
135 if in_diagnostic_mode():
136 sys.stdout.write('Telemetry upload begins\n')
137 sys.stdout.write('Got data {}\n'.format(json.dumps(json.loads(data_to_save), indent=2)))
138
139 try:
140 data_to_save = json.loads(data_to_save.replace("'", '"'))
141 except Exception as err: # pylint: disable=broad-except
142 if in_diagnostic_mode():
143 sys.stdout.write('{}/n'.format(str(err)))
144 sys.stdout.write('Raw [{}]/n'.format(data_to_save))
145
146 for record in data_to_save:
147 name = record['name']
148 raw_properties = record['properties']
149 properties = {}
150 measurements = {}
151 for k in raw_properties:
152 v = raw_properties[k]
153
154 # pylint: disable=undefined-variable
155 # suppress warning for undefined variable, since `basestring` was dropped in python 3
156 if isinstance(v, str if sys.version_info[0] >= 3 else basestring):
157 properties[k] = v
158 else:
159 measurements[k] = v
160 client.track_event(name, properties, measurements)
161
162 try:
163 client.flush()
164 if in_diagnostic_mode():
165 sys.stdout.write('\nTelemetry upload completes\n')
166
167 except HTTPError as e:
168 if in_diagnostic_mode():
169 raise e
170
171
172if __name__ == '__main__':

Callers 1

Calls 4

in_diagnostic_modeFunction · 0.85
writeMethod · 0.80
formatMethod · 0.45

Tested by

no test coverage detected