cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CLOUDSTACK-8677) Call-home functionality for CloudStack
Date Tue, 28 Jul 2015 01:03:04 GMT

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-8677?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14643707#comment-14643707
] 

ASF GitHub Bot commented on CLOUDSTACK-8677:
--------------------------------------------

Github user sedukull commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/625#discussion_r35605790
  
    --- Diff: reporter/usage-report-collector.py ---
    @@ -0,0 +1,64 @@
    +#!/usr/bin/env python
    +# Licensed to the Apache Software Foundation (ASF) under one
    +# or more contributor license agreements.  See the NOTICE file
    +# distributed with this work for additional information
    +# regarding copyright ownership.  The ASF licenses this file
    +# to you under the Apache License, Version 2.0 (the
    +# "License"); you may not use this file except in compliance
    +# with the License.  You may obtain a copy of the License at
    +# 
    +#   http://www.apache.org/licenses/LICENSE-2.0
    +# 
    +# Unless required by applicable law or agreed to in writing,
    +# software distributed under the License is distributed on an
    +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +# KIND, either express or implied.  See the License for the
    +# specific language governing permissions and limitations
    +# under the License.
    +
    +from flask import abort, Flask, request, Response
    +from elasticsearch import Elasticsearch
    +import json
    +import time
    +
    +def json_response(response):
    +    return json.dumps(response, indent=2) + "\n", 200, {'Content-Type': 'application/json;
charset=utf-8'}
    +
    +def generate_app(config=None):
    +    app = Flask(__name__)
    +
    +    @app.route('/report/<unique_id>', methods=['POST'])
    +    def report(unique_id):
    +        # We expect JSON data, so if the Content-Type doesn't match JSON data we throw
an error
    +        if 'Content-Type' in request.headers:
    +            if request.headers['Content-Type'] != 'application/json':
    +                abort(417, "No or incorrect Content-Type header was supplied")
    +
    +        index = "cloudstack-%s" % time.strftime("%Y.%m.%d", time.gmtime())
    +        timestamp = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
    +
    +        es = Elasticsearch()
    +        es.indices.create(index=index, ignore=400)
    +
    +        report = json.loads(request.data)
    +        report["unique_id"] = unique_id
    +        report["timestamp"] = timestamp
    +
    +        es.index(index=index, doc_type="usage-report", body=json.dumps(report), timestamp=timestamp,
refresh=True)
    +
    +        response = {}
    +        return json_response(response)
    +
    +    return app
    +
    +
    +app = generate_app()
    +
    +# Only run the App if this script is invoked from a Shell
    +if __name__ == '__main__':
    +    app.debug = True
    +    app.run(host='0.0.0.0', port=8088)
    +
    +# Otherwise provide a variable called 'application' for mod_wsgi
    +else:
    --- End diff --
    
    Where is this application var used? Its not global var as well?


> Call-home functionality for CloudStack
> --------------------------------------
>
>                 Key: CLOUDSTACK-8677
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8677
>             Project: CloudStack
>          Issue Type: New Feature
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Management Server
>    Affects Versions: Future, 4.6.0
>            Reporter: Wido den Hollander
>            Assignee: Wido den Hollander
>             Fix For: 4.6.0
>
>
> A call-home feature for the CloudStack management server would send anonimized reports
back to the CloudStack project.
> These statistics will contain numbers and details on how CloudStack will be used. It
will NOT contain:
> * Hostnames
> * IP-Addresses
> * Instance names
> It will report back:
> * Hosts (Number, version, type, hypervisor)
> * Clusters (Hypervisor en Management type)
> * Primary storage (Type and provider)
> * Zones (Network type and providers)
> * Instances (Number and types)
> This gives the CloudStack project a better insight on how CloudStack is being used and
allows us to develop accordingly.
> It will be OPT-OUT, using the "usage.report.interval" users can disable usage reporting.
By default it will run every 7 days and send a JSON document to https://call-home.cloudstack.org/



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message