[aerogear-dev] Upgrading process for the OpenShift AeroGear UPS cartridge

Farah Juma fjuma at redhat.com
Wed Jan 29 10:31:06 EST 2014


> From: "Andrea Vibelli" <avibelli at redhat.com>
> To: "Farah Juma" <fjuma at redhat.com>
> Cc: aerogear-dev at lists.jboss.org
> Sent: Wednesday, January 29, 2014 4:34:37 AM
> Subject: Re: [aerogear-dev] Upgrading process for the OpenShift AeroGear UPS cartridge
> 
> Hi Farah,
> great, the steps are really neat now.
> One last minor observation: the manifest.yml file for both the 0.8.1 and the
> 0.9.1 instances contains version 0.8.0 and 0.9.0.

Correct, since very few changes were made for the 0.8.1 release, we actually didn't change the version in the manifest (so you'll still see version 0.8.0 there). My fork of the cartridge repository that has the snapshot/restore action hooks contains the 0.9.0 Push Server bits. We'll update the manifest version for the UnifiedPush 0.10.0 release.

Thanks,
Farah

> Thanks!
> Andrea
> ----- Messaggio originale -----
> > Da: "Farah Juma" <fjuma at redhat.com>
> > A: aerogear-dev at lists.jboss.org, "Andrea Vibelli" <avibelli at redhat.com>
> > Inviato: Martedì, 28 gennaio 2014 18:10:53
> > Oggetto: Re: [aerogear-dev] Upgrading process for the OpenShift AeroGear
> > UPS cartridge
> > 
> > I've created the following gist that contains our updated list of steps for
> > upgrading the cartridge:
> > 
> > https://gist.github.com/fjuma/499827d650465a1a8f5a
> > 
> > 
> > Farah
> > 
> > ----- Original Message -----
> > > From: "Farah Juma" <fjuma at redhat.com>
> > > To: aerogear-dev at lists.jboss.org
> > > Cc: "Andrea Vibelli" <avibelli at redhat.com>
> > > Sent: Tuesday, January 28, 2014 10:03:16 AM
> > > Subject: Re: [aerogear-dev] Upgrading process for the OpenShift AeroGear
> > > UPS cartridge
> > > 
> > > 
> > > > From: "Andrea Vibelli" <avibelli at redhat.com>
> > > > To: "Farah Juma" <fjuma at redhat.com>
> > > > Cc: aerogear-dev at lists.jboss.org
> > > > Sent: Tuesday, January 28, 2014 3:46:02 AM
> > > > Subject: Re: Re: [aerogear-dev] Upgrading process for the OpenShift
> > > > AeroGear UPS cartridge
> > > > 
> > > > Hi Farah,
> > > > yes I do use FireFox.
> > > > 
> > > > I have done the tests once again, and closing and reopening the browser
> > > > solved my issue, great, nice catch!
> > > 
> > > Great, I'm glad that's working for you now!
> > > 
> > > > Maybe we could also include this additional step in the overall
> > > > instructions,
> > > > what do you think?
> > > 
> > > Yes, that's a good idea. I'm going to create a gist with our updated
> > > steps
> > > and post it here when done to get more feedback.
> > > 
> > > Thanks,
> > > Farah
> > > 
> > > 
> > > > Thank you
> > > > Andrea
> > > > 
> > > > ----- Messaggio originale -----
> > > > > Da: "Farah Juma" <fjuma at redhat.com>
> > > > > A: "Andrea Vibelli" <avibelli at redhat.com>,
> > > > > aerogear-dev at lists.jboss.org
> > > > > Inviato: Lunedì, 27 gennaio 2014 22:28:07
> > > > > Oggetto: Re: [aerogear-dev] Upgrading process for the OpenShift
> > > > > AeroGear
> > > > > 	UPS	cartridge
> > > > > 
> > > > > After some more digging, I think I might know what's going on here.
> > > > > Andrea,
> > > > > are you using Firefox? I wasn't able to reproduce the issue with
> > > > > Chrome
> > > > > but
> > > > > was able to reproduce it just now with Firefox. The underlying issue
> > > > > seems
> > > > > to be that Firefox tends to save 301 redirects until you close it and
> > > > > re-open it. Note that when you delete an OpenShift instance and
> > > > > re-create
> > > > > it, its IP address changes. When accessing
> > > > > http://app-namespace.rhcloud
> > > > > after re-creating the instance, you'll actually be redirected to
> > > > > https://app-namespace.rhcloud/app. However, when using Firefox, this
> > > > > URL
> > > > > seems to get mapped to the old IP address resulting in this error:
> > > > > 'The
> > > > > requested URL /app was not found on this server.' After deleting and
> > > > > re-creating an OpenShift instance with the same name, if you restart
> > > > > Firefox, you should once again be able to access the application.
> > > > > I've
> > > > > verified that this does work.
> > > > > 
> > > > > Similar issues with Firefox were actually mentioned in some OpenShift
> > > > > forum
> > > > > posts as well:
> > > > > 
> > > > > https://www.openshift.com/forums/openshift/httpawm-pribylrhcloudcom-the-requested-url-was-not-found-on-this-server#comment-33570
> > > > > https://www.openshift.com/forums/openshift/custom-domain-httpwwwxxxxxxxcom-is-redirecting-to-httpswwwxxxxxxxcomapp#comment-34215
> > > > > 
> > > > > 
> > > > > Farah
> > > > > 
> > > > > ----- Original Message -----
> > > > > > From: "Farah Juma" <fjuma at redhat.com>
> > > > > > To: aerogear-dev at lists.jboss.org
> > > > > > Sent: Monday, January 27, 2014 1:07:31 PM
> > > > > > Subject: Re: [aerogear-dev] Upgrading process for the OpenShift
> > > > > > AeroGear
> > > > > >         UPS        cartridge
> > > > > > 
> > > > > > 
> > > > > > > From: "Andrea Vibelli" <avibelli at redhat.com>
> > > > > > > To: aerogear-dev at lists.jboss.org
> > > > > > > Sent: Monday, January 27, 2014 12:27:04 PM
> > > > > > > Subject: [aerogear-dev] Upgrading process for the OpenShift
> > > > > > > AeroGear
> > > > > > > UPS
> > > > > > >         cartridge
> > > > > > > 
> > > > > > > Hello all,
> > > > > > > 
> > > > > > > I just wanted to let you know that Farah is working on
> > > > > > > AGPUSH-504,
> > > > > > > a
> > > > > > > snapshot/restore approach for upgrading the downloadable
> > > > > > > cartridge.
> > > > > > > The overall idea is to take a snapshot of the database (and other
> > > > > > > configuration) for an older existing cartridge instance, delete
> > > > > > > this
> > > > > > > old
> > > > > > > instance, and then create a new instance based on the latest
> > > > > > > cartridge
> > > > > > > version and restore the new instance's database (and other
> > > > > > > configuration)
> > > > > > > to
> > > > > > > the state in the snapshot. The new instance must have the same
> > > > > > > name
> > > > > > > as
> > > > > > > the
> > > > > > > old instance. The main thing that she needed to determine was
> > > > > > > what
> > > > > > > needed
> > > > > > > to
> > > > > > > be included in the snapshot that's not already part of the MySQL
> > > > > > > database.
> > > > > > > The SimplePush token key was one of these things (we generate
> > > > > > > this
> > > > > > > value
> > > > > > > when a cartridge instance is created and it is used by the server
> > > > > > > for
> > > > > > > encryption and decryption of endpoint URLs). The standalone.xml
> > > > > > > file
> > > > > > > also
> > > > > > > needed to be backed up just in case the user made any changes to
> > > > > > > it.
> > > > > > > (Creating a backup of this file allows users to manually merge
> > > > > > > back
> > > > > > > any
> > > > > > > changes they may have made.)
> > > > > > > 
> > > > > > > The snapshot/restore action hooks she has created can be found in
> > > > > > > [1].
> > > > > > > 
> > > > > > > The steps she has been using to try upgrading from an 0.8.1
> > > > > > > instance
> > > > > > > are
> > > > > > > listed below. It would be great if you could try out these steps
> > > > > > > as
> > > > > > > well.
> > > > > > > There's one important caveat though: because an 0.8.1 instance
> > > > > > > won't
> > > > > > > have
> > > > > > > the necessary snapshot hook, you'll need to manually perform some
> > > > > > > commands
> > > > > > > to save the necessary data (step 3 below). If we include these
> > > > > > > snapshot/restore action hooks in the 0.10.0 cartridge release,
> > > > > > > users
> > > > > > > will
> > > > > > > be
> > > > > > > able to make use of these hooks for future upgrades, e.g., for
> > > > > > > upgrading
> > > > > > > from 0.10.0 to 0.11.0.
> > > > > > >   
> > > > > > > 1) Create an 0.8.1 cartridge instance
> > > > > > > rhc create-app mypush
> > > > > > > "https://cartreflect-claytondev.rhcloud.com/reflect?github=aerogear/openshift-origin-cartridge-aerogear-push&commit=8aada257de52157a837db23a9f7b1a8574fdffab"
> > > > > > > mysql-5.1
> > > > > > > 
> > > > > > > 2) Log into the admin console, change password, create push
> > > > > > > applications,
> > > > > > > create variants, send push notifications, etc.
> > > > > > > 
> > > > > > > 3) ssh into your instance and perform these commands (this step
> > > > > > > manually
> > > > > > > captures needed data)
> > > > > > > echo "$OPENSHIFT_AEROGEAR_PUSH_TOKEN_KEY" >
> > > > > > > $OPENSHIFT_DATA_DIR/aerogear_push_token_key
> > > > > > > cp
> > > > > > > $OPENSHIFT_AEROGEAR_PUSH_DIR/standalone/configuration/standalone.xml
> > > > > > > $OPENSHIFT_DATA_DIR/standalone.snapshot.xml
> > > > > > > 
> > > > > > > 4) Create a snapshot of the 0.8.1 instance: rhc snapshot save
> > > > > > > mypush
> > > > > > > 
> > > > > > > 5) Delete the 0.8.1 instance: rhc app delete mypush
> > > > > > > 
> > > > > > > 6) Delete the local directory on the local machine (from step 1,
> > > > > > > you
> > > > > > > should
> > > > > > > have a directory named 'mypush')
> > > > > > > 
> > > > > > > 7) Create a new cartridge instance (this uses her fork of the
> > > > > > > 0.9.0
> > > > > > > cartridge
> > > > > > > repository that contains the snapshot/restore action hooks)
> > > > > > > rhc create-app mypush
> > > > > > > "https://cartreflect-claytondev.rhcloud.com/reflect?github=fjuma/openshift-origin-cartridge-aerogear-push&commit=956a4fc09edc93fe76394b86b265ceb1d238ccaf"
> > > > > > > mysql-5.1
> > > > > > > 
> > > > > > > 8) Restore the instance: rhc snapshot restore mypush -f
> > > > > > > /PATH/TO/mypush.tar.gz
> > > > > > > 
> > > > > > > 9) You should now be able to log into the admin console with the
> > > > > > > same
> > > > > > > password you previously set, see existing push applications,
> > > > > > > variants,
> > > > > > > send
> > > > > > > push notifications, etc.
> > > > > > > 
> > > > > > > One disadvantage of this snapshot/restore approach is the extra
> > > > > > > work
> > > > > > > for
> > > > > > > the
> > > > > > > user. It would be nice to have a single command that can do the
> > > > > > > snapshot,
> > > > > > > delete, create, and restore all at once. She is going to start
> > > > > > > looking
> > > > > > > into
> > > > > > > this "wrappering" functionality.
> > > > > > > 
> > > > > > > 
> > > > > > > Why am I writing about this?
> > > > > > > 
> > > > > > > I have made some test about the above steps. At a first glance,
> > > > > > > it
> > > > > > > seemed
> > > > > > > that something was broken between steps 6 and 7.
> > > > > > > Doing various tests, what I saw in the logs (server.log) were
> > > > > > > different
> > > > > > > errors:
> > > > > > > 
> > > > > > > 2014/01/26 10:19:18,061 ERROR [org.jboss.as] (MSC service thread
> > > > > > > 1-3)
> > > > > > > JBAS015875: JBoss AS 7.1.1.Final "Brontes" started (with errors)
> > > > > > > in
> > > > > > > 296088ms
> > > > > > > - Started 349 of 524 services (52 services failed or missing
> > > > > > > dependencies,
> > > > > > > 119 services are passive or on-demand)
> > > > > > > 2014/01/26 10:19:18,344 INFO  [org.jboss.as.server]
> > > > > > > (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment
> > > > > > > "ROOT.war"
> > > > > > > was rolled back with failure message {"JBAS014771: Services with
> > > > > > > missing/unavailable dependencies" =>
> > > > > > > ["jboss.persistenceunit.\"ROOT.war#unifiedpush-default\"jboss.naming.context.java.jboss.datasources.PushEEDSMissing[jboss.persistenceunit.\"ROOT.war#unifiedpush-default\"jboss.naming.context.java.jboss.datasources.PushEEDS]","jboss.persistenceunit.\"ROOT.war#picketlink-default\"jboss.naming.context.java.jboss.datasources.PushEEDSMissing[jboss.persistenceunit.\"ROOT.war#picketlink-default\"jboss.naming.context.java.jboss.datasources.PushEEDS]"]}
> > > > > > > 2014/01/26 10:19:19,390 INFO  [org.jboss.as.server.deployment]
> > > > > > > (MSC
> > > > > > > service
> > > > > > > thread 1-2) JBAS015877: Stopped deployment ROOT.war in 1125ms
> > > > > > > 2014/01/26 10:19:19,393 INFO  [org.jboss.as.controller]
> > > > > > > (DeploymentScanner-threads - 2) JBAS014774: Service status report
> > > > > > > JBAS014775:    New missing/unsatisfied dependencies:
> > > > > > >       service
> > > > > > >       jboss.naming.context.java.jboss.datasources.PushEEDS
> > > > > > >       (missing)
> > > > > > >       dependents: [service
> > > > > > >       jboss.persistenceunit."ROOT.war#unifiedpush-default",
> > > > > > >       service
> > > > > > >       jboss.persistenceunit."ROOT.war#picketlink-default"]
> > > > > > > 
> > > > > > > 
> > > > > > > 2014/01/26 10:19:19,440 ERROR
> > > > > > > [org.jboss.as.server.deployment.scanner]
> > > > > > > (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation
> > > > > > > failed
> > > > > > > and
> > > > > > > was rolled back. Steps that failed:" => {"Operation step-2" =>
> > > > > > > {"JBAS014771:
> > > > > > > Services with missing/unavailable dependencies" =>
> > > > > > > ["jboss.persistenceunit.\"ROOT.war#unifiedpush-default\"jboss.naming.context.java.jboss.datasources.PushEEDSMissing[jboss.persistenceunit.\"ROOT.war#unifiedpush-default\"jboss.naming.context.java.jboss.datasources.PushEEDS]","jboss.persistenceunit.\"ROOT.war#picketlink-default\"jboss.naming.context.java.jboss.datasources.PushEEDSMissing[jboss.persistenceunit.\"ROOT.war#picketlink-default\"jboss.naming.context.java.jboss.datasources.PushEEDS]"]}}}
> > > > > > 
> > > > > > 
> > > > > > It looks like the MySQL cartridge either wasn't added or wasn't
> > > > > > able
> > > > > > to
> > > > > > start
> > > > > > successfully. The following command can be used to check the status
> > > > > > of
> > > > > > the
> > > > > > MySQL cartridge:
> > > > > > 
> > > > > > rhc cartridge status -a APP -c mysql
> > > > > > 
> > > > > >  
> > > > > > > OR
> > > > > > > 
> > > > > > > 
> > > > > > > 2014/01/26 05:41:46,522 INFO  [org.jboss.as.connector] (MSC
> > > > > > > service
> > > > > > > thread
> > > > > > > 1-1) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar
> > > > > > > 1.0.9.Final)
> > > > > > > 2014/01/26 05:41:46,922 ERROR
> > > > > > > [org.jboss.as.controller.management-operation]
> > > > > > > (ServerService Thread Pool -- 62) Operation ("enable") failed -
> > > > > > > address:
> > > > > > > ([
> > > > > > >     ("subsystem" => "datasources"),
> > > > > > >     ("data-source" => "PostgreSQLDS")
> > > > > > > ]) - failure description: "JBAS014802: Cannot resolve expression
> > > > > > > 'expression
> > > > > > > \"jdbcostgresql://${env.OPENSHIFT_POSTGRESQL_DB_HOST}:${env.OPENSHIFT_POSTGRESQL_DB_PORT}/mypush13\"'
> > > > > > > -- java.lang.IllegalStateException: Failed to resolve expression:
> > > > > > > ${env.OPENSHIFT_POSTGRESQL_DB_HOST}"
> > > > > > > 
> > > > > > > 
> > > > > > > OR
> > > > > > > 
> > > > > > > 
> > > > > > > no errors in the logs, but in the deployments directory I found
> > > > > > > 'ROOT.war.dodeploy' and 'ROOT.war.isdeploying' files, but no
> > > > > > > 'ROOT.war.deployed' file.
> > > > > > > 
> > > > > > > 
> > > > > > > Those error seemed to me as random and too strange (by the way,
> > > > > > > the
> > > > > > > creation
> > > > > > > of the cartridge is always correct, I never had problems if I
> > > > > > > created
> > > > > > > a
> > > > > > > new
> > > > > > > instance with a never used before name).
> > > > > > > 
> > > > > > > To investigate further, I then tried to do the same steps with a
> > > > > > > completely
> > > > > > > different application: 'Kitchensink on OpenShift', and I had the
> > > > > > > same
> > > > > > > error!
> > > > > > > After the deletion and the recreation of a cartridge with a same
> > > > > > > name,
> > > > > > > I
> > > > > > > encountered: 'The requested URL /app was not found on this
> > > > > > > server.'
> > > > > > > The steps I have done are:
> > > > > > > 1) rhc app create -a kitchensink -t jbossas-7 --from-code
> > > > > > > git://github.com/openshift/kitchensink-example.git
> > > > > > > 2) rhc snapshot save kitchensink
> > > > > > > 3) rhc app delete kitchensink
> > > > > > > 4) rm -rf kitchensinkhtml5/
> > > > > > > 5) rhc app create -a kitchensink -t jbossas-7 --from-code
> > > > > > > git://github.com/openshift/kitchensink-example.git
> > > > > > > 6) Access to the application.
> > > > > > > 
> > > > > > > So the good news is that the error I encountered is not related
> > > > > > > to
> > > > > > > this
> > > > > > > specific AeroGear cartridges, but the bad news is that is
> > > > > > > something
> > > > > > > more
> > > > > > > general about OpenShift.
> > > > > > > We need to investigate further and find out if there is a way to
> > > > > > > "flush"
> > > > > > > the
> > > > > > > deletion, it seems that there is something appended or cached
> > > > > > > that
> > > > > > > prevent
> > > > > > > the recreation of a cartridge with a same name.
> > > > > > 
> > > > > > It's good that the issue you're running into isn't specific to the
> > > > > > AeroGear
> > > > > > cartridge. I've tried quite a few times today but I'm not able to
> > > > > > reproduce
> > > > > > the issue with the AeroGear cartridge or with the kitchensink
> > > > > > application
> > > > > > using the above steps. I suspect that there is indeed an OpenShift
> > > > > > timing
> > > > > > issue here. Let's check with the OpenShift team on this.
> > > > > > 
> > > > > > Farah
> > > > > > 
> > > > > > > We are currently doing some more tests on these process.
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > _______________________________________________
> > > > > > > aerogear-dev mailing list
> > > > > > > aerogear-dev at lists.jboss.org
> > > > > > > https://lists.jboss.org/mailman/listinfo/aerogear-dev
> > > > > > > 
> > > > > > _______________________________________________
> > > > > > aerogear-dev mailing list
> > > > > > aerogear-dev at lists.jboss.org
> > > > > > https://lists.jboss.org/mailman/listinfo/aerogear-dev
> > > > > >
> > > > > 
> > > >
> > > 
> > > _______________________________________________
> > > aerogear-dev mailing list
> > > aerogear-dev at lists.jboss.org
> > > https://lists.jboss.org/mailman/listinfo/aerogear-dev
> > 
> 



More information about the aerogear-dev mailing list