def configure_admin(): remove_state("jenkins.configured.admin") api = Api() status_set("maintenance", "Configuring Jenkins public url") configuration = Configuration() needs_restart = configuration.set_url() if needs_restart: status_set("maintenance", "Restarting Jenkins") service_restart('jenkins') api.wait() status_set("maintenance", "Configuring proxy settings") configuration.configure_proxy() service_restart('jenkins') api.wait() status_set("maintenance", "Configuring admin user") users = Users() users.configure_admin() api.reload() api.wait() # Wait for the service to be fully up # Inform any extension that the username/password changed if get_state("extension.connected"): extension_relation = (RelationBase.from_state("extension.connected")) extension_relation.joined() set_state("jenkins.configured.admin")
def setUp(self): super(UsersTest, self).setUp() self.useFixture(AptInstalledJenkins(self.fakes)) self.fakes.jenkins.scripts[GET_LEGACY_TOKEN_SCRIPT.format( "admin")] = "abc\n" self.apt = AptStub() self.packages = Packages(apt=self.apt) self.users = Users(packages=self.packages)
def configure_admin(): remove_state("jenkins.configured.admin") status_set("maintenance", "Configuring admin user") users = Users() users.configure_admin() api = Api() api.reload() api.wait() # Wait for the service to be fully up set_state("jenkins.configured.admin")
def configure_admin(): remove_state("jenkins.configured.admin") status_set("maintenance", "Configuring admin user") users = Users() users.configure_admin() api = Api() api.reload() api.wait() # Wait for the service to be fully up # Inform any extension that the username/password changed if get_state("extension.connected"): extension_relation = (RelationBase.from_state("extension.connected")) extension_relation.joined() set_state("jenkins.configured.admin")
class UsersTest(JenkinsTest): def setUp(self): super(UsersTest, self).setUp() self.useFixture(AptInstalledJenkins(self.fakes)) self.fakes.jenkins.scripts[GET_LEGACY_TOKEN_SCRIPT.format( "admin")] = "abc\n" self.apt = AptStub() self.packages = Packages(apt=self.apt) self.users = Users(packages=self.packages) def test_configure_admin_custom_password(self): """ If a password is provided, it's used to configure the admin user. """ self.apt._set_jenkins_version('2.120.1') config = hookenv.config() orig_password = config["password"] try: config["password"] = "******" script = UPDATE_PASSWORD_SCRIPT.format(username="******", password="******") self.fakes.jenkins.scripts[script] = "" self.users.configure_admin() self.assertThat(paths.ADMIN_PASSWORD, FileContains("x")) self.assertThat(paths.ADMIN_PASSWORD, HasOwnership(0, 0)) self.assertThat(paths.ADMIN_PASSWORD, HasPermissions("0600")) self.assertThat(paths.LAST_EXEC, FileContains("2.0.0\n")) self.assertThat(paths.LAST_EXEC, HasOwnership(123, 456)) finally: config["password"] = orig_password def test_configure_admin_random_password(self): """ If a password is not provided, a random one will be generated. """ def pwgen(length): return "z" self.apt._set_jenkins_version('2.120.1') script = UPDATE_PASSWORD_SCRIPT.format(username="******", password="******") self.fakes.jenkins.scripts[script] = "" self.useFixture(MonkeyPatch("charmhelpers.core.host.pwgen", pwgen)) self.users.configure_admin() self.assertTrue(hookenv.config()["_generated-password"])
class UsersTest(JenkinsTest): def setUp(self): super(UsersTest, self).setUp() self.useFixture(AptInstalledJenkins(self.fakes)) self.fakes.jenkins.scripts[GET_TOKEN_SCRIPT.format("admin")] = "abc\n" self.users = Users() def test_configure_admin_custom_password(self): """ If a password is provided, it's used to configure the admin user. """ self.fakes.juju.config["password"] = "******" script = UPDATE_PASSWORD_SCRIPT.format(username="******", password="******") self.fakes.jenkins.scripts[script] = "" self.users.configure_admin() self.assertThat(paths.ADMIN_PASSWORD, FileContains("x")) self.assertThat(paths.ADMIN_PASSWORD, HasOwnership(0, 0)) self.assertThat(paths.ADMIN_PASSWORD, HasPermissions("0600")) self.assertThat(paths.LAST_EXEC, FileContains("2.0.0\n")) self.assertThat(paths.LAST_EXEC, HasOwnership(123, 456)) def test_configure_admin_random_password(self): """ If a password is not provided, a random one will be generated. """ def pwgen(length): return "z" script = UPDATE_PASSWORD_SCRIPT.format(username="******", password="******") self.fakes.jenkins.scripts[script] = "" self.useFixture(MonkeyPatch("charmhelpers.core.host.pwgen", pwgen)) self.users.configure_admin() self.assertTrue(hookenv.config()["_generated-password"])
def setUp(self): super(UsersTest, self).setUp() self.useFixture(AptInstalledJenkins(self.fakes)) self.fakes.jenkins.scripts[GET_TOKEN_SCRIPT.format("admin")] = "abc\n" self.users = Users()