fixes some Shard cache issues
and allows for capped with_each_shard parallelization
Change-Id: Ib0a9bc85b331e89162948303b5d8e3185123b440
Reviewed-on: https://gerrit.instructure.com/65125
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Fixes CNVS-21548, CNVS-20625, CNVS-21580
Test plan:
- Copy config/twilio.yml.example to config/twilio.yml
- Configure config/twilio.yml with credentials from a Twilio
account
- Create a user
- Enable the international_sms feature flag for the account
of the user you created
- Create a communication channel from a Rails console, using
a phone number with which you can test. Assuming
1-801-555-0100 as the phone number, and assuming that the
id of the user that you created is 42, you can do that with:
User.find(42).communication_channels.create!(
path_type: 'sms', path: '+18015550100')
- As a site admin, confirm the user's communication channel
- Cause a notification to be sent to the user
- Ensure that you receive a text message
- Multiple outbound numbers (will need a paid Twilio account
to test):
- Configure config/twilio.yml with credentials from a
Twilio account that has multiple outbound phone numbers
- Create multiple users and add new phone numbers for each
using the above steps, and confirm them
- Cause notifications to be generated for each user and
ensure that they come from different phone numbers
- You may need to test several phone numbers before a
notification is sent from a different number
- Cause more notifications to be sent and ensure that each
phone number receives notifications from the same
outbound phone number every time
Change-Id: I103c93a8096acaaabd29530b0a0b5c43bc05c26b
Reviewed-on: https://gerrit.instructure.com/59901
Tested-by: Jenkins
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Peyton Craighill <pcraighill@instructure.com>
closes CNVS-22222
closes CNVS-21796
refs CNVS-21800
refs CNVS-21803
test plan (requires console access):
- Make sure you have at least one completed content export in the db
(can be triggered via console or via the content export UI).
- open rails console
- run the following commands:
- - `ContentExport.include(CC::Exporter::Epub::Exportable)`
- - `ContentExport.first.convert_to_epub`
- This will output a path to the generated epub, something like:
"/var/folders/7g/w8y0n7_j18v65h93xhmm9z4hxzj3r2/T/2052fbd0-860d-4114-9969-0adc7f5ecb79.Name
of Course.epub"
- Open up the folder of the file (assuming you're on Mac OSX) like so:
`open -a finder /var/folders/7g/w8y0n7_j18v65h93xhmm9z4hxzj3r2/T`.
- Find the file in that directory (in this case the file name is
2052fbd0-860d-4114-9969-0adc7f5ecb79.Name of Course.epub
Change-Id: I37b73fac329bc0fbd5e85a9427e9cce58d05d6db
Reviewed-on: https://gerrit.instructure.com/60702
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Tested-by: Jenkins
QA-Review: Matt Berns <mberns@instructure.com>
Tested-by: Matt Berns <mberns@instructure.com>
Product-Review: Matt Berns <mberns@instructure.com>
closes #CNVS-22636
Change-Id: I4c91ed23e691407099d4eed7086d048c719fb417
Reviewed-on: https://gerrit.instructure.com/62835
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
This is required for ratom until this PR is merged https://github.com/sparklemotion/nokogiri/pull/1327
refs CNVS-22298
Change-Id: If99e10659b5b17e8cc8e0df49fbf5ba1214b8612
Reviewed-on: https://gerrit.instructure.com/59948
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
refs #CNVS-21596
Change-Id: If144ea4e42fd632ef80339b450cda9c20b3fb555
Reviewed-on: https://gerrit.instructure.com/60149
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Change-Id: I68aa54c23adf974c1181d84399ded892c0a93438
Reviewed-on: https://gerrit.instructure.com/59606
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
refs #CNVS-21596
Change-Id: I1671c8e1bff167ac1ec39da4511b05c1b9cfea60
Reviewed-on: https://gerrit.instructure.com/59657
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes: CNVS-22215
if you try to run rake brand_configs:generate_and_upload_all
on the production boxes it will fail with:
```LoadError: cannot load such file -- ruby-progressbar```
It's because in order to show you a progressbar of
the upload_to_s3 task, Parallel tries to require
'ruby-progressbar' (which is there on dev/test boxes
since it is a dep of ‘rubocop', but not there in prod).
this will make sure it is there in the production
bundler group too.
test plan:
run: RAILS_ENV=production rake brand_configs:generate_and_upload_all
it should work
Change-Id: I98adad9ee2aa596e88d8293a13592f056b8bbb65
Reviewed-on: https://gerrit.instructure.com/59475
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
This includes a basic set of common methods and environment variables
to be used for both iOS and Android platforms with Appium. Includes the
inclusion of the appium_lib gem in Gemfile.d and a minor modification
to spec/spec_helper.rb to facilitate control of seeding the ID for
DeveloperKeys for Mobile Verify.
To Test:
- remove skip statements in examples
- uncomment the call to appium_init()
- verify appium_lib gem installs during bundle update
- spin up an Appium server
- run spec with the QA Nexus 7 connected
Change-Id: Ia9830aeaa0b91635f5739958466e3176f25bf2bb
Reviewed-on: https://gerrit.instructure.com/58562
Tested-by: Jenkins
Reviewed-by: Heath Hales <hhales@instructure.com>
Reviewed-by: Ben Bolton <bbolton@instructure.com>
QA-Review: Ben Bolton <bbolton@instructure.com>
Product-Review: Ben Bolton <bbolton@instructure.com>
Fixes https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-6459&cid=1
Changelog is @ https://github.com/mislav/will_paginate/commits/3-0-stable
will_paginate usage in canvas is wrapped in our folio gem, so this
actually involves updating folio. I've removed the direct dependency on
will_paginate in canvas, since folio defines that depenency and versioning.
test plan: regression test on api pagination links, including bookmarked apis
such as page views.
Change-Id: I8b7a07870d5280c307f368707a5e60aa900ba9f5
Reviewed-on: https://gerrit.instructure.com/55348
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
refs #CNVS-21596
Change-Id: Ib412c0582ad10cae12b1a290715250e8ddcbb986
Reviewed-on: https://gerrit.instructure.com/59335
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
addresses http://www.rubysec.com/advisories/CVE-2013-2616/
test plan: this is only used by attachment_fu -- ensure that uploaded files
still generate thumbnails correctly.
Change-Id: I4acd99c3720f51c10a0cc5ad2672f65e09b23911
Reviewed-on: https://gerrit.instructure.com/55349
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
refs #CNVS-21596
Change-Id: Ic894d7d677a3d189fc5e7d44584a1aeb9700b27f
Reviewed-on: https://gerrit.instructure.com/58849
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
before, we only used 'parallel' in asset generation
tasks, now we do it in prod too.
Change-Id: I107b339330173894942ba35f133d7e9602906b7c
Reviewed-on: https://gerrit.instructure.com/58839
Tested-by: Rob Orton <rob@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Fixes PLAT-1125
Test Plan
- Add the example test tool (https://github.com/rivernate/lti_tool_provider_example)
to a course using Editor Button, Link Selection, and Module Menu placements.
- Add the tool as a module item. While adding make sure to add a new content item by pressing the green '+' in the modal that pops up.
This content-item should 'Lti Link' set as the type.
- Click on the tool module item and make sure the link works.
- Using similar steps add the tool in the RCE and make sure the link works as expected.
Change-Id: I91681d6b6937467ef1aadf3029ccbfd566ba3a71
Reviewed-on: https://gerrit.instructure.com/57296
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Tested-by: Jenkins
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
What is this?
=============
Selinimum speeds up selenium by only running the specs it needs to for
your commit (iff it can safely determine that). For the purposes of the
initial implementation, that means that if your commit ONLY affects:
1. controllers (but not ApplicationController)
2. views (but not shared / layouts)
3. misc whitelisted stuff (images, .md files, etc.)
then it will only run the selenium specs that actually exercise those.
If your commit touches ANYTHING else (models, lib, etc.), all selenium
specs will run.
But wait, there's more!
=======================
Very soon selinimum will also handle:
1. js/coffee/jsx/hbs (except in the common bundle)
2. scss (except in the common bundle)
We already capture which bundles get used by each spec (see Capture), we
just need to correlate that with the individual files via a dependency
graph (probably using madge and sass-graph)
How does it work?
=================
The new post-merge selenium build will run all the specs with selinimum
capturing enabled. This records any controllers/views/js_bundle/css_bundle
that gets used in the course of each selenium spec, and stores a bunch of
data in S3.
Then when your patchset build runs, it will run Selinimum.minimize (via
corresponding tweak in rspect repo) on the list of spec files. If your
commit's dependents can be fully inferred and synthesized with the spec
dependency data from S3, only the relevant specs will actually be run.
Test Plan
=========
This commit doesn't actually cause selinimum to run on jenkins; that
requires some rspect changes and jenkins config. Refer to the test plan
here: https://gerrit.instructure.com/#/c/58088/
Change-Id: I991574c327a3a580c6fdc3ca3797dcfe0490a096
Reviewed-on: https://gerrit.instructure.com/58085
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
this will do a check to make sure all the node_modules
from our package.json are up-to-date before
running rake canvas:compile_assets or guard
there have been a lot of devs lately that have
been tripped up not knowing what to do because
they needed to `npm install`
Change-Id: I7c9d0896a6d7611bf9d89672a96cb9505099fa2c
Reviewed-on: https://gerrit.instructure.com/58580
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
refs #CNVS-21596
Change-Id: Iebebddf08a07df8504870609f9e7076af8d36b05
Reviewed-on: https://gerrit.instructure.com/58385
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
also revert "rails4: fix stale collection proxies"
refs #CNVS-21596
Change-Id: I7dd3d7d5e6ddb3c5fca17555b0e0ec347e6bfa75
Reviewed-on: https://gerrit.instructure.com/58381
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
test plan:
* create a adobe connect conference for a course
with a long course name
* should not fail
closes #CNVS-10710
Change-Id: Iaf512d794715551895d190cb5e5b25a525e5669c
Reviewed-on: https://gerrit.instructure.com/57830
Reviewed-by: Braden Anderson <braden@instructure.com>
Tested-by: Jenkins
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
I think the problem that we were getting was because
we added guard-gulp to our development gemfile
and it maybe require's mkmf, which adds the
.with_config scope.
test plan:
* go to conversations in dev mode, it should work
* run `bundle exec guard`, it should work
* with guard running, change a coffee/js file
* guard should see the change and regenerate the appropriate file
and you should see gulp 'rev' run.
Change-Id: Ia43e9436e19b32eb3959f6f2d9c2d8d7674aa109
Reviewed-on: https://gerrit.instructure.com/57777
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
what this does:
* Changes the way we generate css so we are able to generate custom
css for people that use the theme editor.
* Sets everything up so we can push all of our static assets
(js, fonts, css, images, etc) to s3 pre-deploy and serve them
from cloudfront. Yay! faster canvas for everyone!
* as part of that, this enables the rails asset pipeline just so we
can use it to put md5s in our urls. we don't use it for any of the
coffeescript/sass/sprockets transformer stuff.
* adds a new "Theme editor" functionality (only for people that have
have the use-new-styles feature flag turned on) where an admin for
an account can pick their own colors/images for all the users
at their account/school.
* when the user is done saving things in theme editor, it will,
in a delayed job, generate all the css with against the variables
that user specified and push it to s3 so it will be available to
anyone else that requests it. (the delayed job will shell
out to a node.js executable called `brandable_css`).
* ability to pick an existing shared theme and to reset to
blank theme. closes: CNVS-19685
* gets rid of jammit.
test plan:
(this is exaustive, so not every person has to do every step
but we should make sure at least someone does each of these things.
maybe as part of the review add a comment if you have done one of these
bulletpoints)
* before you check this out, compile all css and copy the
public/stylsheets_compiled directory somewhere. after you check out
this code and regenerate all the css. make sure there are no
significant changes to the css output. (we updated the versions of
node-sass and autoprefixer that we use so we want to make sure they
don't change things in a way we weren't expecting)
* make sure the way we load css for handlebars templates still works.
eg: if there is a handlebars template at
app/views/jst/some/template.handlebars
if there is also a scss file at
app/stylesheets/jst/some/template.scss
then that stylesheet should get loaded when that template is rendered
* check out the code and run migrations. browse around canvas,
make sure css and js files load correctly as before.
* cody, jacob, or someone on queso: look at the db migrations and
make sure everything looks good and that I am handling sharding
correctly.
* verify that both rake canvas:compile_assets and guard, works as well
as `node_modules/.bin/brandable_css` (note: if you have
"node_modules/.bin" in your PATH (which you should), it will also
work with just `brandable_css`)
* verify that passing the --watch option to
`.bin/node_modules/brandable_css` works and picks up changes to
sass files, images, fonts, or any other resource that goes into
a css file. and that it only recompiles the css files that actually
depend on that file.
* go to https://github.com/ryankshaw/brandable_css and check out the
code there. that is what is actually doing the sass compiling
* create a config/canvas_cdn.yml file and add aws access creds and
an s3 bucket and cdn hostname (for testing, you can use the credentials
for instructure_uploads_engineering from
https://gollum.instructure.com/OtherServiceTestAccounts ). for a test
cdn hostname you can use https://diu0rq5m1weh1.cloudfront.net. that
is a cloudfront bucket I set up on my personal account that points to
instructure_uploads_engineering
* run rake canvas:compile_assets again, this time, at the end, you
should see it run the assets:precompile task that puts md5s in filenames
and, gzipps them, and copys them to public/assets.
then you should see it run canvas:cdn:upload_to_s3
(look at log/development.log for progress),
which pushes everything to s3.
closes: CNVS-17333 CNVS-17430 CNVS-17337
* try out the theme editor: turn on new styles, go to accounts/x
(where x is the @domain root acount you are testing from) and click
the "theme editor" button on the right side of the page.
that should take you to a page that has the ability to pick colors/images
on the left side and preview your changes in an iframe on the right
closes: CNVS-19360 CNVS-20551
* test the "preview", "save", "reset", and "choose existing" functionality
closes: CNVS-17339 CNVS-17338 CNVS-19685
* make sure that the themeeditor works both if you have
config/canvas_cdn.yml set up and enabled as well as if you don't.
if it is enabled, you should see it push the css for just that new
brand config to s3 when you hit preview, and the css
should be accessible from the cdn you configured.
Change-Id: Ie0a812d04f5eeb40e7df7e71941ff63ea51a4d22
Reviewed-on: https://gerrit.instructure.com/53873
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
bump the canvas_statsd gem to get 2 decimal precision in log values
test plan:
- tail your environment log
- repeat for several page visits
- visit a page
- log should have an entry with [STATSD]
- values on that line will have 2 decimal precision
Change-Id: I142f7bcde83c59b05f6a64e7bc19f3cd1f213a5b
Reviewed-on: https://gerrit.instructure.com/56767
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
Change-Id: Iec6d16d6beba7a1089b5e257554dd3dfff421131
Reviewed-on: https://gerrit.instructure.com/56741
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins
closes CNVS-21283
test plan:
- tail your environment logs
- repeat for several pages
- visit page
- verify that a log entry exists that starts with: [STATSD]
- and shows values for:
- total
- view
- db
- sql_read
- sql_write
- sql_cache
- active_record
Change-Id: I9ef66d233604901348999099194be7fa31d11639
Reviewed-on: https://gerrit.instructure.com/56682
Tested-by: Jenkins
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
Change-Id: I0c416b2f46262962107541953871d30a3ff07d98
Reviewed-on: https://gerrit.instructure.com/56437
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Addresses vulnerability
a6c759d7e7
This gem is only used in dev/test, to generate the API docs. test plan: `rake
doc:api`, verify the docs still render correctly.
Change-Id: Ib1884ec5717bd6d252fa85cbfafb77f1be40ba24
Reviewed-on: https://gerrit.instructure.com/55350
Tested-by: Jenkins
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
it's known to not work
Change-Id: Ifa69a3390e26c172f07e178a568a1517d7c7d303
Reviewed-on: https://gerrit.instructure.com/55344
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
fixes CNVS-19449, CNVS-19454, CNVS-19455
test plan:
* configure the facebook plugin (/plugins/facebook)
* add Facebook to your authentication configs
* try to login with valid facebook credentials - it should say it
couldn't find the user
* add a login to your user with that ID
* try to login with facebook again; it should work
* delete auth settings and plugin settings
* re-add the auth settings - it should let you configure it
directly
* log in again
Change-Id: I5aae400fe39fda6e1a864a062368e50a4c9f4ede
Reviewed-on: https://gerrit.instructure.com/54208
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
closes CNVS-20323
canvas_statsd has been packaged and published as its own gem. remove
code from gems/ and other supporting code.
updated initializer to conform with new gem default tracking options
test plan:
- enable statsd in config/statsd.yml
- visit several pages in canvas
- create some things, updates some things
- reload a page or two
- canvas should continue to function as expected
- the following statsd request keys for controller actions should
continue to be sent:
- total
- db
- view
- sql.read
- sql.write
- sql.cache
- active_record
Change-Id: I28fbf8642a3d2719b08721a3df1c7b77ac52cb1f
Reviewed-on: https://gerrit.instructure.com/54251
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
The fix we were using on master was released.
Change-Id: I12159552e7a2f2b33593d08d2ad62d2d529e7e56
Reviewed-on: https://gerrit.instructure.com/53838
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
refactor the external content controller to pass the new content-item format
fixes: PLAT-968 PLAT-1008 PLAT-967
test-plan:
*the new content-item should work in module items
*regression test all of the resource selection placements, all
of the enabled resource selection return values in the old
test tool should still work in module_item selection,
homework_selection, editor_button, course migration, and
homework submission.
Change-Id: Ic6de04effb5fde311f91778a316f9c229072f275
Reviewed-on: https://gerrit.instructure.com/52926
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
The list of sanitized keys and parameter names doesn't include the rails
filter_parameters configuration by default, so add that as recommended on the
raven-ruby github wiki.
Secondly, our global ids happen to match sentry's hard-coded credit card
regex, so I got a PR merged to allow disabling the credit card sanitization.
Until a new gem is released, we'll have to pull from github.
test plan: enable sentry and generate an exception, user_id and account_id
should come across as expected.
Change-Id: I56ceae3b28ae64df61bd22c5d03db492f9880ba7
Reviewed-on: https://gerrit.instructure.com/53521
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins
Product-Review: Brian Palmer <brianp@instructure.com>
test plan: with sentry configured, rails console bootup should be one line quieter
Change-Id: If6f52983fbdba2b335a412ac9bd0902c727a5b4e
Reviewed-on: https://gerrit.instructure.com/53042
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
fixes CNVS-19630
test plan
- as a teacher who does not have a user in adobe connect yet,
create and join an adobe connect conference
- ensure that the join button allows you to join the conference
and does not log you in as a guest
Change-Id: I073c13c19b38c6f35282b80f66e2042f7016797a
Reviewed-on: https://gerrit.instructure.com/52571
Tested-by: Jenkins
Reviewed-by: Alex Boyd <aboyd@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
closes CNVS-6016
No more error reports! (soon)
this commit builds up sentry integration through the new
Canvas::Errors module, along with other things that need
to happen on every exception. ErrorReports
should now get pushed towards just being used for representing
a complaint a user filed via the get help form.
I fixed about half the things that got linted as well
while I was in here, but because this touches to much
I fear divergence from tackling too many (I think we
can safely say it's "better than we found it")
I left a lot of the infrastructure for error reports in place
until other commits for plugins can be merged
TEST PLAN:
1) setup your raven.yml config file with the dsn for our
sentry install
2) force an error to happen in a request response cycle.
3) see the error in sentry
4) force an error to happen in a job
5) see the error in sentry
6) statsd increments shoudl still fire
7) for the moment, an error report should still get created.
Change-Id: I5a9dc7214598f8d5083451fd15f0423f8f939034
Reviewed-on: https://gerrit.instructure.com/51621
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
lets rlint only run with local changeset unless you specify "--heavy"
Also checks for whether you actually touched a line
or not before deciding an INFO comment is relevant
Change-Id: I4a960c72644dfc46aca7a51d04321711cef0850c
Reviewed-on: https://gerrit.instructure.com/51992
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Tested-by: Ethan Vizitei <evizitei@instructure.com>
add migration lint as rubocop cops
create frozen constant linter
find_ids datafixup lint
send_later lint
lint send_later in predeploys
add freeze_constant cop to default config
don't forget to include rubocop when running
get the rubocop runner into the script
lint for wrong algorithm name
lint primary key
lint remove_column in predeploys
get rubocop output as parsed json
diff munging for gergich
disable a few style cops
tweak rubocop setup to allow IDE plugins to work
get gergich comment format right
shell out to gergich if we're in jenkins-land
Change-Id: I6eecc8d8ede17a755c9d9a86121c3658776de9cd
Reviewed-on: https://gerrit.instructure.com/51755
Tested-by: Jenkins
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
we have them in the gemfile to lock them to a specific version,
but normal behavior doesn't auto-require them
also, use 1.9 hash syntax in gemfiles (_except_ _before.rb)
Change-Id: I549c2775c65d48ff23ba1358b43713965df97813
Reviewed-on: https://gerrit.instructure.com/51636
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
This commit adds a new module called LiveEvents that knows how to send a
certain set of events to Kinesis. The module is configured via
normal plugin settings per account. Once the plugin is configured with
a Kinesis stream, events will start getting sent to that stream.
Events are sent asynchronously, in a background thread.
test plan:
* See `doc/live_events.md` for instructions on how to setup a local
kinesis stream and configure the LiveEvents plugin.
* Start tailing the stream with the command specified in
`doc/live_events.md` in a terminal.
* Perform the actions described in `doc/api/live_events.md` and verify
that events show up in your Kinesis terminal with the correct data.
Change-Id: Id799688c972205a1eee84a673912f84b0c7abb57
Reviewed-on: https://gerrit.instructure.com/50324
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Product-Review: Zach Wily <zach@instructure.com>
Change-Id: Icf5255ac2c484d88d466c9ff714c0eeb913fbb58
Reviewed-on: https://gerrit.instructure.com/51314
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
fixes CNVS-18978
test plan
- regression test canvas, particularly:
notifications, and their preferences
communication channels
messages
user ouath (like linkedin and google docs use)
avatars
profile page
user services (like twitter)
feature settings
context roster
Change-Id: I2d53125f76c9daf912fdeabc621c90ac1bd070df
Reviewed-on: https://gerrit.instructure.com/49267
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
The fix was merged and a new gem was released.
Test plan: enable with marginalia.yml, then test that the appropriate
comments still show up in logged SQL statements. For instance, load a
page in canvas, then look at the logs and verify the logged SQL
statements include controller, action and request id.
Change-Id: Ib7024c41b860ff7d4530974c74996c37e6c3d1a8
Reviewed-on: https://gerrit.instructure.com/49319
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
closes CNVS-18914
test plan:
* configure statsd in your canvas instance
* run canvas
* hit several pages in canvas that will query the DB and load AR objects
* verify that active_record key is being sent for those controller actions
Change-Id: I5ae1279bc360d7fd5ce38a4488dc9f70b9de92bc
Reviewed-on: https://gerrit.instructure.com/49666
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
nokogiri is better maintained, and java compatible (both
are based on libxml2)
Change-Id: Ia7c8edea15ec001cf4861b00494e480832bd2c63
Reviewed-on: https://gerrit.instructure.com/49467
Tested-by: Jenkins
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
also make our bundler monkeypatch conditional on 1.8.0, since it
was merged upstream
Change-Id: I441755ff54c77a07b7ede03f46f45033c208e1e8
Reviewed-on: https://gerrit.instructure.com/49149
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
see https://github.com/rails/rails/pull/18306 for discussion on
why it's not released yet
Change-Id: Id0de57432df9e7db1767c8f4d75c7734799148b9
Reviewed-on: https://gerrit.instructure.com/48828
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
force users to auth google drive when the plugin is enabled
Add support for google drive in collaborations and homework submissions
Everything still looks like google docs to the user.
fixes PLAT-892
fixes PLAT-893
fixes PLAT-894
Test plan:
create a google docs integration
and enable the google drive plugin
when you visit the colaborations page it should ask you to authorize canvas to use google drive
Regression test homework submissions with google doc and drive
Regression test collaborations with google doc and drive
Change-Id: I79bdbdcae915b08a19cc9a078a64b49ef5f34796
Reviewed-on: https://gerrit.instructure.com/48583
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>